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.
Files changed (415) hide show
  1. mlpack/__init__.py +4 -4
  2. mlpack/adaboost_classify.cp313-win_amd64.pyd +0 -0
  3. mlpack/adaboost_probabilities.cp313-win_amd64.pyd +0 -0
  4. mlpack/adaboost_train.cp313-win_amd64.pyd +0 -0
  5. mlpack/approx_kfn.cp313-win_amd64.pyd +0 -0
  6. mlpack/arma_numpy.cp313-win_amd64.pyd +0 -0
  7. mlpack/bayesian_linear_regression.cp313-win_amd64.pyd +0 -0
  8. mlpack/cf.cp313-win_amd64.pyd +0 -0
  9. mlpack/dbscan.cp313-win_amd64.pyd +0 -0
  10. mlpack/decision_tree.cp313-win_amd64.pyd +0 -0
  11. mlpack/det.cp313-win_amd64.pyd +0 -0
  12. mlpack/emst.cp313-win_amd64.pyd +0 -0
  13. mlpack/fastmks.cp313-win_amd64.pyd +0 -0
  14. mlpack/gmm_generate.cp313-win_amd64.pyd +0 -0
  15. mlpack/gmm_probability.cp313-win_amd64.pyd +0 -0
  16. mlpack/gmm_train.cp313-win_amd64.pyd +0 -0
  17. mlpack/hmm_generate.cp313-win_amd64.pyd +0 -0
  18. mlpack/hmm_loglik.cp313-win_amd64.pyd +0 -0
  19. mlpack/hmm_train.cp313-win_amd64.pyd +0 -0
  20. mlpack/hmm_viterbi.cp313-win_amd64.pyd +0 -0
  21. mlpack/hoeffding_tree.cp313-win_amd64.pyd +0 -0
  22. mlpack/image_converter.cp313-win_amd64.pyd +0 -0
  23. mlpack/include/mlpack/base.hpp +1 -0
  24. mlpack/include/mlpack/core/arma_extend/find_nan.hpp +63 -0
  25. mlpack/include/mlpack/core/cereal/low_precision.hpp +48 -0
  26. mlpack/include/mlpack/core/cv/cv_base.hpp +11 -11
  27. mlpack/include/mlpack/core/cv/cv_base_impl.hpp +7 -7
  28. mlpack/include/mlpack/core/cv/k_fold_cv.hpp +4 -4
  29. mlpack/include/mlpack/core/cv/k_fold_cv_impl.hpp +4 -4
  30. mlpack/include/mlpack/core/cv/meta_info_extractor.hpp +10 -10
  31. mlpack/include/mlpack/core/cv/metrics/f1_impl.hpp +1 -1
  32. mlpack/include/mlpack/core/cv/metrics/facilities.hpp +2 -1
  33. mlpack/include/mlpack/core/cv/metrics/precision_impl.hpp +1 -1
  34. mlpack/include/mlpack/core/cv/metrics/r2_score_impl.hpp +1 -1
  35. mlpack/include/mlpack/core/cv/metrics/silhouette_score_impl.hpp +1 -1
  36. mlpack/include/mlpack/core/cv/simple_cv.hpp +4 -4
  37. mlpack/include/mlpack/core/cv/simple_cv_impl.hpp +2 -2
  38. mlpack/include/mlpack/core/data/binarize.hpp +0 -2
  39. mlpack/include/mlpack/core/data/check_categorical_param.hpp +0 -2
  40. mlpack/include/mlpack/core/data/combine_options.hpp +151 -0
  41. mlpack/include/mlpack/core/data/confusion_matrix.hpp +0 -2
  42. mlpack/include/mlpack/core/data/confusion_matrix_impl.hpp +0 -2
  43. mlpack/include/mlpack/core/data/data.hpp +6 -4
  44. mlpack/include/mlpack/core/data/data_options.hpp +341 -18
  45. mlpack/include/mlpack/core/data/dataset_mapper.hpp +3 -5
  46. mlpack/include/mlpack/core/data/dataset_mapper_impl.hpp +0 -2
  47. mlpack/include/mlpack/core/data/detect_file_type.hpp +34 -5
  48. mlpack/include/mlpack/core/data/detect_file_type_impl.hpp +185 -11
  49. mlpack/include/mlpack/core/data/extension.hpp +2 -4
  50. mlpack/include/mlpack/core/data/font8x8_basic.h +152 -0
  51. mlpack/include/mlpack/core/data/has_serialize.hpp +0 -2
  52. mlpack/include/mlpack/core/data/image_bounding_box.hpp +36 -0
  53. mlpack/include/mlpack/core/data/image_bounding_box_impl.hpp +155 -0
  54. mlpack/include/mlpack/core/data/image_layout.hpp +63 -0
  55. mlpack/include/mlpack/core/data/image_layout_impl.hpp +75 -0
  56. mlpack/include/mlpack/core/data/image_letterbox.hpp +116 -0
  57. mlpack/include/mlpack/core/data/image_options.hpp +257 -0
  58. mlpack/include/mlpack/core/data/image_resize_crop.hpp +113 -48
  59. mlpack/include/mlpack/core/data/imputation_methods/custom_imputation.hpp +16 -32
  60. mlpack/include/mlpack/core/data/imputation_methods/listwise_deletion.hpp +19 -29
  61. mlpack/include/mlpack/core/data/imputation_methods/mean_imputation.hpp +113 -44
  62. mlpack/include/mlpack/core/data/imputation_methods/median_imputation.hpp +44 -43
  63. mlpack/include/mlpack/core/data/imputer.hpp +41 -49
  64. mlpack/include/mlpack/core/data/is_naninf.hpp +0 -2
  65. mlpack/include/mlpack/core/data/load.hpp +49 -233
  66. mlpack/include/mlpack/core/data/load_arff.hpp +0 -2
  67. mlpack/include/mlpack/core/data/load_arff_impl.hpp +2 -4
  68. mlpack/include/mlpack/core/data/load_categorical.hpp +1 -4
  69. mlpack/include/mlpack/core/data/load_categorical_impl.hpp +10 -26
  70. mlpack/include/mlpack/core/data/load_dense.hpp +279 -0
  71. mlpack/include/mlpack/core/data/load_deprecated.hpp +466 -0
  72. mlpack/include/mlpack/core/data/load_image.hpp +71 -43
  73. mlpack/include/mlpack/core/data/load_impl.hpp +95 -274
  74. mlpack/include/mlpack/core/data/load_model.hpp +62 -0
  75. mlpack/include/mlpack/core/data/load_numeric.hpp +124 -87
  76. mlpack/include/mlpack/core/data/load_sparse.hpp +91 -0
  77. mlpack/include/mlpack/core/data/map_policies/datatype.hpp +0 -2
  78. mlpack/include/mlpack/core/data/map_policies/increment_policy.hpp +0 -2
  79. mlpack/include/mlpack/core/data/map_policies/map_policies.hpp +0 -1
  80. mlpack/include/mlpack/core/data/matrix_options.hpp +152 -20
  81. mlpack/include/mlpack/core/data/normalize_labels.hpp +0 -2
  82. mlpack/include/mlpack/core/data/normalize_labels_impl.hpp +0 -2
  83. mlpack/include/mlpack/core/data/one_hot_encoding.hpp +2 -4
  84. mlpack/include/mlpack/core/data/one_hot_encoding_impl.hpp +3 -5
  85. mlpack/include/mlpack/core/data/save.hpp +26 -120
  86. mlpack/include/mlpack/core/data/save_dense.hpp +42 -0
  87. mlpack/include/mlpack/core/data/save_deprecated.hpp +308 -0
  88. mlpack/include/mlpack/core/data/save_image.hpp +82 -42
  89. mlpack/include/mlpack/core/data/save_impl.hpp +60 -245
  90. mlpack/include/mlpack/core/data/save_matrix.hpp +45 -0
  91. mlpack/include/mlpack/core/data/save_model.hpp +61 -0
  92. mlpack/include/mlpack/core/data/save_numeric.hpp +60 -0
  93. mlpack/include/mlpack/core/data/save_sparse.hpp +44 -0
  94. mlpack/include/mlpack/core/data/scaler_methods/max_abs_scaler.hpp +0 -2
  95. mlpack/include/mlpack/core/data/scaler_methods/mean_normalization.hpp +2 -4
  96. mlpack/include/mlpack/core/data/scaler_methods/min_max_scaler.hpp +0 -2
  97. mlpack/include/mlpack/core/data/scaler_methods/pca_whitening.hpp +1 -3
  98. mlpack/include/mlpack/core/data/scaler_methods/standard_scaler.hpp +2 -4
  99. mlpack/include/mlpack/core/data/scaler_methods/zca_whitening.hpp +0 -2
  100. mlpack/include/mlpack/core/data/split_data.hpp +6 -8
  101. mlpack/include/mlpack/core/data/string_algorithms.hpp +0 -2
  102. mlpack/include/mlpack/core/data/string_encoding.hpp +0 -2
  103. mlpack/include/mlpack/core/data/string_encoding_dictionary.hpp +0 -2
  104. mlpack/include/mlpack/core/data/string_encoding_impl.hpp +0 -2
  105. mlpack/include/mlpack/core/data/string_encoding_policies/bag_of_words_encoding_policy.hpp +0 -2
  106. mlpack/include/mlpack/core/data/string_encoding_policies/dictionary_encoding_policy.hpp +0 -2
  107. mlpack/include/mlpack/core/data/string_encoding_policies/policy_traits.hpp +0 -2
  108. mlpack/include/mlpack/core/data/string_encoding_policies/tf_idf_encoding_policy.hpp +0 -2
  109. mlpack/include/mlpack/core/data/text_options.hpp +91 -53
  110. mlpack/include/mlpack/core/data/tokenizers/char_extract.hpp +0 -2
  111. mlpack/include/mlpack/core/data/tokenizers/split_by_any_of.hpp +0 -2
  112. mlpack/include/mlpack/core/distributions/gamma_distribution_impl.hpp +4 -4
  113. mlpack/include/mlpack/core/distributions/laplace_distribution.hpp +9 -9
  114. mlpack/include/mlpack/core/distributions/laplace_distribution_impl.hpp +7 -7
  115. mlpack/include/mlpack/core/hpt/cv_function.hpp +2 -2
  116. mlpack/include/mlpack/core/hpt/cv_function_impl.hpp +2 -2
  117. mlpack/include/mlpack/core/hpt/hpt.hpp +4 -4
  118. mlpack/include/mlpack/core/hpt/hpt_impl.hpp +9 -9
  119. mlpack/include/mlpack/core/math/make_alias.hpp +7 -5
  120. mlpack/include/mlpack/core/math/random.hpp +19 -5
  121. mlpack/include/mlpack/core/math/shuffle_data.hpp +79 -245
  122. mlpack/include/mlpack/core/metrics/non_maximal_suppression_impl.hpp +9 -10
  123. mlpack/include/mlpack/core/stb/bundled/stb_image_resize2.h +291 -239
  124. mlpack/include/mlpack/core/tree/binary_space_tree/rp_tree_mean_split_impl.hpp +7 -7
  125. mlpack/include/mlpack/core/tree/cellbound.hpp +2 -2
  126. mlpack/include/mlpack/core/tree/cosine_tree/cosine_tree_impl.hpp +10 -10
  127. mlpack/include/mlpack/core/tree/octree/octree.hpp +10 -0
  128. mlpack/include/mlpack/core/tree/octree/octree_impl.hpp +14 -4
  129. mlpack/include/mlpack/core/util/arma_traits.hpp +25 -38
  130. mlpack/include/mlpack/core/util/coot_traits.hpp +97 -0
  131. mlpack/include/mlpack/core/util/forward.hpp +0 -2
  132. mlpack/include/mlpack/core/util/param.hpp +4 -4
  133. mlpack/include/mlpack/core/util/params_impl.hpp +2 -2
  134. mlpack/include/mlpack/core/util/using.hpp +29 -2
  135. mlpack/include/mlpack/core/util/version.hpp +5 -3
  136. mlpack/include/mlpack/core/util/version_impl.hpp +3 -6
  137. mlpack/include/mlpack/methods/adaboost/adaboost_classify_main.cpp +1 -1
  138. mlpack/include/mlpack/methods/adaboost/adaboost_main.cpp +3 -3
  139. mlpack/include/mlpack/methods/adaboost/adaboost_train_main.cpp +2 -2
  140. mlpack/include/mlpack/methods/ann/activation_functions/activation_functions.hpp +1 -0
  141. mlpack/include/mlpack/methods/ann/activation_functions/bipolar_sigmoid_function.hpp +6 -4
  142. mlpack/include/mlpack/methods/ann/activation_functions/elish_function.hpp +17 -12
  143. mlpack/include/mlpack/methods/ann/activation_functions/elliot_function.hpp +9 -7
  144. mlpack/include/mlpack/methods/ann/activation_functions/gaussian_function.hpp +7 -6
  145. mlpack/include/mlpack/methods/ann/activation_functions/gelu_exact_function.hpp +73 -0
  146. mlpack/include/mlpack/methods/ann/activation_functions/gelu_function.hpp +27 -16
  147. mlpack/include/mlpack/methods/ann/activation_functions/hard_sigmoid_function.hpp +8 -6
  148. mlpack/include/mlpack/methods/ann/activation_functions/hard_swish_function.hpp +6 -4
  149. mlpack/include/mlpack/methods/ann/activation_functions/hyper_sinh_function.hpp +13 -8
  150. mlpack/include/mlpack/methods/ann/activation_functions/identity_function.hpp +6 -4
  151. mlpack/include/mlpack/methods/ann/activation_functions/inverse_quadratic_function.hpp +8 -6
  152. mlpack/include/mlpack/methods/ann/activation_functions/lisht_function.hpp +7 -5
  153. mlpack/include/mlpack/methods/ann/activation_functions/logistic_function.hpp +14 -12
  154. mlpack/include/mlpack/methods/ann/activation_functions/mish_function.hpp +7 -5
  155. mlpack/include/mlpack/methods/ann/activation_functions/multi_quadratic_function.hpp +6 -4
  156. mlpack/include/mlpack/methods/ann/activation_functions/poisson1_function.hpp +4 -2
  157. mlpack/include/mlpack/methods/ann/activation_functions/quadratic_function.hpp +6 -4
  158. mlpack/include/mlpack/methods/ann/activation_functions/rectifier_function.hpp +10 -10
  159. mlpack/include/mlpack/methods/ann/activation_functions/silu_function.hpp +10 -8
  160. mlpack/include/mlpack/methods/ann/activation_functions/softplus_function.hpp +12 -9
  161. mlpack/include/mlpack/methods/ann/activation_functions/softsign_function.hpp +15 -23
  162. mlpack/include/mlpack/methods/ann/activation_functions/spline_function.hpp +9 -7
  163. mlpack/include/mlpack/methods/ann/activation_functions/swish_function.hpp +11 -9
  164. mlpack/include/mlpack/methods/ann/activation_functions/tanh_exponential_function.hpp +9 -7
  165. mlpack/include/mlpack/methods/ann/activation_functions/tanh_function.hpp +10 -7
  166. mlpack/include/mlpack/methods/ann/ann.hpp +3 -0
  167. mlpack/include/mlpack/methods/ann/convolution_rules/base_convolution.hpp +197 -0
  168. mlpack/include/mlpack/methods/ann/convolution_rules/convolution_rules.hpp +1 -2
  169. mlpack/include/mlpack/methods/ann/convolution_rules/im2col_convolution.hpp +215 -0
  170. mlpack/include/mlpack/methods/ann/convolution_rules/naive_convolution.hpp +109 -154
  171. mlpack/include/mlpack/methods/ann/dag_network.hpp +728 -0
  172. mlpack/include/mlpack/methods/ann/dag_network_impl.hpp +1640 -0
  173. mlpack/include/mlpack/methods/ann/dists/bernoulli_distribution_impl.hpp +1 -1
  174. mlpack/include/mlpack/methods/ann/dists/normal_distribution_impl.hpp +7 -2
  175. mlpack/include/mlpack/methods/ann/ffn.hpp +39 -3
  176. mlpack/include/mlpack/methods/ann/ffn_impl.hpp +14 -32
  177. mlpack/include/mlpack/methods/ann/init_rules/const_init.hpp +4 -4
  178. mlpack/include/mlpack/methods/ann/init_rules/gaussian_init.hpp +6 -2
  179. mlpack/include/mlpack/methods/ann/init_rules/he_init.hpp +4 -2
  180. mlpack/include/mlpack/methods/ann/init_rules/kathirvalavakumar_subavathi_init.hpp +3 -3
  181. mlpack/include/mlpack/methods/ann/init_rules/lecun_normal_init.hpp +4 -2
  182. mlpack/include/mlpack/methods/ann/init_rules/nguyen_widrow_init.hpp +2 -2
  183. mlpack/include/mlpack/methods/ann/init_rules/oivs_init.hpp +2 -2
  184. mlpack/include/mlpack/methods/ann/init_rules/orthogonal_init.hpp +2 -2
  185. mlpack/include/mlpack/methods/ann/init_rules/random_init.hpp +8 -4
  186. mlpack/include/mlpack/methods/ann/layer/adaptive_max_pooling.hpp +21 -23
  187. mlpack/include/mlpack/methods/ann/layer/adaptive_max_pooling_impl.hpp +15 -15
  188. mlpack/include/mlpack/methods/ann/layer/adaptive_mean_pooling.hpp +21 -23
  189. mlpack/include/mlpack/methods/ann/layer/adaptive_mean_pooling_impl.hpp +16 -16
  190. mlpack/include/mlpack/methods/ann/layer/add.hpp +18 -18
  191. mlpack/include/mlpack/methods/ann/layer/add_impl.hpp +13 -13
  192. mlpack/include/mlpack/methods/ann/layer/add_merge.hpp +19 -18
  193. mlpack/include/mlpack/methods/ann/layer/add_merge_impl.hpp +13 -13
  194. mlpack/include/mlpack/methods/ann/layer/alpha_dropout.hpp +17 -16
  195. mlpack/include/mlpack/methods/ann/layer/alpha_dropout_impl.hpp +14 -13
  196. mlpack/include/mlpack/methods/ann/layer/base_layer.hpp +28 -51
  197. mlpack/include/mlpack/methods/ann/layer/batch_norm.hpp +16 -18
  198. mlpack/include/mlpack/methods/ann/layer/batch_norm_impl.hpp +55 -54
  199. mlpack/include/mlpack/methods/ann/layer/c_relu.hpp +18 -20
  200. mlpack/include/mlpack/methods/ann/layer/c_relu_impl.hpp +20 -25
  201. mlpack/include/mlpack/methods/ann/layer/celu.hpp +14 -19
  202. mlpack/include/mlpack/methods/ann/layer/celu_impl.hpp +25 -34
  203. mlpack/include/mlpack/methods/ann/layer/concat.hpp +18 -18
  204. mlpack/include/mlpack/methods/ann/layer/concat_impl.hpp +13 -13
  205. mlpack/include/mlpack/methods/ann/layer/concatenate.hpp +18 -18
  206. mlpack/include/mlpack/methods/ann/layer/concatenate_impl.hpp +14 -14
  207. mlpack/include/mlpack/methods/ann/layer/convolution.hpp +42 -47
  208. mlpack/include/mlpack/methods/ann/layer/convolution_impl.hpp +170 -159
  209. mlpack/include/mlpack/methods/ann/layer/dropconnect.hpp +18 -20
  210. mlpack/include/mlpack/methods/ann/layer/dropconnect_impl.hpp +20 -20
  211. mlpack/include/mlpack/methods/ann/layer/dropout.hpp +17 -19
  212. mlpack/include/mlpack/methods/ann/layer/dropout_impl.hpp +14 -21
  213. mlpack/include/mlpack/methods/ann/layer/elu.hpp +23 -25
  214. mlpack/include/mlpack/methods/ann/layer/elu_impl.hpp +20 -27
  215. mlpack/include/mlpack/methods/ann/layer/embedding.hpp +160 -0
  216. mlpack/include/mlpack/methods/ann/layer/embedding_impl.hpp +189 -0
  217. mlpack/include/mlpack/methods/ann/layer/flexible_relu.hpp +17 -19
  218. mlpack/include/mlpack/methods/ann/layer/flexible_relu_impl.hpp +20 -20
  219. mlpack/include/mlpack/methods/ann/layer/ftswish.hpp +17 -18
  220. mlpack/include/mlpack/methods/ann/layer/ftswish_impl.hpp +17 -35
  221. mlpack/include/mlpack/methods/ann/layer/grouped_convolution.hpp +27 -33
  222. mlpack/include/mlpack/methods/ann/layer/grouped_convolution_impl.hpp +170 -163
  223. mlpack/include/mlpack/methods/ann/layer/gru.hpp +195 -0
  224. mlpack/include/mlpack/methods/ann/layer/gru_impl.hpp +325 -0
  225. mlpack/include/mlpack/methods/ann/layer/hard_tanh.hpp +13 -15
  226. mlpack/include/mlpack/methods/ann/layer/hard_tanh_impl.hpp +12 -12
  227. mlpack/include/mlpack/methods/ann/layer/identity.hpp +19 -20
  228. mlpack/include/mlpack/methods/ann/layer/identity_impl.hpp +12 -12
  229. mlpack/include/mlpack/methods/ann/layer/layer.hpp +37 -33
  230. mlpack/include/mlpack/methods/ann/layer/layer_norm.hpp +11 -13
  231. mlpack/include/mlpack/methods/ann/layer/layer_norm_impl.hpp +16 -16
  232. mlpack/include/mlpack/methods/ann/layer/layer_types.hpp +4 -1
  233. mlpack/include/mlpack/methods/ann/layer/leaky_relu.hpp +20 -23
  234. mlpack/include/mlpack/methods/ann/layer/leaky_relu_impl.hpp +12 -13
  235. mlpack/include/mlpack/methods/ann/layer/linear.hpp +16 -18
  236. mlpack/include/mlpack/methods/ann/layer/linear3d.hpp +18 -18
  237. mlpack/include/mlpack/methods/ann/layer/linear3d_impl.hpp +18 -18
  238. mlpack/include/mlpack/methods/ann/layer/linear_impl.hpp +15 -15
  239. mlpack/include/mlpack/methods/ann/layer/linear_no_bias.hpp +15 -17
  240. mlpack/include/mlpack/methods/ann/layer/linear_no_bias_impl.hpp +20 -20
  241. mlpack/include/mlpack/methods/ann/layer/linear_recurrent.hpp +25 -14
  242. mlpack/include/mlpack/methods/ann/layer/linear_recurrent_impl.hpp +60 -31
  243. mlpack/include/mlpack/methods/ann/layer/log_softmax.hpp +17 -36
  244. mlpack/include/mlpack/methods/ann/layer/log_softmax_impl.hpp +58 -74
  245. mlpack/include/mlpack/methods/ann/layer/lstm.hpp +26 -29
  246. mlpack/include/mlpack/methods/ann/layer/lstm_impl.hpp +128 -124
  247. mlpack/include/mlpack/methods/ann/layer/max_pooling.hpp +19 -19
  248. mlpack/include/mlpack/methods/ann/layer/max_pooling_impl.hpp +14 -14
  249. mlpack/include/mlpack/methods/ann/layer/mean_pooling.hpp +24 -24
  250. mlpack/include/mlpack/methods/ann/layer/mean_pooling_impl.hpp +16 -16
  251. mlpack/include/mlpack/methods/ann/layer/multi_layer.hpp +36 -6
  252. mlpack/include/mlpack/methods/ann/layer/multi_layer_impl.hpp +6 -2
  253. mlpack/include/mlpack/methods/ann/layer/multihead_attention.hpp +26 -22
  254. mlpack/include/mlpack/methods/ann/layer/multihead_attention_impl.hpp +161 -64
  255. mlpack/include/mlpack/methods/ann/layer/nearest_interpolation.hpp +28 -25
  256. mlpack/include/mlpack/methods/ann/layer/nearest_interpolation_impl.hpp +36 -37
  257. mlpack/include/mlpack/methods/ann/layer/noisylinear.hpp +39 -42
  258. mlpack/include/mlpack/methods/ann/layer/noisylinear_impl.hpp +18 -18
  259. mlpack/include/mlpack/methods/ann/layer/padding.hpp +21 -17
  260. mlpack/include/mlpack/methods/ann/layer/padding_impl.hpp +33 -19
  261. mlpack/include/mlpack/methods/ann/layer/parametric_relu.hpp +26 -28
  262. mlpack/include/mlpack/methods/ann/layer/parametric_relu_impl.hpp +18 -18
  263. mlpack/include/mlpack/methods/ann/layer/radial_basis_function.hpp +41 -28
  264. mlpack/include/mlpack/methods/ann/layer/radial_basis_function_impl.hpp +42 -17
  265. mlpack/include/mlpack/methods/ann/layer/recurrent_layer.hpp +13 -0
  266. mlpack/include/mlpack/methods/ann/layer/relu6.hpp +19 -21
  267. mlpack/include/mlpack/methods/ann/layer/relu6_impl.hpp +14 -14
  268. mlpack/include/mlpack/methods/ann/layer/repeat.hpp +24 -25
  269. mlpack/include/mlpack/methods/ann/layer/repeat_impl.hpp +10 -10
  270. mlpack/include/mlpack/methods/ann/layer/serialization.hpp +64 -54
  271. mlpack/include/mlpack/methods/ann/layer/softmax.hpp +20 -20
  272. mlpack/include/mlpack/methods/ann/layer/softmax_impl.hpp +10 -10
  273. mlpack/include/mlpack/methods/ann/layer/softmin.hpp +20 -23
  274. mlpack/include/mlpack/methods/ann/layer/softmin_impl.hpp +10 -10
  275. mlpack/include/mlpack/methods/ann/layer/sum_reduce.hpp +103 -0
  276. mlpack/include/mlpack/methods/ann/layer/sum_reduce_impl.hpp +143 -0
  277. mlpack/include/mlpack/methods/ann/loss_functions/cosine_embedding_loss_impl.hpp +3 -3
  278. mlpack/include/mlpack/methods/ann/loss_functions/mean_bias_error_impl.hpp +1 -1
  279. mlpack/include/mlpack/methods/ann/loss_functions/multilabel_softmargin_loss_impl.hpp +1 -1
  280. mlpack/include/mlpack/methods/ann/loss_functions/negative_log_likelihood.hpp +2 -2
  281. mlpack/include/mlpack/methods/ann/loss_functions/negative_log_likelihood_impl.hpp +29 -15
  282. mlpack/include/mlpack/methods/ann/loss_functions/poisson_nll_loss_impl.hpp +1 -1
  283. mlpack/include/mlpack/methods/ann/models/models.hpp +17 -0
  284. mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_layer.hpp +151 -0
  285. mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_layer_impl.hpp +265 -0
  286. mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_tiny.hpp +187 -0
  287. mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_tiny_impl.hpp +206 -0
  288. mlpack/include/mlpack/methods/ann/regularizer/orthogonal_regularizer_impl.hpp +5 -3
  289. mlpack/include/mlpack/methods/ann/rnn.hpp +136 -42
  290. mlpack/include/mlpack/methods/ann/rnn_impl.hpp +230 -38
  291. mlpack/include/mlpack/methods/approx_kfn/drusilla_select_impl.hpp +1 -1
  292. mlpack/include/mlpack/methods/bayesian_linear_regression/bayesian_linear_regression_main.cpp +1 -1
  293. mlpack/include/mlpack/methods/bias_svd/bias_svd_function_impl.hpp +1 -1
  294. mlpack/include/mlpack/methods/cf/cf_model.hpp +1 -1
  295. mlpack/include/mlpack/methods/decision_tree/decision_tree.hpp +6 -6
  296. mlpack/include/mlpack/methods/decision_tree/decision_tree_impl.hpp +12 -12
  297. mlpack/include/mlpack/methods/decision_tree/decision_tree_main.cpp +0 -1
  298. mlpack/include/mlpack/methods/decision_tree/decision_tree_regressor.hpp +6 -6
  299. mlpack/include/mlpack/methods/decision_tree/decision_tree_regressor_impl.hpp +12 -12
  300. mlpack/include/mlpack/methods/det/det_main.cpp +1 -1
  301. mlpack/include/mlpack/methods/hmm/hmm_train_main.cpp +4 -4
  302. mlpack/include/mlpack/methods/hmm/hmm_util_impl.hpp +2 -2
  303. mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree.hpp +6 -6
  304. mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_impl.hpp +31 -31
  305. mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_main.cpp +1 -2
  306. mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_model.hpp +2 -2
  307. mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_model_impl.hpp +1 -1
  308. mlpack/include/mlpack/methods/kde/kde_rules_impl.hpp +6 -6
  309. mlpack/include/mlpack/methods/lars/lars_impl.hpp +3 -3
  310. mlpack/include/mlpack/methods/linear_svm/linear_svm_function_impl.hpp +4 -4
  311. mlpack/include/mlpack/methods/linear_svm/linear_svm_main.cpp +3 -3
  312. mlpack/include/mlpack/methods/lmnn/lmnn_main.cpp +1 -1
  313. mlpack/include/mlpack/methods/lsh/lsh_main.cpp +1 -1
  314. mlpack/include/mlpack/methods/matrix_completion/matrix_completion_impl.hpp +1 -1
  315. mlpack/include/mlpack/methods/naive_bayes/naive_bayes_classifier_impl.hpp +1 -1
  316. mlpack/include/mlpack/methods/naive_bayes/nbc_main.cpp +3 -3
  317. mlpack/include/mlpack/methods/nca/nca_main.cpp +1 -1
  318. mlpack/include/mlpack/methods/neighbor_search/kfn_main.cpp +8 -8
  319. mlpack/include/mlpack/methods/neighbor_search/knn_main.cpp +8 -8
  320. mlpack/include/mlpack/methods/neighbor_search/neighbor_search.hpp +154 -34
  321. mlpack/include/mlpack/methods/neighbor_search/neighbor_search_impl.hpp +190 -51
  322. mlpack/include/mlpack/methods/neighbor_search/neighbor_search_stat.hpp +10 -0
  323. mlpack/include/mlpack/methods/neighbor_search/ns_model.hpp +15 -15
  324. mlpack/include/mlpack/methods/neighbor_search/ns_model_impl.hpp +55 -46
  325. mlpack/include/mlpack/methods/neighbor_search/typedef.hpp +42 -2
  326. mlpack/include/mlpack/methods/pca/pca_impl.hpp +2 -2
  327. mlpack/include/mlpack/methods/perceptron/perceptron.hpp +2 -2
  328. mlpack/include/mlpack/methods/perceptron/perceptron_impl.hpp +1 -1
  329. mlpack/include/mlpack/methods/perceptron/perceptron_main.cpp +2 -2
  330. mlpack/include/mlpack/methods/preprocess/image_converter_main.cpp +2 -3
  331. mlpack/include/mlpack/methods/preprocess/preprocess_binarize_main.cpp +2 -2
  332. mlpack/include/mlpack/methods/preprocess/preprocess_describe_main.cpp +0 -1
  333. mlpack/include/mlpack/methods/preprocess/preprocess_imputer_main.cpp +50 -129
  334. mlpack/include/mlpack/methods/preprocess/preprocess_one_hot_encoding_main.cpp +6 -6
  335. mlpack/include/mlpack/methods/preprocess/preprocess_scale_main.cpp +2 -3
  336. mlpack/include/mlpack/methods/preprocess/preprocess_split_main.cpp +3 -4
  337. mlpack/include/mlpack/methods/preprocess/scaling_model.hpp +6 -8
  338. mlpack/include/mlpack/methods/preprocess/scaling_model_impl.hpp +18 -20
  339. mlpack/include/mlpack/methods/random_forest/random_forest.hpp +5 -5
  340. mlpack/include/mlpack/methods/random_forest/random_forest_impl.hpp +9 -9
  341. mlpack/include/mlpack/methods/range_search/range_search_main.cpp +1 -1
  342. mlpack/include/mlpack/methods/rann/krann_main.cpp +1 -1
  343. mlpack/include/mlpack/methods/regularized_svd/regularized_svd_function_impl.hpp +1 -1
  344. mlpack/include/mlpack/methods/reinforcement_learning/async_learning_impl.hpp +8 -8
  345. mlpack/include/mlpack/methods/reinforcement_learning/ddpg_impl.hpp +16 -16
  346. mlpack/include/mlpack/methods/reinforcement_learning/environment/acrobot.hpp +4 -4
  347. mlpack/include/mlpack/methods/reinforcement_learning/environment/cart_pole.hpp +3 -3
  348. mlpack/include/mlpack/methods/reinforcement_learning/environment/cont_double_pole_cart.hpp +6 -5
  349. mlpack/include/mlpack/methods/reinforcement_learning/environment/pendulum.hpp +6 -5
  350. mlpack/include/mlpack/methods/reinforcement_learning/policy/aggregated_policy.hpp +2 -2
  351. mlpack/include/mlpack/methods/reinforcement_learning/q_learning_impl.hpp +10 -10
  352. mlpack/include/mlpack/methods/reinforcement_learning/q_networks/categorical_dqn.hpp +21 -17
  353. mlpack/include/mlpack/methods/reinforcement_learning/q_networks/dueling_dqn.hpp +69 -77
  354. mlpack/include/mlpack/methods/reinforcement_learning/q_networks/simple_dqn.hpp +9 -9
  355. mlpack/include/mlpack/methods/reinforcement_learning/sac_impl.hpp +14 -14
  356. mlpack/include/mlpack/methods/reinforcement_learning/td3_impl.hpp +14 -14
  357. mlpack/include/mlpack/methods/softmax_regression/softmax_regression_function_impl.hpp +1 -1
  358. mlpack/include/mlpack/methods/svdplusplus/svdplusplus_function_impl.hpp +1 -1
  359. mlpack/include/mlpack/namespace_compat.hpp +1 -0
  360. mlpack/include/mlpack/prereqs.hpp +1 -0
  361. mlpack/kde.cp313-win_amd64.pyd +0 -0
  362. mlpack/kernel_pca.cp313-win_amd64.pyd +0 -0
  363. mlpack/kfn.cp313-win_amd64.pyd +0 -0
  364. mlpack/kmeans.cp313-win_amd64.pyd +0 -0
  365. mlpack/knn.cp313-win_amd64.pyd +0 -0
  366. mlpack/krann.cp313-win_amd64.pyd +0 -0
  367. mlpack/lars.cp313-win_amd64.pyd +0 -0
  368. mlpack/linear_regression_predict.cp313-win_amd64.pyd +0 -0
  369. mlpack/linear_regression_train.cp313-win_amd64.pyd +0 -0
  370. mlpack/linear_svm.cp313-win_amd64.pyd +0 -0
  371. mlpack/lmnn.cp313-win_amd64.pyd +0 -0
  372. mlpack/local_coordinate_coding.cp313-win_amd64.pyd +0 -0
  373. mlpack/logistic_regression.cp313-win_amd64.pyd +0 -0
  374. mlpack/lsh.cp313-win_amd64.pyd +0 -0
  375. mlpack/mean_shift.cp313-win_amd64.pyd +0 -0
  376. mlpack/nbc.cp313-win_amd64.pyd +0 -0
  377. mlpack/nca.cp313-win_amd64.pyd +0 -0
  378. mlpack/nmf.cp313-win_amd64.pyd +0 -0
  379. mlpack/pca.cp313-win_amd64.pyd +0 -0
  380. mlpack/perceptron.cp313-win_amd64.pyd +0 -0
  381. mlpack/preprocess_binarize.cp313-win_amd64.pyd +0 -0
  382. mlpack/preprocess_describe.cp313-win_amd64.pyd +0 -0
  383. mlpack/preprocess_one_hot_encoding.cp313-win_amd64.pyd +0 -0
  384. mlpack/preprocess_scale.cp313-win_amd64.pyd +0 -0
  385. mlpack/preprocess_split.cp313-win_amd64.pyd +0 -0
  386. mlpack/radical.cp313-win_amd64.pyd +0 -0
  387. mlpack/random_forest.cp313-win_amd64.pyd +0 -0
  388. mlpack/softmax_regression.cp313-win_amd64.pyd +0 -0
  389. mlpack/sparse_coding.cp313-win_amd64.pyd +0 -0
  390. mlpack-4.7.0.dist-info/DELVEWHEEL +2 -0
  391. {mlpack-4.6.2.dist-info → mlpack-4.7.0.dist-info}/METADATA +2 -2
  392. {mlpack-4.6.2.dist-info → mlpack-4.7.0.dist-info}/RECORD +396 -377
  393. {mlpack-4.6.2.dist-info → mlpack-4.7.0.dist-info}/WHEEL +1 -1
  394. mlpack/include/mlpack/core/data/format.hpp +0 -31
  395. mlpack/include/mlpack/core/data/image_info.hpp +0 -102
  396. mlpack/include/mlpack/core/data/image_info_impl.hpp +0 -84
  397. mlpack/include/mlpack/core/data/load_image_impl.hpp +0 -171
  398. mlpack/include/mlpack/core/data/load_model_impl.hpp +0 -115
  399. mlpack/include/mlpack/core/data/load_vec_impl.hpp +0 -154
  400. mlpack/include/mlpack/core/data/map_policies/missing_policy.hpp +0 -148
  401. mlpack/include/mlpack/core/data/save_image_impl.hpp +0 -170
  402. mlpack/include/mlpack/core/data/types.hpp +0 -61
  403. mlpack/include/mlpack/core/data/types_impl.hpp +0 -83
  404. mlpack/include/mlpack/core/data/utilities.hpp +0 -158
  405. mlpack/include/mlpack/core/util/gitversion.hpp +0 -1
  406. mlpack/include/mlpack/methods/ann/convolution_rules/fft_convolution.hpp +0 -213
  407. mlpack/include/mlpack/methods/ann/convolution_rules/svd_convolution.hpp +0 -201
  408. mlpack/include/mlpack/methods/ann/layer/not_adapted/gru.hpp +0 -226
  409. mlpack/include/mlpack/methods/ann/layer/not_adapted/gru_impl.hpp +0 -367
  410. mlpack/include/mlpack/methods/ann/layer/not_adapted/lookup.hpp +0 -139
  411. mlpack/include/mlpack/methods/ann/layer/not_adapted/lookup_impl.hpp +0 -98
  412. mlpack-4.6.2.dist-info/DELVEWHEEL +0 -2
  413. {mlpack-4.6.2.dist-info → mlpack-4.7.0.dist-info}/top_level.txt +0 -0
  414. /mlpack.libs/{libopenblas-9e6d070f769e6580e8c55c0cf83b80a5.dll → libopenblas-c7f521b507686ddc25bee7538a80c374.dll} +0 -0
  415. /mlpack.libs/{msvcp140-50208655e42969b9a5ab8a4e0186bbb9.dll → msvcp140-a4c2229bdc2a2a630acdc095b4d86008.dll} +0 -0
