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