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
@@ -26,38 +26,41 @@ namespace mlpack {
26
26
  * computation.
27
27
  */
28
28
  template<typename MatType = arma::mat>
29
- class NoisyLinearType : public Layer<MatType>
29
+ class NoisyLinear : public Layer<MatType>
30
30
  {
31
31
  public:
32
+ // Convenience typedef to access the element type of the weights and data.
33
+ using ElemType = typename MatType::elem_type;
34
+
32
35
  /**
33
36
  * Create the NoisyLinear layer object using the specified number of units.
34
37
  *
35
38
  * @param outSize The number of output units.
36
39
  */
37
- NoisyLinearType(const size_t outSize = 0);
40
+ NoisyLinear(const size_t outSize = 0);
38
41
 
39
- //! Clone the NoisyLinearType object. This handles polymorphism correctly.
40
- NoisyLinearType* Clone() const { return new NoisyLinearType(*this); }
42
+ // Clone the NoisyLinear object. This handles polymorphism correctly.
43
+ NoisyLinear* Clone() const { return new NoisyLinear(*this); }
41
44
 
42
45
  // Virtual destructor.
43
- virtual ~NoisyLinearType() { }
44
-
45
- //! Copy the given NoisyLinear layer (but not weights).
46
- NoisyLinearType(const NoisyLinearType& other);
47
- //! Take ownership of the given NoisyLinear layer (but not weights).
48
- NoisyLinearType(NoisyLinearType&& other);
49
- //! Copy the given NoisyLinear layer (but not weights).
50
- NoisyLinearType& operator=(const NoisyLinearType& other);
51
- //! Take ownership of the given NoisyLinear layer (but not weights).
52
- NoisyLinearType& operator=(NoisyLinearType&& other);
53
-
54
- //! Reset the layer parameter.
46
+ virtual ~NoisyLinear() { }
47
+
48
+ // Copy the given NoisyLinear layer (but not weights).
49
+ NoisyLinear(const NoisyLinear& other);
50
+ // Take ownership of the given NoisyLinear layer (but not weights).
51
+ NoisyLinear(NoisyLinear&& other);
52
+ // Copy the given NoisyLinear layer (but not weights).
53
+ NoisyLinear& operator=(const NoisyLinear& other);
54
+ // Take ownership of the given NoisyLinear layer (but not weights).
55
+ NoisyLinear& operator=(NoisyLinear&& other);
56
+
57
+ // Reset the layer parameter.
55
58
  void SetWeights(const MatType& weightsIn);
56
59
 
57
- //! Reset the noise parameters (epsilons).
60
+ // Reset the noise parameters (epsilons).
58
61
  void ResetNoise();
59
62
 
60
- //! Reset the values of layer parameters (factorized gaussian noise).
63
+ // Reset the values of layer parameters (factorized gaussian noise).
61
64
  void ResetParameters();
62
65
 
63
66
  /**
@@ -95,64 +98,58 @@ class NoisyLinearType : public Layer<MatType>
95
98
  const MatType& error,
96
99
  MatType& gradient);
97
100
 
98
- //! Get the parameters.
101
+ // Get the parameters.
99
102
  MatType const& Parameters() const { return weights; }
100
- //! Modify the parameters.
103
+ // Modify the parameters.
101
104
  MatType& Parameters() { return weights; }
102
105
 
103
- //! Get the shape of the input.
104
- //! Modify the bias weights of the layer.
106
+ // Modify the bias weights of the layer.
105
107
  MatType& Bias() { return bias; }
106
108
 
107
- //! Compute the number of parameters in the layer.
109
+ // Compute the number of parameters in the layer.
108
110
  size_t WeightSize() const { return (outSize * inSize + outSize) * 2; }
109
111
 
110
- //! Compute the output dimensions of the layer given `InputDimensions()`.
112
+ // Compute the output dimensions of the layer given `InputDimensions()`.
111
113
  void ComputeOutputDimensions();
112
114
 
113
- //! Serialize the layer.
115
+ // Serialize the layer.
114
116
  template<typename Archive>
115
117
  void serialize(Archive& ar, const uint32_t /* version */);
116
118
 
117
119
  private:
118
- //! Locally-stored number of output units.
120
+ // Locally-stored number of output units.
119
121
  size_t outSize;
120
122
 
121
- //! Locally stored number of input units.
123
+ // Locally stored number of input units.
122
124
  size_t inSize;
123
125
 
124
- //! Locally-stored weight object.
126
+ // Locally-stored weight object.
125
127
  MatType weights;
126
128
 
127
- //! Locally-stored weight parameters.
129
+ // Locally-stored weight parameters.
128
130
  MatType weight;
129
131
 
130
- //! Locally-stored weight-mean parameters.
132
+ // Locally-stored weight-mean parameters.
131
133
  MatType weightMu;
132
134
 
133
- //! Locally-stored weight-standard-deviation parameters.
135
+ // Locally-stored weight-standard-deviation parameters.
134
136
  MatType weightSigma;
135
137
 
136
- //! Locally-stored weight-epsilon parameters.
138
+ // Locally-stored weight-epsilon parameters.
137
139
  MatType weightEpsilon;
138
140
 
139
- //! Locally-stored bias parameters.
141
+ // Locally-stored bias parameters.
140
142
  MatType bias;
141
143
 
142
- //! Locally-stored bias-mean parameters.
144
+ // Locally-stored bias-mean parameters.
143
145
  MatType biasMu;
144
146
 
145
- //! Locally-stored bias-standard-deviation parameters.
147
+ // Locally-stored bias-standard-deviation parameters.
146
148
  MatType biasSigma;
147
149
 
148
- //! Locally-stored bias-epsilon parameters.
150
+ // Locally-stored bias-epsilon parameters.
149
151
  MatType biasEpsilon;
150
- }; // class NoisyLinearType
151
-
152
- // Convenience typedefs.
153
-
154
- // Standard noisy linear layer.
155
- using NoisyLinear = NoisyLinearType<arma::mat>;
152
+ }; // class NoisyLinear
156
153
 
