mlpack: a fast, header-only C++ machine learning library
Released Nov. 27, 2023.
LinearRegression
(#3541).SoftmaxRegression::Train()
(#3553).MultiheadAttention
and LayerNorm
ANN layers to new Layer interface (#3547).Released Sep. 7, 2023. (Sorry for the late Github release. Forgot to hit the "publish" button.)
ClassProbabilities()
member to DecisionTree
so that the internal details of trees can be more easily inspected (#3511).mlpack/config.hpp
to contain configuration details of mlpack that are required at compile time. STB detection is now done in this file with the MLPACK_HAS_STB
macro (#3529).Released June 16, 2023.
serialize
method to GaussianInitialization
, LecunNormalInitialization
, KathirvalavakumarSubavathiInitialization
, NguyenWidrowInitialization
, and OrthogonalInitialization
(#3483).preprocess_one_hot_encode
(#3487).Released Apr. 27, 2023.
Released Dec. 29, 2022.
/std:c++17
and /Zc:__cplusplus
options are now required when using Visual Studio (#3318). Documentation and compile-time checks added.BUILD_TESTS
to OFF
by default. If you want to build tests, like mlpack_test
, manually set BUILD_TESTS
to ON
in your CMake configuration step (#3316).Released Oct. 24, 2022.
This is a huge overhaul of mlpack so that the C++ portion of the library is header-only. The library no longer depends on Boost, and only requires cereal, Armadillo, and ensmallen. Compilation time has been significantly reduced due to these changes, and complicated linking processes are no longer necessary. Since this refactoring took quite a while, there have also been numerous other improvements, listed individually below:
Perceptron
to work with cross-validation framework (#3190).boost::spirit
parser by a local efficient implementation (#2942).boost::any
with core::v2::any
or std::any
if available (#3006).boost::enable_if
with std::enable_if
(#2998).boost::is_same
with std::is_same
(#2993).FindArmadillo.cmake
(#2929).Multi Label Soft Margin Loss
loss function for neural networks (#2345).mlpack::tree::DecisionTreeRegressor
. It is accessible only though C++.mlpack::tree::ExtraTrees
, but only through C++.flatten-t-swish.hpp
)BUILD_DOCS
CMake option to control whether Doxygen documentation is built (default ON) (#2730).PYTHON_INSTALL_PREFIX
CMake option to specify installation root for Python bindings (#2797).boost::visitor
from model classes for knn
, kfn
, cf
, range_search
, krann
, and kde
bindings (#2803).NegativeLogLikelihood<>
now expects classes in the range 0
to numClasses - 1
(#2534).Lambda1()
, Lambda2()
, UseCholesky()
, and Tolerance()
members to LARS
so parameters for training can be modified (#2861).ElemType
template parameter from DecisionTree
and RandomForest
(#2874).USE_OPENMP
is set to OFF
(#2884).mlpack_test
target is no longer built as part of make all
. Use make mlpack_test
to build the tests.HoeffdingTree
: ensure that training still works when empty constructor is used (#2964).LoadCSV()
to use pre-populated DatasetInfo
objects (#2980).probabilities
option to softmax regression binding, to get class probabilities for test points (#3001).decision_tree()
and hoeffding_tree()
(#2971).pkgbuild
for R bindings (#3081).Refer to the documentation on the website or in doc/
for updated instructions on how to use this new version of mlpack.
Released Oct. 28, 2020.
Released Sep. 7, 2020.
Fix incorrect parsing of required matrix/model parameters for command-line bindings (#2600).
Add manual type specification support to data::Load()
and data::Save()
(#2084, #2135, #2602).
Remove use of internal Armadillo functionality (#2596, #2601, #2602).
Released Sept. 1st, 2020.
Issue warnings when metrics produce NaNs in KFoldCV (#2595).
Added bindings for R during Google Summer of Code (#2556).
Added common striptype function for all bindings (#2556).
Refactored common utility function of bindings to bindings/util (#2556).
Renamed InformationGain to HoeffdingInformationGain in methods/hoeffding_trees/information_gain.hpp
(#2556).
Added macro for changing stream of printing and warnings/errors (#2556).
Added Spatial Dropout layer (#2564).
Force CMake to show error when it didn't find Python/modules (#2568).
Refactor ProgramInfo()
to separate out all the different information (#2558).
Add bindings for one-hot encoding (#2325).
Added Soft Actor-Critic to RL methods (#2487).
Added Categorical DQN to q_networks (#2454).
Added N-step DQN to q_networks (#2461).
Add Silhoutte Score metric and Pairwise Distances (#2406).
Add Go bindings for some missed models (#2460).
Replace boost program_options dependency with CLI11 (#2459).
Additional functionality for the ARFF loader (#2486); use case sensitive categories (#2516).
Add bayesian_linear_regression
binding for the command-line, Python, Julia, and Go. Also called "Bayesian Ridge", this is equivalent to a version of linear regression where the regularization parameter is automatically tuned (#2030).
Fix defeatist search for spill tree traversals (#2566, #1269).
Fix incremental training of logistic regression models (#2560).
Change default configuration of BUILD_PYTHON_BINDINGS
to OFF
(#2575).
Released June 18, 2020.
Added Noisy DQN to q_networks (#2446).
Add [preview release of] Go bindings (#1884).
Added Dueling DQN to q_networks, Noisy linear layer to ann/layer and Empty loss to ann/loss_functions (#2414).
Storing and adding accessor method for action in q_learning (#2413).
Added accessor methods for ANN layers (#2321).
Addition of Elliot
activation function (#2268).
Add adaptive max pooling and adaptive mean pooling layers (#2195).
Add parameter to avoid shuffling of data in preprocess_split (#2293).
Add MatType
parameter to LSHSearch
, allowing sparse matrices to be used for search (#2395).
Documentation fixes to resolve Doxygen warnings and issues (#2400).
Add Load and Save of Sparse Matrix (#2344).
Add Intersection over Union (IoU) metric for bounding boxes (#2402).
Add Non Maximal Supression (NMS) metric for bounding boxes (#2410).
Fix no_intercept
and probability computation for linear SVM bindings (#2419).
Fix incorrect neighbors for k > 1
searches in approx_kfn
binding, for the QDAFN
algorithm (#2448).
Add RBF
layer in ann module to make RBFN
architecture (#2261).