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
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file methods/ann/layer/embedding_impl.hpp
|
|
3
|
+
* @author Marcus Edel
|
|
4
|
+
*
|
|
5
|
+
* Implementation of the Embedding layer class.
|
|
6
|
+
*
|
|
7
|
+
* mlpack is free software; you may redistribute it and/or modify it under the
|
|
8
|
+
* terms of the 3-clause BSD license. You should have received a copy of the
|
|
9
|
+
* 3-clause BSD license along with mlpack. If not, see
|
|
10
|
+
* http://www.opensource.org/licenses/BSD-3-Clause for more information.
|
|
11
|
+
*/
|
|
12
|
+
#ifndef MLPACK_METHODS_ANN_LAYER_EMBEDDING_IMPL_HPP
|
|
13
|
+
#define MLPACK_METHODS_ANN_LAYER_EMBEDDING_IMPL_HPP
|
|
14
|
+
|
|
15
|
+
// In case it hasn't yet been included.
|
|
16
|
+
#include "embedding.hpp"
|
|
17
|
+
|
|
18
|
+
namespace mlpack {
|
|
19
|
+
|
|
20
|
+
template<typename MatType, typename RegularizerType>
|
|
21
|
+
Embedding<MatType, RegularizerType>::Embedding() :
|
|
22
|
+
Layer<MatType>(),
|
|
23
|
+
vocabSize(0),
|
|
24
|
+
embeddingSize(0)
|
|
25
|
+
{
|
|
26
|
+
// Nothing to do here.
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
template<typename MatType, typename RegularizerType>
|
|
30
|
+
Embedding<MatType, RegularizerType>::Embedding(
|
|
31
|
+
const size_t vocabSize,
|
|
32
|
+
const size_t embeddingSize,
|
|
33
|
+
RegularizerType regularizer) :
|
|
34
|
+
Layer<MatType>(),
|
|
35
|
+
vocabSize(vocabSize),
|
|
36
|
+
embeddingSize(embeddingSize),
|
|
37
|
+
regularizer(regularizer)
|
|
38
|
+
{
|
|
39
|
+
// Nothing to do here.
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Copy constructor.
|
|
43
|
+
template<typename MatType, typename RegularizerType>
|
|
44
|
+
Embedding<MatType, RegularizerType>::Embedding(const Embedding& layer) :
|
|
45
|
+
Layer<MatType>(layer),
|
|
46
|
+
vocabSize(layer.vocabSize),
|
|
47
|
+
embeddingSize(layer.embeddingSize),
|
|
48
|
+
regularizer(layer.regularizer)
|
|
49
|
+
{
|
|
50
|
+
// Nothing else to do.
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Move constructor.
|
|
54
|
+
template<typename MatType, typename RegularizerType>
|
|
55
|
+
Embedding<MatType, RegularizerType>::Embedding(Embedding&& layer) :
|
|
56
|
+
Layer<MatType>(std::move(layer)),
|
|
57
|
+
vocabSize(std::move(layer.vocabSize)),
|
|
58
|
+
embeddingSize(std::move(layer.embeddingSize)),
|
|
59
|
+
regularizer(std::move(layer.regularizer))
|
|
60
|
+
{
|
|
61
|
+
// Reset parameters of other layer.
|
|
62
|
+
layer.vocabSize = 0;
|
|
63
|
+
layer.embeddingSize = 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
template<typename MatType, typename RegularizerType>
|
|
67
|
+
Embedding<MatType, RegularizerType>&
|
|
68
|
+
Embedding<MatType, RegularizerType>::operator=(const Embedding& layer)
|
|
69
|
+
{
|
|
70
|
+
if (&layer != this)
|
|
71
|
+
{
|
|
72
|
+
Layer<MatType>::operator=(layer);
|
|
73
|
+
vocabSize = layer.vocabSize;
|
|
74
|
+
embeddingSize = layer.embeddingSize;
|
|
75
|
+
regularizer = layer.regularizer;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return *this;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
template<typename MatType, typename RegularizerType>
|
|
82
|
+
Embedding<MatType, RegularizerType>&
|
|
83
|
+
Embedding<MatType, RegularizerType>::operator=(
|
|
84
|
+
Embedding&& layer)
|
|
85
|
+
{
|
|
86
|
+
if (&layer != this)
|
|
87
|
+
{
|
|
88
|
+
Layer<MatType>::operator=(std::move(layer));
|
|
89
|
+
vocabSize = std::move(layer.vocabSize);
|
|
90
|
+
embeddingSize = std::move(layer.embeddingSize);
|
|
91
|
+
regularizer = std::move(layer.regularizer);
|
|
92
|
+
|
|
93
|
+
// Reset parameters of other layer.
|
|
94
|
+
layer.vocabSize = 0;
|
|
95
|
+
layer.embeddingSize = 0;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return *this;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
template<typename MatType, typename RegularizerType>
|
|
102
|
+
void Embedding<MatType, RegularizerType>::SetWeights(const MatType& weightsIn)
|
|
103
|
+
{
|
|
104
|
+
// The weights matrix is of size (embeddingSize, vocabSize). Each vocabulary
|
|
105
|
+
// item's embedding is represented in a single column.
|
|
106
|
+
MakeAlias(weights, weightsIn, embeddingSize, vocabSize);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
template<typename MatType, typename RegularizerType>
|
|
110
|
+
void Embedding<MatType, RegularizerType>::Forward(
|
|
111
|
+
const MatType& input, MatType& output)
|
|
112
|
+
{
|
|
113
|
+
const size_t batchSize = input.n_cols;
|
|
114
|
+
for (size_t i = 0; i < batchSize; ++i)
|
|
115
|
+
{
|
|
116
|
+
// ith column of output is a vectorized form of a matrix of shape
|
|
117
|
+
// (seqLength, embeddingSize) selected as a combination of rows from the
|
|
118
|
+
// weights. The MultiheadAttention class requires this particular ordering
|
|
119
|
+
// of matrix dimensions.
|
|
120
|
+
output.col(i) = vectorise(weights.cols(
|
|
121
|
+
arma::conv_to<arma::uvec>::from(input.col(i))));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
template<typename MatType, typename RegularizerType>
|
|
126
|
+
void Embedding<MatType, RegularizerType>::Backward(
|
|
127
|
+
const MatType& /* input */,
|
|
128
|
+
const MatType& /* output */,
|
|
129
|
+
const MatType& /* gy */,
|
|
130
|
+
MatType& g)
|
|
131
|
+
{
|
|
132
|
+
// NOTE: Embedding should be the first layer of a network, and shouldn't be
|
|
133
|
+
// used as an intermediate layer! So Backward() does nothing except set g to
|
|
134
|
+
// zeros.
|
|
135
|
+
g.zeros();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
template<typename MatType, typename RegularizerType>
|
|
139
|
+
void Embedding<MatType, RegularizerType>::Gradient(
|
|
140
|
+
const MatType& input,
|
|
141
|
+
const MatType& error,
|
|
142
|
+
MatType& gradient)
|
|
143
|
+
{
|
|
144
|
+
const size_t seqLength = input.n_rows;
|
|
145
|
+
const size_t batchSize = input.n_cols;
|
|
146
|
+
|
|
147
|
+
const CubeType errorTemp;
|
|
148
|
+
MakeAlias(const_cast<CubeType&>(errorTemp), error, embeddingSize, seqLength,
|
|
149
|
+
batchSize, 0, false);
|
|
150
|
+
MatType gradTemp;
|
|
151
|
+
MakeAlias(gradTemp, gradient, embeddingSize, vocabSize);
|
|
152
|
+
|
|
153
|
+
gradient.zeros();
|
|
154
|
+
for (size_t j = 0; j < batchSize; ++j)
|
|
155
|
+
{
|
|
156
|
+
for (size_t i = 0; i < seqLength; ++i)
|
|
157
|
+
{
|
|
158
|
+
gradTemp.col((size_t) input(i, j)) += errorTemp.slice(j).col(i);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
template<typename MatType, typename RegularizerType>
|
|
164
|
+
void Embedding<MatType, RegularizerType>::ComputeOutputDimensions()
|
|
165
|
+
{
|
|
166
|
+
// The Embedding layer returns a two-dimensional output and flattens its
|
|
167
|
+
// input.
|
|
168
|
+
this->outputDimensions.clear();
|
|
169
|
+
this->outputDimensions.push_back(this->embeddingSize);
|
|
170
|
+
this->outputDimensions.push_back(this->inputDimensions[0]);
|
|
171
|
+
for (size_t i = 1; i < this->inputDimensions.size(); ++i)
|
|
172
|
+
this->outputDimensions[1] *= this->inputDimensions[i];
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
template<typename MatType, typename RegularizerType>
|
|
176
|
+
template<typename Archive>
|
|
177
|
+
void Embedding<MatType, RegularizerType>::serialize(
|
|
178
|
+
Archive& ar, const uint32_t /* version */)
|
|
179
|
+
{
|
|
180
|
+
ar(cereal::base_class<Layer<MatType>>(this));
|
|
181
|
+
|
|
182
|
+
ar(CEREAL_NVP(vocabSize));
|
|
183
|
+
ar(CEREAL_NVP(embeddingSize));
|
|
184
|
+
ar(CEREAL_NVP(regularizer));
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
} // namespace mlpack
|
|
188
|
+
|
|
189
|
+
#endif
|
|
@@ -52,9 +52,12 @@ namespace mlpack {
|
|
|
52
52
|
* (Default: arma::mat).
|
|
53
53
|
*/
|
|
54
54
|
template<typename MatType = arma::mat>
|
|
55
|
-
class
|
|
55
|
+
class FlexibleReLU : public Layer<MatType>
|
|
56
56
|
{
|
|
57
57
|
public:
|
|
58
|
+
// Convenience typedef to access the element type of the weights and data.
|
|
59
|
+
using ElemType = typename MatType::elem_type;
|
|
60
|
+
|
|
58
61
|
/**
|
|
59
62
|
* Create the FlexibleReLU object using the specified alpha parameter.
|
|
60
63
|
* The trainable alpha parameter controls the range of the ReLU function.
|
|
@@ -62,22 +65,22 @@ class FlexibleReLUType : public Layer<MatType>
|
|
|
62
65
|
*
|
|
63
66
|
* @param alpha Parameter to adjust the range of the ReLU function.
|
|
64
67
|
*/
|
|
65
|
-
|
|
68
|
+
FlexibleReLU(const double alpha = 0);
|
|
66
69
|
|
|
67
|
-
//! Clone the
|
|
68
|
-
|
|
70
|
+
//! Clone the FlexibleReLU object. This handles polymorphism correctly.
|
|
71
|
+
FlexibleReLU* Clone() const { return new FlexibleReLU(*this); }
|
|
69
72
|
|
|
70
73
|
// Virtual destructor.
|
|
71
|
-
virtual ~
|
|
74
|
+
virtual ~FlexibleReLU() { }
|
|
72
75
|
|
|
73
|
-
//! Copy the given
|
|
74
|
-
|
|
75
|
-
//! Take ownership of the given
|
|
76
|
-
|
|
77
|
-
//! Copy the given
|
|
78
|
-
|
|
79
|
-
//! Take ownership of the given
|
|
80
|
-
|
|
76
|
+
//! Copy the given FlexibleReLU.
|
|
77
|
+
FlexibleReLU(const FlexibleReLU& other);
|
|
78
|
+
//! Take ownership of the given FlexibleReLU.
|
|
79
|
+
FlexibleReLU(FlexibleReLU&& other);
|
|
80
|
+
//! Copy the given FlexibleReLU.
|
|
81
|
+
FlexibleReLU& operator=(const FlexibleReLU& other);
|
|
82
|
+
//! Take ownership of the given FlexibleReLU.
|
|
83
|
+
FlexibleReLU& operator=(FlexibleReLU&& other);
|
|
81
84
|
|
|
82
85
|
/**
|
|
83
86
|
* Reset the layer parameter (alpha). The method is called to
|
|
@@ -155,12 +158,7 @@ class FlexibleReLUType : public Layer<MatType>
|
|
|
155
158
|
|
|
156
159
|
//! Parameter controlling the range of the ReLU function.
|
|
157
160
|
double userAlpha;
|
|
158
|
-
}; // class
|
|
159
|
-
|
|
160
|
-
// Convenience typedefs.
|
|
161
|
-
|
|
162
|
-
// Standard flexible ReLU layer.
|
|
163
|
-
using FlexibleReLU = FlexibleReLUType<arma::mat>;
|
|
161
|
+
}; // class FlexibleReLU
|
|
164
162
|
|
|
165
163
|
} // namespace mlpack
|
|
166
164
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
namespace mlpack {
|
|
23
23
|
|
|
24
24
|
template<typename MatType>
|
|
25
|
-
|
|
25
|
+
FlexibleReLU<MatType>::FlexibleReLU(const double userAlpha) :
|
|
26
26
|
Layer<MatType>(),
|
|
27
27
|
userAlpha(userAlpha)
|
|
28
28
|
{
|
|
@@ -30,8 +30,8 @@ FlexibleReLUType<MatType>::FlexibleReLUType(const double userAlpha) :
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
template<typename MatType>
|
|
33
|
-
|
|
34
|
-
const
|
|
33
|
+
FlexibleReLU<MatType>::FlexibleReLU(
|
|
34
|
+
const FlexibleReLU& other) :
|
|
35
35
|
Layer<MatType>(other),
|
|
36
36
|
userAlpha(other.userAlpha)
|
|
37
37
|
{
|
|
@@ -39,8 +39,8 @@ FlexibleReLUType<MatType>::FlexibleReLUType(
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
template<typename MatType>
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
FlexibleReLU<MatType>::FlexibleReLU(
|
|
43
|
+
FlexibleReLU&& other) :
|
|
44
44
|
Layer<MatType>(std::move(other)),
|
|
45
45
|
userAlpha(std::move(other.userAlpha))
|
|
46
46
|
{
|
|
@@ -48,8 +48,8 @@ FlexibleReLUType<MatType>::FlexibleReLUType(
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
template<typename MatType>
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
FlexibleReLU<MatType>&
|
|
52
|
+
FlexibleReLU<MatType>::operator=(const FlexibleReLU& other)
|
|
53
53
|
{
|
|
54
54
|
if (&other != this)
|
|
55
55
|
{
|
|
@@ -61,8 +61,8 @@ FlexibleReLUType<MatType>::operator=(const FlexibleReLUType& other)
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
template<typename MatType>
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
FlexibleReLU<MatType>&
|
|
65
|
+
FlexibleReLU<MatType>::operator=(FlexibleReLU&& other)
|
|
66
66
|
{
|
|
67
67
|
if (&other != this)
|
|
68
68
|
{
|
|
@@ -74,46 +74,46 @@ FlexibleReLUType<MatType>::operator=(FlexibleReLUType&& other)
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
template<typename MatType>
|
|
77
|
-
void
|
|
77
|
+
void FlexibleReLU<MatType>::SetWeights(const MatType& weights)
|
|
78
78
|
{
|
|
79
79
|
MakeAlias(alpha, weights, 1, 1);
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
template<typename MatType>
|
|
83
|
-
void
|
|
83
|
+
void FlexibleReLU<MatType>::CustomInitialize(
|
|
84
84
|
MatType& W,
|
|
85
85
|
const size_t elements)
|
|
86
86
|
{
|
|
87
87
|
if (elements != 1)
|
|
88
88
|
{
|
|
89
|
-
throw std::invalid_argument("
|
|
89
|
+
throw std::invalid_argument("FlexibleReLU::CustomInitialize(): wrong "
|
|
90
90
|
"elements size!");
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
W(0) = userAlpha;
|
|
93
|
+
W(0) = ElemType(userAlpha);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
template<typename MatType>
|
|
97
|
-
void
|
|
97
|
+
void FlexibleReLU<MatType>::Forward(
|
|
98
98
|
const MatType& input, MatType& output)
|
|
99
99
|
{
|
|
100
|
-
output = arma::clamp(input, 0
|
|
101
|
-
std::numeric_limits<
|
|
100
|
+
output = arma::clamp(input, 0,
|
|
101
|
+
std::numeric_limits<ElemType>::max()) + alpha(0);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
template<typename MatType>
|
|
105
|
-
void
|
|
105
|
+
void FlexibleReLU<MatType>::Backward(
|
|
106
106
|
const MatType& input,
|
|
107
107
|
const MatType& /* output */,
|
|
108
108
|
const MatType& gy,
|
|
109
109
|
MatType& g)
|
|
110
110
|
{
|
|
111
111
|
// Compute the first derivative of FlexibleReLU function.
|
|
112
|
-
g = gy % (input > 0);
|
|
112
|
+
g = gy % conv_to<MatType>::from(input > 0);
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
template<typename MatType>
|
|
116
|
-
void
|
|
116
|
+
void FlexibleReLU<MatType>::Gradient(
|
|
117
117
|
const MatType& input,
|
|
118
118
|
const MatType& error,
|
|
119
119
|
MatType& gradient)
|
|
@@ -123,7 +123,7 @@ void FlexibleReLUType<MatType>::Gradient(
|
|
|
123
123
|
|
|
124
124
|
template<typename MatType>
|
|
125
125
|
template<typename Archive>
|
|
126
|
-
void
|
|
126
|
+
void FlexibleReLU<MatType>::serialize(
|
|
127
127
|
Archive& ar,
|
|
128
128
|
const uint32_t /* version*/)
|
|
129
129
|
{
|
|
@@ -42,32 +42,34 @@ namespace mlpack {
|
|
|
42
42
|
* computation.
|
|
43
43
|
*/
|
|
44
44
|
template<typename MatType = arma::mat>
|
|
45
|
-
class
|
|
45
|
+
class FTSwish : public Layer<MatType>
|
|
46
46
|
{
|
|
47
47
|
public:
|
|
48
|
+
// Convenience typedef to access the element type of the weights and data.
|
|
49
|
+
using ElemType = typename MatType::elem_type;
|
|
50
|
+
|
|
48
51
|
/**
|
|
49
52
|
* Create the Flatten T Swish object using the specified parameters.
|
|
50
53
|
* The thresholded value T can be adjusted via T paramaters.
|
|
51
54
|
* When the x is < 0, T will be used instead of 0.
|
|
52
55
|
* The default value of T is -0.20 as suggested in the paper.
|
|
53
|
-
* @param T
|
|
54
56
|
*/
|
|
55
|
-
|
|
57
|
+
FTSwish(const double T = -0.20);
|
|
56
58
|
|
|
57
|
-
//! Clone the
|
|
58
|
-
|
|
59
|
+
//! Clone the FTSwish object. This handles polymorphism correctly.
|
|
60
|
+
FTSwish* Clone() const { return new FTSwish(*this); }
|
|
59
61
|
|
|
60
62
|
// Virtual destructor.
|
|
61
|
-
virtual ~
|
|
63
|
+
virtual ~FTSwish() { }
|
|
62
64
|
|
|
63
|
-
//! Copy the given
|
|
64
|
-
|
|
65
|
-
//! Take ownership of the given
|
|
66
|
-
|
|
67
|
-
//! Copy the given
|
|
68
|
-
|
|
69
|
-
//! Take ownership of the given
|
|
70
|
-
|
|
65
|
+
//! Copy the given FTSwish.
|
|
66
|
+
FTSwish(const FTSwish& other);
|
|
67
|
+
//! Take ownership of the given FTSwish.
|
|
68
|
+
FTSwish(FTSwish&& other);
|
|
69
|
+
//! Copy the given FTSwish.
|
|
70
|
+
FTSwish& operator=(const FTSwish& other);
|
|
71
|
+
//! Take ownership of the given FTSwish.
|
|
72
|
+
FTSwish& operator=(FTSwish&& other);
|
|
71
73
|
|
|
72
74
|
/**
|
|
73
75
|
* Ordinary feed forward pass of a neural network, evaluating the function
|
|
@@ -105,10 +107,7 @@ class FTSwishType : public Layer<MatType>
|
|
|
105
107
|
private:
|
|
106
108
|
//! Threshold value for x < 0.
|
|
107
109
|
double T;
|
|
108
|
-
}; // class
|
|
109
|
-
|
|
110
|
-
// Convenience typedefs.
|
|
111
|
-
using FTSwish = FTSwishType<arma::mat>;
|
|
110
|
+
}; // class FTSwish
|
|
112
111
|
|
|
113
112
|
} // namespace mlpack
|
|
114
113
|
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Definition of Flatten T Swish layer first introduced in the acoustic model,
|
|
6
6
|
* Hock Hung Chieng, Noorhaniza Wahid, Pauline Ong, Sai Raj Kishore Perla,
|
|
7
|
-
*
|
|
8
7
|
*
|
|
9
8
|
* mlpack is free software; you may redistribute it and/or modify it under the
|
|
10
9
|
* terms of the 3-clause BSD license. You should have received a copy of the
|
|
@@ -20,7 +19,7 @@
|
|
|
20
19
|
namespace mlpack {
|
|
21
20
|
|
|
22
21
|
template<typename MatType>
|
|
23
|
-
|
|
22
|
+
FTSwish<MatType>::FTSwish(const double T) :
|
|
24
23
|
Layer<MatType>(),
|
|
25
24
|
T(T)
|
|
26
25
|
{
|
|
@@ -28,7 +27,7 @@ FTSwishType<MatType>::FTSwishType(const double T) :
|
|
|
28
27
|
}
|
|
29
28
|
|
|
30
29
|
template<typename MatType>
|
|
31
|
-
|
|
30
|
+
FTSwish<MatType>::FTSwish(const FTSwish& other) :
|
|
32
31
|
Layer<MatType>(other),
|
|
33
32
|
T(other.T)
|
|
34
33
|
{
|
|
@@ -36,7 +35,7 @@ FTSwishType<MatType>::FTSwishType(const FTSwishType& other) :
|
|
|
36
35
|
}
|
|
37
36
|
|
|
38
37
|
template<typename MatType>
|
|
39
|
-
|
|
38
|
+
FTSwish<MatType>::FTSwish(FTSwish&& other) :
|
|
40
39
|
Layer<MatType>(std::move(other)),
|
|
41
40
|
T(std::move(other.T))
|
|
42
41
|
{
|
|
@@ -44,8 +43,8 @@ FTSwishType<MatType>::FTSwishType(FTSwishType&& other) :
|
|
|
44
43
|
}
|
|
45
44
|
|
|
46
45
|
template<typename MatType>
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
FTSwish<MatType>&
|
|
47
|
+
FTSwish<MatType>::operator=(const FTSwish& other)
|
|
49
48
|
{
|
|
50
49
|
if (&other != this)
|
|
51
50
|
{
|
|
@@ -57,8 +56,8 @@ FTSwishType<MatType>::operator=(const FTSwishType& other)
|
|
|
57
56
|
}
|
|
58
57
|
|
|
59
58
|
template<typename MatType>
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
FTSwish<MatType>&
|
|
60
|
+
FTSwish<MatType>::operator=(FTSwish&& other)
|
|
62
61
|
{
|
|
63
62
|
if (&other != this)
|
|
64
63
|
{
|
|
@@ -70,45 +69,28 @@ FTSwishType<MatType>::operator=(FTSwishType&& other)
|
|
|
70
69
|
}
|
|
71
70
|
|
|
72
71
|
template<typename MatType>
|
|
73
|
-
void
|
|
72
|
+
void FTSwish<MatType>::Forward(const MatType& input, MatType& output)
|
|
74
73
|
{
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (input(i) >= 0)
|
|
79
|
-
output(i) = input(i) / (1 + std::exp(-input(i))) + T;
|
|
80
|
-
else
|
|
81
|
-
output(i) = T;
|
|
82
|
-
}
|
|
74
|
+
output = ElemType(T) + clamp(input, 0,
|
|
75
|
+
std::numeric_limits<ElemType>::max()) /
|
|
76
|
+
(1 + exp(-input));
|
|
83
77
|
}
|
|
84
78
|
|
|
85
79
|
template<typename MatType>
|
|
86
|
-
void
|
|
80
|
+
void FTSwish<MatType>::Backward(
|
|
87
81
|
const MatType& input,
|
|
88
|
-
const MatType&
|
|
82
|
+
const MatType& output,
|
|
89
83
|
const MatType& gy,
|
|
90
84
|
MatType& g)
|
|
91
85
|
{
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
if (input(i) >= 0)
|
|
96
|
-
{
|
|
97
|
-
const double sigmoidX = 1 / (1 + std::exp(-input(i)));
|
|
98
|
-
const double fX = input(i) * sigmoidX;
|
|
99
|
-
|
|
100
|
-
g(i) = gy(i) * (sigmoidX * (1 - fX) + fX);
|
|
101
|
-
}
|
|
102
|
-
else
|
|
103
|
-
{
|
|
104
|
-
g(i) = 0;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
86
|
+
const ElemType convT = ElemType(T);
|
|
87
|
+
g = gy % sign(output - convT) % (((output - convT) / input) %
|
|
88
|
+
(1 - (output - convT)) + (output - convT));
|
|
107
89
|
}
|
|
108
90
|
|
|
109
91
|
template<typename MatType>
|
|
110
92
|
template<typename Archive>
|
|
111
|
-
void
|
|
93
|
+
void FTSwish<MatType>::serialize(
|
|
112
94
|
Archive& ar,
|
|
113
95
|
const uint32_t /* version */)
|
|
114
96
|
{
|
|
@@ -17,8 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
#include <mlpack/methods/ann/convolution_rules/border_modes.hpp>
|
|
19
19
|
#include <mlpack/methods/ann/convolution_rules/naive_convolution.hpp>
|
|
20
|
-
#include <mlpack/methods/ann/convolution_rules/
|
|
21
|
-
#include <mlpack/methods/ann/convolution_rules/svd_convolution.hpp>
|
|
20
|
+
#include <mlpack/methods/ann/convolution_rules/im2col_convolution.hpp>
|
|
22
21
|
#include <mlpack/core/util/to_lower.hpp>
|
|
23
22
|
|
|
24
23
|
#include "layer.hpp"
|
|
@@ -69,21 +68,23 @@ namespace mlpack {
|
|
|
69
68
|
* computation.
|
|
70
69
|
*/
|
|
71
70
|
template <
|
|
72
|
-
typename
|
|
73
|
-
typename
|
|
74
|
-
typename
|
|
75
|
-
typename
|
|
71
|
+
typename MatType = arma::mat,
|
|
72
|
+
typename ForwardConvolutionRule = Im2ColConvolution<ValidConvolution>,
|
|
73
|
+
typename BackwardConvolutionRule = Im2ColConvolution<FullConvolution>,
|
|
74
|
+
typename GradientConvolutionRule = Im2ColConvolution<ValidConvolution>
|
|
76
75
|
>
|
|
77
|
-
class
|
|
76
|
+
class GroupedConvolution : public Layer<MatType>
|
|
78
77
|
{
|
|
79
78
|
public:
|
|
79
|
+
// Convenience typedefs.
|
|
80
|
+
using ElemType = typename MatType::elem_type;
|
|
80
81
|
using CubeType = typename GetCubeType<MatType>::type;
|
|
81
82
|
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
// Create the GroupedConvolution object.
|
|
84
|
+
GroupedConvolution();
|
|
84
85
|
|
|
85
86
|
/**
|
|
86
|
-
* Create the
|
|
87
|
+
* Create the GroupedConvolution object using the specified number of
|
|
87
88
|
* output maps, filter size, stride and padding parameter.
|
|
88
89
|
*
|
|
89
90
|
* @param maps The number of output maps.
|
|
@@ -99,7 +100,7 @@ class GroupedConvolutionType : public Layer<MatType>
|
|
|
99
100
|
* will be used.
|
|
100
101
|
* @param useBias Whether or not to use a bias with the convolution.
|
|
101
102
|
*/
|
|
102
|
-
|
|
103
|
+
GroupedConvolution(const size_t maps,
|
|
103
104
|
const size_t kernelWidth,
|
|
104
105
|
const size_t kernelHeight,
|
|
105
106
|
const size_t groups,
|
|
@@ -131,7 +132,7 @@ class GroupedConvolutionType : public Layer<MatType>
|
|
|
131
132
|
* will be used.
|
|
132
133
|
* @param useBias Whether or not to use a bias with the convolution.
|
|
133
134
|
*/
|
|
134
|
-
|
|
135
|
+
GroupedConvolution(const size_t maps,
|
|
135
136
|
const size_t kernelWidth,
|
|
136
137
|
const size_t kernelHeight,
|
|
137
138
|
const size_t groups,
|
|
@@ -142,27 +143,27 @@ class GroupedConvolutionType : public Layer<MatType>
|
|
|
142
143
|
const std::string& paddingType = "none",
|
|
143
144
|
const bool useBias = true);
|
|
144
145
|
|
|
145
|
-
//! Clone the
|
|
146
|
+
//! Clone the GroupedConvolution object. This handles polymorphism
|
|
146
147
|
//! correctly.
|
|
147
|
-
|
|
148
|
+
GroupedConvolution* Clone() const
|
|
148
149
|
{
|
|
149
|
-
return new
|
|
150
|
+
return new GroupedConvolution(*this);
|
|
150
151
|
}
|
|
151
152
|
|
|
152
|
-
//! Copy the given
|
|
153
|
-
|
|
153
|
+
//! Copy the given GroupedConvolution (but not weights).
|
|
154
|
+
GroupedConvolution(const GroupedConvolution& layer);
|
|
154
155
|
|
|
155
|
-
//! Take ownership of the given
|
|
156
|
-
|
|
156
|
+
//! Take ownership of the given GroupedConvolution (but not weights).
|
|
157
|
+
GroupedConvolution(GroupedConvolution&&);
|
|
157
158
|
|
|
158
|
-
//! Copy the given
|
|
159
|
-
|
|
159
|
+
//! Copy the given GroupedConvolution (but not weights).
|
|
160
|
+
GroupedConvolution& operator=(const GroupedConvolution& layer);
|
|
160
161
|
|
|
161
|
-
//! Take ownership of the given
|
|
162
|
-
|
|
162
|
+
//! Take ownership of the given GroupedConvolution (but not weights).
|
|
163
|
+
GroupedConvolution& operator=(GroupedConvolution&& layer);
|
|
163
164
|
|
|
164
165
|
// Virtual destructor.
|
|
165
|
-
virtual ~
|
|
166
|
+
virtual ~GroupedConvolution() { }
|
|
166
167
|
|
|
167
168
|
/*
|
|
168
169
|
* Set the weight and bias term.
|
|
@@ -396,10 +397,10 @@ class GroupedConvolutionType : public Layer<MatType>
|
|
|
396
397
|
CubeType gradientTemp;
|
|
397
398
|
|
|
398
399
|
//! Locally-stored padding layer.
|
|
399
|
-
|
|
400
|
+
Padding<MatType> padding;
|
|
400
401
|
|
|
401
402
|
//! Locally-stored padding layer for backward pass.
|
|
402
|
-
|
|
403
|
+
Padding<MatType> paddingBackward;
|
|
403
404
|
|
|
404
405
|
//! Type of padding.
|
|
405
406
|
std::string paddingType;
|
|
@@ -416,13 +417,6 @@ class GroupedConvolutionType : public Layer<MatType>
|
|
|
416
417
|
size_t apparentHeight;
|
|
417
418
|
}; // class Convolution
|
|
418
419
|
|
|
419
|
-
// Standard Convolution layer.
|
|
420
|
-
using GroupedConvolution = GroupedConvolutionType<
|
|
421
|
-
NaiveConvolution<ValidConvolution>,
|
|
422
|
-
NaiveConvolution<FullConvolution>,
|
|
423
|
-
NaiveConvolution<ValidConvolution>,
|
|
424
|
-
arma::mat>;
|
|
425
|
-
|
|
426
420
|
} // namespace mlpack
|
|
427
421
|
|
|
428
422
|
// Include implementation.
|