github mlpack/ensmallen 3.10.0
ensmallen 3.10.0: "Unexpected Rain"

8 hours ago

Released Sept. 30, 2025.

  • SGD-like optimizers now all divide the step size by the batch size so that step sizes don't need to be tuned in addition to batch sizes. If you require behavior from ensmallen 2, define the ENS_OLD_SEPARABLE_STEP_BEHAVIOR macro before including ensmallen.hpp (#431).

  • Remove deprecated ParetoFront() and ParetoSet() from multi-objective optimizers (#435). Instead, pass objects to the Optimize() function; see the documentation for each multi-objective optimizer for more details. A typical transition will change code like:

    optimizer.Optimize(objectives, coordinates);
    arma::cube paretoFront = optimizer.ParetoFront();
    arma::cube paretoSet = optimizer.ParetoSet();

    to instead gather the Pareto front and set in the call:

    arma::cube paretoFront, paretoSet;
    optimizer.Optimize(objectives, coordinates, paretoFront, paretoSet);
  • Remove deprecated constructor for Active CMA-ES that takes lowerBound and upperBound (#435). Instead, pass an instantiated BoundaryBoxConstraint to the constructor. A typical transition will change code like:

    ActiveCMAES<FullSelection, BoundaryBoxConstraint> opt(lambda,
        lowerBound, upperBound, ...);

    into

    ActiveCMAES<FullSelection, BoundaryBoxConstraint> opt(lambda,
        BoundaryBoxConstraint(lowerBound, upperBound), ...);
  • Add proximal gradient optimizers for L1-constrained and other related problems: FBS, FISTA, and FASTA (#427). See the documentation for more details.

  • The Lambda() and Sigma() functions of the AugLagrangian optimizer, which could be used to retrieve the Lagrange multipliers and penalty parameter after optimization, are now deprecated (#439). Instead, pass a vector and a double to the Optimize() function directly:

    augLag.Optimize(function, coordinates, lambda, sigma)

    and these will be filled with the final Lagrange multiplier estimates and penalty parameters.

Don't miss a new ensmallen release

NewReleases is sending notifications on new releases.