[mlpack] mlpack 3.1.0 released!

Ryan Curtin ryan at ratml.org
Fri Apr 26 01:46:41 EDT 2019

Hello there,

Tonight I finally finished one part of a really long odyssey to
streamline mlpack's release process.  The release process used to have
about 20 steps involved and would take me an evening.  But after the
website revamp, it has been significantly simplified and automated, and
basically all I had to do was write a script to do the release for me,
like we do with ensmallen.  So, all that said, I present mlpack 3.1.0:


Here's the changelog (it's pretty long):

  * Add DiagonalGaussianDistribution and DiagonalGMM classes to speed up
    the diagonal covariance computation and deprecate DiagonalConstraint

  * Add kernel density estimation (KDE) implementation with bindings to
    other languages (#1301).

  * Where relevant, all models with a `Train()` method now return a
    `double` value representing the goodness of fit (i.e. final objective
    value, error, etc.) (#1678).

  * Add implementation for linear support vector machine (see

  * Change DBSCAN to use PointSelectionPolicy and add
    OrderedPointSelection (#1625).

  * Residual block support (#1594).

  * Bidirectional RNN (#1626).

  * Dice loss layer (#1674, #1714) and hard sigmoid layer (#1776).

  * `output` option changed to `predictions` and `output_probabilities`
    to `probabilities` for Naive Bayes binding (`mlpack_nbc`/`nbc()`).
    Old options are now deprecated and will be preserved until mlpack
    4.0.0 (#1616).

  * Add support for Diagonal GMMs to HMM code (#1658, #1666).  This can
    provide large speedup when a diagonal GMM is acceptable as an
    emission probability distribution.

  * Python binding improvements: check parameter type (#1717), avoid
    copying Pandas dataframes (#1711), handle Pandas Series objects

This release contains basically all the improvements that I mentioned in
the slides of the mlpack video meeting:

The only things that are in master but not in 3.1.0 are the GAN support,
which is not quite ready yet, and the MVU code (which honestly should
just be removed since it never worked...).

Like I mentioned there, we've merged over 65 pull requests this year
alone (probably closer to 70 now) and many of these are by new
contributors.  The code in this release absolutely would not have been
possible without everyone's contributions.  So, thanks to everyone!  I
am really excited about future directions.

Usually, I mention something at the end of these release emails about
things to look forward to in future releases, but mostly we figured that
out and set out some directions in the video meeting and follow-up
emails.  So instead the 'thing to look forward to' would be more regular
releases---now that this process has become somewhat streamlined, it's
really easy.

If you find any bugs or issues, please feel free to report on Github or
in IRC.  More information on how to get in touch can be found at

I hope everyone has a great day!  This process has kept me up a bit
later than I hoped so I am going to bed now... :)


Ryan Curtin    | "It's too bad she won't live!  But then again, who
ryan at ratml.org | does?" - Gaff

More information about the mlpack mailing list