Releases: mlpack/mlpack
mlpack 4.4.0
Released May 28, 2024.
- Add
print_training_accuracy
option to LogisticRegression bindings (#3552). - Fix
preprocess_split()
call in documentation forLinearRegression
andAdaBoost
Python classes (#3563). - Added
Repeat
ANN layer type (#3565). - Remove
round()
implementation for old MSVC compilers (#3570). - (R) Added inline plugin to the R bindings to allow for other R packages to link to headers (#3626, h/t @cgiachalis).
- (R) Removed extra gcc-specific options from
Makevars.win
(#3627, h/t @kalibera). - (R) Changed roxygen package-level documentation from using
@docType package
to"_PACKAGE"
. (#3636) - Fix floating-point accuracy issue for decision trees that sometimes caused crashes (#3595).
- Use templates metaprog to distinguish between a matrix and a cube type (#3602), (#3585).
- Use
MatType
instead ofarma::Mat<eT>
, (#3567), (#3607), (#3608), (#3609), (#3568). - Generalize matrix operations for armadillo and bandicoot, (#3619), (#3617), (#3610), (#3643), (#3600), (#3605), (#3629).
- Change
arma::conv_to
toConvTo
using a local shim for bandicoot support (#3614). - Fix a bug for the stddev and mean in
RandNormal()
#(3651). - Allow PCA to take different matrix types (#3677).
- Fix usage of precompiled headers; remove cotire (#3635).
- Fix non-working
verbose
option for R bindings (#3691), and add globalmlpack.verbose
option (#3706). - Fix divide-by-zero edge case for LARS (#3701).
- Templatize
SparseCoding
andLocalCoordinateCoding
to allow different matrix types (#3709, #3711). - Fix handling of unused atoms in
LocalCoordinateCoding
(#3711). - Move minimum required C++ version from C++14 to C++17 (#3704).
mlpack 4.3.0
Released Nov. 27, 2023.
- Fix include ordering issue for
LinearRegression
(#3541). - Fix L1 regularization in case where weight is zero (#3545).
- Use HTTPS for all auto-downloaded dependencies (#3550).
- More robust detection of C++17 mode in the MSVC "compiler" (#3555, #3557).
- Fix setting number of classes correctly in
SoftmaxRegression::Train()
(#3553). - Adapt
MultiheadAttention
andLayerNorm
ANN layers to new Layer interface (#3547). - Fix inconsistent use of the "input" parameter to the Backward method in ANNs (#3551).
mlpack 4.2.1
Released Sep. 7, 2023. (Sorry for the late Github release. Forgot to hit the "publish" button.)
- Reinforcement Learning: Gaussian noise (#3515).
- Reinforcement Learning: Twin Delayed Deep Deterministic Policy Gradient (#3512).
- Reinforcement Learning: Ornstein-Uhlenbeck noise (#3499).
- Reinforcement Learning: Deep Deterministic Policy Gradient (#3494).
- Add
ClassProbabilities()
member toDecisionTree
so that the internal details of trees can be more easily inspected (#3511). - Bipolar sigmoid activation function added and invertible functions fixed (#3506).
- Add auto-configured
mlpack/config.hpp
to contain configuration details of mlpack that are required at compile time. STB detection is now done in this file with theMLPACK_HAS_STB
macro (#3529).
mlpack 4.2.0
Released June 16, 2023.
- Adapt C_ReLU, ReLU6, FlexibleReLU layer for new neural network API (#3445).
- Fix PReLU, add integration test to it (#3473).
- Fix bug in LogSoftMax derivative (#3469).
- Add
serialize
method toGaussianInitialization
,LecunNormalInitialization
,KathirvalavakumarSubavathiInitialization
,NguyenWidrowInitialization
, andOrthogonalInitialization
(#3483). - Allow categorical features to
preprocess_one_hot_encode
(#3487). - Install mlpack and cereal headers as part of R package (#3488).
- Add intercept and normalization support to LARS (#3493).
- Allow adding two features simultaneously to LARS models (#3493).
- Adapt FTSwish activation function (#3485).
- Adapt Hyper-Sinh activation function (#3491).
mlpack 4.1.0
Released Apr. 27, 2023.
- Adapt HardTanH layer (#3454).
- Adapt Softmin layer for new neural network API (#3437).
- Adapt PReLU layer for new neural network API (#3420).
- Add CF decomposition methods: QUIC_SVDPolicy and BlockKrylovSVDPolicy (#3413, #3404).
- Update outdated code in tutorials (#3398, #3401).
- Bugfix for non-square convolution kernels (#3376).
- Fix a few missing includes in <mlpack.hpp> (#3374).
- Fix DBSCAN handling of non-core points (#3346).
- Avoid deprecation warnings in Armadillo 11.4.4+ (#3405).
- Issue runtime error when serialization of neural networks is attempted but MLPACK_ENABLE_ANN_SERIALIZATION is not defined (#3451).
mlpack 4.0.1
Released Dec. 29, 2022.
- Fix mapping of categorical data for Julia bindings (#3305).
- Bugfix: catch all exceptions when running bindings from Julia, instead of crashing (#3304).
- Various Python configuration fixes for Windows and OS X (#3312, #3313, #3311, #3309, #3308, #3297, #3302).
- Optimize and strip compiled Python bindings when possible, resulting in significant size minimization (#3310).
- The
/std:c++17
and/Zc:__cplusplus
options are now required when using Visual Studio (#3318). Documentation and compile-time checks added. - Set
BUILD_TESTS
toOFF
by default. If you want to build tests, likemlpack_test
, manually setBUILD_TESTS
toON
in your CMake configuration step (#3316). - Fix handling of transposed matrix parameters in Python, Julia, R, and Go bindings (#3327).
- Comment out definition of ARMA_NO DEBUG. This allows various Armadillo run-time checks such as non-conforming matrices and out-of-bounds element access. In turn this helps tracking down bugs and incorrect usage (#3322).
mlpack 4.0.0
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:
- Bump C++ standard requirement to C++14 (#3233).
- Fix
Perceptron
to work with cross-validation framework (#3190). - Migrate from boost tests to Catch2 framework (#2523), (#2584).
- Bump minimum armadillo version from 8.400 to 9.800 (#3043), (#3048).
- Adding a copy constructor in the Convolution layer (#3067).
- Replace
boost::spirit
parser by a local efficient implementation (#2942). - Disable correctly the autodownloader + fix tests stability (#3076).
- Replace
boost::any
withcore::v2::any
orstd::any
if available (#3006). - Remove old non used Boost headers (#3005).
- Replace
boost::enable_if
withstd::enable_if
(#2998). - Replace
boost::is_same
withstd::is_same
(#2993). - Remove invalid option for emsmallen and STB (#2960).
- Check for armadillo dependencies before downloading armadillo (#2954).
- Disable the usage of autodownloader by default (#2953).
- Install dependencies downloaded with the autodownloader (#2952).
- Download older Boost if the compiler is old (#2940).
- Add support for embedded systems (#2531).
- Build mlpack executable statically if the library is statically linked (#2931).
- Fix cover tree loop bug on embedded arm systems (#2869).
- Fix a LAPACK bug in
FindArmadillo.cmake
(#2929). - Add an autodownloader to get mlpack dependencies (#2927).
- Remove Coverage files and configurations from CMakeLists (#2866).
- Added
Multi Label Soft Margin Loss
loss function for neural networks (#2345). - Added Decision Tree Regressor (#2905). It can be used using the class
mlpack::tree::DecisionTreeRegressor
. It is accessible only though C++. - Added dict-style inspection of mlpack models in python bindings (#2868).
- Added Extra Trees Algorithm (#2883). Currently, it can be used using the class
mlpack::tree::ExtraTrees
, but only through C++. - Add Flatten T Swish activation function (
flatten-t-swish.hpp
) - Added warm start feature to Random Forest (#2881); this feature is accessible from mlpack's bindings to different languages.
- Added Pixel Shuffle layer (#2563).
- Add "check_input_matrices" option to python bindings that checks for NaN and inf values in all the input matrices (#2787).
- Add Adjusted R squared functionality to R2Score::Evaluate (#2624).
- Disabled all the bindings by default in CMake (#2782).
- Added an implementation to Stratify Data (#2671).
- Add
BUILD_DOCS
CMake option to control whether Doxygen documentation is built (default ON) (#2730). - Add Triplet Margin Loss function (#2762).
- Add finalizers to Julia binding model types to fix memory handling (#2756).
- HMM: add functions to calculate likelihood for data stream with/without pre-calculated emission probability (#2142).
- Replace Boost serialization library with Cereal (#2458).
- Add
PYTHON_INSTALL_PREFIX
CMake option to specify installation root for Python bindings (#2797). - Removed
boost::visitor
from model classes forknn
,kfn
,cf
,range_search
,krann
, andkde
bindings (#2803). - Add k-means++ initialization strategy (#2813).
NegativeLogLikelihood<>
now expects classes in the range0
tonumClasses - 1
(#2534).- Add
Lambda1()
,Lambda2()
,UseCholesky()
, andTolerance()
members toLARS
so parameters for training can be modified (#2861). - Remove unused
ElemType
template parameter fromDecisionTree
andRandomForest
(#2874). - Fix Python binding build when the CMake variable
USE_OPENMP
is set toOFF
(#2884). - The
mlpack_test
target is no longer built as part ofmake all
. Usemake mlpack_test
to build the tests. - Fixes to
HoeffdingTree
: ensure that training still works when empty constructor is used (#2964). - Fix Julia model serialization bug (#2970).
- Fix
LoadCSV()
to use pre-populatedDatasetInfo
objects (#2980). - Add
probabilities
option to softmax regression binding, to get class probabilities for test points (#3001). - Fix thread safety issues in mlpack bindings to other languages (#2995).
- Fix double-free of model pointers in R bindings (#3034).
- Fix Julia, Python, R, and Go handling of categorical data for
decision_tree()
andhoeffding_tree()
(#2971). - Depend on
pkgbuild
for R bindings (#3081). - Replaced Numpy deprecated code in Python bindings (#3126).
Refer to the documentation on the website or in doc/
for updated instructions on how to use this new version of mlpack.
mlpack 3.4.2
Released Oct. 28, 2020.
- Added Mean Absolute Percentage Error.
- Added Softmin activation function as layer in ann/layer.
- Fix spurious ARMA_64BIT_WORD compilation warnings on 32-bit systems (#2665).
mlpack 3.4.1
mlpack 3.4.0
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
toOFF
(#2575).