mlpack 4.6.2__cp38-cp38-win_amd64.whl → 4.7.0__cp38-cp38-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 +3 -3
- mlpack/adaboost_classify.cp38-win_amd64.pyd +0 -0
- mlpack/adaboost_probabilities.cp38-win_amd64.pyd +0 -0
- mlpack/adaboost_train.cp38-win_amd64.pyd +0 -0
- mlpack/approx_kfn.cp38-win_amd64.pyd +0 -0
- mlpack/arma_numpy.cp38-win_amd64.pyd +0 -0
- mlpack/bayesian_linear_regression.cp38-win_amd64.pyd +0 -0
- mlpack/cf.cp38-win_amd64.pyd +0 -0
- mlpack/dbscan.cp38-win_amd64.pyd +0 -0
- mlpack/decision_tree.cp38-win_amd64.pyd +0 -0
- mlpack/det.cp38-win_amd64.pyd +0 -0
- mlpack/emst.cp38-win_amd64.pyd +0 -0
- mlpack/fastmks.cp38-win_amd64.pyd +0 -0
- mlpack/gmm_generate.cp38-win_amd64.pyd +0 -0
- mlpack/gmm_probability.cp38-win_amd64.pyd +0 -0
- mlpack/gmm_train.cp38-win_amd64.pyd +0 -0
- mlpack/hmm_generate.cp38-win_amd64.pyd +0 -0
- mlpack/hmm_loglik.cp38-win_amd64.pyd +0 -0
- mlpack/hmm_train.cp38-win_amd64.pyd +0 -0
- mlpack/hmm_viterbi.cp38-win_amd64.pyd +0 -0
- mlpack/hoeffding_tree.cp38-win_amd64.pyd +0 -0
- mlpack/image_converter.cp38-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.cp38-win_amd64.pyd +0 -0
- mlpack/kernel_pca.cp38-win_amd64.pyd +0 -0
- mlpack/kfn.cp38-win_amd64.pyd +0 -0
- mlpack/kmeans.cp38-win_amd64.pyd +0 -0
- mlpack/knn.cp38-win_amd64.pyd +0 -0
- mlpack/krann.cp38-win_amd64.pyd +0 -0
- mlpack/lars.cp38-win_amd64.pyd +0 -0
- mlpack/linear_regression_predict.cp38-win_amd64.pyd +0 -0
- mlpack/linear_regression_train.cp38-win_amd64.pyd +0 -0
- mlpack/linear_svm.cp38-win_amd64.pyd +0 -0
- mlpack/lmnn.cp38-win_amd64.pyd +0 -0
- mlpack/local_coordinate_coding.cp38-win_amd64.pyd +0 -0
- mlpack/logistic_regression.cp38-win_amd64.pyd +0 -0
- mlpack/lsh.cp38-win_amd64.pyd +0 -0
- mlpack/mean_shift.cp38-win_amd64.pyd +0 -0
- mlpack/nbc.cp38-win_amd64.pyd +0 -0
- mlpack/nca.cp38-win_amd64.pyd +0 -0
- mlpack/nmf.cp38-win_amd64.pyd +0 -0
- mlpack/pca.cp38-win_amd64.pyd +0 -0
- mlpack/perceptron.cp38-win_amd64.pyd +0 -0
- mlpack/preprocess_binarize.cp38-win_amd64.pyd +0 -0
- mlpack/preprocess_describe.cp38-win_amd64.pyd +0 -0
- mlpack/preprocess_one_hot_encoding.cp38-win_amd64.pyd +0 -0
- mlpack/preprocess_scale.cp38-win_amd64.pyd +0 -0
- mlpack/preprocess_split.cp38-win_amd64.pyd +0 -0
- mlpack/radical.cp38-win_amd64.pyd +0 -0
- mlpack/random_forest.cp38-win_amd64.pyd +0 -0
- mlpack/softmax_regression.cp38-win_amd64.pyd +0 -0
- mlpack/sparse_coding.cp38-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 +5 -5
- {mlpack-4.6.2.dist-info → mlpack-4.7.0.dist-info}/RECORD +395 -376
- {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/{.load-order-mlpack-4.6.2 → .load-order-mlpack-4.7.0} +0 -0
|
@@ -16,10 +16,9 @@
|
|
|
16
16
|
#include <mlpack/prereqs.hpp>
|
|
17
17
|
#include <mlpack/core/stb/stb.hpp>
|
|
18
18
|
|
|
19
|
-
#include "
|
|
19
|
+
#include "image_options.hpp"
|
|
20
20
|
|
|
21
21
|
namespace mlpack {
|
|
22
|
-
namespace data {
|
|
23
22
|
|
|
24
23
|
/**
|
|
25
24
|
* Image resize/crop interfaces.
|
|
@@ -42,8 +41,9 @@ namespace data {
|
|
|
42
41
|
* @param newHeight The new requested height for the resized image.
|
|
43
42
|
*/
|
|
44
43
|
template<typename eT>
|
|
45
|
-
|
|
46
|
-
const size_t newWidth, const size_t newHeight
|
|
44
|
+
void ResizeImages(arma::Mat<eT>& images, ImageOptions& opts,
|
|
45
|
+
const size_t newWidth, const size_t newHeight,
|
|
46
|
+
const typename std::enable_if_t<std::is_floating_point<eT>::value>* = 0)
|
|
47
47
|
{
|
|
48
48
|
// First check if we are resizing one image or a group of images, the check
|
|
49
49
|
// is going to be different depending on the dimension.
|
|
@@ -52,7 +52,7 @@ inline void ResizeImages(arma::Mat<eT>& images, data::ImageInfo& info,
|
|
|
52
52
|
// assume that all images have identical dimension and need to be resized.
|
|
53
53
|
if (images.n_cols == 1)
|
|
54
54
|
{
|
|
55
|
-
if (images.n_elem != (
|
|
55
|
+
if (images.n_elem != (opts.Width() * opts.Height() * opts.Channels()))
|
|
56
56
|
{
|
|
57
57
|
Log::Fatal << "ResizeImages(): dimensions mismatch: the number of pixels "
|
|
58
58
|
<< "is not equal to the dimension provided by the given ImageInfo."
|
|
@@ -61,7 +61,7 @@ inline void ResizeImages(arma::Mat<eT>& images, data::ImageInfo& info,
|
|
|
61
61
|
}
|
|
62
62
|
else
|
|
63
63
|
{
|
|
64
|
-
if (images.n_rows != (
|
|
64
|
+
if (images.n_rows != (opts.Width() * opts.Height() * opts.Channels()))
|
|
65
65
|
{
|
|
66
66
|
Log::Fatal << "ResizeImages(): dimension mismatch: in the case of "
|
|
67
67
|
<< "several images, please check that all the images have the same "
|
|
@@ -71,61 +71,127 @@ inline void ResizeImages(arma::Mat<eT>& images, data::ImageInfo& info,
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
stbir_pixel_layout channels;
|
|
74
|
-
if (
|
|
74
|
+
if (opts.Channels() == 1)
|
|
75
75
|
{
|
|
76
76
|
channels = STBIR_1CHANNEL;
|
|
77
77
|
}
|
|
78
|
-
else if (
|
|
78
|
+
else if (opts.Channels() == 3)
|
|
79
79
|
{
|
|
80
80
|
channels = STBIR_RGB;
|
|
81
81
|
}
|
|
82
|
+
else
|
|
83
|
+
{
|
|
84
|
+
Log::Fatal << "ResizeImages(): number of channels should be either 1 or 3,"
|
|
85
|
+
<< " not " << opts.Channels() << "." << std::endl;
|
|
86
|
+
}
|
|
82
87
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
size_t newDimension = newWidth * newHeight * info.Channels();
|
|
88
|
+
size_t newDimension = newWidth * newHeight * opts.Channels();
|
|
89
|
+
arma::Mat<float> originalImagesFloat;
|
|
86
90
|
arma::Mat<float> resizedFloatImages;
|
|
87
|
-
arma::Mat<unsigned char> resizedImages;
|
|
88
91
|
|
|
89
|
-
//
|
|
90
|
-
if (std::
|
|
91
|
-
|
|
92
|
+
// We need to covert to a float if we are resizing a double.
|
|
93
|
+
if constexpr (std::is_same_v<eT, float>)
|
|
94
|
+
{
|
|
95
|
+
MakeAlias(originalImagesFloat, images, images.n_rows, images.n_cols);
|
|
96
|
+
}
|
|
92
97
|
else
|
|
93
|
-
|
|
98
|
+
{
|
|
99
|
+
originalImagesFloat =
|
|
100
|
+
arma::conv_to<arma::Mat<float>>::from(std::move(images));
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// recover the original min/max values for clamping.
|
|
104
|
+
float minOriginal = images.min();
|
|
105
|
+
float maxOriginal = images.max();
|
|
94
106
|
|
|
107
|
+
resizedFloatImages.set_size(newDimension, images.n_cols);
|
|
95
108
|
for (size_t i = 0; i < images.n_cols; ++i)
|
|
96
109
|
{
|
|
97
|
-
|
|
110
|
+
stbir_resize_float_linear(originalImagesFloat.colptr(i), opts.Width(),
|
|
111
|
+
opts.Height(), 0, resizedFloatImages.colptr(i), newWidth, newHeight,
|
|
112
|
+
0, channels);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
images = arma::conv_to<arma::Mat<eT>>::from(std::move(resizedFloatImages));
|
|
116
|
+
|
|
117
|
+
images.clamp(minOriginal, maxOriginal);
|
|
118
|
+
|
|
119
|
+
opts.Width() = newWidth;
|
|
120
|
+
opts.Height() = newHeight;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
template<typename eT>
|
|
124
|
+
void ResizeImages(arma::Mat<eT>& images, ImageOptions& opts,
|
|
125
|
+
const size_t newWidth, const size_t newHeight,
|
|
126
|
+
const typename std::enable_if_t<std::is_integral_v<eT>>* = 0)
|
|
127
|
+
{
|
|
128
|
+
// First check if we are resizing one image or a group of images, the check
|
|
129
|
+
// is going to be different depending on the dimension.
|
|
130
|
+
// If the user would like to resize a set of images of different dimensions,
|
|
131
|
+
// then they need to consider passing them image by image. Otherwise, as
|
|
132
|
+
// assume that all images have identical dimension and need to be resized.
|
|
133
|
+
if (images.n_cols == 1)
|
|
134
|
+
{
|
|
135
|
+
if (images.n_elem != (opts.Width() * opts.Height() * opts.Channels()))
|
|
98
136
|
{
|
|
99
|
-
|
|
100
|
-
|
|
137
|
+
Log::Fatal << "ResizeImages(): dimensions mismatch: the number of pixels "
|
|
138
|
+
<< "is not equal to the dimension provided by the given ImageInfo."
|
|
139
|
+
<< std::endl;
|
|
101
140
|
}
|
|
102
|
-
|
|
141
|
+
}
|
|
142
|
+
else
|
|
143
|
+
{
|
|
144
|
+
if (images.n_rows != (opts.Width() * opts.Height() * opts.Channels()))
|
|
103
145
|
{
|
|
104
|
-
|
|
105
|
-
|
|
146
|
+
Log::Fatal << "ResizeImages(): dimension mismatch: in the case of "
|
|
147
|
+
<< "several images, please check that all the images have the same "
|
|
148
|
+
<< "dimensions; if not, load each image in one column and call this "
|
|
149
|
+
<< "function iteratively." << std::endl;
|
|
106
150
|
}
|
|
107
|
-
|
|
108
|
-
{
|
|
109
|
-
arma::Mat<unsigned char> tempSrc =
|
|
110
|
-
arma::conv_to<arma::Mat<unsigned char>>::from(images);
|
|
151
|
+
}
|
|
111
152
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
153
|
+
stbir_pixel_layout channels;
|
|
154
|
+
if (opts.Channels() == 1)
|
|
155
|
+
{
|
|
156
|
+
channels = STBIR_1CHANNEL;
|
|
157
|
+
}
|
|
158
|
+
else if (opts.Channels() == 3)
|
|
159
|
+
{
|
|
160
|
+
channels = STBIR_RGB;
|
|
161
|
+
}
|
|
162
|
+
else
|
|
163
|
+
{
|
|
164
|
+
Log::Fatal << "ResizeImages(): number of channels should be either 1 or 3,"
|
|
165
|
+
<< " not " << opts.Channels() << "." << std::endl;
|
|
115
166
|
}
|
|
116
167
|
|
|
117
|
-
|
|
168
|
+
// This is required since STB only accept unsigned chars.
|
|
169
|
+
// set the new matrix size for copy
|
|
170
|
+
size_t newDimension = newWidth * newHeight * opts.Channels();
|
|
171
|
+
arma::Mat<unsigned char> resizedImages;
|
|
172
|
+
arma::Mat<unsigned char> originalImages;
|
|
173
|
+
if constexpr (std::is_same_v<eT, unsigned char>)
|
|
118
174
|
{
|
|
119
|
-
|
|
120
|
-
// branch isn't taken.
|
|
121
|
-
images = arma::conv_to<arma::Mat<eT>>::from(std::move(resizedFloatImages));
|
|
175
|
+
MakeAlias(originalImages, images, images.n_rows, images.n_cols);
|
|
122
176
|
}
|
|
123
177
|
else
|
|
124
178
|
{
|
|
125
|
-
|
|
179
|
+
originalImages =
|
|
180
|
+
arma::conv_to<arma::Mat<unsigned char>>::from(std::move(images));
|
|
126
181
|
}
|
|
127
|
-
|
|
128
|
-
|
|
182
|
+
|
|
183
|
+
resizedImages.set_size(newDimension, images.n_cols);
|
|
184
|
+
|
|
185
|
+
for (size_t i = 0; i < images.n_cols; ++i)
|
|
186
|
+
{
|
|
187
|
+
stbir_resize_uint8_linear(originalImages.colptr(i), opts.Width(),
|
|
188
|
+
opts.Height(), 0, resizedImages.colptr(i), newWidth, newHeight, 0,
|
|
189
|
+
channels);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
images = arma::conv_to<arma::Mat<eT>>::from(std::move(resizedImages));
|
|
193
|
+
opts.Width() = newWidth;
|
|
194
|
+
opts.Height() = newHeight;
|
|
129
195
|
}
|
|
130
196
|
|
|
131
197
|
/**
|
|
@@ -145,17 +211,17 @@ inline void ResizeImages(arma::Mat<eT>& images, data::ImageInfo& info,
|
|
|
145
211
|
* @param newHeight The new requested height for the resized image.
|
|
146
212
|
*/
|
|
147
213
|
template<typename eT>
|
|
148
|
-
|
|
214
|
+
void ResizeCropImages(arma::Mat<eT>& images, ImageOptions& opts,
|
|
149
215
|
const size_t newWidth, const size_t newHeight)
|
|
150
216
|
{
|
|
151
217
|
float ratioW = static_cast<float>(newWidth) /
|
|
152
|
-
static_cast<float>(
|
|
218
|
+
static_cast<float>(opts.Width());
|
|
153
219
|
float ratioH = static_cast<float>(newHeight) /
|
|
154
|
-
static_cast<float>(
|
|
220
|
+
static_cast<float>(opts.Height());
|
|
155
221
|
|
|
156
222
|
float largestRatio = ratioW > ratioH ? ratioW : ratioH;
|
|
157
|
-
int midWidth = static_cast<int>(largestRatio *
|
|
158
|
-
int midHeight = static_cast<int>(largestRatio *
|
|
223
|
+
int midWidth = static_cast<int>(largestRatio * opts.Width());
|
|
224
|
+
int midHeight = static_cast<int>(largestRatio * opts.Height());
|
|
159
225
|
|
|
160
226
|
// Edge cases, what if the width / height value is odd ? then increase the
|
|
161
227
|
// resize value to the closest pair number.
|
|
@@ -169,16 +235,16 @@ inline void ResizeCropImages(arma::Mat<eT>& images, data::ImageInfo& info,
|
|
|
169
235
|
if (midWidth % 2 != 0)
|
|
170
236
|
midWidth = midWidth + 1;
|
|
171
237
|
|
|
172
|
-
ResizeImages(images,
|
|
238
|
+
ResizeImages(images, opts, midWidth, midHeight);
|
|
173
239
|
int nColsCrop = midWidth > midHeight ? (midWidth - midHeight) : 0;
|
|
174
240
|
int nRowsCrop = midHeight > midWidth ? (midHeight - midWidth) : 0;
|
|
175
241
|
|
|
176
242
|
//temporary matrix to hold the images while being resized.
|
|
177
|
-
arma::Mat<eT> tmpImages(newHeight * newWidth *
|
|
243
|
+
arma::Mat<eT> tmpImages(newHeight * newWidth * opts.Channels(),
|
|
178
244
|
images.n_cols);
|
|
179
245
|
if (nRowsCrop != 0)
|
|
180
246
|
{
|
|
181
|
-
int cropUpDownEqually = (nRowsCrop / 2) *
|
|
247
|
+
int cropUpDownEqually = (nRowsCrop / 2) * opts.Channels() * midWidth;
|
|
182
248
|
tmpImages = images.rows(cropUpDownEqually,
|
|
183
249
|
images.n_rows - cropUpDownEqually - 1);
|
|
184
250
|
}
|
|
@@ -194,7 +260,7 @@ inline void ResizeCropImages(arma::Mat<eT>& images, data::ImageInfo& info,
|
|
|
194
260
|
// B into Row 3.
|
|
195
261
|
// Cols are the Width, no change
|
|
196
262
|
// Slices are the Height of the image instead of rows.
|
|
197
|
-
arma::Cube<eT> cube(images.colptr(u),
|
|
263
|
+
arma::Cube<eT> cube(images.colptr(u), opts.Channels(), midWidth,
|
|
198
264
|
midHeight, false, false);
|
|
199
265
|
tmpImages.col(u) = vectorise(cube.cols((nColsCrop / 2),
|
|
200
266
|
(cube.n_cols - (nColsCrop / 2) - 1)));
|
|
@@ -205,11 +271,10 @@ inline void ResizeCropImages(arma::Mat<eT>& images, data::ImageInfo& info,
|
|
|
205
271
|
images = std::move(tmpImages);
|
|
206
272
|
}
|
|
207
273
|
}
|
|
208
|
-
|
|
209
|
-
|
|
274
|
+
opts.Width() = newWidth;
|
|
275
|
+
opts.Height() = newHeight;
|
|
210
276
|
}
|
|
211
277
|
|
|
212
|
-
} // namespace data
|
|
213
278
|
} // namespace mlpack
|
|
214
279
|
|
|
215
280
|
#endif
|
|
@@ -15,17 +15,17 @@
|
|
|
15
15
|
#include <mlpack/prereqs.hpp>
|
|
16
16
|
|
|
17
17
|
namespace mlpack {
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
/**
|
|
20
|
-
* A simple custom imputation class
|
|
21
|
-
*
|
|
20
|
+
* A simple custom imputation class, which replaces missing values with a
|
|
21
|
+
* predefined value.
|
|
22
22
|
*/
|
|
23
|
-
template
|
|
23
|
+
template<typename ElemType = double>
|
|
24
24
|
class CustomImputation
|
|
25
25
|
{
|
|
26
26
|
public:
|
|
27
|
-
CustomImputation(
|
|
28
|
-
customValue(
|
|
27
|
+
CustomImputation(const ElemType customValue):
|
|
28
|
+
customValue(customValue)
|
|
29
29
|
{
|
|
30
30
|
// nothing to initialize here
|
|
31
31
|
}
|
|
@@ -41,42 +41,26 @@ class CustomImputation
|
|
|
41
41
|
* @param dimension Index of the dimension of the mappedValue.
|
|
42
42
|
* @param columnMajor State of whether the input matrix is columnMajor or not.
|
|
43
43
|
*/
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
template<typename MatType>
|
|
45
|
+
void Impute(MatType& input,
|
|
46
|
+
const typename MatType::elem_type& missingValue,
|
|
46
47
|
const size_t dimension,
|
|
47
48
|
const bool columnMajor = true)
|
|
48
49
|
{
|
|
49
|
-
|
|
50
|
+
typedef typename MatType::elem_type T;
|
|
51
|
+
|
|
52
|
+
// Here we can use .replace() directly.
|
|
50
53
|
if (columnMajor)
|
|
51
|
-
|
|
52
|
-
for (size_t i = 0; i < input.n_cols; ++i)
|
|
53
|
-
{
|
|
54
|
-
if (input(dimension, i) == mappedValue ||
|
|
55
|
-
std::isnan(input(dimension, i)))
|
|
56
|
-
{
|
|
57
|
-
input(dimension, i) = customValue;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
54
|
+
input.row(dimension).replace(missingValue, (T) customValue);
|
|
61
55
|
else
|
|
62
|
-
|
|
63
|
-
for (size_t i = 0; i < input.n_rows; ++i)
|
|
64
|
-
{
|
|
65
|
-
if (input(i, dimension) == mappedValue ||
|
|
66
|
-
std::isnan(input(i, dimension)))
|
|
67
|
-
{
|
|
68
|
-
input(i, dimension) = customValue;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
56
|
+
input.col(dimension).replace(missingValue, (T) customValue);
|
|
72
57
|
}
|
|
73
58
|
|
|
74
59
|
private:
|
|
75
|
-
|
|
76
|
-
|
|
60
|
+
// A user-defined value that the user wants to replace missing values with.
|
|
61
|
+
ElemType customValue;
|
|
77
62
|
}; // class CustomImputation
|
|
78
63
|
|
|
79
|
-
} // namespace data
|
|
80
64
|
} // namespace mlpack
|
|
81
65
|
|
|
82
66
|
#endif
|
|
@@ -15,13 +15,11 @@
|
|
|
15
15
|
#include <mlpack/prereqs.hpp>
|
|
16
16
|
|
|
17
17
|
namespace mlpack {
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
/**
|
|
20
|
-
* A complete-case analysis to remove the
|
|
20
|
+
* A complete-case analysis to remove the columns containing missingValue.
|
|
21
21
|
* Removes all data for a case that has one or more missing values.
|
|
22
|
-
* @tparam T Type of armadillo matrix
|
|
23
22
|
*/
|
|
24
|
-
template <typename T>
|
|
25
23
|
class ListwiseDeletion
|
|
26
24
|
{
|
|
27
25
|
public:
|
|
@@ -30,45 +28,37 @@ class ListwiseDeletion
|
|
|
30
28
|
* remove the whole row or column. The result is overwritten to the input.
|
|
31
29
|
*
|
|
32
30
|
* @param input Matrix that contains mappedValue.
|
|
33
|
-
* @param
|
|
34
|
-
* @param dimension Index of the dimension
|
|
31
|
+
* @param missingValue Value that the user wants to get rid of.
|
|
32
|
+
* @param dimension Index of the dimension to search for missingValue.
|
|
35
33
|
* @param columnMajor State of whether the input matrix is columnMajor or not.
|
|
36
34
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
template<typename MatType>
|
|
36
|
+
void Impute(MatType& input,
|
|
37
|
+
const typename MatType::elem_type& missingValue,
|
|
39
38
|
const size_t dimension,
|
|
40
39
|
const bool columnMajor = true)
|
|
41
40
|
{
|
|
42
|
-
|
|
41
|
+
static_assert(!IsSparse<MatType>::value, "ListwiseDeletion::Impute(): "
|
|
42
|
+
"sparse matrix imputation is not supported; use a dense matrix "
|
|
43
|
+
"instead!");
|
|
43
44
|
|
|
44
|
-
if (
|
|
45
|
+
if (std::isnan(missingValue))
|
|
45
46
|
{
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
{
|
|
51
|
-
colsToKeep.push_back(i);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
input = input.cols(arma::uvec(colsToKeep));
|
|
47
|
+
if (columnMajor)
|
|
48
|
+
input.shed_cols(find_nan(input.row(dimension)));
|
|
49
|
+
else
|
|
50
|
+
input.shed_rows(find_nan(input.col(dimension)));
|
|
55
51
|
}
|
|
56
52
|
else
|
|
57
53
|
{
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
{
|
|
63
|
-
colsToKeep.push_back(i);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
input = input.rows(arma::uvec(colsToKeep));
|
|
54
|
+
if (columnMajor)
|
|
55
|
+
input.shed_cols(find(input.row(dimension) == missingValue));
|
|
56
|
+
else
|
|
57
|
+
input.shed_rows(find(input.col(dimension) == missingValue));
|
|
67
58
|
}
|
|
68
59
|
}
|
|
69
60
|
}; // class ListwiseDeletion
|
|
70
61
|
|
|
71
|
-
} // namespace data
|
|
72
62
|
} // namespace mlpack
|
|
73
63
|
|
|
74
64
|
#endif
|
|
@@ -15,12 +15,10 @@
|
|
|
15
15
|
#include <mlpack/prereqs.hpp>
|
|
16
16
|
|
|
17
17
|
namespace mlpack {
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
/**
|
|
20
|
-
* A simple mean imputation class
|
|
21
|
-
* @tparam T Type of armadillo matrix
|
|
20
|
+
* A simple mean imputation class.
|
|
22
21
|
*/
|
|
23
|
-
template <typename T>
|
|
24
22
|
class MeanImputation
|
|
25
23
|
{
|
|
26
24
|
public:
|
|
@@ -29,76 +27,147 @@ class MeanImputation
|
|
|
29
27
|
* replaces it with the mean of the given dimension. The result is overwritten
|
|
30
28
|
* to the input matrix.
|
|
31
29
|
*
|
|
32
|
-
* @param input Matrix that contains
|
|
33
|
-
* @param
|
|
34
|
-
* @param dimension Index of the dimension
|
|
35
|
-
* @param columnMajor
|
|
30
|
+
* @param input Matrix that contains missingValue.
|
|
31
|
+
* @param missingValue Value to replace with the mean.
|
|
32
|
+
* @param dimension Index of the dimension to impute.
|
|
33
|
+
* @param columnMajor If true, `input` is column major.
|
|
36
34
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
template<typename T>
|
|
36
|
+
static void Impute(arma::Mat<T>& input,
|
|
37
|
+
const T& missingValue,
|
|
38
|
+
const size_t dimension,
|
|
39
|
+
const bool columnMajor = true)
|
|
41
40
|
{
|
|
42
|
-
|
|
43
|
-
size_t elems = 0; //
|
|
44
|
-
|
|
45
|
-
using PairType = std::pair<size_t, size_t>;
|
|
46
|
-
// dimensions and indexes are saved as pairs inside this vector.
|
|
47
|
-
std::vector<PairType> targets;
|
|
41
|
+
T sum = 0;
|
|
42
|
+
size_t elems = 0; // Excluding missingValue.
|
|
48
43
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
// nan. while doing that, remember where mappedValue or NaN exists.
|
|
52
|
-
if (columnMajor)
|
|
44
|
+
// Different implementations if we are searching for NaN.
|
|
45
|
+
if (std::isnan(missingValue))
|
|
53
46
|
{
|
|
54
|
-
|
|
47
|
+
if (columnMajor)
|
|
55
48
|
{
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
#pragma omp parallel for schedule(static)
|
|
50
|
+
for (size_t i = 0; i < input.n_cols; ++i)
|
|
58
51
|
{
|
|
59
|
-
|
|
52
|
+
if (!std::isnan(input(dimension, i)))
|
|
53
|
+
{
|
|
54
|
+
++elems;
|
|
55
|
+
sum += input(dimension, i);
|
|
56
|
+
}
|
|
60
57
|
}
|
|
61
|
-
|
|
58
|
+
}
|
|
59
|
+
else
|
|
60
|
+
{
|
|
61
|
+
#pragma omp parallel for schedule(static)
|
|
62
|
+
for (size_t i = 0; i < input.n_rows; ++i)
|
|
62
63
|
{
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
if (!std::isnan(input(i, dimension)))
|
|
65
|
+
{
|
|
66
|
+
++elems;
|
|
67
|
+
sum += input(i, dimension);
|
|
68
|
+
}
|
|
65
69
|
}
|
|
66
70
|
}
|
|
67
71
|
}
|
|
68
72
|
else
|
|
69
73
|
{
|
|
70
|
-
|
|
74
|
+
if (columnMajor)
|
|
71
75
|
{
|
|
72
|
-
|
|
73
|
-
|
|
76
|
+
#pragma omp parallel for schedule(static)
|
|
77
|
+
for (size_t i = 0; i < input.n_cols; ++i)
|
|
74
78
|
{
|
|
75
|
-
|
|
79
|
+
if (input(dimension, i) != missingValue)
|
|
80
|
+
{
|
|
81
|
+
++elems;
|
|
82
|
+
sum += input(dimension, i);
|
|
83
|
+
}
|
|
76
84
|
}
|
|
77
|
-
|
|
85
|
+
}
|
|
86
|
+
else
|
|
87
|
+
{
|
|
88
|
+
#pragma omp parallel for schedule(static)
|
|
89
|
+
for (size_t i = 0; i < input.n_rows; ++i)
|
|
78
90
|
{
|
|
79
|
-
|
|
80
|
-
|
|
91
|
+
if (input(i, dimension) != missingValue)
|
|
92
|
+
{
|
|
93
|
+
++elems;
|
|
94
|
+
sum += input(i, dimension);
|
|
95
|
+
}
|
|
81
96
|
}
|
|
82
97
|
}
|
|
83
98
|
}
|
|
84
99
|
|
|
85
100
|
if (elems == 0)
|
|
86
|
-
|
|
87
|
-
|
|
101
|
+
{
|
|
102
|
+
throw std::invalid_argument("MeanImputation::Impute(): no non-missing "
|
|
103
|
+
"elements; cannot compute mean!");
|
|
104
|
+
}
|
|
88
105
|
|
|
89
|
-
//
|
|
106
|
+
// Now compute the mean.
|
|
90
107
|
const double mean = sum / elems;
|
|
91
108
|
|
|
92
|
-
//
|
|
93
|
-
|
|
94
|
-
|
|
109
|
+
// Replace all values with the computed mean.
|
|
110
|
+
if (columnMajor)
|
|
111
|
+
input.row(dimension).replace(missingValue, mean);
|
|
112
|
+
else
|
|
113
|
+
input.col(dimension).replace(missingValue, mean);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
template<typename MatType>
|
|
117
|
+
static void Impute(MatType& input,
|
|
118
|
+
const typename MatType::elem_type& missingValue,
|
|
119
|
+
const size_t dimension,
|
|
120
|
+
const bool columnMajor = true)
|
|
121
|
+
{
|
|
122
|
+
static_assert(!IsSparse<MatType>::value, "MeanImputation::Impute(): sparse "
|
|
123
|
+
"matrix imputation is not supported; use a dense matrix instead!");
|
|
124
|
+
|
|
125
|
+
typedef typename MatType::elem_type ElemType;
|
|
126
|
+
|
|
127
|
+
// This less efficient implementation uses Armadillo (or Bandicoot)
|
|
128
|
+
// directly, but at the cost of more memory.
|
|
129
|
+
ElemType meanValue;
|
|
130
|
+
MatType tmp;
|
|
131
|
+
if (std::isnan(missingValue))
|
|
95
132
|
{
|
|
96
|
-
|
|
133
|
+
if (columnMajor)
|
|
134
|
+
tmp = input.row(dimension);
|
|
135
|
+
else
|
|
136
|
+
tmp = input.col(dimension).t(); // make sure it is a row vector
|
|
137
|
+
|
|
138
|
+
tmp.shed_cols(find_nan(tmp));
|
|
97
139
|
}
|
|
140
|
+
else
|
|
141
|
+
{
|
|
142
|
+
typedef typename GetUColType<MatType>::type UCol;
|
|
143
|
+
if (columnMajor)
|
|
144
|
+
{
|
|
145
|
+
tmp = input.submat(UCol({ dimension }),
|
|
146
|
+
find(input.row(dimension) != missingValue));
|
|
147
|
+
}
|
|
148
|
+
else
|
|
149
|
+
{
|
|
150
|
+
tmp = input.submat(
|
|
151
|
+
find(input.col(dimension) != missingValue), UCol({ dimension }));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Compute the mean on the subset of valid elements.
|
|
156
|
+
if (tmp.is_empty())
|
|
157
|
+
{
|
|
158
|
+
throw std::invalid_argument("MeanImputation::Impute(): no non-missing "
|
|
159
|
+
"elements; cannot compute mean!");
|
|
160
|
+
}
|
|
161
|
+
meanValue = mean(vectorise(tmp));
|
|
162
|
+
|
|
163
|
+
// Now impute the computed mean value.
|
|
164
|
+
if (columnMajor)
|
|
165
|
+
input.row(dimension).replace(missingValue, meanValue);
|
|
166
|
+
else
|
|
167
|
+
input.col(dimension).replace(missingValue, meanValue);
|
|
98
168
|
}
|
|
99
169
|
}; // class MeanImputation
|
|
100
170
|
|
|
101
|
-
} // namespace data
|
|
102
171
|
} // namespace mlpack
|
|
103
172
|
|
|
104
173
|
#endif
|