Skip to content

Releases: mlpack/mlpack

mlpack 4.3.0

27 Nov 18:45
Compare
Choose a tag to compare

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 and LayerNorm 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

16 Oct 11:06
8ac85f5
Compare
Choose a tag to compare

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 to DecisionTree 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 the MLPACK_HAS_STB macro (#3529).

mlpack 4.2.0

16 Jun 19:48
Compare
Choose a tag to compare

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 to GaussianInitialization, LecunNormalInitialization, KathirvalavakumarSubavathiInitialization, NguyenWidrowInitialization, and OrthogonalInitialization (#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

27 Apr 13:26
Compare
Choose a tag to compare

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

29 Dec 15:40
Compare
Choose a tag to compare

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 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).
  • 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

24 Oct 13:43
Compare
Choose a tag to compare

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 with core::v2::any or std::any if available (#3006).
  • Remove old non used Boost headers (#3005).
  • Replace boost::enable_if with std::enable_if (#2998).
  • Replace boost::is_same with std::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 for knn, kfn, cf, range_search, krann, and kde bindings (#2803).
  • Add k-means++ initialization strategy (#2813).
  • NegativeLogLikelihood<> now expects classes in the range 0 to numClasses - 1 (#2534).
  • Add Lambda1(), Lambda2(), UseCholesky(), and Tolerance() members to LARS so parameters for training can be modified (#2861).
  • Remove unused ElemType template parameter from DecisionTree and RandomForest (#2874).
  • Fix Python binding build when the CMake variable USE_OPENMP is set to OFF (#2884).
  • The mlpack_test target is no longer built as part of make all. Use make 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-populated DatasetInfo 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() and hoeffding_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

28 Oct 16:27
Compare
Choose a tag to compare

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

07 Sep 16:40
Compare
Choose a tag to compare

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).

mlpack 3.4.0

01 Sep 22:19
Compare
Choose a tag to compare

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).

mlpack 3.3.2

18 Jun 22:29
Compare
Choose a tag to compare

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).