mlpack 4.6.1__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 (426) 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 +25 -16
  29. mlpack/include/mlpack/core/cv/k_fold_cv_impl.hpp +53 -43
  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 +194 -57
  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 +130 -315
  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/ccov.hpp +1 -0
  120. mlpack/include/mlpack/core/math/ccov_impl.hpp +4 -5
  121. mlpack/include/mlpack/core/math/make_alias.hpp +100 -3
  122. mlpack/include/mlpack/core/math/random.hpp +19 -5
  123. mlpack/include/mlpack/core/math/shuffle_data.hpp +79 -245
  124. mlpack/include/mlpack/core/metrics/non_maximal_suppression_impl.hpp +9 -10
  125. mlpack/include/mlpack/core/stb/bundled/stb_image_resize2.h +291 -239
  126. mlpack/include/mlpack/core/tree/binary_space_tree/rp_tree_mean_split_impl.hpp +7 -7
  127. mlpack/include/mlpack/core/tree/cellbound.hpp +2 -2
  128. mlpack/include/mlpack/core/tree/cosine_tree/cosine_tree_impl.hpp +10 -10
  129. mlpack/include/mlpack/core/tree/octree/octree.hpp +10 -0
  130. mlpack/include/mlpack/core/tree/octree/octree_impl.hpp +14 -4
  131. mlpack/include/mlpack/core/util/arma_traits.hpp +25 -21
  132. mlpack/include/mlpack/core/util/coot_traits.hpp +97 -0
  133. mlpack/include/mlpack/core/util/forward.hpp +0 -2
  134. mlpack/include/mlpack/core/util/param.hpp +4 -4
  135. mlpack/include/mlpack/core/util/params_impl.hpp +2 -2
  136. mlpack/include/mlpack/core/util/sfinae_utility.hpp +24 -2
  137. mlpack/include/mlpack/core/util/using.hpp +29 -2
  138. mlpack/include/mlpack/core/util/version.hpp +5 -3
  139. mlpack/include/mlpack/core/util/version_impl.hpp +3 -6
  140. mlpack/include/mlpack/methods/adaboost/adaboost_classify_main.cpp +1 -1
  141. mlpack/include/mlpack/methods/adaboost/adaboost_main.cpp +3 -3
  142. mlpack/include/mlpack/methods/adaboost/adaboost_train_main.cpp +2 -2
  143. mlpack/include/mlpack/methods/ann/activation_functions/activation_functions.hpp +1 -0
  144. mlpack/include/mlpack/methods/ann/activation_functions/bipolar_sigmoid_function.hpp +6 -4
  145. mlpack/include/mlpack/methods/ann/activation_functions/elish_function.hpp +17 -12
  146. mlpack/include/mlpack/methods/ann/activation_functions/elliot_function.hpp +9 -7
  147. mlpack/include/mlpack/methods/ann/activation_functions/gaussian_function.hpp +7 -6
  148. mlpack/include/mlpack/methods/ann/activation_functions/gelu_exact_function.hpp +73 -0
  149. mlpack/include/mlpack/methods/ann/activation_functions/gelu_function.hpp +27 -16
  150. mlpack/include/mlpack/methods/ann/activation_functions/hard_sigmoid_function.hpp +8 -6
  151. mlpack/include/mlpack/methods/ann/activation_functions/hard_swish_function.hpp +6 -4
  152. mlpack/include/mlpack/methods/ann/activation_functions/hyper_sinh_function.hpp +13 -8
  153. mlpack/include/mlpack/methods/ann/activation_functions/identity_function.hpp +6 -4
  154. mlpack/include/mlpack/methods/ann/activation_functions/inverse_quadratic_function.hpp +8 -6
  155. mlpack/include/mlpack/methods/ann/activation_functions/lisht_function.hpp +7 -5
  156. mlpack/include/mlpack/methods/ann/activation_functions/logistic_function.hpp +14 -12
  157. mlpack/include/mlpack/methods/ann/activation_functions/mish_function.hpp +7 -5
  158. mlpack/include/mlpack/methods/ann/activation_functions/multi_quadratic_function.hpp +6 -4
  159. mlpack/include/mlpack/methods/ann/activation_functions/poisson1_function.hpp +4 -2
  160. mlpack/include/mlpack/methods/ann/activation_functions/quadratic_function.hpp +6 -4
  161. mlpack/include/mlpack/methods/ann/activation_functions/rectifier_function.hpp +10 -10
  162. mlpack/include/mlpack/methods/ann/activation_functions/silu_function.hpp +10 -8
  163. mlpack/include/mlpack/methods/ann/activation_functions/softplus_function.hpp +12 -9
  164. mlpack/include/mlpack/methods/ann/activation_functions/softsign_function.hpp +15 -23
  165. mlpack/include/mlpack/methods/ann/activation_functions/spline_function.hpp +9 -7
  166. mlpack/include/mlpack/methods/ann/activation_functions/swish_function.hpp +11 -9
  167. mlpack/include/mlpack/methods/ann/activation_functions/tanh_exponential_function.hpp +9 -7
  168. mlpack/include/mlpack/methods/ann/activation_functions/tanh_function.hpp +10 -7
  169. mlpack/include/mlpack/methods/ann/ann.hpp +3 -0
  170. mlpack/include/mlpack/methods/ann/convolution_rules/base_convolution.hpp +197 -0
  171. mlpack/include/mlpack/methods/ann/convolution_rules/convolution_rules.hpp +1 -2
  172. mlpack/include/mlpack/methods/ann/convolution_rules/im2col_convolution.hpp +215 -0
  173. mlpack/include/mlpack/methods/ann/convolution_rules/naive_convolution.hpp +109 -154
  174. mlpack/include/mlpack/methods/ann/dag_network.hpp +728 -0
  175. mlpack/include/mlpack/methods/ann/dag_network_impl.hpp +1640 -0
  176. mlpack/include/mlpack/methods/ann/dists/bernoulli_distribution_impl.hpp +2 -3
  177. mlpack/include/mlpack/methods/ann/dists/normal_distribution_impl.hpp +7 -2
  178. mlpack/include/mlpack/methods/ann/ffn.hpp +39 -3
  179. mlpack/include/mlpack/methods/ann/ffn_impl.hpp +14 -32
  180. mlpack/include/mlpack/methods/ann/init_rules/const_init.hpp +4 -4
  181. mlpack/include/mlpack/methods/ann/init_rules/gaussian_init.hpp +6 -2
  182. mlpack/include/mlpack/methods/ann/init_rules/he_init.hpp +4 -2
  183. mlpack/include/mlpack/methods/ann/init_rules/kathirvalavakumar_subavathi_init.hpp +3 -3
  184. mlpack/include/mlpack/methods/ann/init_rules/lecun_normal_init.hpp +4 -2
  185. mlpack/include/mlpack/methods/ann/init_rules/network_init.hpp +5 -5
  186. mlpack/include/mlpack/methods/ann/init_rules/nguyen_widrow_init.hpp +2 -2
  187. mlpack/include/mlpack/methods/ann/init_rules/oivs_init.hpp +2 -2
  188. mlpack/include/mlpack/methods/ann/init_rules/orthogonal_init.hpp +2 -2
  189. mlpack/include/mlpack/methods/ann/init_rules/random_init.hpp +8 -4
  190. mlpack/include/mlpack/methods/ann/layer/adaptive_max_pooling.hpp +21 -23
  191. mlpack/include/mlpack/methods/ann/layer/adaptive_max_pooling_impl.hpp +15 -15
  192. mlpack/include/mlpack/methods/ann/layer/adaptive_mean_pooling.hpp +21 -23
  193. mlpack/include/mlpack/methods/ann/layer/adaptive_mean_pooling_impl.hpp +16 -16
  194. mlpack/include/mlpack/methods/ann/layer/add.hpp +18 -18
  195. mlpack/include/mlpack/methods/ann/layer/add_impl.hpp +13 -13
  196. mlpack/include/mlpack/methods/ann/layer/add_merge.hpp +19 -18
  197. mlpack/include/mlpack/methods/ann/layer/add_merge_impl.hpp +13 -13
  198. mlpack/include/mlpack/methods/ann/layer/alpha_dropout.hpp +17 -16
  199. mlpack/include/mlpack/methods/ann/layer/alpha_dropout_impl.hpp +14 -13
  200. mlpack/include/mlpack/methods/ann/layer/base_layer.hpp +28 -51
  201. mlpack/include/mlpack/methods/ann/layer/batch_norm.hpp +19 -20
  202. mlpack/include/mlpack/methods/ann/layer/batch_norm_impl.hpp +68 -68
  203. mlpack/include/mlpack/methods/ann/layer/c_relu.hpp +18 -20
  204. mlpack/include/mlpack/methods/ann/layer/c_relu_impl.hpp +20 -25
  205. mlpack/include/mlpack/methods/ann/layer/celu.hpp +14 -19
  206. mlpack/include/mlpack/methods/ann/layer/celu_impl.hpp +25 -34
  207. mlpack/include/mlpack/methods/ann/layer/concat.hpp +19 -18
  208. mlpack/include/mlpack/methods/ann/layer/concat_impl.hpp +19 -20
  209. mlpack/include/mlpack/methods/ann/layer/concatenate.hpp +18 -18
  210. mlpack/include/mlpack/methods/ann/layer/concatenate_impl.hpp +14 -14
  211. mlpack/include/mlpack/methods/ann/layer/convolution.hpp +42 -47
  212. mlpack/include/mlpack/methods/ann/layer/convolution_impl.hpp +170 -159
  213. mlpack/include/mlpack/methods/ann/layer/dropconnect.hpp +18 -20
  214. mlpack/include/mlpack/methods/ann/layer/dropconnect_impl.hpp +20 -20
  215. mlpack/include/mlpack/methods/ann/layer/dropout.hpp +17 -19
  216. mlpack/include/mlpack/methods/ann/layer/dropout_impl.hpp +14 -21
  217. mlpack/include/mlpack/methods/ann/layer/elu.hpp +23 -25
  218. mlpack/include/mlpack/methods/ann/layer/elu_impl.hpp +20 -27
  219. mlpack/include/mlpack/methods/ann/layer/embedding.hpp +160 -0
  220. mlpack/include/mlpack/methods/ann/layer/embedding_impl.hpp +189 -0
  221. mlpack/include/mlpack/methods/ann/layer/flexible_relu.hpp +17 -19
  222. mlpack/include/mlpack/methods/ann/layer/flexible_relu_impl.hpp +20 -20
  223. mlpack/include/mlpack/methods/ann/layer/ftswish.hpp +17 -18
  224. mlpack/include/mlpack/methods/ann/layer/ftswish_impl.hpp +17 -35
  225. mlpack/include/mlpack/methods/ann/layer/grouped_convolution.hpp +27 -33
  226. mlpack/include/mlpack/methods/ann/layer/grouped_convolution_impl.hpp +170 -163
  227. mlpack/include/mlpack/methods/ann/layer/gru.hpp +195 -0
  228. mlpack/include/mlpack/methods/ann/layer/gru_impl.hpp +325 -0
  229. mlpack/include/mlpack/methods/ann/layer/hard_tanh.hpp +13 -15
  230. mlpack/include/mlpack/methods/ann/layer/hard_tanh_impl.hpp +12 -12
  231. mlpack/include/mlpack/methods/ann/layer/identity.hpp +19 -20
  232. mlpack/include/mlpack/methods/ann/layer/identity_impl.hpp +12 -12
  233. mlpack/include/mlpack/methods/ann/layer/layer.hpp +37 -33
  234. mlpack/include/mlpack/methods/ann/layer/layer_norm.hpp +11 -13
  235. mlpack/include/mlpack/methods/ann/layer/layer_norm_impl.hpp +16 -16
  236. mlpack/include/mlpack/methods/ann/layer/layer_types.hpp +4 -1
  237. mlpack/include/mlpack/methods/ann/layer/leaky_relu.hpp +20 -23
  238. mlpack/include/mlpack/methods/ann/layer/leaky_relu_impl.hpp +12 -13
  239. mlpack/include/mlpack/methods/ann/layer/linear.hpp +16 -18
  240. mlpack/include/mlpack/methods/ann/layer/linear3d.hpp +19 -18
  241. mlpack/include/mlpack/methods/ann/layer/linear3d_impl.hpp +29 -32
  242. mlpack/include/mlpack/methods/ann/layer/linear_impl.hpp +15 -15
  243. mlpack/include/mlpack/methods/ann/layer/linear_no_bias.hpp +15 -17
  244. mlpack/include/mlpack/methods/ann/layer/linear_no_bias_impl.hpp +20 -20
  245. mlpack/include/mlpack/methods/ann/layer/linear_recurrent.hpp +25 -14
  246. mlpack/include/mlpack/methods/ann/layer/linear_recurrent_impl.hpp +60 -31
  247. mlpack/include/mlpack/methods/ann/layer/log_softmax.hpp +17 -36
  248. mlpack/include/mlpack/methods/ann/layer/log_softmax_impl.hpp +58 -74
  249. mlpack/include/mlpack/methods/ann/layer/lstm.hpp +26 -29
  250. mlpack/include/mlpack/methods/ann/layer/lstm_impl.hpp +128 -124
  251. mlpack/include/mlpack/methods/ann/layer/max_pooling.hpp +24 -23
  252. mlpack/include/mlpack/methods/ann/layer/max_pooling_impl.hpp +28 -27
  253. mlpack/include/mlpack/methods/ann/layer/mean_pooling.hpp +27 -26
  254. mlpack/include/mlpack/methods/ann/layer/mean_pooling_impl.hpp +30 -31
  255. mlpack/include/mlpack/methods/ann/layer/multi_layer.hpp +36 -6
  256. mlpack/include/mlpack/methods/ann/layer/multi_layer_impl.hpp +6 -2
  257. mlpack/include/mlpack/methods/ann/layer/multihead_attention.hpp +32 -27
  258. mlpack/include/mlpack/methods/ann/layer/multihead_attention_impl.hpp +185 -89
  259. mlpack/include/mlpack/methods/ann/layer/nearest_interpolation.hpp +29 -25
  260. mlpack/include/mlpack/methods/ann/layer/nearest_interpolation_impl.hpp +38 -39
  261. mlpack/include/mlpack/methods/ann/layer/noisylinear.hpp +39 -42
  262. mlpack/include/mlpack/methods/ann/layer/noisylinear_impl.hpp +18 -18
  263. mlpack/include/mlpack/methods/ann/layer/padding.hpp +22 -17
  264. mlpack/include/mlpack/methods/ann/layer/padding_impl.hpp +45 -32
  265. mlpack/include/mlpack/methods/ann/layer/parametric_relu.hpp +26 -28
  266. mlpack/include/mlpack/methods/ann/layer/parametric_relu_impl.hpp +18 -18
  267. mlpack/include/mlpack/methods/ann/layer/radial_basis_function.hpp +41 -28
  268. mlpack/include/mlpack/methods/ann/layer/radial_basis_function_impl.hpp +42 -17
  269. mlpack/include/mlpack/methods/ann/layer/recurrent_layer.hpp +16 -2
  270. mlpack/include/mlpack/methods/ann/layer/relu6.hpp +19 -21
  271. mlpack/include/mlpack/methods/ann/layer/relu6_impl.hpp +14 -14
  272. mlpack/include/mlpack/methods/ann/layer/repeat.hpp +24 -25
  273. mlpack/include/mlpack/methods/ann/layer/repeat_impl.hpp +10 -10
  274. mlpack/include/mlpack/methods/ann/layer/serialization.hpp +64 -54
  275. mlpack/include/mlpack/methods/ann/layer/softmax.hpp +20 -20
  276. mlpack/include/mlpack/methods/ann/layer/softmax_impl.hpp +10 -10
  277. mlpack/include/mlpack/methods/ann/layer/softmin.hpp +20 -23
  278. mlpack/include/mlpack/methods/ann/layer/softmin_impl.hpp +10 -10
  279. mlpack/include/mlpack/methods/ann/layer/sum_reduce.hpp +103 -0
  280. mlpack/include/mlpack/methods/ann/layer/sum_reduce_impl.hpp +143 -0
  281. mlpack/include/mlpack/methods/ann/loss_functions/cosine_embedding_loss_impl.hpp +8 -7
  282. mlpack/include/mlpack/methods/ann/loss_functions/mean_bias_error_impl.hpp +1 -1
  283. mlpack/include/mlpack/methods/ann/loss_functions/multilabel_softmargin_loss_impl.hpp +1 -1
  284. mlpack/include/mlpack/methods/ann/loss_functions/negative_log_likelihood.hpp +2 -2
  285. mlpack/include/mlpack/methods/ann/loss_functions/negative_log_likelihood_impl.hpp +29 -15
  286. mlpack/include/mlpack/methods/ann/loss_functions/poisson_nll_loss_impl.hpp +1 -1
  287. mlpack/include/mlpack/methods/ann/models/models.hpp +17 -0
  288. mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_layer.hpp +151 -0
  289. mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_layer_impl.hpp +265 -0
  290. mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_tiny.hpp +187 -0
  291. mlpack/include/mlpack/methods/ann/models/yolov3/yolov3_tiny_impl.hpp +206 -0
  292. mlpack/include/mlpack/methods/ann/regularizer/orthogonal_regularizer_impl.hpp +5 -3
  293. mlpack/include/mlpack/methods/ann/rnn.hpp +145 -50
  294. mlpack/include/mlpack/methods/ann/rnn_impl.hpp +245 -53
  295. mlpack/include/mlpack/methods/approx_kfn/drusilla_select_impl.hpp +1 -1
  296. mlpack/include/mlpack/methods/bayesian_linear_regression/bayesian_linear_regression_impl.hpp +3 -8
  297. mlpack/include/mlpack/methods/bayesian_linear_regression/bayesian_linear_regression_main.cpp +1 -1
  298. mlpack/include/mlpack/methods/bias_svd/bias_svd_function_impl.hpp +1 -1
  299. mlpack/include/mlpack/methods/cf/cf_model.hpp +1 -1
  300. mlpack/include/mlpack/methods/decision_tree/decision_tree.hpp +6 -6
  301. mlpack/include/mlpack/methods/decision_tree/decision_tree_impl.hpp +12 -12
  302. mlpack/include/mlpack/methods/decision_tree/decision_tree_main.cpp +0 -1
  303. mlpack/include/mlpack/methods/decision_tree/decision_tree_regressor.hpp +6 -6
  304. mlpack/include/mlpack/methods/decision_tree/decision_tree_regressor_impl.hpp +12 -12
  305. mlpack/include/mlpack/methods/decision_tree/fitness_functions/gini_gain.hpp +5 -8
  306. mlpack/include/mlpack/methods/decision_tree/fitness_functions/information_gain.hpp +5 -8
  307. mlpack/include/mlpack/methods/det/det_main.cpp +1 -1
  308. mlpack/include/mlpack/methods/gmm/diagonal_gmm_impl.hpp +2 -1
  309. mlpack/include/mlpack/methods/gmm/eigenvalue_ratio_constraint.hpp +3 -3
  310. mlpack/include/mlpack/methods/gmm/gmm_impl.hpp +2 -1
  311. mlpack/include/mlpack/methods/hmm/hmm_impl.hpp +10 -5
  312. mlpack/include/mlpack/methods/hmm/hmm_train_main.cpp +4 -4
  313. mlpack/include/mlpack/methods/hmm/hmm_util_impl.hpp +2 -2
  314. mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree.hpp +6 -6
  315. mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_impl.hpp +31 -31
  316. mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_main.cpp +1 -2
  317. mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_model.hpp +2 -2
  318. mlpack/include/mlpack/methods/hoeffding_trees/hoeffding_tree_model_impl.hpp +1 -1
  319. mlpack/include/mlpack/methods/kde/kde_rules_impl.hpp +6 -6
  320. mlpack/include/mlpack/methods/lars/lars_impl.hpp +3 -3
  321. mlpack/include/mlpack/methods/linear_svm/linear_svm_function_impl.hpp +4 -4
  322. mlpack/include/mlpack/methods/linear_svm/linear_svm_main.cpp +3 -3
  323. mlpack/include/mlpack/methods/lmnn/lmnn_main.cpp +1 -1
  324. mlpack/include/mlpack/methods/lsh/lsh_main.cpp +1 -1
  325. mlpack/include/mlpack/methods/matrix_completion/matrix_completion_impl.hpp +1 -1
  326. mlpack/include/mlpack/methods/naive_bayes/naive_bayes_classifier_impl.hpp +1 -1
  327. mlpack/include/mlpack/methods/naive_bayes/nbc_main.cpp +3 -3
  328. mlpack/include/mlpack/methods/nca/nca_main.cpp +1 -1
  329. mlpack/include/mlpack/methods/neighbor_search/kfn_main.cpp +8 -8
  330. mlpack/include/mlpack/methods/neighbor_search/knn_main.cpp +8 -8
  331. mlpack/include/mlpack/methods/neighbor_search/neighbor_search.hpp +154 -34
  332. mlpack/include/mlpack/methods/neighbor_search/neighbor_search_impl.hpp +190 -51
  333. mlpack/include/mlpack/methods/neighbor_search/neighbor_search_stat.hpp +10 -0
  334. mlpack/include/mlpack/methods/neighbor_search/ns_model.hpp +15 -15
  335. mlpack/include/mlpack/methods/neighbor_search/ns_model_impl.hpp +55 -46
  336. mlpack/include/mlpack/methods/neighbor_search/typedef.hpp +42 -2
  337. mlpack/include/mlpack/methods/pca/pca_impl.hpp +2 -2
  338. mlpack/include/mlpack/methods/perceptron/perceptron.hpp +2 -2
  339. mlpack/include/mlpack/methods/perceptron/perceptron_impl.hpp +1 -1
  340. mlpack/include/mlpack/methods/perceptron/perceptron_main.cpp +2 -2
  341. mlpack/include/mlpack/methods/preprocess/image_converter_main.cpp +2 -3
  342. mlpack/include/mlpack/methods/preprocess/preprocess_binarize_main.cpp +2 -2
  343. mlpack/include/mlpack/methods/preprocess/preprocess_describe_main.cpp +0 -1
  344. mlpack/include/mlpack/methods/preprocess/preprocess_imputer_main.cpp +50 -129
  345. mlpack/include/mlpack/methods/preprocess/preprocess_one_hot_encoding_main.cpp +6 -6
  346. mlpack/include/mlpack/methods/preprocess/preprocess_scale_main.cpp +2 -3
  347. mlpack/include/mlpack/methods/preprocess/preprocess_split_main.cpp +3 -4
  348. mlpack/include/mlpack/methods/preprocess/scaling_model.hpp +6 -8
  349. mlpack/include/mlpack/methods/preprocess/scaling_model_impl.hpp +18 -20
  350. mlpack/include/mlpack/methods/random_forest/random_forest.hpp +61 -41
  351. mlpack/include/mlpack/methods/random_forest/random_forest_impl.hpp +77 -67
  352. mlpack/include/mlpack/methods/range_search/range_search_main.cpp +1 -1
  353. mlpack/include/mlpack/methods/rann/krann_main.cpp +1 -1
  354. mlpack/include/mlpack/methods/regularized_svd/regularized_svd_function_impl.hpp +1 -1
  355. mlpack/include/mlpack/methods/reinforcement_learning/async_learning_impl.hpp +8 -8
  356. mlpack/include/mlpack/methods/reinforcement_learning/ddpg_impl.hpp +16 -16
  357. mlpack/include/mlpack/methods/reinforcement_learning/environment/acrobot.hpp +4 -4
  358. mlpack/include/mlpack/methods/reinforcement_learning/environment/cart_pole.hpp +3 -3
  359. mlpack/include/mlpack/methods/reinforcement_learning/environment/cont_double_pole_cart.hpp +6 -5
  360. mlpack/include/mlpack/methods/reinforcement_learning/environment/pendulum.hpp +6 -5
  361. mlpack/include/mlpack/methods/reinforcement_learning/policy/aggregated_policy.hpp +2 -2
  362. mlpack/include/mlpack/methods/reinforcement_learning/q_learning_impl.hpp +10 -10
  363. mlpack/include/mlpack/methods/reinforcement_learning/q_networks/categorical_dqn.hpp +21 -17
  364. mlpack/include/mlpack/methods/reinforcement_learning/q_networks/dueling_dqn.hpp +69 -77
  365. mlpack/include/mlpack/methods/reinforcement_learning/q_networks/simple_dqn.hpp +9 -9
  366. mlpack/include/mlpack/methods/reinforcement_learning/sac_impl.hpp +14 -14
  367. mlpack/include/mlpack/methods/reinforcement_learning/td3_impl.hpp +14 -14
  368. mlpack/include/mlpack/methods/softmax_regression/softmax_regression_function_impl.hpp +1 -1
  369. mlpack/include/mlpack/methods/svdplusplus/svdplusplus_function_impl.hpp +1 -1
  370. mlpack/include/mlpack/namespace_compat.hpp +1 -0
  371. mlpack/include/mlpack/prereqs.hpp +1 -0
  372. mlpack/kde.cp313-win_amd64.pyd +0 -0
  373. mlpack/kernel_pca.cp313-win_amd64.pyd +0 -0
  374. mlpack/kfn.cp313-win_amd64.pyd +0 -0
  375. mlpack/kmeans.cp313-win_amd64.pyd +0 -0
  376. mlpack/knn.cp313-win_amd64.pyd +0 -0
  377. mlpack/krann.cp313-win_amd64.pyd +0 -0
  378. mlpack/lars.cp313-win_amd64.pyd +0 -0
  379. mlpack/linear_regression_predict.cp313-win_amd64.pyd +0 -0
  380. mlpack/linear_regression_train.cp313-win_amd64.pyd +0 -0
  381. mlpack/linear_svm.cp313-win_amd64.pyd +0 -0
  382. mlpack/lmnn.cp313-win_amd64.pyd +0 -0
  383. mlpack/local_coordinate_coding.cp313-win_amd64.pyd +0 -0
  384. mlpack/logistic_regression.cp313-win_amd64.pyd +0 -0
  385. mlpack/lsh.cp313-win_amd64.pyd +0 -0
  386. mlpack/mean_shift.cp313-win_amd64.pyd +0 -0
  387. mlpack/nbc.cp313-win_amd64.pyd +0 -0
  388. mlpack/nca.cp313-win_amd64.pyd +0 -0
  389. mlpack/nmf.cp313-win_amd64.pyd +0 -0
  390. mlpack/pca.cp313-win_amd64.pyd +0 -0
  391. mlpack/perceptron.cp313-win_amd64.pyd +0 -0
  392. mlpack/preprocess_binarize.cp313-win_amd64.pyd +0 -0
  393. mlpack/preprocess_describe.cp313-win_amd64.pyd +0 -0
  394. mlpack/preprocess_one_hot_encoding.cp313-win_amd64.pyd +0 -0
  395. mlpack/preprocess_scale.cp313-win_amd64.pyd +0 -0
  396. mlpack/preprocess_split.cp313-win_amd64.pyd +0 -0
  397. mlpack/radical.cp313-win_amd64.pyd +0 -0
  398. mlpack/random_forest.cp313-win_amd64.pyd +0 -0
  399. mlpack/softmax_regression.cp313-win_amd64.pyd +0 -0
  400. mlpack/sparse_coding.cp313-win_amd64.pyd +0 -0
  401. mlpack-4.7.0.dist-info/DELVEWHEEL +2 -0
  402. {mlpack-4.6.1.dist-info → mlpack-4.7.0.dist-info}/METADATA +2 -2
  403. {mlpack-4.6.1.dist-info → mlpack-4.7.0.dist-info}/RECORD +407 -388
  404. {mlpack-4.6.1.dist-info → mlpack-4.7.0.dist-info}/WHEEL +1 -1
  405. mlpack/include/mlpack/core/data/format.hpp +0 -31
  406. mlpack/include/mlpack/core/data/image_info.hpp +0 -102
  407. mlpack/include/mlpack/core/data/image_info_impl.hpp +0 -84
  408. mlpack/include/mlpack/core/data/load_image_impl.hpp +0 -171
  409. mlpack/include/mlpack/core/data/load_model_impl.hpp +0 -115
  410. mlpack/include/mlpack/core/data/load_vec_impl.hpp +0 -154
  411. mlpack/include/mlpack/core/data/map_policies/missing_policy.hpp +0 -148
  412. mlpack/include/mlpack/core/data/save_image_impl.hpp +0 -170
  413. mlpack/include/mlpack/core/data/types.hpp +0 -61
  414. mlpack/include/mlpack/core/data/types_impl.hpp +0 -83
  415. mlpack/include/mlpack/core/data/utilities.hpp +0 -158
  416. mlpack/include/mlpack/core/util/gitversion.hpp +0 -1
  417. mlpack/include/mlpack/methods/ann/convolution_rules/fft_convolution.hpp +0 -213
  418. mlpack/include/mlpack/methods/ann/convolution_rules/svd_convolution.hpp +0 -201
  419. mlpack/include/mlpack/methods/ann/layer/not_adapted/gru.hpp +0 -226
  420. mlpack/include/mlpack/methods/ann/layer/not_adapted/gru_impl.hpp +0 -367
  421. mlpack/include/mlpack/methods/ann/layer/not_adapted/lookup.hpp +0 -139
  422. mlpack/include/mlpack/methods/ann/layer/not_adapted/lookup_impl.hpp +0 -98
  423. mlpack-4.6.1.dist-info/DELVEWHEEL +0 -2
  424. {mlpack-4.6.1.dist-info → mlpack-4.7.0.dist-info}/top_level.txt +0 -0
  425. /mlpack.libs/{libopenblas-9e6d070f769e6580e8c55c0cf83b80a5.dll → libopenblas-c7f521b507686ddc25bee7538a80c374.dll} +0 -0
  426. /mlpack.libs/{msvcp140-50208655e42969b9a5ab8a4e0186bbb9.dll → msvcp140-a4c2229bdc2a2a630acdc095b4d86008.dll} +0 -0