157
154
  } // namespace mlpack
158
155
 
@@ -18,7 +18,7 @@
18
18
  namespace mlpack {
19
19
 
20
20
  template<typename MatType>
21
- NoisyLinearType<MatType>::NoisyLinearType(const size_t outSize) :
21
+ NoisyLinear<MatType>::NoisyLinear(const size_t outSize) :
22
22
  Layer<MatType>(),
23
23
  outSize(outSize),
24
24
  inSize(0)
@@ -27,7 +27,7 @@ NoisyLinearType<MatType>::NoisyLinearType(const size_t outSize) :
27
27
  }
28
28
 
29
29
  template<typename MatType>
30
- NoisyLinearType<MatType>::NoisyLinearType(const NoisyLinearType& other) :
30
+ NoisyLinear<MatType>::NoisyLinear(const NoisyLinear& other) :
31
31
  Layer<MatType>(other),
32
32
  outSize(other.outSize),
33
33
  inSize(other.inSize)
@@ -36,7 +36,7 @@ NoisyLinearType<MatType>::NoisyLinearType(const NoisyLinearType& other) :
36
36
  }
37
37
 
38
38
  template<typename MatType>
39
- NoisyLinearType<MatType>::NoisyLinearType(NoisyLinearType&& other) :
39
+ NoisyLinear<MatType>::NoisyLinear(NoisyLinear&& other) :
40
40
  Layer<MatType>(std::move(other)),
41
41
  outSize(std::move(other.outSize)),
42
42
  inSize(std::move(other.inSize))
@@ -45,8 +45,8 @@ NoisyLinearType<MatType>::NoisyLinearType(NoisyLinearType&& other) :
45
45
  }
46
46
 
47
47
  template<typename MatType>
