Skip to content

Releases: automl/SMAC3

Release 1.0.0

06 Aug 12:09
3db542c
Compare
Choose a tag to compare

1.0.0

The main purpose of this release is to be synchronized with our upcoming paper.
Since many urgent features were already taken care of in 0.14.0, this release mainly focuses on better documentation and examples.

Features

  • Examples and quickstart guide can now be generated by sphinx-gallry.
  • Added make command make doc and make doc-with-examples.

Major changes

  • Examples are separated into categories.
  • Renamed facade SMAC4BO to SMAC4BB (black-box).
  • Add thompson sampling as a new acquisition function.

Minor Changes

  • Included linkcheck and buildapi to the make doc command.
  • quickstart.rst was converted to quickstart_example.py to be processed by sphinx-gallery.
  • Examples renamed from *.py to *_example.py, unless file name was *_func.py, in which case it was unchanged.
  • Flake8 fixes for spear_qcp as there were a lot of complaints running pre-commit.
  • Fixes pydoc issues.
  • Fixed links in the README.
  • Fixed warnings given during the doc build.
  • Fixed inconsistent output shape described in smac.epm.gaussian_process.GaussianProcess.sample_functions
  • Examples are wrapped inside if __name__ == "__main__", fixing problems on mac.

Release 0.14.0

05 Aug 12:10
3df3a74
Compare
Choose a tag to compare

