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
|
@@ -18,33 +18,33 @@
|
|
|
18
18
|
namespace mlpack {
|
|
19
19
|
|
|
20
20
|
template<
|
|
21
|
+
typename MatType,
|
|
21
22
|
typename ForwardConvolutionRule,
|
|
22
23
|
typename BackwardConvolutionRule,
|
|
23
|
-
typename GradientConvolutionRule
|
|
24
|
-
typename MatType
|
|
24
|
+
typename GradientConvolutionRule
|
|
25
25
|
>
|
|
26
|
-
|
|
26
|
+
Convolution<
|
|
27
|
+
MatType,
|
|
27
28
|
ForwardConvolutionRule,
|
|
28
29
|
BackwardConvolutionRule,
|
|
29
|
-
GradientConvolutionRule
|
|
30
|
-
|
|
31
|
-
>::ConvolutionType() : Layer<MatType>()
|
|
30
|
+
GradientConvolutionRule
|
|
31
|
+
>::Convolution() : Layer<MatType>()
|
|
32
32
|
{
|
|
33
33
|
// Nothing to do here.
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
template<
|
|
37
|
+
typename MatType,
|
|
37
38
|
typename ForwardConvolutionRule,
|
|
38
39
|
typename BackwardConvolutionRule,
|
|
39
|
-
typename GradientConvolutionRule
|
|
40
|
-
typename MatType
|
|
40
|
+
typename GradientConvolutionRule
|
|
41
41
|
>
|
|
42
|
-
|
|
42
|
+
Convolution<
|
|
43
|
+
MatType,
|
|
43
44
|
ForwardConvolutionRule,
|
|
44
45
|
BackwardConvolutionRule,
|
|
45
|
-
GradientConvolutionRule
|
|
46
|
-
|
|
47
|
-
>::ConvolutionType(
|
|
46
|
+
GradientConvolutionRule
|
|
47
|
+
>::Convolution(
|
|
48
48
|
const size_t maps,
|
|
49
49
|
const size_t kernelWidth,
|
|
50
50
|
const size_t kernelHeight,
|
|
@@ -54,7 +54,7 @@ ConvolutionType<
|
|
|
54
54
|
const size_t padH,
|
|
55
55
|
const std::string& paddingType,
|
|
56
56
|
const bool useBias) :
|
|
57
|
-
|
|
57
|
+
Convolution(
|
|
58
58
|
maps,
|
|
59
59
|
kernelWidth,
|
|
60
60
|
kernelHeight,
|
|
@@ -69,17 +69,17 @@ ConvolutionType<
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
template<
|
|
72
|
+
typename MatType,
|
|
72
73
|
typename ForwardConvolutionRule,
|
|
73
74
|
typename BackwardConvolutionRule,
|
|
74
|
-
typename GradientConvolutionRule
|
|
75
|
-
typename MatType
|
|
75
|
+
typename GradientConvolutionRule
|
|
76
76
|
>
|
|
77
|
-
|
|
77
|
+
Convolution<
|
|
78
|
+
MatType,
|
|
78
79
|
ForwardConvolutionRule,
|
|
79
80
|
BackwardConvolutionRule,
|
|
80
|
-
GradientConvolutionRule
|
|
81
|
-
|
|
82
|
-
>::ConvolutionType(
|
|
81
|
+
GradientConvolutionRule
|
|
82
|
+
>::Convolution(
|
|
83
83
|
const size_t maps,
|
|
84
84
|
const size_t kernelWidth,
|
|
85
85
|
const size_t kernelHeight,
|
|
@@ -106,17 +106,17 @@ ConvolutionType<
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
template<
|
|
109
|
+
typename MatType,
|
|
109
110
|
typename ForwardConvolutionRule,
|
|
110
111
|
typename BackwardConvolutionRule,
|
|
111
|
-
typename GradientConvolutionRule
|
|
112
|
-
typename MatType
|
|
112
|
+
typename GradientConvolutionRule
|
|
113
113
|
>
|
|
114
|
-
|
|
114
|
+
Convolution<
|
|
115
|
+
MatType,
|
|
115
116
|
ForwardConvolutionRule,
|
|
116
117
|
BackwardConvolutionRule,
|
|
117
|
-
GradientConvolutionRule
|
|
118
|
-
|
|
119
|
-
>::ConvolutionType(const ConvolutionType& other) :
|
|
118
|
+
GradientConvolutionRule
|
|
119
|
+
>::Convolution(const Convolution& other) :
|
|
120
120
|
Layer<MatType>(other),
|
|
121
121
|
maps(other.maps),
|
|
122
122
|
kernelWidth(other.kernelWidth),
|
|
@@ -140,17 +140,17 @@ ConvolutionType<
|
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
template<
|
|
143
|
+
typename MatType,
|
|
143
144
|
typename ForwardConvolutionRule,
|
|
144
145
|
typename BackwardConvolutionRule,
|
|
145
|
-
typename GradientConvolutionRule
|
|
146
|
-
typename MatType
|
|
146
|
+
typename GradientConvolutionRule
|
|
147
147
|
>
|
|
148
|
-
|
|
148
|
+
Convolution<
|
|
149
|
+
MatType,
|
|
149
150
|
ForwardConvolutionRule,
|
|
150
151
|
BackwardConvolutionRule,
|
|
151
|
-
GradientConvolutionRule
|
|
152
|
-
|
|
153
|
-
>::ConvolutionType(ConvolutionType&& other) :
|
|
152
|
+
GradientConvolutionRule
|
|
153
|
+
>::Convolution(Convolution&& other) :
|
|
154
154
|
Layer<MatType>(std::move(other)),
|
|
155
155
|
maps(std::move(other.maps)),
|
|
156
156
|
kernelWidth(std::move(other.kernelWidth)),
|
|
@@ -174,23 +174,23 @@ ConvolutionType<
|
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
template<
|
|
177
|
+
typename MatType,
|
|
177
178
|
typename ForwardConvolutionRule,
|
|
178
179
|
typename BackwardConvolutionRule,
|
|
179
|
-
typename GradientConvolutionRule
|
|
180
|
-
typename MatType
|
|
180
|
+
typename GradientConvolutionRule
|
|
181
181
|
>
|
|
182
|
-
|
|
182
|
+
Convolution<
|
|
183
|
+
MatType,
|
|
183
184
|
ForwardConvolutionRule,
|
|
184
185
|
BackwardConvolutionRule,
|
|
185
|
-
GradientConvolutionRule
|
|
186
|
-
MatType
|
|
186
|
+
GradientConvolutionRule
|
|
187
187
|
>&
|
|
188
|
-
|
|
188
|
+
Convolution<
|
|
189
|
+
MatType,
|
|
189
190
|
ForwardConvolutionRule,
|
|
190
191
|
BackwardConvolutionRule,
|
|
191
|
-
GradientConvolutionRule
|
|
192
|
-
|
|
193
|
-
>::operator=(const ConvolutionType& other)
|
|
192
|
+
GradientConvolutionRule
|
|
193
|
+
>::operator=(const Convolution& other)
|
|
194
194
|
{
|
|
195
195
|
if (&other != this)
|
|
196
196
|
{
|
|
@@ -218,23 +218,23 @@ ConvolutionType<
|
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
template<
|
|
221
|
+
typename MatType,
|
|
221
222
|
typename ForwardConvolutionRule,
|
|
222
223
|
typename BackwardConvolutionRule,
|
|
223
|
-
typename GradientConvolutionRule
|
|
224
|
-
typename MatType
|
|
224
|
+
typename GradientConvolutionRule
|
|
225
225
|
>
|
|
226
|
-
|
|
226
|
+
Convolution<
|
|
227
|
+
MatType,
|
|
227
228
|
ForwardConvolutionRule,
|
|
228
229
|
BackwardConvolutionRule,
|
|
229
|
-
GradientConvolutionRule
|
|
230
|
-
MatType
|
|
230
|
+
GradientConvolutionRule
|
|
231
231
|
>&
|
|
232
|
-
|
|
232
|
+
Convolution<
|
|
233
|
+
MatType,
|
|
233
234
|
ForwardConvolutionRule,
|
|
234
235
|
BackwardConvolutionRule,
|
|
235
|
-
GradientConvolutionRule
|
|
236
|
-
|
|
237
|
-
>::operator=(ConvolutionType&& other)
|
|
236
|
+
GradientConvolutionRule
|
|
237
|
+
>::operator=(Convolution&& other)
|
|
238
238
|
{
|
|
239
239
|
if (&other != this)
|
|
240
240
|
{
|
|
@@ -262,16 +262,16 @@ ConvolutionType<
|
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
template<
|
|
265
|
+
typename MatType,
|
|
265
266
|
typename ForwardConvolutionRule,
|
|
266
267
|
typename BackwardConvolutionRule,
|
|
267
|
-
typename GradientConvolutionRule
|
|
268
|
-
typename MatType
|
|
268
|
+
typename GradientConvolutionRule
|
|
269
269
|
>
|
|
270
|
-
void
|
|
270
|
+
void Convolution<
|
|
271
|
+
MatType,
|
|
271
272
|
ForwardConvolutionRule,
|
|
272
273
|
BackwardConvolutionRule,
|
|
273
|
-
GradientConvolutionRule
|
|
274
|
-
MatType
|
|
274
|
+
GradientConvolutionRule
|
|
275
275
|
>::SetWeights(const MatType& weightsIn)
|
|
276
276
|
{
|
|
277
277
|
MakeAlias(weight, weightsIn, kernelWidth, kernelHeight, maps * inMaps);
|
|
@@ -287,16 +287,16 @@ void ConvolutionType<
|
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
template<
|
|
290
|
+
typename MatType,
|
|
290
291
|
typename ForwardConvolutionRule,
|
|
291
292
|
typename BackwardConvolutionRule,
|
|
292
|
-
typename GradientConvolutionRule
|
|
293
|
-
typename MatType
|
|
293
|
+
typename GradientConvolutionRule
|
|
294
294
|
>
|
|
295
|
-
void
|
|
295
|
+
void Convolution<
|
|
296
|
+
MatType,
|
|
296
297
|
ForwardConvolutionRule,
|
|
297
298
|
BackwardConvolutionRule,
|
|
298
|
-
GradientConvolutionRule
|
|
299
|
-
MatType
|
|
299
|
+
GradientConvolutionRule
|
|
300
300
|
>::Forward(const MatType& input, MatType& output)
|
|
301
301
|
{
|
|
302
302
|
batchSize = input.n_cols;
|
|
@@ -313,61 +313,57 @@ void ConvolutionType<
|
|
|
313
313
|
padding.Forward(input, inputPadded);
|
|
314
314
|
}
|
|
315
315
|
|
|
316
|
-
|
|
317
|
-
MakeAlias(inputTemp, (usingPadding ? inputPadded : input), paddedRows,
|
|
318
|
-
paddedCols, inMaps * higherInDimensions * batchSize);
|
|
319
|
-
|
|
320
|
-
MakeAlias(outputTemp, output, this->outputDimensions[0],
|
|
321
|
-
this->outputDimensions[1], maps * higherInDimensions * batchSize);
|
|
322
|
-
outputTemp.zeros();
|
|
316
|
+
output.zeros();
|
|
323
317
|
|
|
324
318
|
// We "ignore" dimensions higher than the third---that means that we just pass
|
|
325
319
|
// them through and treat them like different input points.
|
|
326
320
|
//
|
|
327
321
|
// If we eventually have a way to do convolutions for a single kernel
|
|
328
322
|
// in-batch, then this strategy may not be the most efficient solution.
|
|
323
|
+
#pragma omp parallel for schedule(dynamic) private(outputTemp)
|
|
329
324
|
for (size_t offset = 0; offset < (higherInDimensions * batchSize); ++offset)
|
|
330
325
|
{
|
|
331
326
|
const size_t fullInputOffset = offset * inMaps;
|
|
332
327
|
const size_t fullOutputOffset = offset * maps;
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
328
|
+
CubeType inputTemp;
|
|
329
|
+
|
|
330
|
+
MakeAlias(inputTemp, (usingPadding ? inputPadded : input), paddedRows,
|
|
331
|
+
paddedCols, inMaps, fullInputOffset * paddedRows * paddedCols);
|
|
332
|
+
|
|
333
|
+
MakeAlias(outputTemp, output, this->outputDimensions[0],
|
|
334
|
+
this->outputDimensions[1], maps, fullOutputOffset *
|
|
335
|
+
this->outputDimensions[0] * this->outputDimensions[1]);
|
|
336
|
+
|
|
337
|
+
ForwardConvolutionRule::Convolution(
|
|
338
|
+
inputTemp,
|
|
339
|
+
weight,
|
|
340
|
+
outputTemp,
|
|
341
|
+
strideWidth,
|
|
342
|
+
strideHeight,
|
|
343
|
+
1,
|
|
344
|
+
1,
|
|
345
|
+
true);
|
|
346
|
+
|
|
347
|
+
// Make sure to add the bias.
|
|
348
|
+
if (useBias)
|
|
337
349
|
{
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
for (size_t inMap = 0; inMap < inMaps; ++inMap)
|
|
341
|
-
{
|
|
342
|
-
ForwardConvolutionRule::Convolution(
|
|
343
|
-
inputTemp.slice(inMap + fullInputOffset),
|
|
344
|
-
weight.slice((outMap * inMaps) + inMap),
|
|
345
|
-
convOutput,
|
|
346
|
-
strideWidth,
|
|
347
|
-
strideHeight,
|
|
348
|
-
1,
|
|
349
|
-
1,
|
|
350
|
-
true);
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
// Make sure to add the bias.
|
|
354
|
-
if (useBias)
|
|
355
|
-
convOutput += bias(outMap);
|
|
350
|
+
for (size_t outMap = 0; outMap < (size_t) maps; ++outMap)
|
|
351
|
+
outputTemp.slice(outMap) += bias(outMap);
|
|
356
352
|
}
|
|
357
353
|
}
|
|
358
354
|
}
|
|
359
355
|
|
|
360
356
|
template<
|
|
357
|
+
typename MatType,
|
|
361
358
|
typename ForwardConvolutionRule,
|
|
362
359
|
typename BackwardConvolutionRule,
|
|
363
|
-
typename GradientConvolutionRule
|
|
364
|
-
typename MatType
|
|
360
|
+
typename GradientConvolutionRule
|
|
365
361
|
>
|
|
366
|
-
void
|
|
362
|
+
void Convolution<
|
|
363
|
+
MatType,
|
|
367
364
|
ForwardConvolutionRule,
|
|
368
365
|
BackwardConvolutionRule,
|
|
369
|
-
GradientConvolutionRule
|
|
370
|
-
MatType
|
|
366
|
+
GradientConvolutionRule
|
|
371
367
|
>::Backward(
|
|
372
368
|
const MatType& /* input */,
|
|
373
369
|
const MatType& /* output */,
|
|
@@ -423,34 +419,33 @@ void ConvolutionType<
|
|
|
423
419
|
|
|
424
420
|
MatType output(apparentWidth * apparentHeight * inMaps * higherInDimensions,
|
|
425
421
|
batchSize);
|
|
426
|
-
CubeType outputCube;
|
|
427
|
-
MakeAlias(outputCube, output, apparentWidth, apparentHeight,
|
|
428
|
-
inMaps * higherInDimensions * batchSize);
|
|
429
422
|
|
|
430
423
|
// See Forward() for the overall iteration strategy.
|
|
431
|
-
#pragma omp parallel for schedule(dynamic)
|
|
424
|
+
#pragma omp parallel for schedule(dynamic) private(outputTemp)
|
|
432
425
|
for (size_t offset = 0; offset < (higherInDimensions * batchSize); ++offset)
|
|
433
426
|
{
|
|
434
427
|
const size_t fullInputOffset = offset * inMaps;
|
|
435
428
|
const size_t fullOutputOffset = offset * maps;
|
|
436
429
|
|
|
437
|
-
|
|
438
|
-
|
|
430
|
+
CubeType rotatedFiltersTemp;
|
|
431
|
+
|
|
432
|
+
MakeAlias(outputTemp, output, apparentWidth, apparentHeight, inMaps,
|
|
433
|
+
fullInputOffset * apparentWidth * apparentHeight);
|
|
434
|
+
// Iterate over output maps.
|
|
435
|
+
for (size_t outMap = 0; outMap < maps; ++outMap)
|
|
439
436
|
{
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
true);
|
|
453
|
-
}
|
|
437
|
+
MakeAlias(rotatedFiltersTemp, rotatedFilters, rotatedFilters.n_rows,
|
|
438
|
+
rotatedFilters.n_cols, inMaps,
|
|
439
|
+
outMap * inMaps * rotatedFilters.n_rows * rotatedFilters.n_cols);
|
|
440
|
+
BackwardConvolutionRule::Convolution(
|
|
441
|
+
dilatedMappedError.slice(outMap + fullOutputOffset),
|
|
442
|
+
rotatedFiltersTemp,
|
|
443
|
+
outputTemp,
|
|
444
|
+
1,
|
|
445
|
+
1,
|
|
446
|
+
1,
|
|
447
|
+
1,
|
|
448
|
+
true);
|
|
454
449
|
}
|
|
455
450
|
}
|
|
456
451
|
MatType temp(padding.OutputDimensions()[0] * padding.OutputDimensions()[1] *
|
|
@@ -474,16 +469,16 @@ void ConvolutionType<
|
|
|
474
469
|
}
|
|
475
470
|
|
|
476
471
|
template<
|
|
472
|
+
typename MatType,
|
|
477
473
|
typename ForwardConvolutionRule,
|
|
478
474
|
typename BackwardConvolutionRule,
|
|
479
|
-
typename GradientConvolutionRule
|
|
480
|
-
typename MatType
|
|
475
|
+
typename GradientConvolutionRule
|
|
481
476
|
>
|
|
482
|
-
void
|
|
477
|
+
void Convolution<
|
|
478
|
+
MatType,
|
|
483
479
|
ForwardConvolutionRule,
|
|
484
480
|
BackwardConvolutionRule,
|
|
485
|
-
GradientConvolutionRule
|
|
486
|
-
MatType
|
|
481
|
+
GradientConvolutionRule
|
|
487
482
|
>::Gradient(
|
|
488
483
|
const MatType& input,
|
|
489
484
|
const MatType& error,
|
|
@@ -497,18 +492,9 @@ void ConvolutionType<
|
|
|
497
492
|
// Forward().
|
|
498
493
|
const bool usingPadding =
|
|
499
494
|
(padWLeft != 0 || padWRight != 0 || padHTop != 0 || padHBottom != 0);
|
|
500
|
-
const size_t paddedRows = this->inputDimensions[0] + padWLeft + padWRight;
|
|
501
|
-
const size_t paddedCols = this->inputDimensions[1] + padHTop + padHBottom;
|
|
502
|
-
|
|
503
|
-
CubeType inputTemp;
|
|
504
|
-
MakeAlias(inputTemp, (usingPadding ? inputPadded : input),
|
|
505
|
-
paddedRows, paddedCols, inMaps * batchSize, 0, false);
|
|
506
495
|
|
|
507
496
|
MatType temp(apparentWidth * apparentHeight * inMaps * higherInDimensions,
|
|
508
497
|
batchSize);
|
|
509
|
-
CubeType tempCube;
|
|
510
|
-
MakeAlias(tempCube, temp, apparentWidth, apparentHeight,
|
|
511
|
-
inMaps * higherInDimensions * batchSize);
|
|
512
498
|
paddingBackward.Backward(input, {} /* unused */,
|
|
513
499
|
usingPadding ? inputPadded : input, temp);
|
|
514
500
|
|
|
@@ -519,46 +505,71 @@ void ConvolutionType<
|
|
|
519
505
|
MakeAlias(gradientTemp, gradient, weight.n_rows, weight.n_cols,
|
|
520
506
|
weight.n_slices);
|
|
521
507
|
|
|
508
|
+
MatType tempSlice;
|
|
509
|
+
|
|
522
510
|
// See Forward() for our iteration strategy.
|
|
511
|
+
#pragma omp parallel for schedule(dynamic) private(tempSlice)
|
|
523
512
|
for (size_t offset = 0; offset < higherInDimensions * batchSize; ++offset)
|
|
524
513
|
{
|
|
525
514
|
const size_t fullInputOffset = offset * inMaps;
|
|
526
515
|
const size_t fullOutputOffset = offset * maps;
|
|
527
516
|
|
|
528
|
-
|
|
529
|
-
|
|
517
|
+
CubeType mappedErrorTemp;
|
|
518
|
+
MakeAlias(mappedErrorTemp, error, this->outputDimensions[0],
|
|
519
|
+
this->outputDimensions[1], maps, fullOutputOffset *
|
|
520
|
+
this->outputDimensions[0] * this->outputDimensions[1]);
|
|
521
|
+
|
|
522
|
+
for (size_t inMap = 0; inMap < inMaps; ++inMap)
|
|
530
523
|
{
|
|
531
|
-
|
|
532
|
-
|
|
524
|
+
CubeType gradientTempTemp(gradientTemp.n_rows, gradientTemp.n_cols,
|
|
525
|
+
maps);
|
|
526
|
+
// Make an alias of the slice directly instead of using a cube to avoid
|
|
527
|
+
// the overhead of creating a cube every time this function is called
|
|
528
|
+
MakeAlias(tempSlice, temp, apparentWidth, apparentHeight,
|
|
529
|
+
(inMap + fullInputOffset) * (apparentWidth * apparentHeight));
|
|
530
|
+
|
|
531
|
+
GradientConvolutionRule::Convolution(
|
|
532
|
+
tempSlice,
|
|
533
|
+
mappedErrorTemp,
|
|
534
|
+
gradientTempTemp,
|
|
535
|
+
1,
|
|
536
|
+
1,
|
|
537
|
+
strideWidth,
|
|
538
|
+
strideHeight,
|
|
539
|
+
true);
|
|
540
|
+
|
|
541
|
+
// Reorder convolution output slices.
|
|
542
|
+
#pragma omp critical
|
|
543
|
+
for (size_t outMap = 0; outMap < (size_t) maps; ++outMap)
|
|
533
544
|
{
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
curError,
|
|
537
|
-
gradientTemp.slice((outMap * inMaps) + inMap),
|
|
538
|
-
1,
|
|
539
|
-
1,
|
|
540
|
-
strideWidth,
|
|
541
|
-
strideHeight,
|
|
542
|
-
true);
|
|
545
|
+
gradientTemp.slice((outMap * inMaps) + inMap) +=
|
|
546
|
+
gradientTempTemp.slice(outMap);
|
|
543
547
|
}
|
|
548
|
+
}
|
|
544
549
|
|
|
545
|
-
|
|
546
|
-
|
|
550
|
+
if (useBias)
|
|
551
|
+
{
|
|
552
|
+
for (size_t outMap = 0; outMap < (size_t) maps; ++outMap)
|
|
553
|
+
{
|
|
554
|
+
#pragma omp atomic update
|
|
555
|
+
gradient[weight.n_elem + outMap] += accu(mappedErrorTemp
|
|
556
|
+
.slice(outMap));
|
|
557
|
+
}
|
|
547
558
|
}
|
|
548
559
|
}
|
|
549
560
|
}
|
|
550
561
|
|
|
551
562
|
template<
|
|
563
|
+
typename MatType,
|
|
552
564
|
typename ForwardConvolutionRule,
|
|
553
565
|
typename BackwardConvolutionRule,
|
|
554
|
-
typename GradientConvolutionRule
|
|
555
|
-
typename MatType
|
|
566
|
+
typename GradientConvolutionRule
|
|
556
567
|
>
|
|
557
|
-
void
|
|
568
|
+
void Convolution<
|
|
569
|
+
MatType,
|
|
558
570
|
ForwardConvolutionRule,
|
|
559
571
|
BackwardConvolutionRule,
|
|
560
|
-
GradientConvolutionRule
|
|
561
|
-
MatType
|
|
572
|
+
GradientConvolutionRule
|
|
562
573
|
>::ComputeOutputDimensions()
|
|
563
574
|
{
|
|
564
575
|
// First, we must make sure the padding sizes are up to date, which we can
|
|
@@ -575,7 +586,7 @@ void ConvolutionType<
|
|
|
575
586
|
InitializeSamePadding();
|
|
576
587
|
}
|
|
577
588
|
|
|
578
|
-
padding =
|
|
589
|
+
padding = Padding<MatType>(padWLeft, padWRight, padHTop, padHBottom);
|
|
579
590
|
padding.InputDimensions() = this->inputDimensions;
|
|
580
591
|
padding.ComputeOutputDimensions();
|
|
581
592
|
|
|
@@ -602,7 +613,7 @@ void ConvolutionType<
|
|
|
602
613
|
apparentHeight = (this->outputDimensions[1] - 1) * strideHeight +
|
|
603
614
|
kernelHeight;
|
|
604
615
|
|
|
605
|
-
paddingBackward =
|
|
616
|
+
paddingBackward = Padding<MatType>(0, padding.OutputDimensions()[0] -
|
|
606
617
|
apparentWidth, 0, padding.OutputDimensions()[1] - apparentHeight);
|
|
607
618
|
paddingBackward.InputDimensions() = std::vector<size_t>({ apparentWidth,
|
|
608
619
|
apparentHeight, inMaps * higherInDimensions });
|
|
@@ -612,17 +623,17 @@ void ConvolutionType<
|
|
|
612
623
|
}
|
|
613
624
|
|
|
614
625
|
template<
|
|
626
|
+
typename MatType,
|
|
615
627
|
typename ForwardConvolutionRule,
|
|
616
628
|
typename BackwardConvolutionRule,
|
|
617
|
-
typename GradientConvolutionRule
|
|
618
|
-
typename MatType
|
|
629
|
+
typename GradientConvolutionRule
|
|
619
630
|
>
|
|
620
631
|
template<typename Archive>
|
|
621
|
-
void
|
|
632
|
+
void Convolution<
|
|
633
|
+
MatType,
|
|
622
634
|
ForwardConvolutionRule,
|
|
623
635
|
BackwardConvolutionRule,
|
|
624
|
-
GradientConvolutionRule
|
|
625
|
-
MatType
|
|
636
|
+
GradientConvolutionRule
|
|
626
637
|
>::serialize(Archive& ar, const uint32_t /* version*/)
|
|
627
638
|
{
|
|
628
639
|
ar(cereal::base_class<Layer<MatType>>(this));
|
|
@@ -645,16 +656,16 @@ void ConvolutionType<
|
|
|
645
656
|
}
|
|
646
657
|
|
|
647
658
|
template<
|
|
659
|
+
typename MatType,
|
|
648
660
|
typename ForwardConvolutionRule,
|
|
649
661
|
typename BackwardConvolutionRule,
|
|
650
|
-
typename GradientConvolutionRule
|
|
651
|
-
typename MatType
|
|
662
|
+
typename GradientConvolutionRule
|
|
652
663
|
>
|
|
653
|
-
void
|
|
664
|
+
void Convolution<
|
|
665
|
+
MatType,
|
|
654
666
|
ForwardConvolutionRule,
|
|
655
667
|
BackwardConvolutionRule,
|
|
656
|
-
GradientConvolutionRule
|
|
657
|
-
MatType
|
|
668
|
+
GradientConvolutionRule
|
|
658
669
|
>::InitializeSamePadding()
|
|
659
670
|
{
|
|
660
671
|
/**
|
|
@@ -46,11 +46,14 @@ namespace mlpack {
|
|
|
46
46
|
* computation.
|
|
47
47
|
*/
|
|
48
48
|
template<typename MatType = arma::mat>
|
|
49
|
-
class
|
|
49
|
+
class DropConnect : public Layer<MatType>
|
|
50
50
|
{
|
|
51
51
|
public:
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
// Convenience typedef to access the element type of the weights and data.
|
|
53
|
+
using ElemType = typename MatType::elem_type;
|
|
54
|
+
|
|
55
|
+
// Create the DropConnect object.
|
|
56
|
+
DropConnect();
|
|
54
57
|
|
|
55
58
|
/**
|
|
56
59
|
* Creates the DropConnect Layer as a Linear Object that takes the number of
|
|
@@ -59,23 +62,23 @@ class DropConnectType : public Layer<MatType>
|
|
|
59
62
|
* @param outSize The number of output units.
|
|
60
63
|
* @param ratio The probability of setting a value to zero.
|
|
61
64
|
*/
|
|
62
|
-
|
|
65
|
+
DropConnect(const size_t outSize,
|
|
63
66
|
const double ratio = 0.5);
|
|
64
67
|
|
|
65
|
-
//! Clone the
|
|
66
|
-
|
|
68
|
+
//! Clone the DropConnect object. This handles polymorphism correctly.
|
|
69
|
+
DropConnect* Clone() const { return new DropConnect(*this); }
|
|
67
70
|
|
|
68
71
|
// Virtual destructor.
|
|
69
|
-
virtual ~
|
|
72
|
+
virtual ~DropConnect();
|
|
70
73
|
|
|
71
|
-
//! Copy the given
|
|
72
|
-
|
|
73
|
-
//! Take ownership of the given
|
|
74
|
-
|
|
75
|
-
//! Copy the given
|
|
76
|
-
|
|
77
|
-
//! Take ownership of the given
|
|
78
|
-
|
|
74
|
+
//! Copy the given DropConnect (except for weights).
|
|
75
|
+
DropConnect(const DropConnect& other);
|
|
76
|
+
//! Take ownership of the given DropConnect (except for weights).
|
|
77
|
+
DropConnect(DropConnect&& other);
|
|
78
|
+
//! Copy the given DropConnect (except for weights).
|
|
79
|
+
DropConnect& operator=(const DropConnect& other);
|
|
80
|
+
//! Take ownership of the given DropConnect (except for weights).
|
|
81
|
+
DropConnect& operator=(DropConnect&& other);
|
|
79
82
|
|
|
80
83
|
/**
|
|
81
84
|
* Ordinary feed forward pass of the DropConnect layer.
|
|
@@ -149,11 +152,6 @@ class DropConnectType : public Layer<MatType>
|
|
|
149
152
|
Layer<MatType>* baseLayer;
|
|
150
153
|
}; // class DropConnect.
|
|
151
154
|
|
|
152
|
-
// Convenience typedefs.
|
|
153
|
-
|
|
154
|
-
// Standard DropConnect layer.
|
|
155
|
-
using DropConnect = DropConnectType<arma::mat>;
|
|
156
|
-
|
|
157
155
|
} // namespace mlpack
|
|
158
156
|
|
|
159
157
|
// Include implementation.
|