@@ -15,13 +15,11 @@
15
15
  #include <mlpack/prereqs.hpp>
16
16
 
17
17
  namespace mlpack {
18
- namespace data {
18
+
19
19
  /**
20
- * This is a class implementation of simple median imputation.
21
- * replace missing value with middle or average of middle values
22
- * @tparam T Type of armadillo matrix
20
+ * This is a class implementation of simple median imputation: replace missing
21
+ * value with the median of non-missing values.
23
22
  */
24
- template <typename T>
25
23
  class MedianImputation
26
24
  {
27
25
  public:
@@ -35,59 +33,62 @@ class MedianImputation
35
33
  * @param dimension Index of the dimension of the mappedValue.
36
34
  * @param columnMajor State of whether the input matrix is columnMajor or not.
37
35
  */
38
- void Impute(arma::Mat<T>& input,
39
- const T& mappedValue,
40
- const size_t dimension,
41
- const bool columnMajor = true)
36
+ template<typename MatType>
37
+ static void Impute(MatType& input,
38
+ const typename MatType::elem_type& missingValue,
39
+ const size_t dimension,
40
+ const bool columnMajor = true)
42
41
  {
43
- using PairType = std::pair<size_t, size_t>;
44
- // dimensions and indexes are saved as pairs inside this vector.
45
- std::vector<PairType> targets;
46
- // good elements are kept inside this vector.
47
- std::vector<double> elemsToKeep;
42
+ static_assert(!IsSparse<MatType>::value, "MedianImputation::Impute(): "
43
+ "sparse matrix imputation is not supported; use a dense matrix "
44
+ "instead!");
48
45
 
49
- if (columnMajor)
46
+ typedef typename MatType::elem_type ElemType;
47
+
48
+ // If mappedValue is NaN, Armadillo does not quite provide the tools we need
49
+ // so we have to do our own implementation. Otherwise, we can directly use
50
+ // Armadillo pretty easily.
51
+ ElemType medianValue;
52
+ MatType tmp;
53
+ if (std::isnan(missingValue))
50
54
  {
51
- for (size_t i = 0; i < input.n_cols; ++i)
52
- {
53
- if (input(dimension, i) == mappedValue ||
54
- std::isnan(input(dimension, i)))
55
- {
56
- targets.emplace_back(dimension, i);
57
- }
58
- else
59
- {
60
- elemsToKeep.push_back(input(dimension, i));
61
- }
62
- }
55
+ if (columnMajor)
56
+ tmp = input.row(dimension);
57
+ else
58
+ tmp = input.col(dimension).t();
59
+
60
+ tmp.shed_cols(find_nan(tmp));
63
61
  }
64
62
  else
65
63
  {
66
- for (size_t i = 0; i < input.n_rows; ++i)
64
+ typedef typename GetUColType<MatType>::type UCol;
65
+ if (columnMajor)
67
66
  {
68
- if (input(i, dimension) == mappedValue ||
69
- std::isnan(input(i, dimension)))
70
- {
71
- targets.emplace_back(i, dimension);
72
- }
73
- else
74
- {
75
- elemsToKeep.push_back(input(i, dimension));
76
- }
67
+ tmp = input.submat(UCol({ dimension }),
68
+ find(input.row(dimension) != missingValue));
69
+ }
70
+ else
71
+ {
72
+ tmp = input.submat(
73
+ find(input.col(dimension) != missingValue), UCol({ dimension }));
77
74
  }
78
75
  }
79
76
 
80
- // calculate median
81
- const double median = arma::median(arma::vec(elemsToKeep));
82
-
83
- for (const PairType& target : targets)
77
+ // Compute the median on the extracted elements.
78
+ if (tmp.is_empty())
84
79
  {
85
- input(target.first, target.second) = median;
80
+ throw std::invalid_argument("MedianImputation::Impute(): no non-missing "
81
+ "elements; cannot compute median!");
86
82
  }
83
+ medianValue = median(vectorise(tmp));
84
+
85
+ if (columnMajor)
86
+ input.row(dimension).replace(missingValue, medianValue);
87
+ else
88
+ input.col(dimension).replace(missingValue, medianValue);
87
89
  }
88
90
  }; // class MedianImputation
89
91
 
90
- } // namespace data
91
92
  } // namespace mlpack
