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
@@ -32,11 +32,14 @@ namespace mlpack {
32
32
  * computation.
33
33
  */
34
34
  template <typename MatType = arma::mat>
35
- class AdaptiveMeanPoolingType : public Layer<MatType>
35
+ class AdaptiveMeanPooling : public Layer<MatType>
36
36
  {
37
37
  public:
38
- //! Create the AdaptiveMeanPooling object.
39
- AdaptiveMeanPoolingType();
38
+ // Convenience typedef to access the element type of the weights and data.
39
+ using ElemType = typename MatType::elem_type;
40
+
41
+ // Create the AdaptiveMeanPooling object.
42
+ AdaptiveMeanPooling();
40
43
 
41
44
  /**
42
45
  * Create the AdaptiveMeanPooling object.
@@ -44,29 +47,29 @@ class AdaptiveMeanPoolingType : public Layer<MatType>
44
47
  * @param outputWidth Width of the output.
45
48
  * @param outputHeight Height of the output.
46
49
  */
47
- AdaptiveMeanPoolingType(const size_t outputWidth,
50
+ AdaptiveMeanPooling(const size_t outputWidth,
48
51
  const size_t outputHeight);
49
52
 
50
53
  // Virtual destructor.
51
- virtual ~AdaptiveMeanPoolingType()
54
+ virtual ~AdaptiveMeanPooling()
52
55
  {
53
56
  // Nothing to do here.
54
57
  }
55
58
 
56
- //! Copy the given AdaptiveMeanPoolingType.
57
- AdaptiveMeanPoolingType(const AdaptiveMeanPoolingType& other);
58
- //! Take ownership of the given AdaptiveMeanPoolingType.
59
- AdaptiveMeanPoolingType(AdaptiveMeanPoolingType&& other);
60
- //! Copy the given AdaptiveMeanPoolingType.
61
- AdaptiveMeanPoolingType& operator=(const AdaptiveMeanPoolingType& other);
62
- //! Take ownership of the given AdaptiveMeanPoolingType.
63
- AdaptiveMeanPoolingType& operator=(AdaptiveMeanPoolingType&& other);
59
+ //! Copy the given AdaptiveMeanPooling.
60
+ AdaptiveMeanPooling(const AdaptiveMeanPooling& other);
61
+ //! Take ownership of the given AdaptiveMeanPooling.
62
+ AdaptiveMeanPooling(AdaptiveMeanPooling&& other);
63
+ //! Copy the given AdaptiveMeanPooling.
64
+ AdaptiveMeanPooling& operator=(const AdaptiveMeanPooling& other);
65
+ //! Take ownership of the given AdaptiveMeanPooling.
66
+ AdaptiveMeanPooling& operator=(AdaptiveMeanPooling&& other);
64
67
 
65
- //! Clone the AdaptiveMeanPoolingType object.
68
+ //! Clone the AdaptiveMeanPooling object.
66
69
  //! This handles polymorphism correctly.
67
- AdaptiveMeanPoolingType* Clone() const
70
+ AdaptiveMeanPooling* Clone() const
68
71
  {
69
- return new AdaptiveMeanPoolingType(*this);
72
+ return new AdaptiveMeanPooling(*this);
70
73
  }
71
74
 
72
75
  /**
@@ -114,7 +117,7 @@ class AdaptiveMeanPoolingType : public Layer<MatType>
114
117
 
115
118
  private:
116
119
  //! Locally stored MeanPooling Object.
117
- MeanPoolingType<MatType> poolingLayer;
120
+ MeanPooling<MatType> poolingLayer;
118
121
 
119
122
  //! Locally-stored output width. These are user specified outputWidth.
120
123
  //! Actual outputWidth will be equal to this but only after
@@ -125,12 +128,7 @@ class AdaptiveMeanPoolingType : public Layer<MatType>
125
128
  //! Actual outputWidth will be equal to this but only after
126
129
  //! `ComputeOutputDimensions()` is called.
127
130
  size_t outputHeight;
128
- }; // class AdaptiveMeanPoolingType
129
-
130
- // Convenience typedefs.
131
-
132
- // Standard Adaptive mean pooling layer.
133
- using AdaptiveMeanPooling = AdaptiveMeanPoolingType<arma::mat>;
131
+ }; // class AdaptiveMeanPooling
134
132
 
135
133
  } // namespace mlpack
136
134
 
@@ -18,18 +18,18 @@
18
18
  namespace mlpack {
19
19
 
20
20
  template<typename MatType>
21
- AdaptiveMeanPoolingType<MatType>::AdaptiveMeanPoolingType() :
21
+ AdaptiveMeanPooling<MatType>::AdaptiveMeanPooling() :
22
22
  Layer<MatType>()
23
23
  {
24
24
  // Nothing to do here.
25
25
  }
26
26
 
27
27
  template <typename MatType>
28
- AdaptiveMeanPoolingType<MatType>::AdaptiveMeanPoolingType(
28
+ AdaptiveMeanPooling<MatType>::AdaptiveMeanPooling(
29
29
  const size_t outputWidth,
30
30
  const size_t outputHeight) :
31
31
  Layer<MatType>(),
32
- poolingLayer(MeanPoolingType<MatType>(1, 1)),
32
+ poolingLayer(MeanPooling<MatType>(1, 1)),
33
33
  outputWidth(outputWidth),
34
34
  outputHeight(outputHeight)
35
35
  {
@@ -37,8 +37,8 @@ AdaptiveMeanPoolingType<MatType>::AdaptiveMeanPoolingType(
37
37
  }
38
38
 
39
39
  template<typename MatType>
40
- AdaptiveMeanPoolingType<MatType>::AdaptiveMeanPoolingType(
41
- const AdaptiveMeanPoolingType& other) :
40
+ AdaptiveMeanPooling<MatType>::AdaptiveMeanPooling(
41
+ const AdaptiveMeanPooling& other) :
42
42
  Layer<MatType>(other),
43
43
  poolingLayer(other.poolingLayer),
44
44
  outputWidth(other.outputWidth),
@@ -48,8 +48,8 @@ AdaptiveMeanPoolingType<MatType>::AdaptiveMeanPoolingType(
48
48
  }
49
49
 
50
50
  template<typename MatType>
51
- AdaptiveMeanPoolingType<MatType>::AdaptiveMeanPoolingType(
52
- AdaptiveMeanPoolingType&& other) :
51
+ AdaptiveMeanPooling<MatType>::AdaptiveMeanPooling(
52
+ AdaptiveMeanPooling&& other) :
53
53
  Layer<MatType>(std::move(other)),
54
54
  poolingLayer(std::move(other.poolingLayer)),
55
55
  outputWidth(std::move(other.outputWidth)),
@@ -59,9 +59,9 @@ AdaptiveMeanPoolingType<MatType>::AdaptiveMeanPoolingType(
59
59
  }
60
60
 
61
61
  template<typename MatType>
62
- AdaptiveMeanPoolingType<MatType>&
63
- AdaptiveMeanPoolingType<MatType>::operator=(
64
- const AdaptiveMeanPoolingType& other)
62
+ AdaptiveMeanPooling<MatType>&
63
+ AdaptiveMeanPooling<MatType>::operator=(
64
+ const AdaptiveMeanPooling& other)
65
65
  {
66
66
  if (&other != this)
67
67
  {
@@ -75,8 +75,8 @@ AdaptiveMeanPoolingType<MatType>::operator=(
75
75
  }
76
76
 
77
77
  template<typename MatType>
78
- AdaptiveMeanPoolingType<MatType>&
79
- AdaptiveMeanPoolingType<MatType>::operator=(AdaptiveMeanPoolingType&& other)
78
+ AdaptiveMeanPooling<MatType>&
79
+ AdaptiveMeanPooling<MatType>::operator=(AdaptiveMeanPooling&& other)
80
80
  {
81
81
  if (&other != this)
82
82
  {
@@ -90,7 +90,7 @@ AdaptiveMeanPoolingType<MatType>::operator=(AdaptiveMeanPoolingType&& other)
90
90
  }
91
91
 
92
92
  template<typename MatType>
93
- void AdaptiveMeanPoolingType<MatType>::Forward(
93
+ void AdaptiveMeanPooling<MatType>::Forward(
94
94
  const MatType& input, MatType& output)
95
95
  {
96
96
  poolingLayer.Training() = this->training;
@@ -98,7 +98,7 @@ void AdaptiveMeanPoolingType<MatType>::Forward(
98
98
  }
99
99
 
100
100
  template<typename MatType>
101
- void AdaptiveMeanPoolingType<MatType>::Backward(
101
+ void AdaptiveMeanPooling<MatType>::Backward(
102
102
  const MatType& input,
103
103
  const MatType& output,
104
104
  const MatType& gy,
@@ -108,7 +108,7 @@ void AdaptiveMeanPoolingType<MatType>::Backward(
108
108
  }
109
109
 
110
110
  template<typename MatType>
111
- void AdaptiveMeanPoolingType<MatType>::ComputeOutputDimensions()
111
+ void AdaptiveMeanPooling<MatType>::ComputeOutputDimensions()
112
112
  {
113
113
  // The AdaptiveMaxPooling layer only affects the first two dimensions.
114
114
  this->outputDimensions = this->inputDimensions;
@@ -140,7 +140,7 @@ void AdaptiveMeanPoolingType<MatType>::ComputeOutputDimensions()
140
140
 
141
141
  template<typename MatType>
142
142
  template<typename Archive>
143
- void AdaptiveMeanPoolingType<MatType>::serialize(
143
+ void AdaptiveMeanPooling<MatType>::serialize(
144
144
  Archive& ar,
145
145
  const uint32_t /* version */)
146
146
  {
@@ -24,30 +24,33 @@ namespace mlpack {
24
24
  * @tparam MatType Matrix representation to accept as input and use for
25
25
  * computation.
26
26
  */
27
- template<typename MatType>
28
- class AddType : public Layer<MatType>
27
+ template<typename MatType = arma::mat>
28
+ class Add : public Layer<MatType>
29
29
  {
30
30
  public:
31
+ // Convenience typedef to access the element type of the weights and data.
32
+ using ElemType = typename MatType::elem_type;
33
+
31
34
  /**
32
- * Create the AddType object. The output size of the layer will be the same
35
+ * Create the Add object. The output size of the layer will be the same
33
36
  * as the input size.
34
37
  */
35
- AddType();
38
+ Add();
36
39
 
37
- //! Clone the AddType object. This handles polymorphism correctly.
38
- AddType* Clone() const { return new AddType(*this); }
40
+ //! Clone the Add object. This handles polymorphism correctly.
41
+ Add* Clone() const { return new Add(*this); }
39
42
 
40
43
  // Virtual destructor.
41
- virtual ~AddType() { }
44
+ virtual ~Add() { }
42
45
 
43
- //! Copy the given AddType layer.
44
- AddType(const AddType& other);
45
- //! Take ownership of the given AddType layer.
46
- AddType(AddType&& other);
47
- //! Copy the given AddType layer.
48
- AddType& operator=(const AddType& other);
49
- //! Take ownership of the given AddType layer.
50
- AddType& operator=(AddType&& other);
46
+ //! Copy the given Add layer.
47
+ Add(const Add& other);
48
+ //! Take ownership of the given Add layer.
49
+ Add(Add&& other);
50
+ //! Copy the given Add layer.
51
+ Add& operator=(const Add& other);
52
+ //! Take ownership of the given Add layer.
53
+ Add& operator=(Add&& other);
51
54
 
52
55
  /**
53
56
  * Forward pass: add the bias to the input.
@@ -110,9 +113,6 @@ class AddType : public Layer<MatType>
110
113
  MatType weights;
111
114
  }; // class Add
112
115
 
113
- // Standard Add layer.
114
- using Add = AddType<arma::mat>;
115
-
116
116
  } // namespace mlpack
117
117
 
118
118
  // Include implementation.
@@ -19,7 +19,7 @@
19
19
  namespace mlpack {
20
20
 
21
21
  template<typename MatType>
22
- AddType<MatType>::AddType() :
22
+ Add<MatType>::Add() :
23
23
  Layer<MatType>(),
24
24
  outSize(0)
25
25
  {
@@ -27,7 +27,7 @@ AddType<MatType>::AddType() :
27
27
  }
28
28
 
29
29
  template<typename MatType>
30
- AddType<MatType>::AddType(const AddType& other) :
30
+ Add<MatType>::Add(const Add& other) :
31
31
  Layer<MatType>(other),
32
32
  outSize(other.outSize)
33
33
  {
@@ -35,7 +35,7 @@ AddType<MatType>::AddType(const AddType& other) :
35
35
  }
36
36
 
37
37
  template<typename MatType>
38
- AddType<MatType>::AddType(AddType&& other) :
38
+ Add<MatType>::Add(Add&& other) :
39
39
  Layer<MatType>(std::move(other)),
40
40
  outSize(std::move(other.outSize))
41
41
  {
@@ -43,8 +43,8 @@ AddType<MatType>::AddType(AddType&& other) :
43
43
  }
44
44
 
45
45
  template<typename MatType>
46
- AddType<MatType>&
47
- AddType<MatType>::operator=(const AddType& other)
46
+ Add<MatType>&
47
+ Add<MatType>::operator=(const Add& other)
48
48
  {
49
49
  if (&other != this)
50
50
  {
@@ -56,8 +56,8 @@ AddType<MatType>::operator=(const AddType& other)
56
56
  }
57
57
 
58
58
  template<typename MatType>
59
- AddType<MatType>&
60
- AddType<MatType>::operator=(AddType&& other)
59
+ Add<MatType>&
60
+ Add<MatType>::operator=(Add&& other)
61
61
  {
62
62
  if (&other != this)
63
63
  {
@@ -69,13 +69,13 @@ AddType<MatType>::operator=(AddType&& other)
69
69
  }
70
70
 
71
71
  template<typename MatType>
72
- void AddType<MatType>::Forward(const MatType& input, MatType& output)
72
+ void Add<MatType>::Forward(const MatType& input, MatType& output)
73
73
  {
74
74
  output = input + repmat(vectorise(weights), 1, input.n_cols);
75
75
  }
76
76
 
77
77
  template<typename MatType>
78
- void AddType<MatType>::Backward(
78
+ void Add<MatType>::Backward(
79
79
  const MatType& /* input */,
80
80
  const MatType& /* output */,
81
81
  const MatType& gy,
@@ -85,7 +85,7 @@ void AddType<MatType>::Backward(
85
85
  }
86
86
 
87
87
  template<typename MatType>
88
- void AddType<MatType>::Gradient(
88
+ void Add<MatType>::Gradient(
89
89
  const MatType& /* input */,
90
90
  const MatType& error,
91
91
  MatType& gradient)
@@ -95,14 +95,14 @@ void AddType<MatType>::Gradient(
95
95
  }
96
96
 
97
97
  template<typename MatType>
98
- void AddType<MatType>::SetWeights(const MatType& weightsIn)
98
+ void Add<MatType>::SetWeights(const MatType& weightsIn)
99
99
  {
100
100
  // Set the weights to wrap the given memory.
101
101
  MakeAlias(weights, weightsIn, 1, outSize);
102
102
  }
103
103
 
104
104
  template<typename MatType>
105
- void AddType<MatType>::ComputeOutputDimensions()
105
+ void Add<MatType>::ComputeOutputDimensions()
106
106
  {
107
107
  this->outputDimensions = this->inputDimensions;
108
108
 
@@ -113,7 +113,7 @@ void AddType<MatType>::ComputeOutputDimensions()
113
113
 
114
114
  template<typename MatType>
115
115
  template<typename Archive>
116
- void AddType<MatType>::serialize(Archive& ar, const uint32_t /* version */)
116
+ void Add<MatType>::serialize(Archive& ar, const uint32_t /* version */)
117
117
  {
118
118
  ar(cereal::base_class<Layer<MatType>>(this));
119
119
 
@@ -24,33 +24,36 @@ namespace mlpack {
24
24
  * @tparam MatType Matrix representation to accept as input and use for
25
25
  * computation.
26
26
  */
27
- template<typename MatType>
28
- class AddMergeType : public MultiLayer<MatType>
27
+ template<typename MatType = arma::mat>
28
+ class AddMerge : public MultiLayer<MatType>
29
29
  {
30
30
  public:
31
+ // Convenience typedef to access the element type of the weights and data.
32
+ using ElemType = typename MatType::elem_type;
33
+
31
34
  /**
32
- * Create an empty AddMergeType that holds no layers of its own. Be sure to add
35
+ * Create an empty AddMerge that holds no layers of its own. Be sure to add
33
36
  * layers with Add() before using!
34
37
  */
35
- AddMergeType();
38
+ AddMerge();
36
39
 
37
- //! Copy the given AddMergeType.
38
- AddMergeType(const AddMergeType& other);
39
- //! Take ownership of the layers of the given AddMergeType.
40
- AddMergeType(AddMergeType&& other);
41
- //! Copy the given AddMergeType.
42
- AddMergeType& operator=(const AddMergeType& other);
43
- //! Take ownership of the given AddMergeType.
44
- AddMergeType& operator=(AddMergeType&& other);
40
+ //! Copy the given AddMerge.
41
+ AddMerge(const AddMerge& other);
42
+ //! Take ownership of the layers of the given AddMerge.
43
+ AddMerge(AddMerge&& other);
44
+ //! Copy the given AddMerge.
45
+ AddMerge& operator=(const AddMerge& other);
46
+ //! Take ownership of the given AddMerge.
47
+ AddMerge& operator=(AddMerge&& other);
45
48
 
46
49
  //! Virtual destructor: delete all held layers.
47
- virtual ~AddMergeType()
50
+ virtual ~AddMerge()
48
51
  {
49
52
  // Nothing to do here.
50
53
  }
51
54
 
52
- //! Create a copy of the AddMergeType (this is safe for polymorphic use).
53
- AddMergeType* Clone() const { return new AddMergeType(*this); }
55
+ //! Create a copy of the AddMerge (this is safe for polymorphic use).
56
+ AddMerge* Clone() const { return new AddMerge(*this); }
54
57
 
55
58
  /**
56
59
  * Ordinary feed forward pass of a neural network, evaluating the function
@@ -90,13 +93,11 @@ class AddMergeType : public MultiLayer<MatType>
90
93
  //! Compute the size of the output given `InputDimensions()`.
91
94
  void ComputeOutputDimensions();
92
95
 
93
- //! Serialize the AddMergeType.
96
+ //! Serialize the AddMerge.
94
97
  template<typename Archive>
95
98
  void serialize(Archive& ar, const uint32_t /* version */);
96
99
  };
97
100
 
98
- using AddMerge = AddMergeType<arma::mat>;
99
-
100
101
  } // namespace mlpack
101
102
 
102
103
  // Include implementation.
@@ -17,29 +17,29 @@
17
17
  namespace mlpack {
18
18
 
19
19
  template<typename MatType>
20
- AddMergeType<MatType>::AddMergeType() :
20
+ AddMerge<MatType>::AddMerge() :
21
21
  MultiLayer<MatType>()
22
22
  {
23
23
  // Nothing to do.
24
24
  }
25
25
 
26
26
  template<typename MatType>
27
- AddMergeType<MatType>::AddMergeType(const AddMergeType& other) :
27
+ AddMerge<MatType>::AddMerge(const AddMerge& other) :
28
28
  MultiLayer<MatType>(other)
29
29
  {
30
30
  // Nothing to do here.
31
31
  }
32
32
 
33
33
  template<typename MatType>
34
- AddMergeType<MatType>::AddMergeType(AddMergeType&& other) :
34
+ AddMerge<MatType>::AddMerge(AddMerge&& other) :
35
35
  MultiLayer<MatType>(std::move(other))
36
36
  {
37
37
  // Nothing to do here.
38
38
  }
39
39
 
40
40
  template<typename MatType>
41
- AddMergeType<MatType>& AddMergeType<MatType>::operator=(
42
- const AddMergeType& other)
41
+ AddMerge<MatType>& AddMerge<MatType>::operator=(
42
+ const AddMerge& other)
43
43
  {
44
44
  if (this != &other)
45
45
  {
@@ -50,7 +50,7 @@ AddMergeType<MatType>& AddMergeType<MatType>::operator=(
50
50
  }
51
51
 
52
52
  template<typename MatType>
53
- AddMergeType<MatType>& AddMergeType<MatType>::operator=(AddMergeType&& other)
53
+ AddMerge<MatType>& AddMerge<MatType>::operator=(AddMerge&& other)
54
54
  {
55
55
  if (this != &other)
56
56
  {
@@ -61,7 +61,7 @@ AddMergeType<MatType>& AddMergeType<MatType>::operator=(AddMergeType&& other)
61
61
  }
62
62
 
63
63
  template<typename MatType>
64
- void AddMergeType<MatType>::Forward(
64
+ void AddMerge<MatType>::Forward(
65
65
  const MatType& input, MatType& output)
66
66
  {
67
67
  // Make sure training/testing mode is set right in each layer.
@@ -74,7 +74,7 @@ void AddMergeType<MatType>::Forward(
74
74
  {
75
75
  // Initialize temporary memory for the forward pass.
76
76
  MatType tempOutput;
77
- tempOutput.set_size(arma::size(output));
77
+ tempOutput.set_size(size(output));
78
78
 
79
79
  // Forward pass every layer in network with same input.
80
80
  // Reduce the outputs to single output by adding element-wise.
@@ -98,7 +98,7 @@ void AddMergeType<MatType>::Forward(
98
98
  }
99
99
 
100
100
  template<typename MatType>
101
- void AddMergeType<MatType>::Backward(
101
+ void AddMerge<MatType>::Backward(
102
102
  const MatType& input,
103
103
  const MatType& output,
104
104
  const MatType& gy,
@@ -108,7 +108,7 @@ void AddMergeType<MatType>::Backward(
108
108
  {
109
109
  // Initialize temporary memory for the backward pass.
110
110
  MatType tempDelta;
111
- tempDelta.set_size(arma::size(g));
111
+ tempDelta.set_size(size(g));
112
112
 
113
113
  g.zeros();
114
114
  for (size_t i = 0; i < this->network.size(); i++)
@@ -129,7 +129,7 @@ void AddMergeType<MatType>::Backward(
129
129
  }
130
130
 
131
131
  template<typename MatType>
132
- void AddMergeType<MatType>::Gradient(
132
+ void AddMerge<MatType>::Gradient(
133
133
  const MatType& input, const MatType& error, MatType& gradient)
134
134
  {
135
135
  // We assume gradient has the right size already.
@@ -156,7 +156,7 @@ void AddMergeType<MatType>::Gradient(
156
156
  }
157
157
 
158
158
  template<typename MatType>
159
- void AddMergeType<MatType>::ComputeOutputDimensions()
159
+ void AddMerge<MatType>::ComputeOutputDimensions()
160
160
  {
161
161
  this->inSize = 0;
162
162
  this->totalInputSize = 0;
@@ -197,7 +197,7 @@ void AddMergeType<MatType>::ComputeOutputDimensions()
197
197
 
198
198
  template<typename MatType>
199
199
  template<typename Archive>
200
- void AddMergeType<MatType>::serialize(
200
+ void AddMerge<MatType>::serialize(
201
201
  Archive& ar, const uint32_t /* version */)
202
202
  {
203
203
  ar(cereal::base_class<MultiLayer<MatType>>(this));
@@ -44,34 +44,37 @@ namespace mlpack {
44
44
  * computation.
45
45
  */
46
46
  template<typename MatType = arma::mat>
47
- class AlphaDropoutType : public Layer<MatType>
47
+ class AlphaDropout : 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 Alpha_Dropout object using the specified ratio.
52
55
  *
53
56
  * @param ratio The probability of setting a value to alphaDash.
54
57
  * @param alphaDash The dropout scaling parameter.
55
58
  */
56
- AlphaDropoutType(const double ratio = 0.5,
59
+ AlphaDropout(const double ratio = 0.5,
57
60
  const double alphaDash = -alpha * lambda);
58
61
 
59
62
  /**
60
- * Clone the AlphaDropoutType object. This handles polymorphism correctly.
63
+ * Clone the AlphaDropout object. This handles polymorphism correctly.
61
64
  */
62
- AlphaDropoutType* Clone() const { return new AlphaDropoutType(*this); }
65
+ AlphaDropout* Clone() const { return new AlphaDropout(*this); }
63
66
 
64
67
  // Virtual destructor.
65
- virtual ~AlphaDropoutType() { }
68
+ virtual ~AlphaDropout() { }
66
69
 
67
- //! Copy the given AlphaDropoutType layer.
68
- AlphaDropoutType(const AlphaDropoutType& other);
69
- //! Take ownership of the given AlphaDropoutType layer.
70
- AlphaDropoutType(AlphaDropoutType&& other);
71
- //! Copy the given AlphaDropoutType layer.
72
- AlphaDropoutType& operator=(const AlphaDropoutType& other);
73
- //! Take ownership of the given AlphaDropoutType layer.
74
- AlphaDropoutType& operator=(AlphaDropoutType&& other);
70
+ //! Copy the given AlphaDropout layer.
71
+ AlphaDropout(const AlphaDropout& other);
72
+ //! Take ownership of the given AlphaDropout layer.
73
+ AlphaDropout(AlphaDropout&& other);
74
+ //! Copy the given AlphaDropout layer.
75
+ AlphaDropout& operator=(const AlphaDropout& other);
76
+ //! Take ownership of the given AlphaDropout layer.
77
+ AlphaDropout& operator=(AlphaDropout&& other);
75
78
 
76
79
  /**
77
80
  * Ordinary feed forward pass of the AlphaDropout layer.
@@ -145,9 +148,7 @@ class AlphaDropoutType : public Layer<MatType>
145
148
 
146
149
  //! Value to be added to a*x for affine transformation.
147
150
  double b;
148
- }; // class AlphaDropoutType
149
-
150
- using AlphaDropout = AlphaDropoutType<arma::mat>;
151
+ }; // class AlphaDropout
151
152
 
152
153
  } // namespace mlpack
153
154
 
@@ -22,7 +22,7 @@
22
22
  namespace mlpack {
23
23
 
24
24
  template<typename MatType>
25
- AlphaDropoutType<MatType>::AlphaDropoutType(
25
+ AlphaDropout<MatType>::AlphaDropout(
26
26
  const double ratio,
27
27
  const double alphaDash) :
28
28
  Layer<MatType>(),
@@ -33,7 +33,7 @@ AlphaDropoutType<MatType>::AlphaDropoutType(
33
33
  }
34
34
 
35
35
  template<typename MatType>
36
- AlphaDropoutType<MatType>::AlphaDropoutType(const AlphaDropoutType& other) :
36
+ AlphaDropout<MatType>::AlphaDropout(const AlphaDropout& other) :
37
37
  Layer<MatType>(other),
38
38
  mask(other.mask),
39
39
  ratio(other.ratio),
@@ -45,7 +45,7 @@ AlphaDropoutType<MatType>::AlphaDropoutType(const AlphaDropoutType& other) :
45
45
  }
46
46
 
47
47
  template<typename MatType>
48
- AlphaDropoutType<MatType>::AlphaDropoutType(AlphaDropoutType&& other) :
48
+ AlphaDropout<MatType>::AlphaDropout(AlphaDropout&& other) :
49
49
  Layer<MatType>(std::move(other)),
50
50
  mask(std::move(other.mask)),
51
51
  ratio(std::move(other.ratio)),
@@ -57,8 +57,8 @@ AlphaDropoutType<MatType>::AlphaDropoutType(AlphaDropoutType&& other) :
57
57
  }
58
58
 
59
59
  template<typename MatType>
60
- AlphaDropoutType<MatType>&
61
- AlphaDropoutType<MatType>::operator=(const AlphaDropoutType& other)
60
+ AlphaDropout<MatType>&
61
+ AlphaDropout<MatType>::operator=(const AlphaDropout& other)
62
62
  {
63
63
  if (&other != this)
64
64
  {
@@ -74,8 +74,8 @@ AlphaDropoutType<MatType>::operator=(const AlphaDropoutType& other)
74
74
  }
75
75
 
76
76
  template<typename MatType>
77
- AlphaDropoutType<MatType>&
78
- AlphaDropoutType<MatType>::operator=(AlphaDropoutType&& other)
77
+ AlphaDropout<MatType>&
78
+ AlphaDropout<MatType>::operator=(AlphaDropout&& other)
79
79
  {
80
80
  if (&other != this)
81
81
  {
@@ -91,7 +91,7 @@ AlphaDropoutType<MatType>::operator=(AlphaDropoutType&& other)
91
91
  }
92
92
 
93
93
  template<typename MatType>
94
- void AlphaDropoutType<MatType>::Forward(const MatType& input, MatType& output)
94
+ void AlphaDropout<MatType>::Forward(const MatType& input, MatType& output)
95
95
  {
96
96
  // The dropout mask will not be multiplied during testing.
97
97
  if (!this->training)
@@ -104,24 +104,25 @@ void AlphaDropoutType<MatType>::Forward(const MatType& input, MatType& output)
104
104
  // transformation so as to keep mean and variance of outputs to their
105
105
  // original values.
106
106
  mask.randu(input.n_rows, input.n_cols);
107
- mask.transform( [&](double val) { return (val > ratio); } );
108
- output = (input % mask + alphaDash * (1 - mask)) * a + b;
107
+ mask.transform( [&](ElemType val) { return (val > ElemType(ratio)); } );
108
+ output = (input % mask + ElemType(alphaDash) * (1 - mask)) * ElemType(a) +
109
+ ElemType(b);
109
110
  }
110
111
  }
111
112
 
112
113
  template<typename MatType>
113
- void AlphaDropoutType<MatType>::Backward(
114
+ void AlphaDropout<MatType>::Backward(
114
115
  const MatType& /* input */,
115
116
  const MatType& /* output */,
116
117
  const MatType& gy,
117
118
  MatType& g)
118
119
  {
119
- g = gy % mask * a;
120
+ g = gy % mask * ElemType(a);
120
121
  }
121
122
 
122
123
  template<typename MatType>
123
124
  template<typename Archive>
124
- void AlphaDropoutType<MatType>::serialize(
125
+ void AlphaDropout<MatType>::serialize(
125
126
  Archive& ar, const uint32_t /* version */)
126
127
  {
127
128
  ar(cereal::base_class<Layer<MatType>>(this));