Skip to content

Releases: mlpack/ensmallen

ensmallen 3.11.0: "Sunny Day"

16 Dec 14:50

Choose a tag to compare

Released Dec. 16, 2025.

  • Refactor GradientDescent into GradientDescentType<UpdatePolicyType, DecayPolicyType> and add the DeltaBarDelta and MomentumDeltaBarDelta optimizers (#440).

  • Fix an off-by-one bug where the actual number of executed iterations was one fewer than the specified maxIterations (#443).

ensmallen 3.10.0: "Unexpected Rain"

30 Sep 18:11

Choose a tag to compare

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.

ensmallen 2.22.2: "E-Bike Excitement"

02 May 12:56

Choose a tag to compare

Released May 2, 2025.

  • Fix include statement in tests/de_test.cpp (#419).
  • Fix exactObjective output for SGD-like optimizers when the number of iterations is an even number of epochs (#417).
  • Increase tolerance in demon_sgd_test.cpp (#420).
  • Set cmake version range to 3.5...4.0 (#422).

ensmallen 2.22.1: "E-Bike Excitement"

03 Dec 00:30

Choose a tag to compare

Released Dec. 2, 2024.

  • Remove unused variables to fix compiler warnings (#413).

ensmallen 2.22.0: "E-Bike Excitement"

29 Nov 18:53

Choose a tag to compare

Released Nov. 28, 2024.

  • Update to C++14 standard (#400).
  • Bump minimum Armadillo version to 10.8 (#404).
  • For Armadillo 14.2.0 switch to .index_min() and .index_max() (#409).
  • Added IPOP and BIPOP restart mechanisms for CMA-ES. (#403).

ensmallen 2.21.1: "Bent Antenna"

16 Feb 01:48

Choose a tag to compare

Released Feb. 15, 2024.

  • Fix numerical precision issues for small-gradient L-BFGS scaling factor computations (#392).

  • Ensure the tests are built with optimisation enabled (#394).

ensmallen 2.21.0: "Bent Antenna"

27 Nov 20:16
7ade3e9

Choose a tag to compare

Released Nov. 27, 2023.

  • Clarify return values for different callback types (#383).

  • Fix return types of callbacks (#382).

  • Minor cleanup for printing optimization reports via Report() (#385).

ensmallen 2.20.0: "Stripped Bolt Head"

05 Oct 20:15
42cdf42

Choose a tag to compare

Released Oct. 4, 2023.

  • Implementation of Active CMAES (#367).

  • LBFGS: avoid generation of NaNs, and add checks for finite values (#368).

  • Fix CNE test tolerances (#360).

  • Rename SCD optimizer, to CD (#379).

ensmallen 2.19.1: "Eight Ball Deluxe"

08 Feb 14:32
8194ad9

Choose a tag to compare

Released Feb. 7, 2023.

  • Avoid deprecation warnings in Armadillo 11.2+ (#347).

ensmallen 2.19.0: "Eight Ball Deluxe"

11 Apr 02:07
@zoq zoq
f974ea0

Choose a tag to compare

Released Apr. 10, 2022.

  • Added DemonSGD and DemonAdam optimizers (#211).

  • Fix bug with Adam-like optimizers not resetting when resetPolicy is true. (#340).

  • Add Yogi optimizer (#232).

  • Add AdaBelief optimizer (#233).

  • Add AdaSqrt optimizer (#234).

  • Bump check for minimum supported version of Armadillo (#342).