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
@@ -22,35 +22,35 @@
22
22
  namespace mlpack {
23
23
 
24
24
  template<typename MatType>
25
- DropConnectType<MatType>::DropConnectType() :
25
+ DropConnect<MatType>::DropConnect() :
26
26
  Layer<MatType>(),
27
27
  ratio(0.5),
28
28
  scale(2.0),
29
- baseLayer(new LinearType<MatType>(0))
29
+ baseLayer(new Linear<MatType>(0))
30
30
  {
31
31
  // Nothing to do here.
32
32
  }
33
33
 
34
34
  template<typename MatType>
35
- DropConnectType<MatType>::DropConnectType(
35
+ DropConnect<MatType>::DropConnect(
36
36
  const size_t outSize,
37
37
  const double ratio) :
38
38
  Layer<MatType>(),
39
39
  ratio(ratio),
40
40
  scale(1.0 / (1 - ratio)),
41
- baseLayer(new LinearType<MatType>(outSize))
41
+ baseLayer(new Linear<MatType>(outSize))
42
42
  {
43
43
  // Nothing to do.
44
44
  }
45
45
 
46
46
  template<typename MatType>
47
- DropConnectType<MatType>::~DropConnectType()
47
+ DropConnect<MatType>::~DropConnect()
48
48
  {
49
49
  delete baseLayer;
50
50
  }
51
51
 
52
52
  template<typename MatType>
53
- DropConnectType<MatType>::DropConnectType(const DropConnectType& other) :
53
+ DropConnect<MatType>::DropConnect(const DropConnect& other) :
54
54
  Layer<MatType>(other),
55
55
  ratio(other.ratio),
56
56
  scale(other.scale),
@@ -60,7 +60,7 @@ DropConnectType<MatType>::DropConnectType(const DropConnectType& other) :
60
60
  }
61
61
 
62
62
  template<typename MatType>
63
- DropConnectType<MatType>::DropConnectType(DropConnectType&& other) :
63
+ DropConnect<MatType>::DropConnect(DropConnect&& other) :
64
64
  Layer<MatType>(std::move(other)),
65
65
  ratio(std::move(other.ratio)),
66
66
  scale(std::move(other.scale)),
@@ -70,8 +70,8 @@ DropConnectType<MatType>::DropConnectType(DropConnectType&& other) :
70
70
  }
71
71
 
72
72
  template<typename MatType>