Breaking Changes

  • BOHB4HPO facade has been renamed to SMAC4MF facade (#738)
  • Require scipy >= 1.7 (#729)
  • Require emcee >= 3.0.0 (#723)

Major Changes

  • Drop support for Python 3.6 (#726)
  • Added Colab to try SMAC in your browser! (#697)

Minor Changes

  • Added gradient boosting example, removed random forest example (#722)
  • lazy_import dependency dropped (#741)
  • Replaced pyDOE requirement with scipy for LHD design (#735)
  • Uses scrambled Sobol Sequence (#733)
  • Moved to Github actions (#715)
  • Improved testing (#720, #723, #739, #743)
  • Added option save_results_instantly in scenario object to save results instantly (#728)
  • Changed level of intensification messages to debug (#724)

Bug Fixes

  • Github badges updated (#732)
  • Fixed memory limit issue for pynisher (#717)
  • More robust multiprocessing (#709, #712)
  • Fixed serialization with runhistory entries (#706)
  • Separated evaluation from get next challengers in intensification (#734)
  • Doc fixes (#727, #714)

Version 0.13.1

15 Mar 08:26
6058475
Compare
Choose a tag to compare

0.13.1

Minor Changes

  • Improve error message for first run crashed (#694).
  • Experimental: add callback mechanism (#703).

Bug fixes

  • Fix a bug which could make successive halving fail if run in parallel (#695).
  • Fix a bug which could cause hyperband to ignore the lowest budget (#701).

Release 0.13.0

25 Sep 14:02
9d7d09d
Compare
Choose a tag to compare

Major Changes

  • Split choosing next challenger from evaluating challenger (#663)
  • Implemented parallel SMAC using dask (#675, #677, #681, #685, #686)
  • Drop support for Python 3.5

Minor Changes

  • Update Readme
  • Remove runhistory from TAE (#663)
  • Store SMAC's internal config id in the configuration object (#679)
  • Introduce Status Type STOP (#690)

Bug Fixes

  • Only validate restriction of Sobol Sequence when choosing Sobol Sequence (#664)
  • Fix wrong initialization of list in local search (#680)
  • Fix setting random seed with a too small range in Latin Hypercube design (#688)

Version 0.12.3

31 Jul 06:59
9890e0c
Compare
Choose a tag to compare

Release 0.12.3

Minor Changes

  • Use Scipy's Sobol sequence for the initial design instead of a 3rd-party package (#600)
  • Store start and end time of function evaluation (#647)

Bug Fixes

  • Fixes an issue in the Bayesian optimization facade which triggered an exception when tuning categorical
    hyperparameters (#666)
  • Fixes an issue in the Gaussian process MCMC which resulted in reduced execution speed and reduced performance (#666)

Version 0.12.2

25 May 07:34
d5b9381
Compare
Choose a tag to compare

Bug Fixes

  • Fixes the docstring of SMAC's default acquisition function optimizer (#653)
  • Correctly attributes the configurations' origin if using the FixedSet acquisition function optimizer (#653)
  • Fixes an infinite loop which could occur if using only a single configuration per iteration (#654)
  • Fixes a bug in the kernel construction of the BOFacade (#655)

Version 0.12.1

06 May 15:50
2cd6c9e
Compare
Choose a tag to compare

Minor Changes

  • Upgrade the minimal scikit-learn dependency to 0.22.X.
  • Make GP predictions faster (#638)
  • Allow passing tae_runner_kwargs to ROAR.
  • Add a new StatusType DONOTADVANCE for runs that would not benefit from a higher budgets. Such runs are always used
    to build a model for SH/HB (#632)
  • Add facades/examples for HB/SH (#610)
  • Compute acquisition function only if necessary (#627,#629)

Bug Fixes

  • Fixes a bug which caused SH/HB to consider TIMEOUTS on all budgets for model building (#632)
  • Fixed a bug in adaptive capping for SH (#619,#622)

Version 0.12.0

02 Mar 15:04
8e9b336
Compare
Choose a tag to compare

Major Changes

  • Support for Successive Halving and Hyperband as new instensification/racing strategies.
  • Improve the SMAC architecture by moving from an architecture where new candidates are passed to the racing algorithm
    to an architecture where the racing algorithm requests new candidates, which is necessary to implement the
    BOHB algorithm (#551).
  • Source code is now PEP8 compliant. PEP8 compliance is checked by travis-ci (#565).
  • Source code is now annotated with type annotation and checked with mypy.

Minor Changes

  • New argument to directly control the size of the initial design (#553).
  • Acquisition function is fed additional arguments at update time (#557).
  • Adds new acquisition function maximizer which goes through a list of pre-specified configurations (#558).
  • Document that the dependency pyrfr does not work with SWIG 4.X (#599).
  • Improved error message for objects which cannot be serialized to json (#453).
  • Dropped the random forest with HPO surrogate which was added in 0.9.
  • Dropped the EPILS facade which was added in 0.6.
  • Simplified the interface for constructing a runhistory object.
  • removed the default rng from the Gaussian process priors (#554).
  • Adds the possibility to specify the acquisition function optimizer for the random search (ROAR) facade (#563).
  • Bump minimal version of ConfigSpace requirement to 0.4.9 (#578).
  • Examples are now rendered on the website using sphinx gallery (#567).

Bug fixes

  • Fixes a bug which caused SMAC to fail for Python function if use_pynisher=False and an exception was raised
    (#437).
  • Fixes a bug in which samples from a Gaussian process were shaped differently based on the number of dimesions of
    the y-array used for fitting the GP (#556).
  • Fixes a bug with respect saving data as json (#555).
  • Better error message for a sobol initial design of size >40 ( #564).
  • Add a missing return statement to GaussianProcess._train.

Version 0.11.1

20 Sep 12:46
2b27e0d
Compare
Choose a tag to compare
  • Updated the default hyperparameters of the Gaussian process facade to follow recent research (#529)
  • Enabled flake8 code style checks for newly merged code (#525)

Version 0.11.0

29 Aug 11:40
81eba54
Compare
Choose a tag to compare

Major changes

  • Local search now starts from observed configurations with high acquisition function values, low cost and the from
    unobserved configurations with high acquisition function values found by random search (#509)
  • Reduces the number of mandatory requirements (#516)
  • Make Gaussian processes more resilient to linalg error by more aggressively adding noise to the diagonal (#511)
  • Inactive hyperparameters are now imputed with a value outside of the modeled range (-1) (#508)
  • Replace the GP library George by scikit-learn (#505)
  • Renames facades to better reflect their use cases (#492), and adds a table to help deciding which facade to use (#495)
  • SMAC facades now accept class arguments instead of object arguments (#486)

Minor changes

  • Vectorize local search for improved speed (#500)
  • Extend the Sobol and LHD initial design to work for non-continuous hyperparameters as well applying an idea similar
    to inverse transform sampling (#494)

Bug fixes

  • Fixes a regression in the validation scripts (#519)
  • Fixes a unit test regression with numpy 1.17 (#523)
  • Fixes an error message (#510)
  • Fixes an error making random search behave identical for all seeds