92
93
 
93
94
  #endif
@@ -14,81 +14,73 @@
14
14
  #define MLPACK_CORE_DATA_IMPUTER_HPP
15
15
 
16
16
  #include <mlpack/prereqs.hpp>
17
- #include "dataset_mapper.hpp"
18
- #include "map_policies/missing_policy.hpp"
19
- #include "map_policies/increment_policy.hpp"
20
17
 
21
18
  namespace mlpack {
22
- namespace data {
23
19
 
24
20
  /**
25
21
  * Given a dataset of a particular datatype, replace user-specified missing
26
- * value with a variable dependent on the StrategyType and MapperType.
22
+ * value with a variable dependent on the StrategyType.
27
23
  *
28
- * @tparam T Type of armadillo matrix used for imputation strategy.
29
- * @tparam MapperType DatasetMapper that is used to hold dataset information.
30
24
  * @tparam StrategyType Imputation strategy used.
31
25
  */
32
- template<typename T, typename MapperType, typename StrategyType>
26
+ template<typename StrategyType = MeanImputation>
33
27
  class Imputer
34
28
  {
35
29
  public:
36
- Imputer(MapperType mapper, bool columnMajor = true):
37
- mapper(std::move(mapper)),
38
- columnMajor(columnMajor)
30
+ // Create an imputer, optionally specifying an instantiated imputation
31
+ // strategy.
32
+ Imputer(StrategyType strategy = StrategyType()) :
33
+ strategy(std::move(strategy))
39
34
  {
40
- // Nothing to initialize here.
41
- }
42
-
43
- Imputer(MapperType mapper, StrategyType strategy, bool columnMajor = true):
44
- strategy(std::move(strategy)),
45
- mapper(std::move(mapper)),
46
- columnMajor(columnMajor)
47
- {
48
- // Nothing to initialize here.
35
+ // Nothing to do.
49
36
  }
50
37
 
51
38
  /**
52
- * Given an input dataset, replace missing values of a dimension with given
53
- * imputation strategy. This function does not produce output matrix, but
54
- * overwrites the result into the input matrix.
55
- *
56
- * @param input Input dataset to apply imputation.
57
- * @param missingValue User defined missing value; it can be anything.
58
- * @param dimension Dimension to apply the imputation.
59
- */
60
- void Impute(arma::Mat<T>& input,
61
- const std::string& missingValue,
62
- const size_t dimension)
39
+ * Given an input dataset, replace missing values of a dimension with given
40
+ * imputation strategy. This function does not produce an output matrix, but
41
+ * overwrites the result into the input matrix.
42
+ *
43
+ * @param input Input dataset to apply imputation.
44
+ * @param missingValue User defined missing value; it can be anything.
45
+ * @param dimension Dimension to apply the imputation.
46
+ */
47
+ template<typename MatType>
48
+ void Impute(MatType& input,
49
+ const typename MatType::elem_type& missingValue,
50
+ const size_t dimension,
51
+ const bool columnMajor = true,
52
+ const std::enable_if_t<IsArma<MatType>::value>* = 0)
63
53
  {
64
- T mappedValue = static_cast<T>(mapper.UnmapValue(missingValue, dimension));
65
- strategy.Impute(input, mappedValue, dimension, columnMajor);
54
+ if (columnMajor && (dimension >= input.n_rows))
55
+ {
56
+ std::ostringstream oss;
57
+ oss << "Imputer::Impute(): given dimension to impute (" << dimension
58
+ << ") must be less than the number of rows in the matrix ("
59
+ << input.n_rows << ")!" << std::endl;
60
+ throw std::invalid_argument(oss.str());
61
+ }
62
+ else if (!columnMajor && (dimension >= input.n_cols))
63
+ {
64
+ std::ostringstream oss;
65
+ oss << "Imputer::Impute(): given dimension to impute (" << dimension
66
+ << ") must be less than the number of columns in the matrix ("
67
+ << input.n_cols << ")!" << std::endl;
68
+ throw std::invalid_argument(oss.str());
69
+ }
70
+
71
+ strategy.Impute(input, missingValue, dimension, columnMajor);
66
72
  }
67
73
 
68
- //! Get the strategy.
74
+ // Get the strategy.
69
75
  const StrategyType& Strategy() const { return strategy; }
70
-
71
- //! Modify the given strategy.
76
+ // Modify the given strategy.
72
77
  StrategyType& Strategy() { return strategy; }
73
78
 
74
- //! Get the mapper.
75
- const MapperType& Mapper() const { return mapper; }
76
-
77
- //! Modify the given mapper.
78
- MapperType& Mapper() { return mapper; }
79
-
80
79
  private:
81
80
  // StrategyType
82
81
  StrategyType strategy;
83
-
84
- // DatasetMapperType<MapPolicy>
85
- MapperType mapper;
86
-
87
- // save columnMajor as a member variable since it is rarely changed.
88
- bool columnMajor;
89
82
  }; // class Imputer
90
83
 
91
- } // namespace data
92
84
  } // namespace mlpack