48
- NoisyLinearType<MatType>&
49
- NoisyLinearType<MatType>::operator=(const NoisyLinearType& other)
48
+ NoisyLinear<MatType>&
49
+ NoisyLinear<MatType>::operator=(const NoisyLinear& other)
50
50
  {
51
51
  if (&other != this)
52
52
  {
@@ -59,8 +59,8 @@ NoisyLinearType<MatType>::operator=(const NoisyLinearType& other)
59
59
  }
60
60
 
61
61
  template<typename MatType>
62
- NoisyLinearType<MatType>&
63
- NoisyLinearType<MatType>::operator=(NoisyLinearType&& other)
62
+ NoisyLinear<MatType>&
63
+ NoisyLinear<MatType>::operator=(NoisyLinear&& other)
64
64
  {
65
65
  if (&other != this)
66
66
  {
@@ -73,7 +73,7 @@ NoisyLinearType<MatType>::operator=(NoisyLinearType&& other)
73
73
  }
74
74
 
75
75
  template<typename MatType>
76
- void NoisyLinearType<MatType>::SetWeights(const MatType& weightsIn)
76
+ void NoisyLinear<MatType>::SetWeights(const MatType& weightsIn)
77
77
  {
78
78
  MakeAlias(weights, weightsIn, 1, (outSize * inSize + outSize) * 2);
79
79
  MakeAlias(weightMu, weightsIn, outSize, inSize);
@@ -87,7 +87,7 @@ void NoisyLinearType<MatType>::SetWeights(const MatType& weightsIn)
87
87
  }
88
88
 
89
89
  template<typename MatType>
90
- void NoisyLinearType<MatType>::ResetNoise()
90
+ void NoisyLinear<MatType>::ResetNoise()
91
91
  {
92
92
  MatType epsilonIn;
93
93
  epsilonIn.randn(inSize, 1);
@@ -102,19 +102,19 @@ void NoisyLinearType<MatType>::ResetNoise()
102
102
  }
103
103
 
104
104
  template<typename MatType>
105
- void NoisyLinearType<MatType>::ResetParameters()
105
+ void NoisyLinear<MatType>::ResetParameters()
106
106
  {
107
- const double muRange = 1 / std::sqrt(inSize);
107
+ const ElemType muRange = 1 / std::sqrt(ElemType(inSize));
108
108
  weightMu.randu();
109
109
  weightMu = muRange * (weightMu * 2 - 1);
110
110
  biasMu.randu();
111
111
  biasMu = muRange * (biasMu * 2 - 1);
112
- weightSigma.fill(0.5 / std::sqrt(inSize));
113
- biasSigma.fill(0.5 / std::sqrt(outSize));
112
+ weightSigma.fill(1 / (2 * std::sqrt(ElemType(inSize))));
113
+ biasSigma.fill(1 / (2 * std::sqrt(ElemType(outSize))));
114
114
  }
115
115
 
116
116
  template<typename MatType>
117
- void NoisyLinearType<MatType>::Forward(const MatType& input, MatType& output)
117
+ void NoisyLinear<MatType>::Forward(const MatType& input, MatType& output)
118
118
  {
119
119
  weight = weightMu + weightSigma % weightEpsilon;
120
120
  bias = biasMu + biasSigma % biasEpsilon;
@@ -123,7 +123,7 @@ void NoisyLinearType<MatType>::Forward(const MatType& input, MatType& output)
123
123
  }
124
124
 
125
125
  template<typename MatType>
126
- void NoisyLinearType<MatType>::Backward(
126
+ void NoisyLinear<MatType>::Backward(
127
127
  const MatType& /* input */,
128
128
  const MatType& /* output */,
129
129
  const MatType& gy,
@@ -133,7 +133,7 @@ void NoisyLinearType<MatType>::Backward(
133
133
  }
134
134
 
135
135
  template<typename MatType>
136
- void NoisyLinearType<MatType>::Gradient(
136
+ void NoisyLinear<MatType>::Gradient(
137
137
  const MatType& input, const MatType& error, MatType& gradient)
138
138
  {
139
139
  // Locally stored to prevent multiplication twice.
@@ -151,7 +151,7 @@ void NoisyLinearType<MatType>::Gradient(
151
151
  }
152
152
 
153
153
  template<typename MatType>
154
- void NoisyLinearType<MatType>::ComputeOutputDimensions()
154
+ void NoisyLinear<MatType>::ComputeOutputDimensions()
155
155
  {
156
156
  inSize = this->inputDimensions[0];
157
157
  for (size_t i = 1; i < this->inputDimensions.size(); ++i)
@@ -166,7 +166,7 @@ void NoisyLinearType<MatType>::ComputeOutputDimensions()
166
166
 
167
167
  template<typename MatType>
168
168
  template<typename Archive>
169
- void NoisyLinearType<MatType>::serialize(
169
+ void NoisyLinear<MatType>::serialize(
170
170
  Archive& ar, const uint32_t /* version */)
171
171
  {
172
172
  ar(cereal::base_class<Layer<MatType>>(this));
@@ -25,10 +25,13 @@ namespace mlpack {
25
25
  * computation.
26
26
  */
27
27
  template<typename MatType = arma::mat>
28
- class PaddingType : public Layer<MatType>
28
+ class Padding : public Layer<MatType>
29
29
  {
30
30
  public:
31
+ // Convenience typedefs.
32
+ using ElemType = typename MatType::elem_type;
31
33
  using CubeType = typename GetCubeType<MatType>::type;
34
+
32
35
  /**
33
36
  * Create the Padding object using the specified number of output units.
34
37
  *
@@ -37,25 +40,26 @@ class PaddingType : public Layer<MatType>
37
40
  * @param padHTop Top padding height of the input.
38
41
  * @param padHBottom Bottom padding height of the input.
39
42
  */
40
- PaddingType(const size_t padWLeft = 0,
43
+ Padding(const size_t padWLeft = 0,
41
44
  const size_t padWRight = 0,
42
45
  const size_t padHTop = 0,
43
- const size_t padHBottom = 0);
46
+ const size_t padHBottom = 0,
47
+ const typename MatType::elem_type fillValue = 0);
44
48
 
45
- //! Clone the PaddingType object. This handles polymorphism correctly.
46
- PaddingType* Clone() const { return new PaddingType(*this); }
49
+ //! Clone the Padding object. This handles polymorphism correctly.
50
+ Padding* Clone() const { return new Padding(*this); }
47
51
 
48
52
  //! Virtual destructor.
49
- virtual ~PaddingType() { }
53
+ virtual ~Padding() { }
50
54
 
51
- //! Copy the given PaddingType.
52
- PaddingType(const PaddingType& other);
53
- //! Take ownership of the given PaddingType.
54
- PaddingType(PaddingType&& other);
55
- //! Copy the given PaddingType.
56
- PaddingType& operator=(const PaddingType& other);
57
- //! Take ownership of the given PaddingType.
58
- PaddingType& operator=(PaddingType&& other);
55
+ //! Copy the given Padding.
56
+ Padding(const Padding& other);
57
+ //! Take ownership of the given Padding.
58
+ Padding(Padding&& other);
59
+ //! Copy the given Padding.
60
+ Padding& operator=(const Padding& other);
61
+ //! Take ownership of the given Padding.
62
+ Padding& operator=(Padding&& other);
59
63
 
60
64
  /**
61
65
  * Ordinary feed forward pass of a neural network, evaluating the function
@@ -125,10 +129,10 @@ class PaddingType : public Layer<MatType>
125
129
 
126
130
  //! Cached number of input maps.
127
131
  size_t totalInMaps;
128
- }; // class PaddingType
129
132
 
130
- // Standard Padding layer.
131
- using Padding = PaddingType<arma::mat>;
133
+ //! Pad the input with this value.
134
+ ElemType fillValue;
135
+ }; // class Padding
132
136
 
133
137
  } // namespace mlpack
134
138
 
@@ -19,48 +19,51 @@
19
19
  namespace mlpack {
20
20
 
21
21
  template<typename MatType>
22
- PaddingType<MatType>::PaddingType(
22
+ Padding<MatType>::Padding(
23
23
  const size_t padWLeft,
24
24
  const size_t padWRight,
25
25
  const size_t padHTop,
26
- const size_t padHBottom) :
26
+ const size_t padHBottom,
27
+ const typename MatType::elem_type fillValue) :
27
28
  Layer<MatType>(),
28
29
  padWLeft(padWLeft),
29
30
  padWRight(padWRight),
30
31
  padHTop(padHTop),
31
32
  padHBottom(padHBottom),
32
- totalInMaps(0)
33
+ totalInMaps(0),
34
+ fillValue(fillValue)
33
35
  {
34
36
  // Nothing to do here.
35
37
  }
36
38
 
37
39
  template<typename MatType>
38
- PaddingType<MatType>::PaddingType(const PaddingType& other) :
40
+ Padding<MatType>::Padding(const Padding& other) :
39
41
  Layer<MatType>(other),
40
42
  padWLeft(other.padWLeft),
41
43
  padWRight(other.padWRight),
42
44
  padHTop(other.padHTop),
43
45
  padHBottom(other.padHBottom),
44
- totalInMaps(other.totalInMaps)
46
+ fillValue(other.fillValue)
45
47
  {
46
48
  // Nothing to do here.
47
49
  }
48
50
 
49
51
  template<typename MatType>
50
- PaddingType<MatType>::PaddingType(PaddingType&& other) :
52
+ Padding<MatType>::Padding(Padding&& other) :
51
53
  Layer<MatType>(std::move(other)),
52
54
  padWLeft(std::move(other.padWLeft)),
53
55
  padWRight(std::move(other.padWRight)),
54
56
  padHTop(std::move(other.padHTop)),
55
57
  padHBottom(std::move(other.padHBottom)),
56
- totalInMaps(std::move(other.totalInMaps))
58
+ totalInMaps(std::move(other.totalInMaps)),
59
+ fillValue(std::move(other.fillValue))
57
60
  {
58
61
  // Nothing to do here.
59
62
  }
60
63
 
61
64
  template<typename MatType>
62
- PaddingType<MatType>&
63
- PaddingType<MatType>::operator=(const PaddingType& other)
65
+ Padding<MatType>&
66
+ Padding<MatType>::operator=(const Padding& other)
64
67
  {
65
68
  if (this != &other)
66
69
  {
@@ -70,14 +73,15 @@ PaddingType<MatType>::operator=(const PaddingType& other)
70
73
  padHTop = other.padHTop;
71
74
  padHBottom = other.padHBottom;
72
75
  totalInMaps = other.totalInMaps;
76
+ fillValue = other.fillValue;
73
77
  }
74
78
 
75
79
  return *this;
76
80
  }
77
81
 
78
82
  template<typename MatType>
79
- PaddingType<MatType>&
80
- PaddingType<MatType>::operator=(PaddingType&& other)
83
+ Padding<MatType>&
84
+ Padding<MatType>::operator=(Padding&& other)
81
85
  {
82
86
  if (this != &other)
83
87
  {
@@ -87,13 +91,14 @@ PaddingType<MatType>::operator=(PaddingType&& other)
87
91
  padHTop = std::move(other.padHTop);
88
92
  padHBottom = std::move(other.padHBottom);
89
93
  totalInMaps = std::move(other.totalInMaps);
94
+ fillValue = std::move(other.fillValue);
90
95
  }
91
96
 
92
97
  return *this;
93
98
  }
94
99
 
95
100
  template<typename MatType>
96
- void PaddingType<MatType>::Forward(const MatType& input, MatType& output)
101
+ void Padding<MatType>::Forward(const MatType& input, MatType& output)
97
102
  {
98
103
  // Make an alias of the input and output so that we can deal with the first
99
104
  // two dimensions directly.
@@ -110,7 +115,7 @@ void PaddingType<MatType>::Forward(const MatType& input, MatType& output)
110
115
  reshapedOutput.tube(0,
111
116
  0,
112
117
  reshapedOutput.n_rows - 1,
113
- padHTop - 1).zeros();
118
+ padHTop - 1).fill(fillValue);
114
119
  }
115
120
 
116
121
  if (padWLeft > 0)
@@ -118,7 +123,7 @@ void PaddingType<MatType>::Forward(const MatType& input, MatType& output)
118
123
  reshapedOutput.tube(0,
119
124
  padHTop,
120
125
  padWLeft - 1,
121
- padHTop + this->inputDimensions[1] - 1).zeros();
126
+ padHTop + this->inputDimensions[1] - 1).fill(fillValue);
122
127
  }
123
128
 
124
129
  if (padHBottom > 0)
@@ -126,7 +131,7 @@ void PaddingType<MatType>::Forward(const MatType& input, MatType& output)
126
131
  reshapedOutput.tube(0,
127
132
  padHTop + this->inputDimensions[1],
128
133
  reshapedOutput.n_rows - 1,
129
- reshapedOutput.n_cols - 1).zeros();
134
+ reshapedOutput.n_cols - 1).fill(fillValue);
130
135
  }
131
136
 
132
137
  if (padWRight > 0)
@@ -134,7 +139,7 @@ void PaddingType<MatType>::Forward(const MatType& input, MatType& output)
134
139
  reshapedOutput.tube(padWLeft + this->inputDimensions[0],
135
140
  padHTop,
136
141
  reshapedOutput.n_rows - 1,
137
- padHTop + this->inputDimensions[1] - 1).zeros();
142
+ padHTop + this->inputDimensions[1] - 1).fill(fillValue);
138
143
  }
139
144
 
140
145
  // Copy the input matrix.
@@ -145,7 +150,7 @@ void PaddingType<MatType>::Forward(const MatType& input, MatType& output)
145
150
  }
146
151
 
147
152
  template<typename MatType>
148
- void PaddingType<MatType>::Backward(
153
+ void Padding<MatType>::Backward(
149
154
  const MatType& /* input */,
150
155
  const MatType& /* output */,
151
156
  const MatType& gy,
@@ -167,7 +172,7 @@ void PaddingType<MatType>::Backward(
167
172
  }
168
173
 
169
174
  template<typename MatType>
170
- void PaddingType<MatType>::ComputeOutputDimensions()
175
+ void Padding<MatType>::ComputeOutputDimensions()
171
176
  {
172
177
  this->outputDimensions = this->inputDimensions;
173
178
 
@@ -183,7 +188,7 @@ void PaddingType<MatType>::ComputeOutputDimensions()
183
188
 
184
189
  template<typename MatType>
185
190
  template<typename Archive>
186
- void PaddingType<MatType>::serialize(Archive& ar, const uint32_t /* version */)
191
+ void Padding<MatType>::serialize(Archive& ar, const uint32_t version)
187
192
  {
188
193
  ar(cereal::base_class<Layer<MatType>>(this));
189
194
 
@@ -192,6 +197,15 @@ void PaddingType<MatType>::serialize(Archive& ar, const uint32_t /* version */)
192
197
  ar(CEREAL_NVP(padHTop));
193
198
  ar(CEREAL_NVP(padHBottom));
194
199
  ar(CEREAL_NVP(totalInMaps));
200
+
201
+ if (version == 0)
202
+ {
203
+ fillValue = 0;
204
+ }
205
+ else
206
+ {
207
+ ar(CEREAL_NVP(fillValue));
208
+ }
195
209
  }
196
210
 
197
211
  } // namespace mlpack
@@ -39,9 +39,12 @@ namespace mlpack {
39
39
  * (Default: arma::mat).
40
40
  */
41
41
  template<typename MatType = arma::mat>
42
- class PReLUType : public Layer<MatType>
42
+ class PReLU : public Layer<MatType>
43
43
  {
44
44
  public:
45
+ // Convenience typedef to access the element type of the weights and data.
46
+ using ElemType = typename MatType::elem_type;
47
+
45
48
  /**
46
49
  * Create the PReLU object using the specified parameters.
47
50
  * The non zero gradient can be adjusted by specifying tha parameter
@@ -50,24 +53,24 @@ class PReLUType : public Layer<MatType>
50
53
  *
51
54
  * @param userAlpha Non zero gradient
52
55
  */
53
- PReLUType(const double userAlpha = 0.03);
56
+ PReLU(const double userAlpha = 0.03);
54
57
 
55
- //! Clone the PReLUType object. This handles polymorphism correctly.
56
- PReLUType* Clone() const { return new PReLUType(*this); }
58
+ // Clone the PReLU object. This handles polymorphism correctly.
59
+ PReLU* Clone() const { return new PReLU(*this); }
57
60
 
58
61
  // Virtual destructor.
59
- virtual ~PReLUType() { }
60
-
61
- //! Copy the given PReLUType.
62
- PReLUType(const PReLUType& other);
63
- //! Take ownership of the given PReLUType.
64
- PReLUType(PReLUType&& other);
65
- //! Copy the given PReLUType.
66
- PReLUType& operator=(const PReLUType& other);
67
- //! Take ownership of the given PReLUType.
68
- PReLUType& operator=(PReLUType&& other);
69
-
70
- //! Reset the layer parameter.
62
+ virtual ~PReLU() { }
63
+
64
+ // Copy the given PReLU.
65
+ PReLU(const PReLU& other);
66
+ // Take ownership of the given PReLU.
67
+ PReLU(PReLU&& other);
68
+ // Copy the given PReLU.
69
+ PReLU& operator=(const PReLU& other);
70
+ // Take ownership of the given PReLU.
71
+ PReLU& operator=(PReLU&& other);
72
+
73
+ // Reset the layer parameter.
71
74
  void SetWeights(const MatType& weightsIn);
72
75
 
73
76
  /**
@@ -115,17 +118,17 @@ class PReLUType : public Layer<MatType>
115
118
  const MatType& error,
116
119
  MatType& gradient);
117
120
 
118
- //! Get the parameters.
121
+ // Get the parameters.
119
122
  MatType const& Parameters() const { return alpha; }
120
- //! Modify the parameters.
123
+ // Modify the parameters.
121
124
  MatType& Parameters() { return alpha; }
122
125
 
123
- //! Get the non zero gradient.
126
+ // Get the non zero gradient.
124
127
  double const& Alpha() const { return alpha(0); }
125
- //! Modify the non zero gradient.
128
+ // Modify the non zero gradient.
126
129
  double& Alpha() { return alpha(0); }
127
130
 
128
- //! Get size of weights.
131
+ // Get size of weights.
129
132
  size_t WeightSize() const { return 1; }
130
133
 
131
134
  /**
@@ -135,18 +138,13 @@ class PReLUType : public Layer<MatType>
135
138
  void serialize(Archive& ar, const uint32_t /* version */);
136
139
 
137
140
  private:
138
- //! Leakyness Parameter object.
141
+ // Leakyness parameter object.
139
142
  MatType alpha;
140
143
 
141
- //! Leakyness Parameter given by user in the range 0 < alpha < 1.
144
+ // Leakyness parameter given by user in the range 0 < alpha < 1.
142
145
  double userAlpha;
143
146
  }; // class PReLU
144
147
 
145
- // Convenience typedefs.
146
-
147
- // Standard PReLU layer.
148
- using PReLU = PReLUType<arma::mat>;
149
-
150
148
  } // namespace mlpack
151
149
 
152
150
  // Include implementation.