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,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file methods/ann/layer/sum_reduce_impl.hpp
|
|
3
|
+
* @author Andrew Furey
|
|
4
|
+
*
|
|
5
|
+
* Definition of the SumReduce class sums inputs along a given axis.
|
|
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_ADD_REDUCE_IMPL_HPP
|
|
13
|
+
#define MLPACK_METHODS_ANN_LAYER_ADD_REDUCE_IMPL_HPP
|
|
14
|
+
|
|
15
|
+
// In case it hasn't yet been included.
|
|
16
|
+
#include "sum_reduce.hpp"
|
|
17
|
+
|
|
18
|
+
namespace mlpack {
|
|
19
|
+
|
|
20
|
+
template<typename MatType>
|
|
21
|
+
SumReduce<MatType>::SumReduce(size_t axis, bool keepDimensions) :
|
|
22
|
+
Layer<MatType>(),
|
|
23
|
+
axis(axis),
|
|
24
|
+
keepDimensions(keepDimensions)
|
|
25
|
+
{
|
|
26
|
+
// Nothing to do.
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
template<typename MatType>
|
|
30
|
+
SumReduce<MatType>::SumReduce(const SumReduce& other) :
|
|
31
|
+
Layer<MatType>(other),
|
|
32
|
+
axis(other.axis),
|
|
33
|
+
keepDimensions(other.keepDimensions)
|
|
34
|
+
{
|
|
35
|
+
// Nothing to do.
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
template<typename MatType>
|
|
39
|
+
SumReduce<MatType>::SumReduce(SumReduce&& other) :
|
|
40
|
+
Layer<MatType>(std::move(other)),
|
|
41
|
+
axis(std::move(other.axis)),
|
|
42
|
+
keepDimensions(std::move(other.keepDimensions))
|
|
43
|
+
{
|
|
44
|
+
// Nothing to do.
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
template<typename MatType>
|
|
48
|
+
SumReduce<MatType>&
|
|
49
|
+
SumReduce<MatType>::operator=(const SumReduce& other)
|
|
50
|
+
{
|
|
51
|
+
if (&other != this)
|
|
52
|
+
{
|
|
53
|
+
Layer<MatType>::operator=(other);
|
|
54
|
+
axis = other.axis;
|
|
55
|
+
keepDimensions = other.keepDimensions;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return *this;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
template<typename MatType>
|
|
62
|
+
SumReduce<MatType>&
|
|
63
|
+
SumReduce<MatType>::operator=(SumReduce&& other)
|
|
64
|
+
{
|
|
65
|
+
if (&other != this)
|
|
66
|
+
{
|
|
67
|
+
Layer<MatType>::operator=(std::move(other));
|
|
68
|
+
axis = std::move(other.axis);
|
|
69
|
+
keepDimensions = std::move(other.keepDimensions);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return *this;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
template<typename MatType>
|
|
76
|
+
void SumReduce<MatType>::Forward(const MatType& input, MatType& output)
|
|
77
|
+
{
|
|
78
|
+
CubeType inputAlias;
|
|
79
|
+
MakeAlias(inputAlias, input, rows, this->inputDimensions[axis],
|
|
80
|
+
slices * input.n_cols);
|
|
81
|
+
output = reshape((MatType)sum(inputAlias, 1),
|
|
82
|
+
input.n_rows / this->inputDimensions[axis], input.n_cols);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
template<typename MatType>
|
|
86
|
+
void SumReduce<MatType>::Backward(
|
|
87
|
+
const MatType& input,
|
|
88
|
+
const MatType& /* output */,
|
|
89
|
+
const MatType& gy,
|
|
90
|
+
MatType& g)
|
|
91
|
+
{
|
|
92
|
+
g.set_size(input.n_rows, input.n_cols);
|
|
93
|
+
CubeType gAlias;
|
|
94
|
+
MakeAlias(gAlias, g, rows, this->inputDimensions[axis],
|
|
95
|
+
slices * input.n_cols);
|
|
96
|
+
|
|
97
|
+
CubeType gyAlias;
|
|
98
|
+
MakeAlias(gyAlias, gy, rows, 1, slices * gy.n_cols);
|
|
99
|
+
|
|
100
|
+
for (size_t i = 0; i < this->inputDimensions[axis]; i++)
|
|
101
|
+
gAlias.col(i) = gyAlias;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
template<typename MatType>
|
|
105
|
+
void SumReduce<MatType>::ComputeOutputDimensions()
|
|
106
|
+
{
|
|
107
|
+
if (axis >= this->inputDimensions.size())
|
|
108
|
+
{
|
|
109
|
+
std::ostringstream errMessage;
|
|
110
|
+
errMessage << "SumReduce::ComputeOutputDimensions(): Cannot "
|
|
111
|
+
<< "sum along axis " << axis << " when there are "
|
|
112
|
+
<< this->inputDimensions.size() << " input dimensions.";
|
|
113
|
+
throw std::logic_error(errMessage.str());
|
|
114
|
+
}
|
|
115
|
+
this->outputDimensions = this->inputDimensions;
|
|
116
|
+
|
|
117
|
+
if (keepDimensions || this->outputDimensions.size() == 1)
|
|
118
|
+
this->outputDimensions[axis] = 1;
|
|
119
|
+
else
|
|
120
|
+
this->outputDimensions.erase(this->outputDimensions.begin() + axis);
|
|
121
|
+
|
|
122
|
+
rows = 1;
|
|
123
|
+
for (size_t i = 0; i < axis; i++)
|
|
124
|
+
rows *= this->inputDimensions[i];
|
|
125
|
+
|
|
126
|
+
slices = 1;
|
|
127
|
+
for (size_t i = axis + 1; i < this->inputDimensions.size(); i++)
|
|
128
|
+
slices *= this->inputDimensions[i];
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
template<typename MatType>
|
|
132
|
+
template<typename Archive>
|
|
133
|
+
void SumReduce<MatType>::serialize(Archive& ar,
|
|
134
|
+
const uint32_t /* version */)
|
|
135
|
+
{
|
|
136
|
+
ar(cereal::base_class<Layer<MatType>>(this));
|
|
137
|
+
ar(CEREAL_NVP(axis));
|
|
138
|
+
ar(CEREAL_NVP(keepDimensions));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
} // namespace mlpack
|
|
142
|
+
|
|
143
|
+
#endif
|
|
@@ -34,7 +34,7 @@ typename MatType::elem_type CosineEmbeddingLossType<MatType>::Forward(
|
|
|
34
34
|
|
|
35
35
|
const size_t cols = prediction.n_cols;
|
|
36
36
|
const size_t batchSize = prediction.n_elem / cols;
|
|
37
|
-
if (
|
|
37
|
+
if (size(prediction) != size(target))
|
|
38
38
|
Log::Fatal << "Input Tensors must have same dimensions." << std::endl;
|
|
39
39
|
|
|
40
40
|
arma::Col<ElemType> inputTemp1 = vectorise(prediction);
|
|
@@ -72,12 +72,12 @@ void CosineEmbeddingLossType<MatType>::Backward(
|
|
|
72
72
|
|
|
73
73
|
const size_t cols = prediction.n_cols;
|
|
74
74
|
const size_t batchSize = prediction.n_elem / cols;
|
|
75
|
-
if (
|
|
75
|
+
if (size(prediction) != size(target))
|
|
76
76
|
Log::Fatal << "Input Tensors must have same dimensions." << std::endl;
|
|
77
77
|
|
|
78
78
|
ColType inputTemp1 = vectorise(prediction);
|
|
79
79
|
ColType inputTemp2 = vectorise(target);
|
|
80
|
-
loss.set_size(
|
|
80
|
+
loss.set_size(size(inputTemp1));
|
|
81
81
|
|
|
82
82
|
ColType outputTemp;
|
|
83
83
|
MakeAlias(outputTemp, loss, inputTemp1.n_elem, 0, false);
|
|
@@ -43,7 +43,7 @@ typename MatType::elem_type MultiLabelSoftMarginLossType<MatType>::Forward(
|
|
|
43
43
|
|
|
44
44
|
MatType logSigmoid = log((1 / (1 + exp(-input))));
|
|
45
45
|
MatType logSigmoidNeg = log(1 / (1 + exp(input)));
|
|
46
|
-
MatType loss =
|
|
46
|
+
MatType loss = mean(sum(-(target % logSigmoid +
|
|
47
47
|
(1 - target) % logSigmoidNeg)) % classWeights, 1);
|
|
48
48
|
|
|
49
49
|
if (reduction)
|
|
@@ -48,8 +48,8 @@ class NegativeLogLikelihoodType
|
|
|
48
48
|
* @param target The target vector, that contains the class index in the range
|
|
49
49
|
* between 1 and the number of classes.
|
|
50
50
|
*/
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
typename MatType::elem_type Forward(const MatType& prediction,
|
|
52
|
+
const MatType& target);
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
55
|
* Ordinary feed backward pass of a neural network. The negative log
|
|
@@ -27,19 +27,27 @@ NegativeLogLikelihoodType<MatType>::NegativeLogLikelihoodType(
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
template<typename MatType>
|
|
30
|
-
|
|
30
|
+
typename MatType::elem_type
|
|
31
|
+
NegativeLogLikelihoodType<MatType>::Forward(
|
|
31
32
|
const MatType& prediction,
|
|
32
33
|
const MatType& target)
|
|
33
34
|
{
|
|
34
35
|
using ElemType = typename MatType::elem_type;
|
|
35
|
-
ElemType lossSum = 0;
|
|
36
|
-
for (size_t i = 0; i < prediction.n_cols; ++i)
|
|
37
|
-
{
|
|
38
|
-
Log::Assert(target(i) >= 0 && target(i) < prediction.n_rows,
|
|
39
|
-
"Target class out of range.");
|
|
40
36
|
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
// Sanity check the inputs in debug mode.
|
|
38
|
+
#ifdef DEBUG
|
|
39
|
+
Log::Assert(all(vectorise(target >= ElemType(0) &&
|
|
40
|
+
target < ElemType(prediction.n_rows))),
|
|
41
|
+
"NegativeLogLikelihood::Forward(): labels must be between 0 and "
|
|
42
|
+
"(numClasses - 1).");
|
|
43
|
+
#endif
|
|
44
|
+
|
|
45
|
+
// Assemble the indices in `prediction` we are looking for.
|
|
46
|
+
// For each i, we want to access prediction(target(i), i).
|
|
47
|
+
const ElemType lossSum = -accu(prediction.elem(
|
|
48
|
+
conv_to<typename GetUColType<MatType>::type>::from(
|
|
49
|
+
target + (prediction.n_rows * linspace<MatType>(0,
|
|
50
|
+
prediction.n_cols - 1, prediction.n_cols).t()))));
|
|
43
51
|
|
|
44
52
|
if (reduction)
|
|
45
53
|
return lossSum;
|
|
@@ -53,14 +61,20 @@ void NegativeLogLikelihoodType<MatType>::Backward(
|
|
|
53
61
|
const MatType& target,
|
|
54
62
|
MatType& loss)
|
|
55
63
|
{
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
{
|
|
59
|
-
Log::Assert(target(i) >= 0 && target(i) < prediction.n_rows,
|
|
60
|
-
"Target class out of range.");
|
|
64
|
+
#ifdef DEBUG
|
|
65
|
+
using ElemType = typename MatType::elem_type;
|
|
61
66
|
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
// Sanity check the inputs.
|
|
68
|
+
Log::Assert(all(vectorise(target >= ElemType(0) &&
|
|
69
|
+
target < ElemType(prediction.n_rows))),
|
|
70
|
+
"NegativeLogLikelihood::Forward(): labels must be between 0 and "
|
|
71
|
+
"(numClasses - 1).");
|
|
72
|
+
#endif
|
|
73
|
+
|
|
74
|
+
loss = zeros<MatType>(prediction.n_rows, prediction.n_cols);
|
|
75
|
+
loss.elem(conv_to<typename GetUColType<MatType>::type>::from(
|
|
76
|
+
target + (prediction.n_rows * linspace<MatType>(0,
|
|
77
|
+
prediction.n_cols - 1, prediction.n_cols).t()))).fill(-1);
|
|
64
78
|
|
|
65
79
|
if (!reduction)
|
|
66
80
|
loss = loss / target.n_elem;
|
|
@@ -39,7 +39,7 @@ typename MatType::elem_type PoissonNLLLossType<MatType>::Forward(
|
|
|
39
39
|
const MatType& prediction,
|
|
40
40
|
const MatType& target)
|
|
41
41
|
{
|
|
42
|
-
MatType loss(
|
|
42
|
+
MatType loss(size(prediction));
|
|
43
43
|
|
|
44
44
|
if (logInput)
|
|
45
45
|
loss = exp(prediction) - target % prediction;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file methods/ann/models/models.hpp
|
|
3
|
+
* @author Andrew Furey
|
|
4
|
+
*
|
|
5
|
+
* This includes all prebuilt models found in mlpack.
|
|
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_MODELS_MODELS_HPP
|
|
13
|
+
#define MLPACK_METHODS_ANN_MODELS_MODELS_HPP
|
|
14
|
+
|
|
15
|
+
#include "yolov3/yolov3_tiny.hpp"
|
|
16
|
+
|
|
17
|
+
#endif
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file methods/ann/models/yolov3/yolov3_layer.hpp
|
|
3
|
+
* @author Andrew Furey
|
|
4
|
+
*
|
|
5
|
+
* Definition of the YOLOv3 layer.
|
|
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_MODELS_YOLOV3_YOLOV3_LAYER_HPP
|
|
13
|
+
#define MLPACK_METHODS_ANN_MODELS_YOLOV3_YOLOV3_LAYER_HPP
|
|
14
|
+
|
|
15
|
+
#include <mlpack/prereqs.hpp>
|
|
16
|
+
#include <mlpack/methods/ann/layer/layer.hpp>
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Helper layer for YOLOv3. Used as the last layer to normalize bounding
|
|
20
|
+
* boxes and classification probilities.
|
|
21
|
+
*
|
|
22
|
+
* Returns bounding boxes in YOLO format. Bounding boxes consist of
|
|
23
|
+
* a center x and center y coordinate, width and height, objectness score
|
|
24
|
+
* and class probabilities.
|
|
25
|
+
*
|
|
26
|
+
* This layer outputs `gridSize` x `gridSize` x `predictionsPerCell`
|
|
27
|
+
* bounding boxes.
|
|
28
|
+
*
|
|
29
|
+
* For more information, refer to the following paper:
|
|
30
|
+
*
|
|
31
|
+
* @code
|
|
32
|
+
* @article{yolov3,
|
|
33
|
+
* title = {YOLOv3: An Incremental Improvement},
|
|
34
|
+
* author = {Redmon, Joseph and Farhadi, Ali},
|
|
35
|
+
* journal = {arXiv},
|
|
36
|
+
* year = {2018}
|
|
37
|
+
* }
|
|
38
|
+
* @endcode
|
|
39
|
+
*
|
|
40
|
+
*/
|
|
41
|
+
namespace mlpack {
|
|
42
|
+
|
|
43
|
+
template <typename MatType = arma::mat>
|
|
44
|
+
class YOLOv3Layer : public Layer<MatType>
|
|
45
|
+
{
|
|
46
|
+
public:
|
|
47
|
+
using ElemType = typename MatType::elem_type;
|
|
48
|
+
|
|
49
|
+
using CubeType = typename GetCubeType<MatType>::type;
|
|
50
|
+
|
|
51
|
+
YOLOv3Layer() { /* Nothing to do. */ }
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* YOLOv3Layer constructor.
|
|
55
|
+
*
|
|
56
|
+
* Input dimensions are expected to be 3d, normally from the outputs of a
|
|
57
|
+
* convolution layer.
|
|
58
|
+
*
|
|
59
|
+
* @param imgSize The width and height of input images. Pretrained weights
|
|
60
|
+
used 416.
|
|
61
|
+
* @param numAttributes Total number of attributes representing a bounding
|
|
62
|
+
box. The same as 5 plus the number of classes in the dataset.
|
|
63
|
+
* @param predictionsPerCell Each YOLO layer predicts `predictionsPerCell`
|
|
64
|
+
boxes per grid cell. Pretrained weights use 3.
|
|
65
|
+
* @param anchors Vector of anchor width and heights. Formatted as
|
|
66
|
+
[w0, h0, w1, h1, ... ]. Each anchors is a [w, h] pair. There must be
|
|
67
|
+
`predictionsPerCell` anchor pairs.
|
|
68
|
+
*/
|
|
69
|
+
YOLOv3Layer(const size_t imgSize,
|
|
70
|
+
const size_t numAttributes,
|
|
71
|
+
const size_t gridSize,
|
|
72
|
+
const size_t predictionsPerCell,
|
|
73
|
+
const std::vector<ElemType>& anchors);
|
|
74
|
+
|
|
75
|
+
YOLOv3Layer* Clone() const override { return new YOLOv3Layer(*this); }
|
|
76
|
+
|
|
77
|
+
// Copy the given YOLOv3Layer.
|
|
78
|
+
YOLOv3Layer(const YOLOv3Layer& other);
|
|
79
|
+
// Take ownership of the given YOLOv3Layer.
|
|
80
|
+
YOLOv3Layer(YOLOv3Layer&& other);
|
|
81
|
+
// Copy the given YOLOv3Layer.
|
|
82
|
+
YOLOv3Layer& operator=(const YOLOv3Layer& other);
|
|
83
|
+
// Take ownership of the given YOLOv3Layer.
|
|
84
|
+
YOLOv3Layer& operator=(YOLOv3Layer&& other);
|
|
85
|
+
|
|
86
|
+
void ComputeOutputDimensions() override;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* NOTE: This will be changed when training is implemented.
|
|
90
|
+
*
|
|
91
|
+
* Takes in 3d input and outputs bounding boxes, based on anchors,
|
|
92
|
+
* input image size and cell position, for each batch item.
|
|
93
|
+
*
|
|
94
|
+
* Bounding boxes are outputted in the format: x1, y1, x2, y2.
|
|
95
|
+
*
|
|
96
|
+
* @param input Input data representing outputs of model.
|
|
97
|
+
* @param output Resulting bounding boxes after being normalized to image.
|
|
98
|
+
*/
|
|
99
|
+
void Forward(const MatType& input, MatType& output) override;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* NOTE: This will be changed when training is implemented.
|
|
103
|
+
*
|
|
104
|
+
* Currently not implemented.
|
|
105
|
+
*/
|
|
106
|
+
void Backward(const MatType& input,
|
|
107
|
+
const MatType& output,
|
|
108
|
+
const MatType& gy,
|
|
109
|
+
MatType& g) override;
|
|
110
|
+
|
|
111
|
+
// Serialize the layer.
|
|
112
|
+
template<typename Archive>
|
|
113
|
+
void serialize(Archive& ar, const uint32_t /* version */);
|
|
114
|
+
|
|
115
|
+
private:
|
|
116
|
+
void GenerateAnchors()
|
|
117
|
+
{
|
|
118
|
+
anchorsW = MatType(grid, predictionsPerCell, arma::fill::none);
|
|
119
|
+
anchorsH = MatType(grid, predictionsPerCell, arma::fill::none);
|
|
120
|
+
|
|
121
|
+
for (size_t i = 0; i < predictionsPerCell; i++)
|
|
122
|
+
{
|
|
123
|
+
anchorsW.col(i).fill(anchors[i * 2]);
|
|
124
|
+
anchorsH.col(i).fill(anchors[i * 2 + 1]);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Original input image size.
|
|
129
|
+
size_t imgSize;
|
|
130
|
+
// Number of attributes representing a bounding box.
|
|
131
|
+
size_t numAttributes;
|
|
132
|
+
// Width and height of grid, since grids must be square.
|
|
133
|
+
// Should be equivalent to inputDimensions[0] and inputdDimensions[1].
|
|
134
|
+
size_t gridSize;
|
|
135
|
+
// Cached gridSize * gridSize
|
|
136
|
+
size_t grid;
|
|
137
|
+
// Vector of anchor pairs.
|
|
138
|
+
std::vector<ElemType> anchors;
|
|
139
|
+
// Number of bounding boxes per cell.
|
|
140
|
+
size_t predictionsPerCell;
|
|
141
|
+
// Matrix of anchor widths.
|
|
142
|
+
MatType anchorsW;
|
|
143
|
+
// Matrix of anchor height.
|
|
144
|
+
MatType anchorsH;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
} // namespace mlpack
|
|
148
|
+
|
|
149
|
+
#include "yolov3_layer_impl.hpp"
|
|
150
|
+
|
|
151
|
+
#endif
|