Skip to content

Releases: automl/SMAC3

v.2.4.0

10 Apr 15:43
1c32e14

Choose a tag to compare

Improvements

  • Replace random forest from pyrfr with random forest from sklearn (#1246)
  • Submit trials to runners in SMBO instead of running configs directly (#937)
  • target_function becomes optional in Facade when using ask and tell exclusively (#946)
  • Added adaptive capping for algorithm configuration with runtime as target (#1247)
  • Readded UCB as an acquisition function (#1255)

Documentation

  • Ask and tell without initial design and warmstarting
  • Random forest replacement (sklearn instead of pyrfr)
  • Deterministic configuration of SMAC
  • Add a description of parallelization in the documentation (#1226)

Examples

  • Add target function with additional arguments (#1134)
  • Adapt parallelization example (#1214)

Bugfixes

  • Ask and tell without initial design may no longer return a config from the initial design - if it is not "removed".
  • Addressing situations where the acquisition function suggests configurations that have already been sampled in prior iterations (#1216)

Misc

  • Rename retries to max_new_config_tries in ConfigSelector (#1207)

v.2.3.1

23 Jan 12:13
ce7927d

Choose a tag to compare

Misc

  • New SMAC logo
  • Fix doc link in README

v.2.3.0

21 Jan 08:13
640f8a9

Choose a tag to compare

Documentation

  • Update windows install guide (#952)
  • Correct intensifier for Algorithm Configuration Facade (#1162, #1165)
  • Migrate sphinx docs to mkdocs (#1155)

Bugfixes

  • Fix bug in differential evolution acquisition maximizer in case the search space contains categorical hyperparameters (#1150)
  • Fix wrong attr query in the target function runner (crash cost) (#1176)
  • Fix kwargs for DifferentialEvolution (#1187)
  • Fix PiBo implementation (#1076)
  • Add fix for local search running forever (#1194)

Improvements

  • Add logger information on handling of stopIteration error (#960)
  • Replace deprecated ConfigSpace methods (#1139)
  • Separated Wallclock time measurements from CPU time measurements and storing them under new 'cpu_time' variable (#1173)
  • Adapt RunHistory to be human readable (# 1174)

Dependencies

  • Allow numpy >= 2.x (#1146)

Examples

  • Add warmstarting example (#1120)

v2.2.0

24 Jul 14:38
9d19475

Choose a tag to compare

Features

  • Add example to specify total budget (fidelity units) instead of n_trials for multi-fidelity/Hyperband (#1121)

Dependencies

  • Update numpy NaN (#1122) and restrict numpy version
  • Upgrade to ConfigSpace 1.x.x (#1124)

What's Changed

Full Changelog: v2.1.0...v2.2.0

Version 2.1.0

16 May 13:20
937eb2c

Choose a tag to compare

2.1.0

Improvements

  • Change the surrogate model to be retrained after every iteration by default in the case of blackbox optimization
    (#1106).
  • Integrate LocalAndSortedPriorRandomSearch functionality into LocalAndSortedRandomSearch (#1106).
  • Change the way the LocalAndSortedRandomSearch works such that the incumbent always is a starting point and that
    random configurations are sampled as the basis of the local search, not in addition (#1106).

Bugfixes

  • Fix path for dask scheduler file (#1055).
  • Add OrdinalHyperparameter for random forest imputer (#1065).
  • Don't use mutable default argument (#1067).
  • Propagate the Scenario random seed to get_random_design (#1066).
  • Configurations that fail to become incumbents will be added to the rejected lists (#1069).
  • SMAC RandomForest doesn't crash when np.integer used, i.e. as generated from a np.random.RandomState (#1084).
  • Fix the handling of n_points/ challengers in the acquisition maximizers, such that this number now functions as the
    number of points that are sampled from the acquisition function to find the next challengers. Now also doesn't
    restrict the config selector to n_retrain many points for finding the max, and instead uses the defaults that are
    defined via facades/ scenarios (#1106).

Misc

  • ci: Update action version (#1072).

Minor

  • When a custom dask client is provided, emit the warning that the n_workers parameter is ignored only if it deviates from its default value, 1 (#1071).

What's Changed

Full Changelog: v2.0.2...v2.1.0

Version 2.0.2

01 Aug 13:38
541ee7e

Choose a tag to compare

2.0.2

Improvements

  • Add an error when we get an empty dict data_to_scatter so that we can avoid an internal error caused in Dask precautiously
  • Add experimental instruction for installing SMAC in Windows via a WSL.
  • More detailed documentation regarding continuing runs.

Bugfixes

  • Fix bug in the incumbent selection in the case that multi-fidelity is combined with multi-objective (#1019).
  • Fix callback order (#1040).
  • Handle configspace as dictionary in mlp and parego example.
  • Adapt sgd loss to newest scikit-learn version.

Version 2.0.1

23 May 12:56
d5d5456

Choose a tag to compare

2.0.1

Improvements

  • Callbacks registration is now a public method of the optimizer and allows callbacks to be inserted at a specific position.
  • Adapt developer install instructions to include pre-commit installation
  • Add option to pass a dask client to the facade, e.g. enables running on a hpc cluster (#983).
  • Added scenario.use_default_config argument/attribute=False, that adds the user's configspace default configuration
    as an additional_config to the inital design if set to True. This adds one additional configuration to the number of configs
    originating from the initial design. Since n_trials is still respected, this results in one fewer BO steps
  • Adapt developer install instructions to include pre-commit installation.
  • Add option to pass a dask client to the facade, e.g. enables running on a hpc cluster (#983).
  • Add example for using a callback to log run metadata to a file (#996).
  • Move base callback and metadata callback files to own callback directory.
  • Add a workaround to be able to pass a dataset via dask.scatter so that serialization/deserialization in Dask becomes much quicker (#993).

Bugfixes

  • The ISB-pair differences over the incumbent's configurations are computed correctly now (#956).
  • Adjust amount of configurations in different stages of hyperband brackets to conform to the original paper.
  • Fix validation in smbo to use the seed in the scenario.
  • Change order of callbacks, intensifier callback for incumbent selection is now the first callback.
  • intensifier.get_state() will now check if the configurations contained in the queue is stored in the runhistory (#997)

Version 2.0.0

03 Mar 10:29
731854e

Choose a tag to compare

2.0.0

Improvements

  • Clarify origin of configurations (#908).
  • Random forest with instances predicts the marginalized costs by using a C++ implementation in pyrfr, which is much faster (#903).
  • Add version to makefile to install correct test release version

Bugfixes

  • Continue run when setting incumbent selection to highest budget when using Successive Halving (#907).
  • If integer features are used, they are automatically converted to strings.

Workflows

  • Added workflow to update pre-commit versions (#874).

Misc

  • Added benchmarking procedure to compare to previous releases.

Version 2.0.0b1

07 Jan 10:44
0a1dff4

Choose a tag to compare

Version 2.0.0b1 Pre-release
Pre-release
  • Completely reimplemented the intensifiers (including Successive Halving and Hyperband): All intensifiers support multi-fidelity, multi-objective and multi-threading by nature now.
  • Expected behaviour for ask-and-tell interface ensured (also for Successive Halving).
  • Continuing a run is now fully supported.
  • Added more examples.
  • Updated documentation based on new implementation.
  • Added benchmark to compare different versions.

Version 2.0.0a2

26 Oct 12:01
dd249cd

Choose a tag to compare

Version 2.0.0a2 Pre-release
Pre-release

Bugfixes

  • Fixed random weight (re-)generalization of multi-objective algorithms: Before the weights were generated for each call to build_matrix, now we only re-generate them for every iteration.
  • Optimization may get stuck because of deep copying an iterator for callback: We removed the configuration call from on_next_configurations_end.

Minor

  • Removed example badget in README.
  • Added SMAC logo to README.