@@ -15,7 +15,50 @@
15
15
  #include "detect_file_type.hpp"
16
16
 
17
17
  namespace mlpack {
18
- namespace data {
18
+
19
+ template<typename DataOptionsType>
20
+ bool OpenFile(const std::string& filename,
21
+ DataOptionsType& opts,
22
+ bool isLoading,
23
+ std::fstream& stream)
24
+ {
25
+ if (isLoading)
26
+ {
27
+ #ifdef _WIN32 // Always open in binary mode on Windows.
28
+ stream.open(filename.c_str(), std::fstream::in
29
+ | std::fstream::binary);
30
+ #else
31
+ stream.open(filename.c_str(), std::fstream::in);
32
+ #endif
33
+ }
34
+ else
35
+ {
36
+ #ifdef _WIN32 // Always open in binary mode on Windows.
37
+ stream.open(filename.c_str(), std::fstream::out
38
+ | std::fstream::binary);
39
+ #else
40
+ stream.open(filename.c_str(), std::fstream::out);
41
+ #endif
42
+ }
43
+
44
+ if (!stream.is_open())
45
+ {
46
+ std::stringstream oss;
47
+ if (isLoading)
48
+ {
49
+ oss << "Cannot open file '" << filename << "' for loading. "
50
+ << "Please check if the file exists.";
51
+ return HandleError(oss, opts);
52
+ }
53
+ else if (!isLoading)
54
+ {
55
+ oss << "Cannot open file '" << filename << "' for saving. "
56
+ << "Please check if you have permissions for writing.";
57
+ return HandleError(oss, opts);
58
+ }
59
+ }
60
+ return true;
61
+ }
19
62
 
20
63
  /**
21
64
  * Given an istream, attempt to guess the file type. This is taken originally
@@ -73,11 +116,12 @@ inline FileType GuessFileType(std::istream& f)
73
116
  bool hasBinary = false;
74
117
  bool hasBracket = false;
75
118
  bool hasComma = false;
119
+ bool hasSemicolon = false;
76
120
 
77
121
  for (arma::uword i = 0; i < nUse; ++i)
78
122
  {
79
123
  const unsigned char val = dataMem[i];
80
- if ((val <= 8) || (val >= 123))
124
+ if (val <= 8)
81
125
  {
82
126
  hasBinary = true;
83
127
  break;
@@ -87,57 +131,16 @@ inline FileType GuessFileType(std::istream& f)
87
131
  {
88
132
  hasBracket = true;
89
133
  }
90
- if (val == ',')
134
+
135
+ if (val == ';')
91
136
  {
92
- hasComma = true;
137
+ hasSemicolon = true;
93
138
  }
94
- }
95
139
 
96
- if (hasComma && (hasBracket == false))
97
- {
98
- // If we believe we have a CSV file, then we want to try to skip any header
99
- // row. We'll detect a header row by simply seeing if anything in the first
100
- // line doesn't parse as a number.
101
- //
102
- // TODO: this is not a foolproof algorithm, so there should eventually be a
103
- // way added for the user to explicitly indicate that there is or isn't a
104
- // header.
105
- std::string firstLine;
106
- std::getline(f, firstLine);
107
-
108
- std::stringstream str(firstLine);
109
- std::string token;
110
- bool allNumeric = true;
111
- // We'll abuse 'getline()' to split on commas.
112
- while (std::getline(str, token, ','))
140
+ if (val == ',')
113
141
  {
114
- // Let's see if we can parse the token into a number.
115
- double num;
116
- std::string rest;
117
-
118
- // Try to parse into a number.
119
- std::stringstream s(token);
120
- s >> num;
121
- if (s.fail())
122
- {
123
- allNumeric = false;
124
- break;
125
- }
126
-
127
- // Now check to see there isn't anything else. (This catches cases like,
128
- // e.g., "1a".)
129
- s >> rest;
130
- if (rest.length() > 0)
131
- {
132
- allNumeric = false;
133
- break;
134
- }
142
+ hasComma = true;
135
143
  }
136
-
137
- // If we could parse everything into a number, then let's rewind `f` so that
138
- // it's at the start of the file.
139
- if (allNumeric)
140
- f.seekg(pos1);
141
144
  }
142
145
 
143
146
  delete[] dataMem;
@@ -145,6 +148,9 @@ inline FileType GuessFileType(std::istream& f)
145
148
  if (hasBinary)
146
149
  return FileType::RawBinary;
147
150
 
151
+ if (hasSemicolon && (hasBracket == false))
152
+ return FileType::CSVASCII;
153
+
148
154
  if (hasComma && (hasBracket == false))
149
155
  return FileType::CSVASCII;
150
156
 
@@ -164,7 +170,8 @@ inline FileType GuessFileType(std::istream& f)
164
170
  * @param filename Name of the file.
165
171
  * @return The detected file type.
166
172
  */
167
- inline FileType AutoDetect(std::fstream& stream, const std::string& filename)
173
+ inline FileType AutoDetectFile(std::fstream& stream,
174
+ const std::string& filename)
168
175
  {
169
176
  // Get the extension.
170
177
  std::string extension = Extension(filename);
@@ -271,9 +278,40 @@ inline FileType AutoDetect(std::fstream& stream, const std::string& filename)
271
278
  }
272
279
  else if (extension == "arff")
273
280
  {
274
- return FileType::ARFFASCII;
281
+ detectedLoadType = FileType::ARFFASCII;
282
+ }
283
+ else if (extension == "png")
284
+ {
285
+ detectedLoadType = FileType::PNG;
286
+ }
287
+ else if (extension == "jpg" || extension == "jpeg")
288
+ {
289
+ detectedLoadType = FileType::JPG;
290
+ }
291
+ else if (extension == "tga")
292
+ {
293
+ detectedLoadType = FileType::TGA;
294
+ }
295
+ else if (extension == "psd")
296
+ {
297
+ detectedLoadType = FileType::PSD;
298
+ }
299
+ else if (extension == "gif")
300
+ {
301
+ detectedLoadType = FileType::GIF;
302
+ }
303
+ else if (extension == "pic")
304
+ {
305
+ detectedLoadType = FileType::PIC;
306
+ }
307
+ else if (extension == "pnm")
308
+ {
309
+ detectedLoadType = FileType::PNM;
310
+ }
311
+ else if (extension == "bmp")
312
+ {
313
+ detectedLoadType = FileType::BMP;
275
314
  }
276
-
277
315
  else // Unknown extension...
278
316
  {
279
317
  detectedLoadType = FileType::FileTypeUnknown;
@@ -283,12 +321,11 @@ inline FileType AutoDetect(std::fstream& stream, const std::string& filename)
283
321
  }
284
322
 
285
323
  /**
286
- * Return the type based only on the extension.
324
+ * Update FileType in DataOptions based on extension.
287
325
  *
288
326
  * @param filename Name of the file whose type we should detect.
289
- * @return Detected type of file.
290
327
  */
291
- template<typename MatType, typename DataOptionsType>
328
+ template<typename ObjectType, typename DataOptionsType>
292
329
  void DetectFromExtension(const std::string& filename,
293
330
  DataOptionsType& opts)
294
331
  {
@@ -300,12 +337,12 @@ void DetectFromExtension(const std::string& filename,
300
337
  }
301
338
  else if (extension == "txt")
302
339
  {
303
- if (IsSparseMat<MatType>::value)
340
+ if (IsSparseMat<ObjectType>::value)
304
341
  opts.Format() = FileType::CoordASCII;
305
342
  else
306
343
  opts.Format() = FileType::RawASCII;
307
344
  }
308
- else if (extension == "bin")
345
+ else if (!HasSerialize<ObjectType>::value && extension == "bin")
309
346
  {
310
347
  opts.Format() = FileType::ArmaBinary;
311
348
  }
@@ -322,12 +359,113 @@ void DetectFromExtension(const std::string& filename,
322
359
  {
323
360
  opts.Format() = FileType::ARFFASCII;
324
361
  }
362
+ else if (extension == "png")
363
+ {
364
+ opts.Format() = FileType::PNG;
365
+ }
366
+ else if (extension == "jpg" || extension == "jpeg")
367
+ {
368
+ opts.Format() = FileType::JPG;
369
+ }
370
+ else if (extension == "tga")
371
+ {
372
+ opts.Format() = FileType::TGA;
373
+ }
374
+ else if (extension == "psd")
375
+ {
376
+ opts.Format() = FileType::PSD;
377
+ }
378
+ else if (extension == "gif")
379
+ {
380
+ opts.Format() = FileType::GIF;
381
+ }
382
+ else if (extension == "pic")
383
+ {
384
+ opts.Format() = FileType::PIC;
385
+ }
386
+ else if (extension == "pnm")
387
+ {
388
+ opts.Format() = FileType::PNM;
389
+ }
390
+ else if (extension == "bmp")
391
+ {
392
+ opts.Format() = FileType::BMP;
393
+ }
394
+ else
395
+ {
396
+ opts.Format() = FileType::FileTypeUnknown;
397
+ }
398
+ }
399
+
400
+ template<typename ObjectType, typename DataOptionsType>
401
+ void DetectFromSerializedExtension(const std::string& filename,
402
+ DataOptionsType& opts)
403
+ {
404
+ const std::string extension = Extension(filename);
405
+ if (extension == "xml")
406
+ {
407
+ opts.Format() = FileType::XML;
408
+ }
409
+ else if (extension == "bin")
410
+ {
411
+ opts.Format() = FileType::BIN;
412
+ }
413
+ else if (extension == "json")
414
+ {
415
+ opts.Format() = FileType::JSON;
416
+ }
325
417
  else
326
418
  {
327
419
  opts.Format() = FileType::FileTypeUnknown;
328
420
  }
329
421
  }
330
422
 
423
+ template<typename ObjectType, typename DataOptionsType>
424
+ bool DetectFileType(const std::string& filename,
425
+ DataOptionsType& opts,
426
+ bool isLoading,
427
+ std::fstream* stream)
428
+ {
429
+ if constexpr (HasSerialize<ObjectType>::value)
430
+ {
431
+ if (opts.Format() == FileType::AutoDetect)
432
+ {
433
+ DetectFromSerializedExtension<ObjectType>(filename, opts);
434
+ if (opts.Format() == FileType::FileTypeUnknown)
435
+ {
436
+ std::stringstream oss;
437
+ oss << "Unable to detect type of '" << filename
438
+ << "'; incorrect extension? (allowed: xml/bin/json)";
439
+ return HandleError(oss, opts);
440
+ }
441
+ }
442
+ }
443
+ else
444
+ {
445
+ if (opts.Format() == FileType::AutoDetect)
446
+ {
447
+ if (isLoading)
448
+ {
449
+ // Attempt to auto-detect the type from the given file.
450
+ opts.Format() = AutoDetectFile(*stream, filename);
451
+ }
452
+ else
453
+ {
454
+ DetectFromExtension<ObjectType>(filename, opts);
455
+ }
456
+ // Provide error if we don't know the type.
457
+ if (opts.Format() == FileType::FileTypeUnknown)
458
+ {
459
+ std::stringstream oss;
460
+ oss << "Unable to detect type of '" << filename << "'; "
461
+ << "incorrect extension?";
462
+ return HandleError(oss, opts);
463
+ }
464
+ }
465
+ }
466
+ return true;
467
+ }
468
+
331
469
  /**
332
470
  * Count the number of columns in the file. The file must be a CSV/TSV/TXT file
333
471
  * with no header.
@@ -355,5 +493,4 @@ inline size_t CountCols(std::fstream& f)
355
493
  return cols;
356
494
  }
357
495
 
358
- } // namespace data
359
496
  } // namespace mlpack
@@ -2,8 +2,8 @@
2
2
  * @file core/data/extension.hpp
3
3
  * @author Ryan Curtin
4
4
  *
5
- * Given a filename, extract its extension. This is used by data::Load() and
6
- * data::Save().
5
+ * Given a filename, extract its extension. This is used by Load() and
6
+ * Save().
7
7
  *
8
8
  * mlpack is free software; you may redistribute it and/or modify it under the
9
9
  * terms of the 3-clause BSD license. You should have received a copy of the
@@ -16,7 +16,6 @@
16
16
  #include <mlpack/prereqs.hpp>
17
17
 
18
18
  namespace mlpack {
19
- namespace data {
20
19
 
21
20
  inline std::string Extension(const std::string& filename)
22
21
  {
@@ -32,7 +31,6 @@ inline std::string Extension(const std::string& filename)
32
31
  return extension;
33
32
  }
34
33
 
35
- } // namespace data
36
34
  } // namespace mlpack
37
35
 
38
36
  #endif
@@ -0,0 +1,152 @@
1
+ /**
2
+ * 8x8 monochrome bitmap fonts for rendering
3
+ * Author: Daniel Hepper <daniel@hepper.net>
4
+ *
5
+ * License: Public Domain
6
+ *
7
+ * Based on:
8
+ * // Summary: font8x8.h
9
+ * // 8x8 monochrome bitmap fonts for rendering
10
+ * //
11
+ * // Author:
12
+ * // Marcel Sondaar
13
+ * // International Business Machines (public domain VGA fonts)
14
+ * //
15
+ * // License:
16
+ * // Public Domain
17
+ *
18
+ * Fetched from: http://dimensionalrift.homelinux.net/combuster/mos3/?p=viewsource&file=/modules/gfx/font8_8.asm
19
+ **/
20
+
21
+ // Constant: font8x8_basic
22
+ // Contains an 8x8 font map for unicode points U+0000 - U+007F (basic latin)
23
+ const unsigned char font8x8Basic[128][8] = {
24
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0000 (nul)
25
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0001
26
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0002
27
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0003
28
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0004
29
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0005
30
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0006
31
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0007
32
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0008
33
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0009
34
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000A
35
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000B
36
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000C
37
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000D
38
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000E
39
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000F
40
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0010
41
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0011
42
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0012
43
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0013
44
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0014
45
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0015
46
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0016
47
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0017
48
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0018
49
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0019
50
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001A
51
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001B
52
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001C
53
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001D
54
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001E
55
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001F
56
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0020 (space)
57
+ { 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00}, // U+0021 (!)
58
+ { 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0022 (")
59
+ { 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00}, // U+0023 (#)
60
+ { 0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00}, // U+0024 ($)
61
+ { 0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00}, // U+0025 (%)
62
+ { 0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00}, // U+0026 (&)
63
+ { 0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0027 (')
64
+ { 0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00}, // U+0028 (()
65
+ { 0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00}, // U+0029 ())
66
+ { 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00}, // U+002A (*)
67
+ { 0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00}, // U+002B (+)
68
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+002C (,)
69
+ { 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00}, // U+002D (-)
70
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+002E (.)
71
+ { 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00}, // U+002F (/)
72
+ { 0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00}, // U+0030 (0)
73
+ { 0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00}, // U+0031 (1)
74
+ { 0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00}, // U+0032 (2)
75
+ { 0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00}, // U+0033 (3)
76
+ { 0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00}, // U+0034 (4)
77
+ { 0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00}, // U+0035 (5)
78
+ { 0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00}, // U+0036 (6)
79
+ { 0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00}, // U+0037 (7)
80
+ { 0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+0038 (8)
81
+ { 0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00}, // U+0039 (9)
82
+ { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+003A (:)
83
+ { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+003B (;)
84
+ { 0x18, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x18, 0x00}, // U+003C (<)
85
+ { 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00}, // U+003D (=)
86
+ { 0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00}, // U+003E (>)
87
+ { 0x1E, 0x33, 0x30, 0x18, 0x0C, 0x00, 0x0C, 0x00}, // U+003F (?)
88
+ { 0x3E, 0x63, 0x7B, 0x7B, 0x7B, 0x03, 0x1E, 0x00}, // U+0040 (@)
89
+ { 0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00}, // U+0041 (A)
90
+ { 0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00}, // U+0042 (B)
91
+ { 0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00}, // U+0043 (C)
92
+ { 0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00}, // U+0044 (D)
93
+ { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00}, // U+0045 (E)
94
+ { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00}, // U+0046 (F)
95
+ { 0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00}, // U+0047 (G)
96
+ { 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00}, // U+0048 (H)
97
+ { 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0049 (I)
98
+ { 0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00}, // U+004A (J)
99
+ { 0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00}, // U+004B (K)
100
+ { 0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00}, // U+004C (L)
101
+ { 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00}, // U+004D (M)
102
+ { 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00}, // U+004E (N)
103
+ { 0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00}, // U+004F (O)
104
+ { 0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00}, // U+0050 (P)
105
+ { 0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00}, // U+0051 (Q)
106
+ { 0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00}, // U+0052 (R)
107
+ { 0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00}, // U+0053 (S)
108
+ { 0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0054 (T)
109
+ { 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00}, // U+0055 (U)
110
+ { 0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0056 (V)
111
+ { 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00}, // U+0057 (W)
112
+ { 0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00}, // U+0058 (X)
113
+ { 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00}, // U+0059 (Y)
114
+ { 0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00}, // U+005A (Z)
115
+ { 0x1E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x00}, // U+005B ([)
116
+ { 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00}, // U+005C (\)
117
+ { 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00}, // U+005D (])
118
+ { 0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00}, // U+005E (^)
119
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF}, // U+005F (_)
120
+ { 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0060 (`)
121
+ { 0x00, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x6E, 0x00}, // U+0061 (a)
122
+ { 0x07, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00}, // U+0062 (b)
123
+ { 0x00, 0x00, 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x00}, // U+0063 (c)
124
+ { 0x38, 0x30, 0x30, 0x3e, 0x33, 0x33, 0x6E, 0x00}, // U+0064 (d)
125
+ { 0x00, 0x00, 0x1E, 0x33, 0x3f, 0x03, 0x1E, 0x00}, // U+0065 (e)
126
+ { 0x1C, 0x36, 0x06, 0x0f, 0x06, 0x06, 0x0F, 0x00}, // U+0066 (f)
127
+ { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0067 (g)
128
+ { 0x07, 0x06, 0x36, 0x6E, 0x66, 0x66, 0x67, 0x00}, // U+0068 (h)
129
+ { 0x0C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0069 (i)
130
+ { 0x30, 0x00, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E}, // U+006A (j)
131
+ { 0x07, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x67, 0x00}, // U+006B (k)
132
+ { 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+006C (l)
133
+ { 0x00, 0x00, 0x33, 0x7F, 0x7F, 0x6B, 0x63, 0x00}, // U+006D (m)
134
+ { 0x00, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x33, 0x00}, // U+006E (n)
135
+ { 0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00}, // U+006F (o)
136
+ { 0x00, 0x00, 0x3B, 0x66, 0x66, 0x3E, 0x06, 0x0F}, // U+0070 (p)
137
+ { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x78}, // U+0071 (q)
138
+ { 0x00, 0x00, 0x3B, 0x6E, 0x66, 0x06, 0x0F, 0x00}, // U+0072 (r)
139
+ { 0x00, 0x00, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x00}, // U+0073 (s)
140
+ { 0x08, 0x0C, 0x3E, 0x0C, 0x0C, 0x2C, 0x18, 0x00}, // U+0074 (t)
141
+ { 0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x6E, 0x00}, // U+0075 (u)
142
+ { 0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0076 (v)
143
+ { 0x00, 0x00, 0x63, 0x6B, 0x7F, 0x7F, 0x36, 0x00}, // U+0077 (w)
144
+ { 0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00}, // U+0078 (x)
145
+ { 0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0079 (y)
146
+ { 0x00, 0x00, 0x3F, 0x19, 0x0C, 0x26, 0x3F, 0x00}, // U+007A (z)
147
+ { 0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00}, // U+007B ({)
148
+ { 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00}, // U+007C (|)
149
+ { 0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00}, // U+007D (})
150
+ { 0x6E, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+007E (~)
151
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // U+007F
152
+ };
@@ -20,7 +20,6 @@
20
20
  #include <type_traits>
21
21
 
22
22
  namespace mlpack {
23
- namespace data {
24
23
 
25
24
  // This gives us a HasSerializeCheck<T, U> type (where U is a function pointer)
26
25
  // we can use with SFINAE to catch when a type has a Serialize() function.
@@ -59,7 +58,6 @@ struct HasSerialize
59
58
  static const bool value = (sizeof(chk<T>(0)) == sizeof(yes));
60
59
  };
61
60
 
62
- } // namespace data
63
61
  } // namespace mlpack
64
62
 
65
63
  #endif
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @file core/data/image_bounding_box.hpp
3
+ * @author Andrew Furey
4
+ *
5
+ * Draw bounding boxes and labels onto images.
6
+ *
7
+ * mlpack is free software; you may redistribute it and/or modify it under the
8
+ * terms of the 3-clause BSD license. You should have received a copy of the
9
+ * 3-clause BSD license along with mlpack. If not, see
10
+ * http://www.opensource.org/licenses/BSD-3-Clause for more information.
11
+ */
12
+
13
+ #ifndef MLPACK_CORE_DATA_IMAGE_BOUNDING_BOX_HPP
14
+ #define MLPACK_CORE_DATA_IMAGE_BOUNDING_BOX_HPP
15
+
16
+ #include "image_options.hpp"
17
+ #include "font8x8_basic.h"
18
+
19
+ namespace mlpack {
20
+
21
+ template <typename ImageType,
22
+ typename BoundingBoxesType,
23
+ typename ColorType>
24
+ inline void BoundingBoxImage(ImageType& src,
25
+ const ImageInfo& opts,
26
+ const BoundingBoxesType& bbox,
27
+ const ColorType& color,
28
+ const size_t borderSize = 1,
29
+ const std::string& className = "",
30
+ const size_t letterSize = 1);
31
+
32
+ } // namespace mlpack
33
+
34
+ #include "image_bounding_box_impl.hpp"
35
+
36
+ #endif