93
85
 
94
86
  #endif
@@ -17,7 +17,6 @@
17
17
  #include <mlpack/prereqs.hpp>
18
18
 
19
19
  namespace mlpack {
20
- namespace data {
21
20
 
22
21
  /**
23
22
  * See if the token is a NaN or an Inf, and if so, set the value accordingly and
@@ -66,7 +65,6 @@ inline bool IsNaNInf(T& val, const std::string& token)
66
65
  return false;
67
66
  }
68
67
 
69
- } // namespace data
70
68
  } // namespace mlpack
71
69
 
72
70
  #endif
@@ -3,9 +3,10 @@
3
3
  * @author Ryan Curtin
4
4
  * @author Omar Shrit
5
5
  *
6
- * Load an Armadillo matrix from file. This is necessary because Armadillo does
7
- * not transpose matrices on input, and it allows us to give better error
8
- * output.
6
+ * mlpack Load function interface from a file.
7
+ *
8
+ * This Load interface allows to load numeric / image / models from disk into
9
+ * an Armadillo matrix or mlpack object.
9
10
  *
10
11
  * mlpack is free software; you may redistribute it and/or modify it under the
11
12
  * terms of the 3-clause BSD license. You should have received a copy of the
@@ -17,19 +18,16 @@
17
18
 
18
19
  #include <mlpack/prereqs.hpp>
19
20
 
21
+ #include "image_options.hpp"
20
22
  #include "text_options.hpp"
21
- #include "format.hpp"
22
- #include "dataset_mapper.hpp"
23
23
  #include "detect_file_type.hpp"
24
- #include "image_info.hpp"
24
+ #include "load_deprecated.hpp"
25
25
  #include "load_arff.hpp"
26
26
  #include "load_numeric.hpp"
27
- #include "load_categorical.hpp"
28
27
  #include "load_image.hpp"
29
- #include "utilities.hpp"
28
+ #include "load_model.hpp"
30
29
 
31
30
  namespace mlpack {
32
- namespace data /** Functions to load and save matrices and models. */ {
33
31
 
34
32
  /**
35
33
  * Loads a matrix from file, guessing the filetype from the extension. This
@@ -44,9 +42,9 @@ template<typename MatType, typename DataOptionsType>
44
42
  bool Load(const std::string& filename,
45
43
  MatType& matrix,
46
44
  DataOptionsType& opts,
47
- std::enable_if_t<IsArma<MatType>::value ||
48
- IsSparseMat<MatType>::value>* = 0,
49
- std::enable_if_t<!std::is_same_v<DataOptionsType, bool>>* = 0);
45
+ const bool copyBack = true,
46
+ const typename std::enable_if_t<
47
+ IsDataOptions<DataOptionsType>::value>* = 0);
50
48
 
51
49
  /**
52
50
  * Loads a matrix from file, guessing the filetype from the extension. This
@@ -57,247 +55,65 @@ bool Load(const std::string& filename,
57
55
  * @param opts Non-modifiable DataOptions to be passed to the function
58
56
  * @return Boolean value indicating success or failure of load.
59
57
  */
60
- template<typename MatType, typename DataOptionsType>
58
+ template<typename MatType, typename DataOptionsType = PlainDataOptions>
61
59
  bool Load(const std::string& filename,
62
60
  MatType& matrix,
63
- const DataOptionsType& opts,
64
- std::enable_if_t<IsArma<MatType>::value ||
65
- IsSparseMat<MatType>::value>* = 0,
66
- std::enable_if_t<!std::is_same_v<DataOptionsType, bool>>* = 0);
67
-
61
+ const DataOptionsType& opts = DataOptionsType(),
62
+ const typename std::enable_if_t<
63
+ IsDataOptions<DataOptionsType>::value>* = 0);
68
64
  /**
69
- * Loads a matrix from file, guessing the filetype from the extension. This
70
- * will transpose the matrix at load time (unless the transpose parameter is set
71
- * to false).
72
- *
73
- * The supported types of files are the same as found in Armadillo:
74
- *
75
- * - CSV (arma::csv_ascii), denoted by .csv, or optionally .txt
76
- * - TSV (arma::raw_ascii), denoted by .tsv, .csv, or .txt
77
- * - ASCII (arma::raw_ascii), denoted by .txt
78
- * - Armadillo ASCII (arma::arma_ascii), also denoted by .txt
79
- * - PGM (arma::pgm_binary), denoted by .pgm
80
- * - PPM (arma::ppm_binary), denoted by .ppm
81
- * - Raw binary (arma::raw_binary), denoted by .bin
82
- * - Armadillo binary (arma::arma_binary), denoted by .bin
83
- * - HDF5 (arma::hdf5_binary), denoted by .hdf, .hdf5, .h5, or .he5
84
- *
85
- * By default, this function will try to automatically determine the type of
86
- * file to load based on its extension and by inspecting the file. If you know
87
- * the file type and want to specify it manually, override the default
88
- * `inputLoadType` parameter with the correct type above (e.g.
89
- * `arma::csv_ascii`.)
65
+ * This function loads a set of several dataset files into one matrix.
66
+ * This is usually the case if the dataset is collected on several occasions
67
+ * and not agglomerated into one file, or if the dataset has been partitioned
68
+ * into multiple files.
90
69
  *
91
- * If the detected file type is CSV (`arma::csv_ascii`), the first row will be
92
- * checked for a CSV header. If a CSV header is not detected, the first row
93
- * will be treated as data; otherwise, the first row will be skipped.
70
+ * Note, the load will fail if the number of dimension (data points) in all
71
+ * files is not equal, or if the dataset does not have the same filetype. For
72
+ * example, the load will fail one file is CSV and the other is binary.
94
73
  *
95
- * If the parameter 'fatal' is set to true, a std::runtime_error exception will
96
- * be thrown if the matrix does not load successfully. The parameter
97
- * 'transpose' controls whether or not the matrix is transposed after loading.
98
- * In most cases, because data is generally stored in a row-major format and
99
- * mlpack requires column-major matrices, this should be left at its default
100
- * value of 'true'.
74
+ * The user needs to specify all the filenames in one std::vector before using
75
+ * this function.
101
76
  *
102
- * @param filename Name of file to load.
103
- * @param matrix Matrix to load contents of file into.
104
- * @param fatal If an error should be reported as fatal (default false).
105
- * @param transpose If true, transpose the matrix after loading (default true).
106
- * @param inputLoadType Used to determine the type of file to load (default arma::auto_detect).
77
+ * @param filenames Names of files to load.
78
+ * @param matrix Matrix to load contents of files into.
79
+ * @param opts DataOptions to be passed to the function
107
80
  * @return Boolean value indicating success or failure of load.
108
81
  */
109
- template<typename eT>
110
- bool Load(const std::string& filename,
82
+ template<typename eT, typename DataOptionsType>
83
+ bool Load(const std::vector<std::string>& files,
111
84
  arma::Mat<eT>& matrix,
112
- const bool fatal = false,
113
- const bool transpose = true,
114
- const FileType inputLoadType = FileType::AutoDetect);
115
-
116
- /**
117
- * Loads a sparse matrix from file, using arma::coord_ascii format. This
118
- * will transpose the matrix at load time (unless the transpose parameter is set
119
- * to false). If the filetype cannot be determined, an error will be given.
120
- *
121
- * The supported types of files are the same as found in Armadillo:
122
- *
123
- * - CSV (coord_ascii), denoted by .csv or .txt
124
- * - TSV (coord_ascii), denoted by .tsv or .txt
125
- * - TXT (coord_ascii), denoted by .txt
126
- * - Raw binary (raw_binary), denoted by .bin
127
- * - Armadillo binary (arma_binary), denoted by .bin
128
- *
129
- * If the file extension is not one of those types, an error will be given.
130
- * This is preferable to Armadillo's default behavior of loading an unknown
131
- * filetype as raw_binary, which can have very confusing effects.
132
- *
133
- * If the parameter 'fatal' is set to true, a std::runtime_error exception will
134
- * be thrown if the matrix does not load successfully. The parameter
135
- * 'transpose' controls whether or not the matrix is transposed after loading.
136
- * In most cases, because data is generally stored in a row-major format and
137
- * mlpack requires column-major matrices, this should be left at its default
138
- * value of 'true'.
139
- *
140
- * @param filename Name of file to load.
141
- * @param matrix Sparse matrix to load contents of file into.
142
- * @param fatal If an error should be reported as fatal (default false).
143
- * @param transpose If true, transpose the matrix after loading (default true).
144
- * @return Boolean value indicating success or failure of load.
145
- */
146
- template<typename eT>
147
- bool Load(const std::string& filename,
148
- arma::SpMat<eT>& matrix,
149
- const bool fatal = false,
150
- const bool transpose = true,
151
- const FileType inputLoadType = FileType::AutoDetect);
152
-
153
- /**
154
- * Load a column vector from a file, guessing the filetype from the extension.
155
- *
156
- * The supported types of files are the same as found in Armadillo:
157
- *
158
- * - CSV (csv_ascii), denoted by .csv, or optionally .txt
159
- * - TSV (raw_ascii), denoted by .tsv, .csv, or .txt
160
- * - ASCII (raw_ascii), denoted by .txt
161
- * - Armadillo ASCII (arma_ascii), also denoted by .txt
162
- * - PGM (pgm_binary), denoted by .pgm
163
- * - PPM (ppm_binary), denoted by .ppm
164
- * - Raw binary (raw_binary), denoted by .bin
165
- * - Armadillo binary (arma_binary), denoted by .bin
166
- * - HDF5, denoted by .hdf, .hdf5, .h5, or .he5
167
- *
168
- * If the file extension is not one of those types, an error will be given.
169
- * This is preferable to Armadillo's default behavior of loading an unknown
170
- * filetype as raw_binary, which can have very confusing effects.
171
- *
172
- * If the parameter 'fatal' is set to true, a std::runtime_error exception will
173
- * be thrown if the matrix does not load successfully.
174
- *
175
- * @param filename Name of file to load.
176
- * @param vec Column vector to load contents of file into.
177
- * @param fatal If an error should be reported as fatal (default false).
178
- * @return Boolean value indicating success or failure of load.
179
- */
180
- template<typename eT>
181
- bool Load(const std::string& filename,
182
- arma::Col<eT>& vec,
183
- const bool fatal = false);
184
-
185
- /**
186
- * Load a row vector from a file, guessing the filetype from the extension.
187
- *
188
- * The supported types of files are the same as found in Armadillo:
189
- *
190
- * - CSV (csv_ascii), denoted by .csv, or optionally .txt
191
- * - TSV (raw_ascii), denoted by .tsv, .csv, or .txt
192
- * - ASCII (raw_ascii), denoted by .txt
193
- * - Armadillo ASCII (arma_ascii), also denoted by .txt
194
- * - PGM (pgm_binary), denoted by .pgm
195
- * - PPM (ppm_binary), denoted by .ppm
196
- * - Raw binary (raw_binary), denoted by .bin
197
- * - Armadillo binary (arma_binary), denoted by .bin
198
- * - HDF5, denoted by .hdf, .hdf5, .h5, or .he5
199
- *
200
- * If the file extension is not one of those types, an error will be given.
201
- * This is preferable to Armadillo's default behavior of loading an unknown
202
- * filetype as raw_binary, which can have very confusing effects.
203
- *
204
- * If the parameter 'fatal' is set to true, a std::runtime_error exception will
205
- * be thrown if the matrix does not load successfully.
206
- *
207
- * @param filename Name of file to load.
208
- * @param rowvec Row vector to load contents of file into.
209
- * @param fatal If an error should be reported as fatal (default false).
210
- * @return Boolean value indicating success or failure of load.
211
- */
212
- template<typename eT>
213
- bool Load(const std::string& filename,
214
- arma::Row<eT>& rowvec,
215
- const bool fatal = false);
216
-
85
+ const DataOptionsType& opts,
86
+ const typename std::enable_if_t<
87
+ IsDataOptions<DataOptionsType>::value>* = 0);
217
88
  /**
218
- * Loads a matrix from a file, guessing the filetype from the extension and
219
- * mapping categorical features with a DatasetMapper object. This will
220
- * transpose the matrix (unless the transpose parameter is set to false).
221
- * This particular overload of Load() can only load text-based formats, such as
222
- * those given below:
223
- *
224
- * - CSV (csv_ascii), denoted by .csv, or optionally .txt
225
- * - TSV (raw_ascii), denoted by .tsv, .csv, or .txt
226
- * - ASCII (raw_ascii), denoted by .txt
89
+ * This function loads a set of several dataset files into one matrix.
90
+ * This is usually the case if the dataset is collected on several occasions
91
+ * and not agglomerated into one file, or if the dataset has been partitioned
92
+ * into multiple files.
227
93
  *
228
- * If the file extension is not one of those types, an error will be given.
229
- * This is preferable to Armadillo's default behavior of loading an unknown
230
- * filetype as raw_binary, which can have very confusing effects.
94
+ * Note, the load will fail if the number of dimension (data points) in all
95
+ * files is not equal, or if the dataset does not have the same filetype. For
96
+ * example, the load will fail one file is CSV and the other is binary.
231
97
  *
232
- * If the parameter 'fatal' is set to true, a std::runtime_error exception will
233
- * be thrown if the matrix does not load successfully. The parameter
234
- * 'transpose' controls whether or not the matrix is transposed after loading.
235
- * In most cases, because data is generally stored in a row-major format and
236
- * mlpack requires column-major matrices, this should be left at its default
237
- * value of 'true'.
98
+ * The user needs to specify all the filenames in one std::vector before using
99
+ * this function.
238
100
  *
239
- * If the given `info` has already been used with a different `data::Load()`
240
- * call where the dataset has the same dimensionality, then the mappings and
241
- * dimension types inside of `info` will be *re-used*. If the given `info` is a
242
- * new `DatasetMapper` object (e.g. its dimensionality is 0), then new mappings
243
- * will be created. If the given `info` has a different dimensionality of data
244
- * than what is present in `filename`, an exception will be thrown.
245
- *
246
- * @param filename Name of file to load.
247
- * @param matrix Matrix to load contents of file into.
248
- * @param info DatasetMapper object to populate with mappings and data types.
249
- * @param fatal If an error should be reported as fatal (default false).
250
- * @param transpose If true, transpose the matrix after loading.
101
+ * @param filenames Names of files to load.
102
+ * @param matrix Matrix to load contents of files into.
103
+ * @param opts DataOptions to be passed to the function
251
104
  * @return Boolean value indicating success or failure of load.
252
105
  */
253
- template<typename eT, typename PolicyType>
254
- bool Load(const std::string& filename,
106
+ template<typename eT, typename DataOptionsType>
107
+ bool Load(const std::vector<std::string>& files,
255
108
  arma::Mat<eT>& matrix,
256
- DatasetMapper<PolicyType>& info,
257
- const bool fatal = false,
258
- const bool transpose = true);
259
-
260
- /**
261
- * Load a model from a file, guessing the filetype from the extension, or,
262
- * optionally, loading the specified format. If automatic extension detection
263
- * is used and the filetype cannot be determined, an error will be given.
264
- *
265
- * The supported types of files are the same as what is supported by the
266
- * cereal library:
267
- *
268
- * - json, denoted by .json
269
- * - xml, denoted by .xml
270
- * - binary, denoted by .bin
271
- *
272
- * The format parameter can take any of the values in the 'format' enum:
273
- * 'format::autodetect', 'format::json', 'format::xml', and 'format::binary'.
274
- * The autodetect functionality operates on the file extension (so, "file.txt"
275
- * would be autodetected as text).
276
- *
277
- * The name parameter should be specified to indicate the name of the structure
278
- * to be loaded. This should be the same as the name that was used to save the
279
- * structure (otherwise, the loading procedure will fail).
280
- *
281
- * If the parameter 'fatal' is set to true, then an exception will be thrown in
282
- * the event of load failure. Otherwise, the method will return false and the
283
- * relevant error information will be printed to Log::Warn.
284
- */
285
- template<typename T>
286
- bool Load(const std::string& filename,
287
- const std::string& name,
288
- T& t,
289
- const bool fatal = false,
290
- format f = format::autodetect,
291
- std::enable_if_t<HasSerialize<T>::value>* = 0);
109
+ DataOptionsType& opts,
110
+ const bool copyBack = true,
111
+ const typename std::enable_if_t<
112
+ IsDataOptions<DataOptionsType>::value>* = 0);
292
113
 
293
- } // namespace data
294
114
  } // namespace mlpack