73
- DropConnectType<MatType>&
74
- DropConnectType<MatType>::operator=(const DropConnectType& other)
73
+ DropConnect<MatType>&
74
+ DropConnect<MatType>::operator=(const DropConnect& other)
75
75
  {
76
76
  if (&other != this)
77
77
  {
@@ -85,8 +85,8 @@ DropConnectType<MatType>::operator=(const DropConnectType& other)
85
85
  }
86
86
 
87
87
  template<typename MatType>
88
- DropConnectType<MatType>&
89
- DropConnectType<MatType>::operator=(DropConnectType&& other)
88
+ DropConnect<MatType>&
89
+ DropConnect<MatType>::operator=(DropConnect&& other)
90
90
  {
91
91
  if (&other != this)
92
92
  {
@@ -100,7 +100,7 @@ DropConnectType<MatType>::operator=(DropConnectType&& other)
100
100
  }
101
101
 
102
102
  template<typename MatType>
103
- void DropConnectType<MatType>::Forward(const MatType& input, MatType& output)
103
+ void DropConnect<MatType>::Forward(const MatType& input, MatType& output)
104
104
  {
105
105
  // The DropConnect mask will not be multiplied in testing mode.
106
106
  if (!this->training)
@@ -114,18 +114,18 @@ void DropConnectType<MatType>::Forward(const MatType& input, MatType& output)
114
114
 
115
115
  // Scale with input / (1 - ratio) and set values to zero with
116
116
  // probability ratio.
117
- mask.randu(denoise.n_rows, denoise.n_cols);
118
- mask.transform([&](double val) { return (val > ratio); });
117
+ mask = conv_to<MatType>::from(
118
+ randu<MatType>(denoise.n_rows, denoise.n_cols) > ElemType(ratio));
119
119
 
120
120
  baseLayer->Parameters() = denoise % mask;
121
121
  baseLayer->Forward(input, output);
122
122
 
123
- output = output * scale;
123
+ output = output * ElemType(scale);
124
124
  }
125
125
  }
126
126
 
127
127
  template<typename MatType>
128
- void DropConnectType<MatType>::Backward(
128
+ void DropConnect<MatType>::Backward(
129
129
  const MatType& input,
130
130
  const MatType& output,
131
131
  const MatType& gy,
@@ -135,7 +135,7 @@ void DropConnectType<MatType>::Backward(
135
135
  }
136
136
 
137
137
  template<typename MatType>
138
- void DropConnectType<MatType>::Gradient(
138
+ void DropConnect<MatType>::Gradient(
139
139
  const MatType& input,
140
140
  const MatType& error,
141
141
  MatType& gradient)
@@ -147,7 +147,7 @@ void DropConnectType<MatType>::Gradient(
147
147
  }
148
148
 
149
149
  template<typename MatType>
150
- void DropConnectType<MatType>::ComputeOutputDimensions()
150
+ void DropConnect<MatType>::ComputeOutputDimensions()
151
151
  {
152
152
  // Propagate input dimensions to the base layer.
153
153
  baseLayer->InputDimensions() = this->inputDimensions;
@@ -155,14 +155,14 @@ void DropConnectType<MatType>::ComputeOutputDimensions()
155
155
  }
156
156
 
157
157
  template<typename MatType>
158
- void DropConnectType<MatType>::SetWeights(const MatType& weightsIn)
158
+ void DropConnect<MatType>::SetWeights(const MatType& weightsIn)
159
159
  {
160
160
  baseLayer->SetWeights(weightsIn);
161
161
  }
162
162
 
163
163
  template<typename MatType>
164
164
  template<typename Archive>
165
- void DropConnectType<MatType>::serialize(
165
+ void DropConnect<MatType>::serialize(
166
166
  Archive& ar, const uint32_t /* version */)
167
167
  {
168
168
  ar(cereal::base_class<Layer<MatType>>(this));
@@ -44,30 +44,33 @@ namespace mlpack {
44
44
  * computation.
45
45
  */
46
46
  template<typename MatType = arma::mat>
47
- class DropoutType : public Layer<MatType>
47
+ class Dropout : public Layer<MatType>
48
48
  {
49
49
  public:
50
+ // Convenience typedef to access the element type of the weights and data.
51
+ using ElemType = typename MatType::elem_type;
52
+
50
53
  /**
51
54
  * Create the Dropout object using the specified ratio parameter.
52
55
  *
53
56
  * @param ratio The probability of setting a value to zero.
54
57
  */
55
- DropoutType(const double ratio = 0.5);
58
+ Dropout(const double ratio = 0.5);
56
59
 
57
- //! Clone the DropoutType object. This handles polymorphism correctly.
58
- DropoutType* Clone() const { return new DropoutType(*this); }
60
+ // Clone the Dropout object. This handles polymorphism correctly.
61
+ Dropout* Clone() const { return new Dropout(*this); }
59
62
 
60
63
  // Virtual destructor.
61
- virtual ~DropoutType() { }
64
+ virtual ~Dropout() { }
62
65
 
63
- //! Copy the given DropoutType.
64
- DropoutType(const DropoutType& other);
65
- //! Take ownership of the given DropoutType.
66
- DropoutType(DropoutType&& other);
67
- //! Copy the given DropoutType.
68
- DropoutType& operator=(const DropoutType& other);
69
- //! Take ownership of the given DropoutType.
70
- DropoutType& operator=(DropoutType&& other);
66
+ //! Copy the given Dropout.
67
+ Dropout(const Dropout& other);
68
+ //! Take ownership of the given Dropout.
69
+ Dropout(Dropout&& other);
70
+ //! Copy the given Dropout.
71
+ Dropout& operator=(const Dropout& other);
72
+ //! Take ownership of the given Dropout.
73
+ Dropout& operator=(Dropout&& other);
71
74
 
72
75
  /**
73
76
  * Ordinary feed forward pass of the dropout layer.
@@ -115,12 +118,7 @@ class DropoutType : public Layer<MatType>
115
118
 
116
119
  //! The scale fraction.
117
120
  double scale;
118
- }; // class DropoutType
119
-
120
- // Convenience typedefs.
121
-
122
- // Standard Dropout layer.
123
- using Dropout = DropoutType<arma::mat>;
121
+ }; // class Dropout
124
122
 
125
123
  } // namespace mlpack
126
124
 
@@ -19,7 +19,7 @@
19
19
  namespace mlpack {
20
20
 
21
21
  template<typename MatType>
22
- DropoutType<MatType>::DropoutType(
22
+ Dropout<MatType>::Dropout(
23
23
  const double ratio) :
24
24
  Layer<MatType>(),
25
25
  ratio(ratio),
@@ -29,7 +29,7 @@ DropoutType<MatType>::DropoutType(
29
29
  }
30
30
 
31
31
  template<typename MatType>
32
- DropoutType<MatType>::DropoutType(const DropoutType& other) :
32
+ Dropout<MatType>::Dropout(const Dropout& other) :
33
33
  Layer<MatType>(other),
34
34
  ratio(other.ratio),
35
35
  scale(other.scale)
@@ -38,7 +38,7 @@ DropoutType<MatType>::DropoutType(const DropoutType& other) :
38
38
  }
39
39
 
40
40
  template<typename MatType>
41
- DropoutType<MatType>::DropoutType(DropoutType&& other) :
41
+ Dropout<MatType>::Dropout(Dropout&& other) :
42
42
  Layer<MatType>(std::move(other)),
43
43
  ratio(std::move(other.ratio)),
44
44
  scale(std::move(other.scale))
@@ -47,8 +47,8 @@ DropoutType<MatType>::DropoutType(DropoutType&& other) :
47
47
  }
48
48
 
49
49
  template<typename MatType>
50
- DropoutType<MatType>&
51
- DropoutType<MatType>::operator=(const DropoutType& other)
50
+ Dropout<MatType>&
51
+ Dropout<MatType>::operator=(const Dropout& other)
52
52
  {
53
53
  if (&other != this)
54
54
  {
@@ -61,8 +61,8 @@ DropoutType<MatType>::operator=(const DropoutType& other)
61
61
  }
62
62
 
63
63
  template<typename MatType>
64
- DropoutType<MatType>&
65
- DropoutType<MatType>::operator=(DropoutType&& other)
64
+ Dropout<MatType>&
65
+ Dropout<MatType>::operator=(Dropout&& other)
66
66
  {
67
67
  if (&other != this)
68
68
  {
@@ -75,7 +75,7 @@ DropoutType<MatType>::operator=(DropoutType&& other)
75
75
  }
76
76
 
77
77
  template<typename MatType>
78
- void DropoutType<MatType>::Forward(const MatType& input, MatType& output)
78
+ void Dropout<MatType>::Forward(const MatType& input, MatType& output)
79
79
  {
80
80
  // The dropout mask will not be multiplied in testing mode.
81
81
  if (!this->training)
@@ -86,32 +86,25 @@ void DropoutType<MatType>::Forward(const MatType& input, MatType& output)
86
86
  {
87
87
  // Scale with input / (1 - ratio) and set values to zero with probability
88
88
  // 'ratio'.
89
- mask.randu(input.n_rows, input.n_cols);
90
- #pragma omp parallel for collapse(2)
91
- for (size_t i = 0; i < input.n_rows; ++i)
92
- {
93
- for (size_t j = 0; j < input.n_cols; ++j)
94
- {
95
- mask(i, j) = (mask(i, j) > this->ratio) ? 1.0 : 0.0;
96
- }
97
- }
98
- output = input % mask * this->scale;
89
+ mask = conv_to<MatType>::from(
90
+ randu<MatType>(input.n_rows, input.n_cols) > ElemType(ratio));
91
+ output = input % mask * ElemType(scale);
99
92
  }
100
93
  }
101
94
 
102
95
  template<typename MatType>
103
- void DropoutType<MatType>::Backward(
96
+ void Dropout<MatType>::Backward(
104
97
  const MatType& /* input */,
105
98
  const MatType& /* output */,
106
99
  const MatType& gy,
107
100
  MatType& g)
108
101
  {
109
- g = gy % mask * scale;
102
+ g = gy % mask * ElemType(scale);
110
103
  }
111
104
 
112
105
  template<typename MatType>
113
106
  template<typename Archive>
114
- void DropoutType<MatType>::serialize(
107
+ void Dropout<MatType>::serialize(
115
108
  Archive& ar,
116
109
  const uint32_t /* version */)
117
110
  {
@@ -104,15 +104,18 @@ namespace mlpack {
104
104
  * type to differ from the input type (Default: arma::mat).
105
105
  */
106
106
  template <typename MatType = arma::mat>
107
- class ELUType : public Layer<MatType>
107
+ class ELU : public Layer<MatType>
108
108
  {
109
109
  public:
110
+ // Convenience typedef to access the element type of the weights and data.
111
+ using ElemType = typename MatType::elem_type;
112
+
110
113
  /**
111
114
  * Create the ELU object.
112
115
  *
113
116
  * NOTE: Use this constructor for SELU activation function.
114
117
  */
115
- ELUType();
118
+ ELU();
116
119
 
117
120
  /**
118
121
  * Create the ELU object using the specified parameter. The non zero
@@ -122,25 +125,25 @@ class ELUType : public Layer<MatType>
122
125
  * @note Use this constructor for ELU activation function.
123
126
  * @param alpha Scale parameter for the negative factor.
124
127
  */
125
- ELUType(const double alpha);
128
+ ELU(const double alpha);
126
129
 
127
- //! Clone the ELUType object. This handles polymorphism correctly.
128
- ELUType* Clone() const { return new ELUType(*this); }
130
+ //! Clone the ELU object. This handles polymorphism correctly.
131
+ ELU* Clone() const { return new ELU(*this); }
129
132
 
130
133
  // Virtual destructor.
131
- virtual ~ELUType() { }
134
+ virtual ~ELU() { }
132
135
 
133
136
  // Copy constructor.
134
- ELUType(const ELUType& other);
137
+ ELU(const ELU& other);
135
138
 
136
139
  // Move Constructor.
137
- ELUType(ELUType&& other);
140
+ ELU(ELU&& other);
138
141
 
139
142
  // Copy assignment operator.
140
- ELUType& operator=(const ELUType& other);
143
+ ELU& operator=(const ELU& other);
141
144
 
142
145
  // Move assignement operator.
143
- ELUType& operator=(ELUType&& other);
146
+ ELU& operator=(ELU&& other);
144
147
 
145
148
  /**
146
149
  * Ordinary feed forward pass of a neural network, evaluating the function
@@ -181,27 +184,22 @@ class ELUType : public Layer<MatType>
181
184
  void serialize(Archive& ar, const uint32_t /* version */);
182
185
 
183
186
  private:
184
- //! Locally stored first derivative of the activation function.
185
- MatType derivative;
186
-
187
- //! ELU Hyperparameter (0 < alpha)
188
- //! SELU parameter fixed to 1.6732632423543774 for normalized inputs.
187
+ // ELU Hyperparameter (0 < alpha)
188
+ // SELU parameter fixed to 1.6732632423543774 for normalized inputs.
189
189
  double alpha;
190
190
 
191
- //! Lambda parameter used for multiplication of ELU function.
192
- //! For ELU activation function, lambda = 1.
193
- //! For SELU activation function, lambda = 1.0507009873554802 for normalized
194
- //! inputs.
191
+ // Lambda parameter used for multiplication of ELU function.
192
+ // For ELU activation function, lambda = 1.
193
+ // For SELU activation function, lambda = 1.0507009873554802 for normalized
194
+ // inputs.
195
195
  double lambda;
196
- }; // class ELUType
196
+ }; // class ELU
197
197
 
198
198
  // Convenience typedefs.
199
199
 
200
- // ELU layer.
201
- using ELU = ELUType<arma::mat>;
202
-
203
- // SELU layer.
204
- using SELU = ELUType<arma::mat>;
200
+ // SELU layer (implemented as a class for template deduction).
201
+ template<typename MatType = arma::mat>
202
+ class SELU : public ELU<MatType> { };
205
203
 
206
204
  } // namespace mlpack
207
205
 
@@ -26,7 +26,7 @@ namespace mlpack {
26
26
  // This constructor is called for SELU activation function. The values of
27
27
  // alpha and lambda are constant for normalized inputs.
28
28
  template<typename MatType>
29
- ELUType<MatType>::ELUType() :
29
+ ELU<MatType>::ELU() :
30
30
  Layer<MatType>(),
31
31
  alpha(1.6732632423543774),
32
32
  lambda(1.0507009873554802)
@@ -37,7 +37,7 @@ ELUType<MatType>::ELUType() :
37
37
  // This constructor is called for ELU activation function. The value of lambda
38
38
  // is fixed and equal to 1. 'alpha' is a hyperparameter.
39
39
  template<typename MatType>
40
- ELUType<MatType>::ELUType(const double alpha) :
40
+ ELU<MatType>::ELU(const double alpha) :
41
41
  Layer<MatType>(),
42
42
  alpha(alpha),
43
43
  lambda(1)
@@ -46,7 +46,7 @@ ELUType<MatType>::ELUType(const double alpha) :
46
46
  }
47
47
 
48
48
  template<typename MatType>
49
- ELUType<MatType>::ELUType(const ELUType& other) :
49
+ ELU<MatType>::ELU(const ELU& other) :
50
50
  Layer<MatType>(other),
51
51
  alpha(other.alpha),
52
52
  lambda(other.lambda)
@@ -55,8 +55,8 @@ ELUType<MatType>::ELUType(const ELUType& other) :
55
55
  }
56
56
 
57
57
  template<typename MatType>
58
- ELUType<MatType>::ELUType(
59
- ELUType&& other) :
58
+ ELU<MatType>::ELU(
59
+ ELU&& other) :
60
60
  Layer<MatType>(std::move(other)),
61
61
  alpha(std::move(other.alpha)),
62
62
  lambda(std::move(other.lambda))
@@ -65,8 +65,8 @@ ELUType<MatType>::ELUType(
65
65
  }
66
66
 
67
67
  template<typename MatType>
68
- ELUType<MatType>&
69
- ELUType<MatType>::operator=(const ELUType& other)
68
+ ELU<MatType>&
69
+ ELU<MatType>::operator=(const ELU& other)
70
70
  {
71
71
  if (&other != this)
72
72
  {
@@ -79,8 +79,8 @@ ELUType<MatType>::operator=(const ELUType& other)
79
79
  }
80
80
 
81
81
  template<typename MatType>
82
- ELUType<MatType>&
83
- ELUType<MatType>::operator=(ELUType&& other)
82
+ ELU<MatType>&
83
+ ELU<MatType>::operator=(ELU&& other)
84
84
  {
85
85
  if (&other != this)
86
86
  {
@@ -93,39 +93,32 @@ ELUType<MatType>::operator=(ELUType&& other)
93
93
  }
94
94
 
95
95
  template<typename MatType>
96
- void ELUType<MatType>::Forward(
96
+ void ELU<MatType>::Forward(
97
97
  const MatType& input, MatType& output)
98
98
  {
99
99
  for (size_t i = 0; i < input.n_elem; ++i)
100
100
  {
101
- if (input(i) < DBL_MAX)
102
- {
103
- output(i) = (input(i) > 0) ? lambda * input(i) : lambda * alpha *
104
- (std::exp(input(i)) - 1);
105
- }
106
- }
107
-
108
- if (this->training)
109
- {
110
- derivative.set_size(arma::size(input));
111
- for (size_t i = 0; i < input.n_elem; ++i)
112
- derivative(i) = (input(i) > 0) ? lambda : output(i) + lambda * alpha;
101
+ output(i) = (input(i) >= 0) ? ElemType(lambda) * input(i) :
102
+ ElemType(lambda) * ElemType(alpha) * (std::exp(input(i)) - 1);
113
103
  }
114
104
  }
115
105
 
116
106
  template<typename MatType>
117
- void ELUType<MatType>::Backward(
118
- const MatType& /* input */,
119
- const MatType& /* output */,
107
+ void ELU<MatType>::Backward(
108
+ const MatType& input,
109
+ const MatType& output,
120
110
  const MatType& gy,
121
111
  MatType& g)
122
112
  {
123
- g = gy % derivative;
113
+ for (size_t i = 0; i < input.n_elem; ++i)
114
+ {
115
+ g(i) = gy(i) * ((input(i) >= 0) ? lambda : output(i) + lambda * alpha);
116
+ }
124
117
  }
125
118
 
126
119
  template<typename MatType>
127
120
  template<typename Archive>
128
- void ELUType<MatType>::serialize(
121
+ void ELU<MatType>::serialize(
129
122
  Archive& ar, const uint32_t /* version */)
130
123
  {
131
124
  ar(cereal::base_class<Layer<MatType>>(this));
@@ -0,0 +1,160 @@
1
+ /**
2
+ * @file methods/ann/layer/embedding.hpp
3
+ * @author Marcus Edel
4
+ * @author Kumar Utkarsh
5
+ * @author Ryan Curtin
6
+ *
7
+ * Definition of the Embedding (embedding) layer class.
8
+ *
9
+ * mlpack is free software; you may redistribute it and/or modify it under the
10
+ * terms of the 3-clause BSD license. You should have received a copy of the
11
+ * 3-clause BSD license along with mlpack. If not, see
12
+ * http://www.opensource.org/licenses/BSD-3-Clause for more information.
13
+ */
14
+ #ifndef MLPACK_METHODS_ANN_LAYER_EMBEDDING_HPP
15
+ #define MLPACK_METHODS_ANN_LAYER_EMBEDDING_HPP
16
+
17
+ #include <mlpack/prereqs.hpp>
18
+ #include <mlpack/methods/ann/regularizer/no_regularizer.hpp>
19
+
20
+ #include "layer.hpp"
21
+
22
+ namespace mlpack {
23
+
24
+ /**
25
+ * The Embedding class stores word embeddings and retrieves them using tokens.
26
+ * It must always be the first layer of any network it is used in.
27
+ *
28
+ * The input to the Embedding class is a matrix of shape (sequenceLength,
29
+ * batchSize). The matrix consists of tokens which are used to lookup the table
30
+ * (i.e. weights) to find the embeddings of those tokens.
31
+ *
32
+ * The input shape : (sequenceLength, batchSize).
33
+ * The output shape : (sequenceLength * embeddingSize, batchSize).
34
+ *
35
+ * @tparam InputDataType Type of the input data (arma::colvec, arma::mat,
36
+ * arma::sp_mat or arma::cube).
37
+ * @tparam OutputDataType Type of the output data (arma::colvec, arma::mat,
38
+ * arma::sp_mat or arma::cube).
39
+ */
40
+ template<
41
+ typename MatType = arma::mat,
42
+ typename RegularizerType = NoRegularizer
43
+ >
44
+ class Embedding : public Layer<MatType>
45
+ {
46
+ public:
47
+ using CubeType = typename GetCubeType<MatType>::type;
48
+
49
+ // Create an Embedding layer.
50
+ Embedding();
51
+
52
+ /**
53
+ * Create the Embedding layer object with the specified number of output
54
+ * dimensions. The vocabulary size (number of possible inputs) and the
55
+ * embedding size (dimensionality of the output) must be given.
56
+ *
57
+ * @param vocabSize The size of the input vocabulary (number of different
58
+ * possible input values).
59
+ * @param embeddingSize Number of dimensions to use for the embedding.
60
+ * @param regularizer The regularizer to use, optional (default: no
61
+ * regularizer).
62
+ */
63
+ Embedding(const size_t vocabSize,
64
+ const size_t embeddingSize,
65
+ RegularizerType regularizer = RegularizerType());
66
+
67
+ virtual ~Embedding() { }
68
+
69
+ // Clone the Embedding object. This handles polymorphism correctly.
70
+ Embedding* Clone() const { return new Embedding(*this); }
71
+
72
+ // Copy the other Embedding layer (but not weights).
73
+ Embedding(const Embedding& layer);
74
+
75
+ // Take ownership of the members of the other Embedding layer (but not
76
+ // weights).
77
+ Embedding(Embedding&& layer);
78
+
79
+ // Copy the other Embedding layer (but not weights).
80
+ Embedding& operator=(const Embedding& layer);
81
+
82
+ // Take ownership of the members of the other Embedding layer (but not
83
+ // weights).
84
+ Embedding& operator=(Embedding&& layer);
85
+
86
+ /**
87
+ * Reset the layer parameter (weights and bias). The method is called to
88
+ * assign the allocated memory to the internal learnable parameters.
89
+ */
90
+ void SetWeights(const MatType& weightsIn);
91
+
92
+ /**
93
+ * Ordinary feed forward pass of a neural network, evaluating the function
94
+ * f(x) by propagating the activity forward through f.
95
+ *
96
+ * @param input Input data used for evaluating the specified function.
97
+ * @param output Resulting output activation.
98
+ */
99
+ void Forward(const MatType& input, MatType& output);
100
+
101
+ /**
102
+ * Ordinary feed backward pass of a neural network, calculating the function
103
+ * f(x) by propagating x backwards trough f. Using the results from the feed
104
+ * forward pass.
105
+ *
106
+ * @param * (input) The propagated input activation.
107
+ * @param gy The backpropagated error.
108
+ * @param g The calculated gradient.
109
+ */
110
+ void Backward(const MatType& /* input */,
111
+ const MatType& /* output */,
112
+ const MatType& gy,
113
+ MatType& g);
114
+
115
+ /**
116
+ * Calculate the gradient using the output delta and the input activation.
117
+ *
118
+ * @param input The input parameter used for calculating the gradient.
119
+ * @param error The calculated error.
120
+ * @param gradient The calculated gradient.
121
+ */
122
+ void Gradient(const MatType& input,
123
+ const MatType& error,
124
+ MatType& gradient);
125
+
126
+ // Get the parameters.
127
+ const MatType& Parameters() const { return weights; }
128
+ // Modify the parameters.
129
+ MatType& Parameters() { return weights; }
130
+
131
+ // Get the size of the weights.
132
+ size_t WeightSize() const { return vocabSize * embeddingSize; }
133
+
134
+ // Compute the output dimensions of the layer given `InputDimensions()`.
135
+ void ComputeOutputDimensions();
136
+
137
+ // Serialize the layer.
138
+ template<typename Archive>
139
+ void serialize(Archive& ar, const uint32_t /* version */);
140
+
141
+ private:
142
+ // Locally-stored size of the vocabulary.
143
+ size_t vocabSize;
144
+
145
+ // Locally-stored length of each embedding vector.
146
+ size_t embeddingSize;
147
+
148
+ // Locally-stored weight object.
149
+ MatType weights;
150
+
151
+ // Locally-stored regularizer object.
152
+ RegularizerType regularizer;
153
+ }; // class Embedding
154
+
155
+ } // namespace mlpack
156
+
157
+ // Include implementation.
158
+ #include "embedding_impl.hpp"
159
+
160
+ #endif