Releases: mlpack/mlpack
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).
mlpack 3.3.2
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 toLSHSearch
, 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 inapprox_kfn
binding, for theQDAFN
algorithm (#2448). -
Add
RBF
layer in ann module to makeRBFN
architecture (#2261).