mlpack 4.6.2__cp313-cp313-win_amd64.whl → 4.7.0__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mlpack/__init__.py +4 -4
- mlpack/adaboost_classify.cp313-win_amd64.pyd +0 -0
- mlpack/adaboost_probabilities.cp313-win_amd64.pyd +0 -0
- mlpack/adaboost_train.cp313-win_amd64.pyd +0 -0
- mlpack/approx_kfn.cp313-win_amd64.pyd +0 -0
- mlpack/arma_numpy.cp313-win_amd64.pyd +0 -0
- mlpack/bayesian_linear_regression.cp313-win_amd64.pyd +0 -0
- mlpack/cf.cp313-win_amd64.pyd +0 -0
- mlpack/dbscan.cp313-win_amd64.pyd +0 -0
- mlpack/decision_tree.cp313-win_amd64.pyd +0 -0
- mlpack/det.cp313-win_amd64.pyd +0 -0
- mlpack/emst.cp313-win_amd64.pyd +0 -0
- mlpack/fastmks.cp313-win_amd64.pyd +0 -0
- mlpack/gmm_generate.cp313-win_amd64.pyd +0 -0
- mlpack/gmm_probability.cp313-win_amd64.pyd +0 -0
- mlpack/gmm_train.cp313-win_amd64.pyd +0 -0
- mlpack/hmm_generate.cp313-win_amd64.pyd +0 -0
- mlpack/hmm_loglik.cp313-win_amd64.pyd +0 -0
- mlpack/hmm_train.cp313-win_amd64.pyd +0 -0
- mlpack/hmm_viterbi.cp313-win_amd64.pyd +0 -0
- mlpack/hoeffding_tree.cp313-win_amd64.pyd +0 -0
- mlpack/image_converter.cp313-win_amd64.pyd +0 -0
- mlpack/include/mlpack/base.hpp +1 -0
- mlpack/include/mlpack/core/arma_extend/find_nan.hpp +63 -0
- mlpack/include/mlpack/core/cereal/low_precision.hpp +48 -0
- mlpack/include/mlpack/core/cv/cv_base.hpp +11 -11
- mlpack/include/mlpack/core/cv/cv_base_impl.hpp +7 -7
- mlpack/include/mlpack/core/cv/k_fold_cv.hpp +4 -4
- mlpack/include/mlpack/core/cv/k_fold_cv_impl.hpp +4 -4
- mlpack/include/mlpack/core/cv/meta_info_extractor.hpp +10 -10
- mlpack/include/mlpack/core/cv/metrics/f1_impl.hpp +1 -1
- mlpack/include/mlpack/core/cv/metrics/facilities.hpp +2 -1
- mlpack/include/mlpack/core/cv/metrics/precision_impl.hpp +1 -1
- mlpack/include/mlpack/core/cv/metrics/r2_score_impl.hpp +1 -1
- mlpack/include/mlpack/core/cv/metrics/silhouette_score_impl.hpp +1 -1
- mlpack/include/mlpack/core/cv/simple_cv.hpp +4 -4
- mlpack/include/mlpack/core/cv/simple_cv_impl.hpp +2 -2
- mlpack/include/mlpack/core/data/binarize.hpp +0 -2
- mlpack/include/mlpack/core/data/check_categorical_param.hpp +0 -2
- mlpack/include/mlpack/core/data/combine_options.hpp +151 -0
- mlpack/include/mlpack/core/data/confusion_matrix.hpp +0 -2
- mlpack/include/mlpack/core/data/confusion_matrix_impl.hpp +0 -2
- mlpack/include/mlpack/core/data/data.hpp +6 -4
- mlpack/include/mlpack/core/data/data_options.hpp +341 -18
- mlpack/include/mlpack/core/data/dataset_mapper.hpp +3 -5
- mlpack/include/mlpack/core/data/dataset_mapper_impl.hpp +0 -2
- mlpack/include/mlpack/core/data/detect_file_type.hpp +34 -5
- mlpack/include/mlpack/core/data/detect_file_type_impl.hpp +185 -11
- mlpack/include/mlpack/core/data/extension.hpp +2 -4
- mlpack/include/mlpack/core/data/font8x8_basic.h +152 -0
- mlpack/include/mlpack/core/data/has_serialize.hpp +0 -2
- mlpack/include/mlpack/core/data/image_bounding_box.hpp +36 -0
- mlpack/include/mlpack/core/data/image_bounding_box_impl.hpp +155 -0
- mlpack/include/mlpack/core/data/image_layout.hpp +63 -0
- mlpack/include/mlpack/core/data/image_layout_impl.hpp +75 -0
- mlpack/include/mlpack/core/data/image_letterbox.hpp +116 -0
- mlpack/include/mlpack/core/data/image_options.hpp +257 -0
- mlpack/include/mlpack/core/data/image_resize_crop.hpp +113 -48
- mlpack/include/mlpack/core/data/imputation_methods/custom_imputation.hpp +16 -32
- mlpack/include/mlpack/core/data/imputation_methods/listwise_deletion.hpp +19 -29
- mlpack/include/mlpack/core/data/imputation_methods/mean_imputation.hpp +113 -44
- mlpack/include/mlpack/core/data/imputation_methods/median_imputation.hpp +44 -43
- mlpack/include/mlpack/core/data/imputer.hpp +41 -49
- mlpack/include/mlpack/core/data/is_naninf.hpp +0 -2
- mlpack/include/mlpack/core/data/load.hpp +49 -233
- mlpack/include/mlpack/core/data/load_arff.hpp +0 -2
- mlpack/include/mlpack/core/data/load_arff_impl.hpp +2 -4
- mlpack/include/mlpack/core/data/load_categorical.hpp +1 -4
- mlpack/include/mlpack/core/data/load_categorical_impl.hpp +10 -26
- mlpack/include/mlpack/core/data/load_dense.hpp +279 -0
- mlpack/include/mlpack/core/data/load_deprecated.hpp +466 -0
- mlpack/include/mlpack/core/data/load_image.hpp +71 -43
- mlpack/include/mlpack/core/data/load_impl.hpp +95 -274
- mlpack/include/mlpack/core/data/load_model.hpp +62 -0
- mlpack/include/mlpack/core/data/load_numeric.hpp +124 -87
- mlpack/include/mlpack/core/data/load_sparse.hpp +91 -0
- mlpack/include/mlpack/core/data/map_policies/datatype.hpp +0 -2
- mlpack/include/mlpack/core/data/map_policies/increment_policy.hpp +0 -2
- mlpack/include/mlpack/core/data/map_policies/map_policies.hpp +0 -1
- mlpack/include/mlpack/core/data/matrix_options.hpp +152 -20
- mlpack/include/mlpack/core/data/normalize_labels.hpp +0 -2
- mlpack/include/mlpack/core/data/normalize_labels_impl.hpp +0 -2
- mlpack/include/mlpack/core/data/one_hot_encoding.hpp +2 -4
- mlpack/include/mlpack/core/data/one_hot_encoding_impl.hpp +3 -5
- mlpack/include/mlpack/core/data/save.hpp +26 -120
- mlpack/include/mlpack/core/data/save_dense.hpp +42 -0
- mlpack/include/mlpack/core/data/save_deprecated.hpp +308 -0
- mlpack/include/mlpack/core/data/save_image.hpp +82 -42
- mlpack/include/mlpack/core/data/save_impl.hpp +60 -245
- mlpack/include/mlpack/core/data/save_matrix.hpp +45 -0
- mlpack/include/mlpack/core/data/save_model.hpp +61 -0
- mlpack/include/mlpack/core/data/save_numeric.hpp +60 -0
- mlpack/include/mlpack/core/data/save_sparse.hpp +44 -0
- mlpack/include/mlpack/core/data/scaler_methods/max_abs_scaler.hpp +0 -2
- mlpack/include/mlpack/core/data/scaler_methods/mean_normalization.hpp +2 -4
- mlpack/include/mlpack/core/data/scaler_methods/min_max_scaler.hpp +0 -2
- mlpack/include/mlpack/core/data/scaler_methods/pca_whitening.hpp +1 -3
- mlpack/include/mlpack/core/data/scaler_methods/standard_scaler.hpp +2 -4
- mlpack/include/mlpack/core/data/scaler_methods/zca_whitening.hpp +0 -2
- mlpack/include/mlpack/core/data/split_data.hpp +6 -8
- mlpack/include/mlpack/core/data/string_algorithms.hpp +0 -2
- mlpack/include/mlpack/core/data/string_encoding.hpp +0 -2
- mlpack/include/mlpack/core/data/string_encoding_dictionary.hpp +0 -2
- mlpack/include/mlpack/core/data/string_encoding_impl.hpp +0 -2
- mlpack/include/mlpack/core/data/string_encoding_policies/bag_of_words_encoding_policy.hpp +0 -2
- mlpack/include/mlpack/core/data/string_encoding_policies/dictionary_encoding_policy.hpp +0 -2
- mlpack/include/mlpack/core/data/string_encoding_policies/policy_traits.hpp +0 -2
- mlpack/include/mlpack/core/data/string_encoding_policies/tf_idf_encoding_policy.hpp +0 -2
- mlpack/include/mlpack/core/data/text_options.hpp +91 -53
- mlpack/include/mlpack/core/data/tokenizers/char_extract.hpp +0 -2
- mlpack/include/mlpack/core/data/tokenizers/split_by_any_of.hpp +0 -2
- mlpack/include/mlpack/core/distributions/gamma_distribution_impl.hpp +4 -4
- mlpack/include/mlpack/core/distributions/laplace_distribution.hpp +9 -9
- mlpack/include/mlpack/core/distributions/laplace_distribution_impl.hpp +7 -7
- mlpack/include/mlpack/core/hpt/cv_function.hpp +2 -2
- mlpack/include/mlpack/core/hpt/cv_function_impl.hpp +2 -2
- mlpack/include/mlpack/core/hpt/hpt.hpp +4 -4
- mlpack/include/mlpack/core/hpt/hpt_impl.hpp +9 -9
- mlpack/include/mlpack/core/math/make_alias.hpp +7 -5
- mlpack/include/mlpack/core/math/random.hpp +19 -5
- mlpack/include/mlpack/core/math/shuffle_data.hpp +79 -245
- mlpack/include/mlpack/core/metrics/non_maximal_suppression_impl.hpp +9 -10
- mlpack/include/mlpack/core/stb/bundled/stb_image_resize2.h +291 -239
- mlpack/include/mlpack/core/tree/binary_space_tree/rp_tree_mean_split_impl.hpp +7 -7
- mlpack/include/mlpack/core/tree/cellbound.hpp +2 -2
- mlpack/include/mlpack/core/tree/cosine_tree/cosine_tree_impl.hpp +10 -10
- mlpack/include/mlpack/core/tree/octree/octree.hpp +10 -0
- mlpack/include/mlpack/core/tree/octree/octree_impl.hpp +14 -4
- mlpack/include/mlpack/core/util/arma_traits.hpp +25 -38
- mlpack/include/mlpack/core/util/coot_traits.hpp +97 -0
- mlpack/include/mlpack/core/util/forward.hpp +0 -2
- mlpack/include/mlpack/core/util/param.hpp +4 -4
- mlpack/include/mlpack/core/util/params_impl.hpp +2 -2
- mlpack/include/mlpack/core/util/using.hpp +29 -2
- mlpack/include/mlpack/core/util/version.hpp +5 -3
- mlpack/include/mlpack/core/util/version_impl.hpp +3 -6
- mlpack/include/mlpack/methods/adaboost/adaboost_classify_main.cpp +1 -1
- mlpack/include/mlpack/methods/adaboost/adaboost_main.cpp +3 -3
- mlpack/include/mlpack/methods/adaboost/adaboost_train_main.cpp +2 -2
- mlpack/include/mlpack/methods/ann/activation_functions/activation_functions.hpp +1 -0
- mlpack/include/mlpack/methods/ann/activation_functions/bipolar_sigmoid_function.hpp +6 -4
- mlpack/include/mlpack/methods/ann/activation_functions/elish_function.hpp +17 -12
- mlpack/include/mlpack/methods/ann/activation_functions/elliot_function.hpp +9 -7
- mlpack/include/mlpack/methods/ann/activation_functions/gaussian_function.hpp +7 -6
- mlpack/include/mlpack/methods/ann/activation_functions/gelu_exact_function.hpp +73 -0
- mlpack/include/mlpack/methods/ann/activation_functions/gelu_function.hpp +27 -16
- mlpack/include/mlpack/methods/ann/activation_functions/hard_sigmoid_function.hpp +8 -6
- mlpack/include/mlpack/methods/ann/activation_functions/hard_swish_function.hpp +6 -4
- mlpack/include/mlpack/methods/ann/activation_functions/hyper_sinh_function.hpp +13 -8
- mlpack/include/mlpack/methods/ann/activation_functions/identity_function.hpp +6 -4
- mlpack/include/mlpack/methods/ann/activation_functions/inverse_quadratic_function.hpp +8 -6
- mlpack/include/mlpack/methods/ann/activation_functions/lisht_function.hpp +7 -5
- mlpack/include/mlpack/methods/ann/activation_functions/logistic_function.hpp +14 -12
- mlpack/include/mlpack/methods/ann/activation_functions/mish_function.hpp +7 -5
- mlpack/include/mlpack/methods/ann/activation_functions/multi_quadratic_function.hpp +6 -4
- mlpack/include/mlpack/methods/ann/activation_functions/poisson1_function.hpp +4 -2
- mlpack/include/mlpack/methods/ann/activation_functions/quadratic_function.hpp +6 -4
- mlpack/include/mlpack/methods/ann/activation_functions/rectifier_function.hpp +10 -10
- mlpack/include/mlpack/methods/ann/activation_functions/silu_function.hpp +10 -8
- mlpack/include/mlpack/methods/ann/activation_functions/softplus_function.hpp +12 -9
- mlpack/include/mlpack/methods/ann/activation_functions/softsign_function.hpp +15 -23
- mlpack/include/mlpack/methods/ann/activation_functions/spline_function.hpp +9 -7
- mlpack/include/mlpack/methods/ann/activation_functions/swish_function.hpp +11 -9
- mlpack/include/mlpack/methods/ann/activation_functions/tanh_exponential_function.hpp +9 -7
- mlpack/include/mlpack/methods/ann/activation_functions/tanh_function.hpp +10 -7
- mlpack/include/mlpack/methods/ann/ann.hpp +3 -0
- mlpack/include/mlpack/methods/ann/convolution_rules/base_convolution.hpp +197 -0
- mlpack/include/mlpack/methods/ann/convolution_rules/convolution_rules.hpp +1 -2
- mlpack/include/mlpack/methods/ann/convolution_rules/im2col_convolution.hpp +215 -0
- mlpack/include/mlpack/methods/ann/convolution_rules/naive_convolution.hpp +109 -154
- mlpack/include/mlpack/methods/ann/dag_network.hpp +728 -0
- mlpack/include/mlpack/methods/ann/dag_network_impl.hpp +1640 -0
- mlpack/include/mlpack/methods/ann/dists/bernoulli_distribution_impl.hpp +1 -1
- mlpack/include/mlpack/methods/ann/dists/normal_distribution_impl.hpp +7 -2
- mlpack/include/mlpack/methods/ann/ffn.hpp +39 -3
- mlpack/include/mlpack/methods/ann/ffn_impl.hpp +14 -32
- mlpack/include/mlpack/methods/ann/init_rules/const_init.hpp +4 -4
- mlpack/include/mlpack/methods/ann/init_rules/gaussian_init.hpp +6 -2
- mlpack/include/mlpack/methods/ann/init_rules/he_init.hpp +4 -2
- mlpack/include/mlpack/methods/ann/init_rules/kathirvalavakumar_subavathi_init.hpp +3 -3
- mlpack/include/mlpack/methods/ann/init_rules/lecun_normal_init.hpp +4 -2
- mlpack/include/mlpack/methods/ann/init_rules/nguyen_widrow_init.hpp +2 -2
- mlpack/include/mlpack/methods/ann/init_rules/oivs_init.hpp +2 -2
- mlpack/include/mlpack/methods/ann/init_rules/orthogonal_init.hpp +2 -2
- mlpack/include/mlpack/methods/ann/init_rules/random_init.hpp +8 -4
- mlpack/include/mlpack/methods/ann/layer/adaptive_max_pooling.hpp +21 -23
- mlpack/include/mlpack/methods/ann/layer/adaptive_max_pooling_impl.hpp +15 -15
- mlpack/include/mlpack/methods/ann/layer/adaptive_mean_pooling.hpp +21 -23
- mlpack/include/mlpack/methods/ann/layer/adaptive_mean_pooling_impl.hpp +16 -16
- mlpack/include/mlpack/methods/ann/layer/add.hpp +18 -18
- mlpack/include/mlpack/methods/ann/layer/add_impl.hpp +13 -13
- mlpack/include/mlpack/methods/ann/layer/add_merge.hpp +19 -18
- mlpack/include/mlpack/methods/ann/layer/add_merge_impl.hpp +13 -13
- mlpack/include/mlpack/methods/ann/layer/alpha_dropout.hpp +17 -16
- mlpack/include/mlpack/methods/ann/layer/alpha_dropout_impl.hpp +14 -13
- mlpack/include/mlpack/methods/ann/layer/base_layer.hpp +28 -51
- mlpack/include/mlpack/methods/ann/layer/batch_norm.hpp +16 -18
- mlpack/include/mlpack/methods/ann/layer/batch_norm_impl.hpp +55 -54
- mlpack/include/mlpack/methods/ann/layer/c_relu.hpp +18 -20
- mlpack/include/mlpack/methods/ann/layer/c_relu_impl.hpp +20 -25
- mlpack/include/mlpack/methods/ann/layer/celu.hpp +14 -19
- mlpack/include/mlpack/methods/ann/layer/celu_impl.hpp +25 -34
- mlpack/include/mlpack/methods/ann/layer/concat.hpp +18 -18
- mlpack/include/mlpack/methods/ann/layer/concat_impl.hpp +13 -13
- mlpack/include/mlpack/methods/ann/layer/concatenate.hpp +18 -18
- mlpack/include/mlpack/methods/ann/layer/concatenate_impl.hpp +14 -14
- mlpack/include/mlpack/methods/ann/layer/convolution.hpp +42 -47
- mlpack/include/mlpack/methods/ann/layer/convolution_impl.hpp +170 -159
- mlpack/include/mlpack/methods/ann/layer/dropconnect.hpp +18 -20
- mlpack/include/mlpack/methods/ann/layer/dropconnect_impl.hpp +20 -20
- mlpack/include/mlpack/methods/ann/layer/dropout.hpp +17 -19
- mlpack/include/mlpack/methods/ann/layer/dropout_impl.hpp +14 -21
- mlpack/include/mlpack/methods/ann/layer/elu.hpp +23 -25
- mlpack/include/mlpack/methods/ann/layer/elu_impl.hpp +20 -27
- mlpack/include/mlpack/methods/ann/layer/embedding.hpp +160 -0
- mlpack/include/mlpack/methods/ann/layer/embedding_impl.hpp +189 -0
- mlpack/include/mlpack/methods/ann/layer/flexible_relu.hpp +17 -19
- mlpack/include/mlpack/methods/ann/layer/flexible_relu_impl.hpp +20 -20
- mlpack/include/mlpack/methods/ann/layer/ftswish.hpp +17 -18
- mlpack/include/mlpack/methods/ann/layer/ftswish_impl.hpp +17 -35
- mlpack/include/mlpack/methods/ann/layer/grouped_convolution.hpp +27 -33
- mlpack/include/mlpack/methods/ann/layer/grouped_convolution_impl.hpp +170 -163
- mlpack/include/mlpack/methods/ann/layer/gru.hpp +195 -0
- mlpack/include/mlpack/methods/ann/layer/gru_impl.hpp +325 -0
- mlpack/include/mlpack/methods/ann/layer/hard_tanh.hpp +13 -15
- mlpack/include/mlpack/methods/ann/layer/hard_tanh_impl.hpp +12 -12
- mlpack/include/mlpack/methods/ann/layer/identity.hpp +19 -20
- mlpack/include/mlpack/methods/ann/layer/identity_impl.hpp +12 -12
- mlpack/include/mlpack/methods/ann/layer/layer.hpp +37 -33
- mlpack/include/mlpack/methods/ann/layer/layer_norm.hpp +11 -13
- mlpack/include/mlpack/methods/ann/layer/layer_norm_impl.hpp +16 -16
- mlpack/include/mlpack/methods/ann/layer/layer_types.hpp +4 -1
- mlpack/include/mlpack/methods/ann/layer/leaky_relu.hpp +20 -23
- mlpack/include/mlpack/methods/ann/layer/leaky_relu_impl.hpp +12 -13
- mlpack/include/mlpack/methods/ann/layer/linear.hpp +16 -18
- mlpack/include/mlpack/methods/ann/layer/linear3d.hpp +18 -18
- mlpack/include/mlpack/methods/ann/layer/linear3d_impl.hpp +18 -18
- mlpack/include/mlpack/methods/ann/layer/linear_impl.hpp +15 -15
- mlpack/include/mlpack/methods/ann/layer/linear_no_bias.hpp +15 -17
- mlpack/include/mlpack/methods/ann/layer/linear_no_bias_impl.hpp +20 -20
- mlpack/include/mlpack/methods/ann/layer/linear_recurrent.hpp +25 -14
- mlpack/include/mlpack/methods/ann/layer/linear_recurrent_impl.hpp +60 -31
- mlpack/include/mlpack/methods/ann/layer/log_softmax.hpp +17 -36
- mlpack/include/mlpack/methods/ann/layer/log_softmax_impl.hpp +58 -74
- mlpack/include/mlpack/methods/ann/layer/lstm.hpp +26 -29
- mlpack/include/mlpack/methods/ann/layer/lstm_impl.hpp +128 -124
- mlpack/include/mlpack/methods/ann/layer/max_pooling.hpp +19 -19
- mlpack/include/mlpack/methods/ann/layer/max_pooling_impl.hpp +14 -14
- mlpack/include/mlpack/methods/ann/layer/mean_pooling.hpp +24 -24
- mlpack/include/mlpack/methods/ann/layer/mean_pooling_impl.hpp +16 -16
- mlpack/include/mlpack/methods/ann/layer/multi_layer.hpp +36 -6
- mlpack/include/mlpack/methods/ann/layer/multi_layer_impl.hpp +6 -2
- mlpack/include/mlpack/methods/ann/layer/multihead_attention.hpp +26 -22
- mlpack/include/mlpack/methods/ann/layer/multihead_attention_impl.hpp +161 -64
- mlpack/include/mlpack/methods/ann/layer/nearest_interpolation.hpp +28 -25
- mlpack/include/mlpack/methods/ann/layer/nearest_interpolation_impl.hpp +36 -37
- mlpack/include/mlpack/methods/ann/layer/noisylinear.hpp +39 -42
- mlpack/include/mlpack/methods/ann/layer/noisylinear_impl.hpp +18 -18
- mlpack/include/mlpack/methods/ann/layer/padding.hpp +21 -17
- mlpack/include/mlpack/methods/ann/layer/padding_impl.hpp +33 -19
- mlpack/include/mlpack/methods/ann/layer/parametric_relu.hpp +26 -28
- mlpack/include/mlpack/methods/ann/layer/parametric_relu_impl.hpp +18 -18
- mlpack/include/mlpack/methods/ann/layer/radial_basis_function.hpp +41 -28
- mlpack/include/mlpack/methods/ann/layer/radial_basis_function_impl.hpp +42 -17
- mlpack/include/mlpack/methods/ann/layer/recurrent_layer.hpp +13 -0
- mlpack/include/mlpack/methods/ann/layer/relu6.hpp +19 -21
- mlpack/include/mlpack/methods/ann/layer/relu6_impl.hpp +14 -14
- mlpack/include/mlpack/methods/ann/layer/repeat.hpp +24 -25
- mlpack/include/mlpack/methods/ann/layer/repeat_impl.hpp +10 -10
- mlpack/include/mlpack/methods/ann/layer/serialization.hpp +64 -54
- mlpack/include/mlpack/methods/ann/layer/softmax.hpp +20 -20
- mlpack/include/mlpack/methods/ann/layer/softmax_impl.hpp +10 -10
- mlpack/include/mlpack/methods/ann/layer/softmin.hpp +20 -23
- mlpack/include/mlpack/methods/ann/layer/softmin_impl.hpp +10 -10
- mlpack/include/mlpack/methods/ann/layer/sum_reduce.hpp +103 -0
- mlpack/include/mlpack/methods/ann/layer/sum_reduce_impl.hpp +143 -0
- mlpack/include/mlpack/methods/ann/loss_functions/cosine_embedding_loss_impl.hpp +3 -3
- mlpack/include/mlpack/methods/ann/loss_functions/mean_bias_error_impl.hpp +1 -1
- mlpack/include/mlpack/methods/ann/loss_functions/multilabel_softmargin_loss_impl.hpp +1 -1
- mlpack/include/mlpack/methods/ann/loss_functions/negative_log_likelihood.hpp +2 -2
- mlpack/include/mlpack/methods/ann/loss_functions/negative_log_likelihood_impl.hpp +29 -15
- mlpack/include/mlpack/methods/ann/loss_functions/poisson_nll_loss_impl.hpp +1 -1
- mlpack/include/mlpack/methods/ann/models/models.hpp +17 -0
- mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_layer.hpp +151 -0
- mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_layer_impl.hpp +265 -0
- mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_tiny.hpp +187 -0
- mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_tiny_impl.hpp +206 -0
- mlpack/include/mlpack/methods/ann/regularizer/orthogonal_regularizer_impl.hpp +5 -3
- mlpack/include/mlpack/methods/ann/rnn.hpp +136 -42
- mlpack/include/mlpack/methods/ann/rnn_impl.hpp +230 -38
- mlpack/include/mlpack/methods/approx_kfn/drusilla_select_impl.hpp +1 -1
- mlpack/include/mlpack/methods/bayesian_linear_regression/bayesian_linear_regression_main.cpp +1 -1
- mlpack/include/mlpack/methods/bias_svd/bias_svd_function_impl.hpp +1 -1
- mlpack/include/mlpack/methods/cf/cf_model.hpp +1 -1
- mlpack/include/mlpack/methods/decision_tree/decision_tree.hpp +6 -6
- mlpack/include/mlpack/methods/decision_tree/decision_tree_impl.hpp +12 -12
- mlpack/include/mlpack/methods/decision_tree/decision_tree_main.cpp +0 -1
- mlpack/include/mlpack/methods/decision_tree/decision_tree_regressor.hpp +6 -6
- mlpack/include/mlpack/methods/decision_tree/decision_tree_regressor_impl.hpp +12 -12
- mlpack/include/mlpack/methods/det/det_main.cpp +1 -1
- mlpack/include/mlpack/methods/hmm/hmm_train_main.cpp +4 -4
- mlpack/include/mlpack/methods/hmm/hmm_util_impl.hpp +2 -2
- mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree.hpp +6 -6
- mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_impl.hpp +31 -31
- mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_main.cpp +1 -2
- mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_model.hpp +2 -2
- mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_model_impl.hpp +1 -1
- mlpack/include/mlpack/methods/kde/kde_rules_impl.hpp +6 -6
- mlpack/include/mlpack/methods/lars/lars_impl.hpp +3 -3
- mlpack/include/mlpack/methods/linear_svm/linear_svm_function_impl.hpp +4 -4
- mlpack/include/mlpack/methods/linear_svm/linear_svm_main.cpp +3 -3
- mlpack/include/mlpack/methods/lmnn/lmnn_main.cpp +1 -1
- mlpack/include/mlpack/methods/lsh/lsh_main.cpp +1 -1
- mlpack/include/mlpack/methods/matrix_completion/matrix_completion_impl.hpp +1 -1
- mlpack/include/mlpack/methods/naive_bayes/naive_bayes_classifier_impl.hpp +1 -1
- mlpack/include/mlpack/methods/naive_bayes/nbc_main.cpp +3 -3
- mlpack/include/mlpack/methods/nca/nca_main.cpp +1 -1
- mlpack/include/mlpack/methods/neighbor_search/kfn_main.cpp +8 -8
- mlpack/include/mlpack/methods/neighbor_search/knn_main.cpp +8 -8
- mlpack/include/mlpack/methods/neighbor_search/neighbor_search.hpp +154 -34
- mlpack/include/mlpack/methods/neighbor_search/neighbor_search_impl.hpp +190 -51
- mlpack/include/mlpack/methods/neighbor_search/neighbor_search_stat.hpp +10 -0
- mlpack/include/mlpack/methods/neighbor_search/ns_model.hpp +15 -15
- mlpack/include/mlpack/methods/neighbor_search/ns_model_impl.hpp +55 -46
- mlpack/include/mlpack/methods/neighbor_search/typedef.hpp +42 -2
- mlpack/include/mlpack/methods/pca/pca_impl.hpp +2 -2
- mlpack/include/mlpack/methods/perceptron/perceptron.hpp +2 -2
- mlpack/include/mlpack/methods/perceptron/perceptron_impl.hpp +1 -1
- mlpack/include/mlpack/methods/perceptron/perceptron_main.cpp +2 -2
- mlpack/include/mlpack/methods/preprocess/image_converter_main.cpp +2 -3
- mlpack/include/mlpack/methods/preprocess/preprocess_binarize_main.cpp +2 -2
- mlpack/include/mlpack/methods/preprocess/preprocess_describe_main.cpp +0 -1
- mlpack/include/mlpack/methods/preprocess/preprocess_imputer_main.cpp +50 -129
- mlpack/include/mlpack/methods/preprocess/preprocess_one_hot_encoding_main.cpp +6 -6
- mlpack/include/mlpack/methods/preprocess/preprocess_scale_main.cpp +2 -3
- mlpack/include/mlpack/methods/preprocess/preprocess_split_main.cpp +3 -4
- mlpack/include/mlpack/methods/preprocess/scaling_model.hpp +6 -8
- mlpack/include/mlpack/methods/preprocess/scaling_model_impl.hpp +18 -20
- mlpack/include/mlpack/methods/random_forest/random_forest.hpp +5 -5
- mlpack/include/mlpack/methods/random_forest/random_forest_impl.hpp +9 -9
- mlpack/include/mlpack/methods/range_search/range_search_main.cpp +1 -1
- mlpack/include/mlpack/methods/rann/krann_main.cpp +1 -1
- mlpack/include/mlpack/methods/regularized_svd/regularized_svd_function_impl.hpp +1 -1
- mlpack/include/mlpack/methods/reinforcement_learning/async_learning_impl.hpp +8 -8
- mlpack/include/mlpack/methods/reinforcement_learning/ddpg_impl.hpp +16 -16
- mlpack/include/mlpack/methods/reinforcement_learning/environment/acrobot.hpp +4 -4
- mlpack/include/mlpack/methods/reinforcement_learning/environment/cart_pole.hpp +3 -3
- mlpack/include/mlpack/methods/reinforcement_learning/environment/cont_double_pole_cart.hpp +6 -5
- mlpack/include/mlpack/methods/reinforcement_learning/environment/pendulum.hpp +6 -5
- mlpack/include/mlpack/methods/reinforcement_learning/policy/aggregated_policy.hpp +2 -2
- mlpack/include/mlpack/methods/reinforcement_learning/q_learning_impl.hpp +10 -10
- mlpack/include/mlpack/methods/reinforcement_learning/q_networks/categorical_dqn.hpp +21 -17
- mlpack/include/mlpack/methods/reinforcement_learning/q_networks/dueling_dqn.hpp +69 -77
- mlpack/include/mlpack/methods/reinforcement_learning/q_networks/simple_dqn.hpp +9 -9
- mlpack/include/mlpack/methods/reinforcement_learning/sac_impl.hpp +14 -14
- mlpack/include/mlpack/methods/reinforcement_learning/td3_impl.hpp +14 -14
- mlpack/include/mlpack/methods/softmax_regression/softmax_regression_function_impl.hpp +1 -1
- mlpack/include/mlpack/methods/svdplusplus/svdplusplus_function_impl.hpp +1 -1
- mlpack/include/mlpack/namespace_compat.hpp +1 -0
- mlpack/include/mlpack/prereqs.hpp +1 -0
- mlpack/kde.cp313-win_amd64.pyd +0 -0
- mlpack/kernel_pca.cp313-win_amd64.pyd +0 -0
- mlpack/kfn.cp313-win_amd64.pyd +0 -0
- mlpack/kmeans.cp313-win_amd64.pyd +0 -0
- mlpack/knn.cp313-win_amd64.pyd +0 -0
- mlpack/krann.cp313-win_amd64.pyd +0 -0
- mlpack/lars.cp313-win_amd64.pyd +0 -0
- mlpack/linear_regression_predict.cp313-win_amd64.pyd +0 -0
- mlpack/linear_regression_train.cp313-win_amd64.pyd +0 -0
- mlpack/linear_svm.cp313-win_amd64.pyd +0 -0
- mlpack/lmnn.cp313-win_amd64.pyd +0 -0
- mlpack/local_coordinate_coding.cp313-win_amd64.pyd +0 -0
- mlpack/logistic_regression.cp313-win_amd64.pyd +0 -0
- mlpack/lsh.cp313-win_amd64.pyd +0 -0
- mlpack/mean_shift.cp313-win_amd64.pyd +0 -0
- mlpack/nbc.cp313-win_amd64.pyd +0 -0
- mlpack/nca.cp313-win_amd64.pyd +0 -0
- mlpack/nmf.cp313-win_amd64.pyd +0 -0
- mlpack/pca.cp313-win_amd64.pyd +0 -0
- mlpack/perceptron.cp313-win_amd64.pyd +0 -0
- mlpack/preprocess_binarize.cp313-win_amd64.pyd +0 -0
- mlpack/preprocess_describe.cp313-win_amd64.pyd +0 -0
- mlpack/preprocess_one_hot_encoding.cp313-win_amd64.pyd +0 -0
- mlpack/preprocess_scale.cp313-win_amd64.pyd +0 -0
- mlpack/preprocess_split.cp313-win_amd64.pyd +0 -0
- mlpack/radical.cp313-win_amd64.pyd +0 -0
- mlpack/random_forest.cp313-win_amd64.pyd +0 -0
- mlpack/softmax_regression.cp313-win_amd64.pyd +0 -0
- mlpack/sparse_coding.cp313-win_amd64.pyd +0 -0
- mlpack-4.7.0.dist-info/DELVEWHEEL +2 -0
- {mlpack-4.6.2.dist-info → mlpack-4.7.0.dist-info}/METADATA +2 -2
- {mlpack-4.6.2.dist-info → mlpack-4.7.0.dist-info}/RECORD +396 -377
- {mlpack-4.6.2.dist-info → mlpack-4.7.0.dist-info}/WHEEL +1 -1
- mlpack/include/mlpack/core/data/format.hpp +0 -31
- mlpack/include/mlpack/core/data/image_info.hpp +0 -102
- mlpack/include/mlpack/core/data/image_info_impl.hpp +0 -84
- mlpack/include/mlpack/core/data/load_image_impl.hpp +0 -171
- mlpack/include/mlpack/core/data/load_model_impl.hpp +0 -115
- mlpack/include/mlpack/core/data/load_vec_impl.hpp +0 -154
- mlpack/include/mlpack/core/data/map_policies/missing_policy.hpp +0 -148
- mlpack/include/mlpack/core/data/save_image_impl.hpp +0 -170
- mlpack/include/mlpack/core/data/types.hpp +0 -61
- mlpack/include/mlpack/core/data/types_impl.hpp +0 -83
- mlpack/include/mlpack/core/data/utilities.hpp +0 -158
- mlpack/include/mlpack/core/util/gitversion.hpp +0 -1
- mlpack/include/mlpack/methods/ann/convolution_rules/fft_convolution.hpp +0 -213
- mlpack/include/mlpack/methods/ann/convolution_rules/svd_convolution.hpp +0 -201
- mlpack/include/mlpack/methods/ann/layer/not_adapted/gru.hpp +0 -226
- mlpack/include/mlpack/methods/ann/layer/not_adapted/gru_impl.hpp +0 -367
- mlpack/include/mlpack/methods/ann/layer/not_adapted/lookup.hpp +0 -139
- mlpack/include/mlpack/methods/ann/layer/not_adapted/lookup_impl.hpp +0 -98
- mlpack-4.6.2.dist-info/DELVEWHEEL +0 -2
- {mlpack-4.6.2.dist-info → mlpack-4.7.0.dist-info}/top_level.txt +0 -0
- /mlpack.libs/{libopenblas-9e6d070f769e6580e8c55c0cf83b80a5.dll → libopenblas-c7f521b507686ddc25bee7538a80c374.dll} +0 -0
- /mlpack.libs/{msvcp140-50208655e42969b9a5ab8a4e0186bbb9.dll → msvcp140-a4c2229bdc2a2a630acdc095b4d86008.dll} +0 -0
|
@@ -19,33 +19,33 @@
|
|
|
19
19
|
namespace mlpack {
|
|
20
20
|
|
|
21
21
|
template<
|
|
22
|
+
typename MatType,
|
|
22
23
|
typename ForwardConvolutionRule,
|
|
23
24
|
typename BackwardConvolutionRule,
|
|
24
|
-
typename GradientConvolutionRule
|
|
25
|
-
typename MatType
|
|
25
|
+
typename GradientConvolutionRule
|
|
26
26
|
>
|
|
27
|
-
|
|
27
|
+
GroupedConvolution<
|
|
28
|
+
MatType,
|
|
28
29
|
ForwardConvolutionRule,
|
|
29
30
|
BackwardConvolutionRule,
|
|
30
|
-
GradientConvolutionRule
|
|
31
|
-
|
|
32
|
-
>::GroupedConvolutionType() : Layer<MatType>()
|
|
31
|
+
GradientConvolutionRule
|
|
32
|
+
>::GroupedConvolution() : Layer<MatType>()
|
|
33
33
|
{
|
|
34
34
|
// Nothing to do here.
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
template<
|
|
38
|
+
typename MatType,
|
|
38
39
|
typename ForwardConvolutionRule,
|
|
39
40
|
typename BackwardConvolutionRule,
|
|
40
|
-
typename GradientConvolutionRule
|
|
41
|
-
typename MatType
|
|
41
|
+
typename GradientConvolutionRule
|
|
42
42
|
>
|
|
43
|
-
|
|
43
|
+
GroupedConvolution<
|
|
44
|
+
MatType,
|
|
44
45
|
ForwardConvolutionRule,
|
|
45
46
|
BackwardConvolutionRule,
|
|
46
|
-
GradientConvolutionRule
|
|
47
|
-
|
|
48
|
-
>::GroupedConvolutionType(
|
|
47
|
+
GradientConvolutionRule
|
|
48
|
+
>::GroupedConvolution(
|
|
49
49
|
const size_t maps,
|
|
50
50
|
const size_t kernelWidth,
|
|
51
51
|
const size_t kernelHeight,
|
|
@@ -56,7 +56,7 @@ GroupedConvolutionType<
|
|
|
56
56
|
const size_t padH,
|
|
57
57
|
const std::string& paddingType,
|
|
58
58
|
const bool useBias) :
|
|
59
|
-
|
|
59
|
+
GroupedConvolution(
|
|
60
60
|
maps,
|
|
61
61
|
kernelWidth,
|
|
62
62
|
kernelHeight,
|
|
@@ -72,17 +72,17 @@ GroupedConvolutionType<
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
template<
|
|
75
|
+
typename MatType,
|
|
75
76
|
typename ForwardConvolutionRule,
|
|
76
77
|
typename BackwardConvolutionRule,
|
|
77
|
-
typename GradientConvolutionRule
|
|
78
|
-
typename MatType
|
|
78
|
+
typename GradientConvolutionRule
|
|
79
79
|
>
|
|
80
|
-
|
|
80
|
+
GroupedConvolution<
|
|
81
|
+
MatType,
|
|
81
82
|
ForwardConvolutionRule,
|
|
82
83
|
BackwardConvolutionRule,
|
|
83
|
-
GradientConvolutionRule
|
|
84
|
-
|
|
85
|
-
>::GroupedConvolutionType(
|
|
84
|
+
GradientConvolutionRule
|
|
85
|
+
>::GroupedConvolution(
|
|
86
86
|
const size_t maps,
|
|
87
87
|
const size_t kernelWidth,
|
|
88
88
|
const size_t kernelHeight,
|
|
@@ -111,17 +111,17 @@ GroupedConvolutionType<
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
template<
|
|
114
|
+
typename MatType,
|
|
114
115
|
typename ForwardConvolutionRule,
|
|
115
116
|
typename BackwardConvolutionRule,
|
|
116
|
-
typename GradientConvolutionRule
|
|
117
|
-
typename MatType
|
|
117
|
+
typename GradientConvolutionRule
|
|
118
118
|
>
|
|
119
|
-
|
|
119
|
+
GroupedConvolution<
|
|
120
|
+
MatType,
|
|
120
121
|
ForwardConvolutionRule,
|
|
121
122
|
BackwardConvolutionRule,
|
|
122
|
-
GradientConvolutionRule
|
|
123
|
-
|
|
124
|
-
>::GroupedConvolutionType(const GroupedConvolutionType& other) :
|
|
123
|
+
GradientConvolutionRule
|
|
124
|
+
>::GroupedConvolution(const GroupedConvolution& other) :
|
|
125
125
|
Layer<MatType>(other),
|
|
126
126
|
maps(other.maps),
|
|
127
127
|
kernelWidth(other.kernelWidth),
|
|
@@ -146,17 +146,17 @@ GroupedConvolutionType<
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
template<
|
|
149
|
+
typename MatType,
|
|
149
150
|
typename ForwardConvolutionRule,
|
|
150
151
|
typename BackwardConvolutionRule,
|
|
151
|
-
typename GradientConvolutionRule
|
|
152
|
-
typename MatType
|
|
152
|
+
typename GradientConvolutionRule
|
|
153
153
|
>
|
|
154
|
-
|
|
154
|
+
GroupedConvolution<
|
|
155
|
+
MatType,
|
|
155
156
|
ForwardConvolutionRule,
|
|
156
157
|
BackwardConvolutionRule,
|
|
157
|
-
GradientConvolutionRule
|
|
158
|
-
|
|
159
|
-
>::GroupedConvolutionType(GroupedConvolutionType&& other) :
|
|
158
|
+
GradientConvolutionRule
|
|
159
|
+
>::GroupedConvolution(GroupedConvolution&& other) :
|
|
160
160
|
Layer<MatType>(std::move(other)),
|
|
161
161
|
maps(std::move(other.maps)),
|
|
162
162
|
kernelWidth(std::move(other.kernelWidth)),
|
|
@@ -181,23 +181,23 @@ GroupedConvolutionType<
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
template<
|
|
184
|
+
typename MatType,
|
|
184
185
|
typename ForwardConvolutionRule,
|
|
185
186
|
typename BackwardConvolutionRule,
|
|
186
|
-
typename GradientConvolutionRule
|
|
187
|
-
typename MatType
|
|
187
|
+
typename GradientConvolutionRule
|
|
188
188
|
>
|
|
189
|
-
|
|
189
|
+
GroupedConvolution<
|
|
190
|
+
MatType,
|
|
190
191
|
ForwardConvolutionRule,
|
|
191
192
|
BackwardConvolutionRule,
|
|
192
|
-
GradientConvolutionRule
|
|
193
|
-
MatType
|
|
193
|
+
GradientConvolutionRule
|
|
194
194
|
>&
|
|
195
|
-
|
|
195
|
+
GroupedConvolution<
|
|
196
|
+
MatType,
|
|
196
197
|
ForwardConvolutionRule,
|
|
197
198
|
BackwardConvolutionRule,
|
|
198
|
-
GradientConvolutionRule
|
|
199
|
-
|
|
200
|
-
>::operator=(const GroupedConvolutionType& other)
|
|
199
|
+
GradientConvolutionRule
|
|
200
|
+
>::operator=(const GroupedConvolution& other)
|
|
201
201
|
{
|
|
202
202
|
if (&other != this)
|
|
203
203
|
{
|
|
@@ -226,23 +226,23 @@ GroupedConvolutionType<
|
|
|
226
226
|
}
|
|
227
227
|
|
|
228
228
|
template<
|
|
229
|
+
typename MatType,
|
|
229
230
|
typename ForwardConvolutionRule,
|
|
230
231
|
typename BackwardConvolutionRule,
|
|
231
|
-
typename GradientConvolutionRule
|
|
232
|
-
typename MatType
|
|
232
|
+
typename GradientConvolutionRule
|
|
233
233
|
>
|
|
234
|
-
|
|
234
|
+
GroupedConvolution<
|
|
235
|
+
MatType,
|
|
235
236
|
ForwardConvolutionRule,
|
|
236
237
|
BackwardConvolutionRule,
|
|
237
|
-
GradientConvolutionRule
|
|
238
|
-
MatType
|
|
238
|
+
GradientConvolutionRule
|
|
239
239
|
>&
|
|
240
|
-
|
|
240
|
+
GroupedConvolution<
|
|
241
|
+
MatType,
|
|
241
242
|
ForwardConvolutionRule,
|
|
242
243
|
BackwardConvolutionRule,
|
|
243
|
-
GradientConvolutionRule
|
|
244
|
-
|
|
245
|
-
>::operator=(GroupedConvolutionType&& other)
|
|
244
|
+
GradientConvolutionRule
|
|
245
|
+
>::operator=(GroupedConvolution&& other)
|
|
246
246
|
{
|
|
247
247
|
if (&other != this)
|
|
248
248
|
{
|
|
@@ -271,16 +271,16 @@ GroupedConvolutionType<
|
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
template<
|
|
274
|
+
typename MatType,
|
|
274
275
|
typename ForwardConvolutionRule,
|
|
275
276
|
typename BackwardConvolutionRule,
|
|
276
|
-
typename GradientConvolutionRule
|
|
277
|
-
typename MatType
|
|
277
|
+
typename GradientConvolutionRule
|
|
278
278
|
>
|
|
279
|
-
void
|
|
279
|
+
void GroupedConvolution<
|
|
280
|
+
MatType,
|
|
280
281
|
ForwardConvolutionRule,
|
|
281
282
|
BackwardConvolutionRule,
|
|
282
|
-
GradientConvolutionRule
|
|
283
|
-
MatType
|
|
283
|
+
GradientConvolutionRule
|
|
284
284
|
>::SetWeights(const MatType& weightsIn)
|
|
285
285
|
{
|
|
286
286
|
MakeAlias(weight, weightsIn, kernelWidth, kernelHeight,
|
|
@@ -297,16 +297,16 @@ void GroupedConvolutionType<
|
|
|
297
297
|
}
|
|
298
298
|
|
|
299
299
|
template<
|
|
300
|
+
typename MatType,
|
|
300
301
|
typename ForwardConvolutionRule,
|
|
301
302
|
typename BackwardConvolutionRule,
|
|
302
|
-
typename GradientConvolutionRule
|
|
303
|
-
typename MatType
|
|
303
|
+
typename GradientConvolutionRule
|
|
304
304
|
>
|
|
305
|
-
void
|
|
305
|
+
void GroupedConvolution<
|
|
306
|
+
MatType,
|
|
306
307
|
ForwardConvolutionRule,
|
|
307
308
|
BackwardConvolutionRule,
|
|
308
|
-
GradientConvolutionRule
|
|
309
|
-
MatType
|
|
309
|
+
GradientConvolutionRule
|
|
310
310
|
>::Forward(const MatType& input, MatType& output)
|
|
311
311
|
{
|
|
312
312
|
batchSize = input.n_cols;
|
|
@@ -323,10 +323,6 @@ void GroupedConvolutionType<
|
|
|
323
323
|
padding.Forward(input, inputPadded);
|
|
324
324
|
}
|
|
325
325
|
|
|
326
|
-
CubeType inputTemp;
|
|
327
|
-
MakeAlias(inputTemp, (usingPadding ? inputPadded : input),
|
|
328
|
-
paddedRows, paddedCols, inMaps * higherInDimensions * batchSize);
|
|
329
|
-
|
|
330
326
|
MakeAlias(outputTemp, output, this->outputDimensions[0],
|
|
331
327
|
this->outputDimensions[1], maps * higherInDimensions * batchSize);
|
|
332
328
|
outputTemp.zeros();
|
|
@@ -339,53 +335,60 @@ void GroupedConvolutionType<
|
|
|
339
335
|
//
|
|
340
336
|
// If we eventually have a way to do convolutions for a single kernel
|
|
341
337
|
// in-batch, then this strategy may not be the most efficient solution.
|
|
338
|
+
#pragma omp parallel for schedule(dynamic)
|
|
342
339
|
for (size_t offset = 0; offset < (higherInDimensions * batchSize); ++offset)
|
|
343
340
|
{
|
|
344
341
|
const size_t fullInputOffset = offset * inMaps;
|
|
345
342
|
const size_t fullOutputOffset = offset * maps;
|
|
346
343
|
|
|
347
|
-
|
|
344
|
+
CubeType inputTemp, weightTemp, outputTempTemp;
|
|
348
345
|
for (size_t group = 0; group < groups; group++)
|
|
349
346
|
{
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
347
|
+
MakeAlias(inputTemp, (usingPadding ? inputPadded : input), paddedRows,
|
|
348
|
+
paddedCols, inGroupSize, (group * inGroupSize + fullInputOffset) *
|
|
349
|
+
(paddedRows * paddedCols));
|
|
350
|
+
MakeAlias(weightTemp, weight, weight.n_rows, weight.n_cols,
|
|
351
|
+
inGroupSize * outGroupSize, (group * outGroupSize * inGroupSize) *
|
|
352
|
+
(weight.n_rows * weight.n_cols));
|
|
353
|
+
MakeAlias(outputTempTemp, outputTemp, outputTemp.n_rows,
|
|
354
|
+
outputTemp.n_cols, outGroupSize,
|
|
355
|
+
(group * outGroupSize + fullOutputOffset) *
|
|
356
|
+
(outputTemp.n_rows * outputTemp.n_cols));
|
|
357
|
+
ForwardConvolutionRule::Convolution(
|
|
358
|
+
inputTemp,
|
|
359
|
+
weightTemp,
|
|
360
|
+
outputTempTemp,
|
|
361
|
+
strideWidth,
|
|
362
|
+
strideHeight,
|
|
363
|
+
1,
|
|
364
|
+
1,
|
|
365
|
+
true);
|
|
366
|
+
}
|
|
369
367
|
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
368
|
+
// Make sure to add the bias.
|
|
369
|
+
if (useBias)
|
|
370
|
+
{
|
|
371
|
+
for (size_t group = 0; group < groups; group++)
|
|
372
|
+
{
|
|
373
|
+
for (size_t outMap = 0; outMap < outGroupSize; ++outMap)
|
|
374
|
+
outputTemp.slice(group * outGroupSize + outMap + fullOutputOffset) +=
|
|
375
|
+
bias(group * outGroupSize + outMap);
|
|
373
376
|
}
|
|
374
377
|
}
|
|
375
378
|
}
|
|
376
379
|
}
|
|
377
380
|
|
|
378
381
|
template<
|
|
382
|
+
typename MatType,
|
|
379
383
|
typename ForwardConvolutionRule,
|
|
380
384
|
typename BackwardConvolutionRule,
|
|
381
|
-
typename GradientConvolutionRule
|
|
382
|
-
typename MatType
|
|
385
|
+
typename GradientConvolutionRule
|
|
383
386
|
>
|
|
384
|
-
void
|
|
387
|
+
void GroupedConvolution<
|
|
388
|
+
MatType,
|
|
385
389
|
ForwardConvolutionRule,
|
|
386
390
|
BackwardConvolutionRule,
|
|
387
|
-
GradientConvolutionRule
|
|
388
|
-
MatType
|
|
391
|
+
GradientConvolutionRule
|
|
389
392
|
>::Backward(
|
|
390
393
|
const MatType& /* input */,
|
|
391
394
|
const MatType& /* output */,
|
|
@@ -441,41 +444,39 @@ void GroupedConvolutionType<
|
|
|
441
444
|
|
|
442
445
|
MatType output(apparentWidth * apparentHeight * inMaps * higherInDimensions,
|
|
443
446
|
batchSize);
|
|
444
|
-
CubeType outputCube;
|
|
445
|
-
MakeAlias(outputCube, output, apparentWidth, apparentHeight,
|
|
446
|
-
inMaps * higherInDimensions * batchSize);
|
|
447
447
|
|
|
448
448
|
size_t inGroupSize = inMaps / groups;
|
|
449
449
|
size_t outGroupSize = maps / groups;
|
|
450
450
|
|
|
451
451
|
// See Forward() for the overall iteration strategy.
|
|
452
|
+
#pragma omp parallel for schedule(dynamic) private(outputTemp)
|
|
452
453
|
for (size_t offset = 0; offset < (higherInDimensions * batchSize); ++offset)
|
|
453
454
|
{
|
|
454
455
|
const size_t fullInputOffset = offset * inMaps;
|
|
455
456
|
const size_t fullOutputOffset = offset * maps;
|
|
456
457
|
|
|
457
|
-
|
|
458
|
+
CubeType rotatedFiltersTemp;
|
|
458
459
|
for (size_t group = 0; group < groups; group++)
|
|
459
460
|
{
|
|
460
|
-
// Iterate over
|
|
461
|
-
for (size_t
|
|
462
|
-
{
|
|
463
|
-
// Iterate over output maps.
|
|
464
|
-
MatType& curG = outputCube.slice((group * inGroupSize) + inMap +
|
|
465
|
-
fullInputOffset);
|
|
466
|
-
for (size_t outMap = group * outGroupSize; outMap < (group + 1) *
|
|
461
|
+
// Iterate over output maps.
|
|
462
|
+
for (size_t outMap = group * outGroupSize; outMap < (group + 1) *
|
|
467
463
|
outGroupSize; ++outMap)
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
464
|
+
{
|
|
465
|
+
MakeAlias(rotatedFiltersTemp, rotatedFilters, rotatedFilters.n_rows,
|
|
466
|
+
rotatedFilters.n_cols, inGroupSize, (outMap * inGroupSize) *
|
|
467
|
+
(rotatedFilters.n_rows * rotatedFilters.n_cols));
|
|
468
|
+
MakeAlias(outputTemp, output, apparentWidth, apparentHeight,
|
|
469
|
+
inGroupSize, (group * inGroupSize + fullInputOffset) *
|
|
470
|
+
(apparentWidth * apparentHeight));
|
|
471
|
+
BackwardConvolutionRule::Convolution(
|
|
472
|
+
dilatedMappedError.slice(outMap + fullOutputOffset),
|
|
473
|
+
rotatedFiltersTemp,
|
|
474
|
+
outputTemp,
|
|
475
|
+
1,
|
|
476
|
+
1,
|
|
477
|
+
1,
|
|
478
|
+
1,
|
|
479
|
+
true);
|
|
479
480
|
}
|
|
480
481
|
}
|
|
481
482
|
}
|
|
@@ -501,25 +502,21 @@ void GroupedConvolutionType<
|
|
|
501
502
|
}
|
|
502
503
|
|
|
503
504
|
template<
|
|
505
|
+
typename MatType,
|
|
504
506
|
typename ForwardConvolutionRule,
|
|
505
507
|
typename BackwardConvolutionRule,
|
|
506
|
-
typename GradientConvolutionRule
|
|
507
|
-
typename MatType
|
|
508
|
+
typename GradientConvolutionRule
|
|
508
509
|
>
|
|
509
|
-
void
|
|
510
|
+
void GroupedConvolution<
|
|
511
|
+
MatType,
|
|
510
512
|
ForwardConvolutionRule,
|
|
511
513
|
BackwardConvolutionRule,
|
|
512
|
-
GradientConvolutionRule
|
|
513
|
-
MatType
|
|
514
|
+
GradientConvolutionRule
|
|
514
515
|
>::Gradient(
|
|
515
516
|
const MatType& input,
|
|
516
517
|
const MatType& error,
|
|
517
518
|
MatType& gradient)
|
|
518
519
|
{
|
|
519
|
-
CubeType mappedError;
|
|
520
|
-
MakeAlias(mappedError, error, this->outputDimensions[0],
|
|
521
|
-
this->outputDimensions[1], higherInDimensions * maps * batchSize);
|
|
522
|
-
|
|
523
520
|
// We are depending here on `inputPadded` being properly set from a call to
|
|
524
521
|
// Forward().
|
|
525
522
|
const bool usingPadding =
|
|
@@ -527,10 +524,6 @@ void GroupedConvolutionType<
|
|
|
527
524
|
const size_t paddedRows = this->inputDimensions[0] + padWLeft + padWRight;
|
|
528
525
|
const size_t paddedCols = this->inputDimensions[1] + padHTop + padHBottom;
|
|
529
526
|
|
|
530
|
-
CubeType inputTemp;
|
|
531
|
-
MakeAlias(inputTemp, (usingPadding ? inputPadded : input),
|
|
532
|
-
paddedRows, paddedCols, inMaps * batchSize, 0, false);
|
|
533
|
-
|
|
534
527
|
MatType temp(apparentWidth * apparentHeight * inMaps * higherInDimensions,
|
|
535
528
|
batchSize);
|
|
536
529
|
CubeType tempCube;
|
|
@@ -549,40 +542,54 @@ void GroupedConvolutionType<
|
|
|
549
542
|
size_t inGroupSize = inMaps / groups;
|
|
550
543
|
size_t outGroupSize = maps / groups;
|
|
551
544
|
|
|
545
|
+
MatType tempSlice;
|
|
546
|
+
|
|
552
547
|
// See Forward() for our iteration strategy.
|
|
548
|
+
#pragma omp parallel for schedule(dynamic) private(tempSlice)
|
|
553
549
|
for (size_t offset = 0; offset < higherInDimensions * batchSize; ++offset)
|
|
554
550
|
{
|
|
555
551
|
const size_t fullInputOffset = offset * inMaps;
|
|
556
552
|
const size_t fullOutputOffset = offset * maps;
|
|
557
553
|
|
|
558
|
-
|
|
554
|
+
CubeType mappedError, gradientTempTemp;
|
|
559
555
|
for (size_t group = 0; group < groups; group++)
|
|
560
556
|
{
|
|
561
|
-
|
|
562
|
-
|
|
557
|
+
MakeAlias(mappedError, error, this->outputDimensions[0],
|
|
558
|
+
this->outputDimensions[1], outGroupSize,
|
|
559
|
+
(group * outGroupSize + fullOutputOffset) *
|
|
560
|
+
(this->outputDimensions[0] * this->outputDimensions[1]));
|
|
561
|
+
// Iterate over input maps (we will apply the filter and sum).
|
|
562
|
+
for (size_t inMap = 0; inMap < inGroupSize; ++inMap)
|
|
563
563
|
{
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
564
|
+
MakeAlias(tempSlice, (usingPadding ? inputPadded : input), paddedRows,
|
|
565
|
+
paddedCols, ((group * inGroupSize) + inMap + fullInputOffset) *
|
|
566
|
+
(paddedRows * paddedCols));
|
|
567
|
+
GradientConvolutionRule::Convolution(
|
|
568
|
+
tempSlice,
|
|
569
|
+
mappedError,
|
|
570
|
+
gradientTempTemp,
|
|
571
|
+
1,
|
|
572
|
+
1,
|
|
573
|
+
strideWidth,
|
|
574
|
+
strideHeight,
|
|
575
|
+
false);
|
|
576
|
+
|
|
577
|
+
// Reorder convolution output slices.
|
|
578
|
+
#pragma omp critical
|
|
579
|
+
for (size_t outMap = 0; outMap < outGroupSize; ++outMap)
|
|
568
580
|
{
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
tempCube.slice((group * inGroupSize) + inMap + fullInputOffset),
|
|
572
|
-
curError,
|
|
573
|
-
gradientTemp.slice(((group * outGroupSize + outMap) *
|
|
574
|
-
inGroupSize) + inMap),
|
|
575
|
-
1,
|
|
576
|
-
1,
|
|
577
|
-
strideWidth,
|
|
578
|
-
strideHeight,
|
|
579
|
-
true);
|
|
581
|
+
gradientTemp.slice((group * outGroupSize + outMap) * inGroupSize +
|
|
582
|
+
inMap) += gradientTempTemp.slice(outMap);
|
|
580
583
|
}
|
|
584
|
+
}
|
|
581
585
|
|
|
582
|
-
|
|
586
|
+
if (useBias)
|
|
587
|
+
{
|
|
588
|
+
for (size_t outMap = 0; outMap < outGroupSize; ++outMap)
|
|
583
589
|
{
|
|
590
|
+
#pragma omp atomic update
|
|
584
591
|
gradient[weight.n_elem + group * outGroupSize + outMap] +=
|
|
585
|
-
accu(
|
|
592
|
+
accu(mappedError.slice(outMap));
|
|
586
593
|
}
|
|
587
594
|
}
|
|
588
595
|
}
|
|
@@ -590,16 +597,16 @@ void GroupedConvolutionType<
|
|
|
590
597
|
}
|
|
591
598
|
|
|
592
599
|
template<
|
|
600
|
+
typename MatType,
|
|
593
601
|
typename ForwardConvolutionRule,
|
|
594
602
|
typename BackwardConvolutionRule,
|
|
595
|
-
typename GradientConvolutionRule
|
|
596
|
-
typename MatType
|
|
603
|
+
typename GradientConvolutionRule
|
|
597
604
|
>
|
|
598
|
-
void
|
|
605
|
+
void GroupedConvolution<
|
|
606
|
+
MatType,
|
|
599
607
|
ForwardConvolutionRule,
|
|
600
608
|
BackwardConvolutionRule,
|
|
601
|
-
GradientConvolutionRule
|
|
602
|
-
MatType
|
|
609
|
+
GradientConvolutionRule
|
|
603
610
|
>::ComputeOutputDimensions()
|
|
604
611
|
{
|
|
605
612
|
// First, we must make sure the padding sizes are up to date, which we can
|
|
@@ -616,7 +623,7 @@ void GroupedConvolutionType<
|
|
|
616
623
|
InitializeSamePadding();
|
|
617
624
|
}
|
|
618
625
|
|
|
619
|
-
padding =
|
|
626
|
+
padding = Padding<MatType>(padWLeft, padWRight, padHTop, padHBottom);
|
|
620
627
|
padding.InputDimensions() = this->inputDimensions;
|
|
621
628
|
padding.ComputeOutputDimensions();
|
|
622
629
|
|
|
@@ -654,7 +661,7 @@ void GroupedConvolutionType<
|
|
|
654
661
|
apparentHeight = (this->outputDimensions[1] - 1) * strideHeight +
|
|
655
662
|
kernelHeight;
|
|
656
663
|
|
|
657
|
-
paddingBackward =
|
|
664
|
+
paddingBackward = Padding<MatType>(0, padding.OutputDimensions()[0] -
|
|
658
665
|
apparentWidth, 0, padding.OutputDimensions()[1] - apparentHeight);
|
|
659
666
|
paddingBackward.InputDimensions() = std::vector<size_t>({ apparentWidth,
|
|
660
667
|
apparentHeight, inMaps * higherInDimensions });
|
|
@@ -664,17 +671,17 @@ void GroupedConvolutionType<
|
|
|
664
671
|
}
|
|
665
672
|
|
|
666
673
|
template<
|
|
674
|
+
typename MatType,
|
|
667
675
|
typename ForwardConvolutionRule,
|
|
668
676
|
typename BackwardConvolutionRule,
|
|
669
|
-
typename GradientConvolutionRule
|
|
670
|
-
typename MatType
|
|
677
|
+
typename GradientConvolutionRule
|
|
671
678
|
>
|
|
672
679
|
template<typename Archive>
|
|
673
|
-
void
|
|
680
|
+
void GroupedConvolution<
|
|
681
|
+
MatType,
|
|
674
682
|
ForwardConvolutionRule,
|
|
675
683
|
BackwardConvolutionRule,
|
|
676
|
-
GradientConvolutionRule
|
|
677
|
-
MatType
|
|
684
|
+
GradientConvolutionRule
|
|
678
685
|
>::serialize(Archive& ar, const uint32_t /* version*/)
|
|
679
686
|
{
|
|
680
687
|
ar(cereal::base_class<Layer<MatType>>(this));
|
|
@@ -698,16 +705,16 @@ void GroupedConvolutionType<
|
|
|
698
705
|
}
|
|
699
706
|
|
|
700
707
|
template<
|
|
708
|
+
typename MatType,
|
|
701
709
|
typename ForwardConvolutionRule,
|
|
702
710
|
typename BackwardConvolutionRule,
|
|
703
|
-
typename GradientConvolutionRule
|
|
704
|
-
typename MatType
|
|
711
|
+
typename GradientConvolutionRule
|
|
705
712
|
>
|
|
706
|
-
void
|
|
713
|
+
void GroupedConvolution<
|
|
714
|
+
MatType,
|
|
707
715
|
ForwardConvolutionRule,
|
|
708
716
|
BackwardConvolutionRule,
|
|
709
|
-
GradientConvolutionRule
|
|
710
|
-
MatType
|
|
717
|
+
GradientConvolutionRule
|
|
711
718
|
>::InitializeSamePadding()
|
|
712
719
|
{
|
|
713
720
|
/*
|