295
115
 
296
116
  // Include implementation of Load() for matrix.
297
117
  #include "load_impl.hpp"
298
- // Include implementation of model-loading Load() overload.
299
- #include "load_model_impl.hpp"
300
- // Include implementation of Load() for vectors.
301
- #include "load_vec_impl.hpp"
302
118
 
303
119
  #endif
@@ -17,7 +17,6 @@
17
17
  #include "string_algorithms.hpp"
18
18
 
19
19
  namespace mlpack {
20
- namespace data {
21
20
 
22
21
  /**
23
22
  * A utility function to load an ARFF dataset as numeric features (that is, as
@@ -55,7 +54,6 @@ bool LoadARFF(const std::string& filename,
55
54
  DatasetMapper<PolicyType>& info,
56
55
  bool fatal);
57
56
 
58
- } // namespace data
59
57
  } // namespace mlpack
60
58
 
61
59
  // Include implementation.
@@ -18,7 +18,6 @@
18
18
  #include "is_naninf.hpp"
19
19
 
20
20
  namespace mlpack {
21
- namespace data {
22
21
 
23
22
  template<typename eT, typename PolicyType>
24
23
  bool LoadARFF(const std::string& filename,
@@ -158,11 +157,11 @@ bool LoadARFF(const std::string& filename,
158
157
  else if (info.Dimensionality() != dimensionality)
159
158
  {
160
159
  if (fatal)
161
- Log::Fatal << "data::LoadARFF(): given DatasetInfo has dimensionality "
160
+ Log::Fatal << "LoadARFF(): given DatasetInfo has dimensionality "
162
161
  << info.Dimensionality() << ", but data has dimensionality "
163
162
  << dimensionality << std::endl;
164
163
  else
165
- Log::Warn << "data::LoadARFF(): given DatasetInfo has dimensionality "
164
+ Log::Warn << "LoadARFF(): given DatasetInfo has dimensionality "
166
165
  << info.Dimensionality() << ", but data has dimensionality "
167
166
  << dimensionality << std::endl;
168
167
  return false;
@@ -336,7 +335,6 @@ bool LoadARFF(const std::string& filename,
336
335
  return true;
337
336
  }
338
337
 
339
- } // namespace data
340
338
  } // namespace mlpack
341
339
 
342
340
  #endif