Skip to content

Commit

Permalink
Version 2.0.1 (#1000)
Browse files Browse the repository at this point in the history
* Fixed typing

* Increased version

* rename check_point_in_ss to check_subspace_point

* Make format

* Uncomment test procedure

* docstrings for boing facade

* avoid typing namespace everywhere in epm_configuration_chooser

* fix docstring in rh2epm_boing

* Limit on dask

* Trying to fix tests

* Replaced typing in all files

* docstring for boing subspace

* Changed feature requests to feature

* allow acq_optimizer_local_kwargs to be passed to boing subspace without acq_optimizer_local

* fix pre-commit

* Added any

* Update facade

* Fix typing
* Match arguments from pSMAC with SMAC4AC signature
* Add description of pSMAC to docstring
* Add option to pass facade class to pSMAC

* Add example for pSMAC

* Removed docstring in readme's example

* Corrected text

* move construct_gp_kernels to smac.epm_gpytorch.boing_kernels

* maint

* fix wrongly imported func name in tests

* Add reference for pSMAC #609

* Rename example file

* Added roadmap to readme

* Prettification

* Add result merger

* Reformat with black

* Delete unnecessary import

* Fix typing

* Inject first trajectory entry from file from first rundir

* Add test for ResultMerger

* Fix docstring

* Get runhistory and trajectory from pSMAC run

Via the result merger. Searchers rundirs and
merges found runhistories and calculates a
new trajectory.

* Get trajectory

* Add regex to requirements

* Fixed MO cache problem

* Fix MO tests

* Fixing MO in AbstractRacer

* Accepting ints

* Hacking in the sum cost for MO

* Fix mypi

* Bugfix

* Make mypi happy

* Fix tests

* Make format

* Remove num_obj in MO optimizer

* A lot of restructuring

* Solve importings

* Solve importings

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Updated changelog

* Still fixing :)

* fix docstrings

* Change directory of tests

* Fix ambiguous variable

* Del newlines

* fix mypy

* mypy and doc fix

* Removed int type checking

* fix tests

* Always return List of incs

* fix path issue in example

* maint boing facade

* Better docstring

* Return values if no bounds passed

* Removed import

* Return only one incumbent

* Rename n_optimizers -> n_workers

* Update example

* Update docstring

* Remove legacy function

* Update to new signature

* Update changelog.md

* Format black

* Update test

* Please pre-commit

* Merge development

* Fix tests

* Fix typos

* Format black

* Updated text

* Increased version

* Improved readme

* SMAC logo 50%

* SMAC logo 50%

* Removed dev-2.0

* Added doc workflow for latest tag

* Fixing docs latest tag

* Fixing docs latest tag

* First steps new intensifier

* Make it work again

* MOVE random weight initialization to smbo ask method

* ADD enable parego in unittests

* Test issues

* FIX formatting

* Link to old documentation

* MOVE random weight initialization to smbo ask method

* ADD enable parego in unittests

* FIX formatting

* Fix unit tests

* Add annotation

* corrected log prob for tophat prior

* Removed configurations from callback

* Fixed tests

* Fix mypy

* Save docs as latest version too

* Enabled all tests again

* Make version an env

* Added last version to docs

* Global variable fix

* Added v before version number

* New Intensifier Implementation (#888)

- 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.

* First benchmark steps

* Added a warning

* Set xi to 0.01

* Incorporated walltime in trajectory

* Working version of benchmark

* Changed requirements

* Changed xi back to 0.0 again

* No duplicate budgets

* Fixed bug which updated tracker wrongly

* Bugfix: Delete correct bracket+stage

* Fixed tests

* Added costs to the trajectory

* Changed initial design max ratio to 0.25

* Make format

* Added more details to intensifier

* Finished benchmark

* Added benchmark source files

* Fixed tests because of initial design changes

* Improved runhistory API

* Fixed typo (#894)

* Merge doc fixes

* Doc fixes (#893)

Co-authored-by: timruhkopf <[email protected]>
Co-authored-by: Carolin Benjamins <[email protected]>
Co-authored-by: dengdifan <[email protected]>
Co-authored-by: Alexander Tornede <[email protected]>
Co-authored-by: Sarah Krebs <[email protected]>

* Make format

* Satisfied mypy

* Enabled more tests

* Increased version

* Mypy

* Mypy

* Mypy

* Fixed critical bug when using highest budget for inc selection

* Added SH+HB comparison

* Stuff

* Updated report

* Fixed docstring

* Fixed image path

* Removed vscode folder

* Bugfixes

* Doc fixes

* Updated changelog

* Make isort

* Fix typos

* Removed new line

* Added alpha2 to docs selection

* update description

* Fix 531 correctly create integers in initial design

This PR fixes a bug in which integer hyperparameters would not
be created correctly in the initial design. This went
unnoticed, except in the case where it was part of a condition
and the function deactivate_inactive_hyperparameters was
called.

This PR fixes this bug by mapping the random float that was
sampled by, for example and LHD or Sobol sequence, to the
float representation of an integer by calling _transform and
_inverse_transform of the integer hyperparameter.

* Add contact paragraph to README.

* Increase days until stale issues are closed by stalebot (#904)

* Edit changelog

* Add issue number

* Closes #907

* Clarify origin of configurations (#908)

* Random forest speed up (#903)

Co-authored-by: René Sass <[email protected]>

* Add: workflow to update pre-commit versions (#874)

Co-authored-by: René Sass <[email protected]>

* Add Git-Flow Workflow Specification

* [DOC] acquisition function maximizers

* Add stale reminder email action

* Increase version number of ConfigSpace

* Add guideline for updating copyright notice years to CONTRIBUTING.md

* Update requirement for pyrfr (#920)

* Update pre-commit: isort,flake8 version numbers

* Format black

* Fix mypy

* Ac bench (#929)

* Add Branin AC Task

* Add ac optimization type

* Nicer plotting

* Add ac mode

* Update ac task

* Make new smac env name adjustable

* Increase python version for smac 1.4

* Update benchmark

* Update plotting

* Goodby comments

* Fix path

* Fix 1.4 wrapper

* Update benchmark results

---------

Co-authored-by: Carolin Benjamins <[email protected]>

* [DOC] added documentation on the incumbent update

* Feature/add version to make publish (#931)

* Add version, correct package name and use bash in makefile

* Increase version

* Increase version in makefile, add places with versions to make publish

* Fix typo

* Transform integer feature names to strings (#930)

* Transform int features to str

* Fix pre-commit

* Update version to 2.0.0

* Update version to 2.0.0

* Update CHANGELOG.md

* Add information on deepcave to the readme

* Correct doc version

* fix(runhistory): set id of the sampled config (#951)

* fix: Set config_id of config in runhistory

* ci: Set dependabot to target development branch (#963)

* feat: Option preventing SMAC setting up logging (#947)

* Version 2.0.0 (#898)

* Update runhistory2epm.py

* pre_commit

* Updated changelog

* Fixed comment

* Updated changelog

* Some small improvements

* Removed trailing space

* Updated changelog

* Restricted pynisher

* Updated changelog

* Link JMLR paper

* Update bibtex entry

Before: arxiv paper, now journal article.

* Fixed citation in docs

* Fixed callback typos

* BOinG for mixed hyperparameter search space

* fix format

* maint

* maint documentation

* maint pre-commit

* fix workflow

* maint

* Add dependabot for workflow files

* Bump actions/setup-python from 2 to 4 (#849)

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v2...v4)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/checkout from 2 to 3 (#850)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* maint

* Updated stale bot

* Updated stale options again

* Fixed typing

* Increased version

* rename check_point_in_ss to check_subspace_point

* Make format

* Uncomment test procedure

* docstrings for boing facade

* avoid typing namespace everywhere in epm_configuration_chooser

* fix docstring in rh2epm_boing

* Limit on dask

* Trying to fix tests

* Replaced typing in all files

* docstring for boing subspace

* Changed feature requests to feature

* allow acq_optimizer_local_kwargs to be passed to boing subspace without acq_optimizer_local

* fix pre-commit

* Added any

* Update facade

* Fix typing
* Match arguments from pSMAC with SMAC4AC signature
* Add description of pSMAC to docstring
* Add option to pass facade class to pSMAC

* Add example for pSMAC

* Removed docstring in readme's example

* Corrected text

* move construct_gp_kernels to smac.epm_gpytorch.boing_kernels

* maint

* fix wrongly imported func name in tests

* Add reference for pSMAC #609

* Rename example file

* Added roadmap to readme

* Prettification

* Add result merger

* Reformat with black

* Delete unnecessary import

* Fix typing

* Inject first trajectory entry from file from first rundir

* Add test for ResultMerger

* Fix docstring

* Get runhistory and trajectory from pSMAC run

Via the result merger. Searchers rundirs and
merges found runhistories and calculates a
new trajectory.

* Get trajectory

* Add regex to requirements

* Fixed MO cache problem

* Fix MO tests

* Fixing MO in AbstractRacer

* Accepting ints

* Hacking in the sum cost for MO

* Fix mypi

* Bugfix

* Make mypi happy

* Fix tests

* Make format

* Remove num_obj in MO optimizer

* A lot of restructuring

* Solve importings

* Solve importings

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Fixing, fixing, fixing, ...

* Updated changelog

* Still fixing :)

* fix docstrings

* Change directory of tests

* Fix ambiguous variable

* Del newlines

* fix mypy

* mypy and doc fix

* Removed int type checking

* fix tests

* Always return List of incs

* fix path issue in example

* maint boing facade

* Better docstring

* Return values if no bounds passed

* Removed import

* Return only one incumbent

* Rename n_optimizers -> n_workers

* Update example

* Update docstring

* Remove legacy function

* Update to new signature

* Update changelog.md

* Format black

* Update test

* Please pre-commit

* Merge development

* Fix tests

* Fix typos

* Format black

* Updated text

* Increased version

* Improved readme

* SMAC logo 50%

* SMAC logo 50%

* Removed dev-2.0

* Added doc workflow for latest tag

* Fixing docs latest tag

* Fixing docs latest tag

* First steps new intensifier

* Make it work again

* MOVE random weight initialization to smbo ask method

* ADD enable parego in unittests

* Test issues

* FIX formatting

* Link to old documentation

* MOVE random weight initialization to smbo ask method

* ADD enable parego in unittests

* FIX formatting

* Fix unit tests

* Add annotation

* corrected log prob for tophat prior

* Removed configurations from callback

* Fixed tests

* Fix mypy

* Save docs as latest version too

* Enabled all tests again

* Make version an env

* Added last version to docs

* Global variable fix

* Added v before version number

* New Intensifier Implementation (#888)

- 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.

* First benchmark steps

* Added a warning

* Set xi to 0.01

* Incorporated walltime in trajectory

* Working version of benchmark

* Changed requirements

* Changed xi back to 0.0 again

* No duplicate budgets

* Fixed bug which updated tracker wrongly

* Bugfix: Delete correct bracket+stage

* Fixed tests

* Added costs to the trajectory

* Changed initial design max ratio to 0.25

* Make format

* Added more details to intensifier

* Finished benchmark

* Added benchmark source files

* Fixed tests because of initial design changes

* Improved runhistory API

* Fixed typo (#894)

* Merge doc fixes

* Doc fixes (#893)

Co-authored-by: timruhkopf <[email protected]>
Co-authored-by: Carolin Benjamins <[email protected]>
Co-authored-by: dengdifan <[email protected]>
Co-authored-by: Alexander Tornede <[email protected]>
Co-authored-by: Sarah Krebs <[email protected]>

* Make format

* Satisfied mypy

* Enabled more tests

* Increased version

* Mypy

* Mypy

* Mypy

* Fixed critical bug when using highest budget for inc selection

* Added SH+HB comparison

* Stuff

* Updated report

* Fixed docstring

* Fixed image path

* Removed vscode folder

* Bugfixes

* Doc fixes

* Updated changelog

* Make isort

* Fix typos

* Removed new line

* Added alpha2 to docs selection

* update description

* Fix 531 correctly create integers in initial design

This PR fixes a bug in which integer hyperparameters would not
be created correctly in the initial design. This went
unnoticed, except in the case where it was part of a condition
and the function deactivate_inactive_hyperparameters was
called.

This PR fixes this bug by mapping the random float that was
sampled by, for example and LHD or Sobol sequence, to the
float representation of an integer by calling _transform and
_inverse_transform of the integer hyperparameter.

* Add contact paragraph to README.

* Increase days until stale issues are closed by stalebot (#904)

* Edit changelog

* Add issue number

* Closes #907

* Clarify origin of configurations (#908)

* Random forest speed up (#903)

Co-authored-by: René Sass <[email protected]>

* Add: workflow to update pre-commit versions (#874)

Co-authored-by: René Sass <[email protected]>

* Add Git-Flow Workflow Specification

* [DOC] acquisition function maximizers

* Add stale reminder email action

* Increase version number of ConfigSpace

* Add guideline for updating copyright notice years to CONTRIBUTING.md

* Update requirement for pyrfr (#920)

* Update pre-commit: isort,flake8 version numbers

* Format black

* Fix mypy

* Ac bench (#929)

* Add Branin AC Task

* Add ac optimization type

* Nicer plotting

* Add ac mode

* Update ac task

* Make new smac env name adjustable

* Increase python version for smac 1.4

* Update benchmark

* Update plotting

* Goodby comments

* Fix path

* Fix 1.4 wrapper

* Update benchmark results

---------

Co-authored-by: Carolin Benjamins <[email protected]>

* [DOC] added documentation on the incumbent update

* Feature/add version to make publish (#931)

* Add version, correct package name and use bash in makefile

* Increase version

* Increase version in makefile, add places with versions to make publish

* Fix typo

* Transform integer feature names to strings (#930)

* Transform int features to str

* Fix pre-commit

* Update version to 2.0.0

* Update version to 2.0.0

* Update CHANGELOG.md

* Add information on deepcave to the readme

* Correct doc version

---------

Co-authored-by: dengdifan <[email protected]>
Co-authored-by: dengdifan <[email protected]>
Co-authored-by: Matthias Feurer <[email protected]>
Co-authored-by: Carolin Benjamins <[email protected]>
Co-authored-by: eddiebergman <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carolin Benjamins <[email protected]>
Co-authored-by: C. Benjamins <[email protected]>
Co-authored-by: Katharina Eggensperger <[email protected]>
Co-authored-by: Eric Kalosa-Kenyon <[email protected]>
Co-authored-by: Pascal <[email protected]>
Co-authored-by: helegraf <[email protected]>
Co-authored-by: timruhkopf <[email protected]>
Co-authored-by: Alexander Tornede <[email protected]>
Co-authored-by: Sarah Krebs <[email protected]>
Co-authored-by: Alexander Tornede <[email protected]>
Co-authored-by: Alexander Tornede <[email protected]>
Co-authored-by: Sarah Krebs <[email protected]>
Co-authored-by: helegraf <[email protected]>
Co-authored-by: Jeroen Rook <[email protected]>
Co-authored-by: Tim Ruhkopf <[email protected]>

* feat: Option preventing SMAC setting up logging

* fix: Run isort

* Bump peter-evans/create-pull-request from 3 to 5 (#958)

Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3 to 5.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v3...v5)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/setup-python from 2 to 4 (#945)

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v2...v4)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: Option preventing SMAC setting up logging

* fix: Run isort

* fix: Add to changelog

* feat: Option preventing SMAC setting up logging

* fix: Run isort

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: René Sass <[email protected]>
Co-authored-by: dengdifan <[email protected]>
Co-authored-by: dengdifan <[email protected]>
Co-authored-by: Matthias Feurer <[email protected]>
Co-authored-by: Carolin Benjamins <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carolin Benjamins <[email protected]>
Co-authored-by: C. Benjamins <[email protected]>
Co-authored-by: Katharina Eggensperger <[email protected]>
Co-authored-by: Eric Kalosa-Kenyon <[email protected]>
Co-authored-by: Pascal <[email protected]>
Co-authored-by: helegraf <[email protected]>
Co-authored-by: timruhkopf <[email protected]>
Co-authored-by: Alexander Tornede <[email protected]>
Co-authored-by: Sarah Krebs <[email protected]>
Co-authored-by: Alexander Tornede <[email protected]>
Co-authored-by: Alexander Tornede <[email protected]>
Co-authored-by: Sarah Krebs <[email protected]>
Co-authored-by: helegraf <[email protected]>
Co-authored-by: Jeroen Rook <[email protected]>
Co-authored-by: Tim Ruhkopf <[email protected]>

* Citation update (#961)

* update CITATION.cff

* update order in CITATION.cff

* fix citation date

* fix citation

* maint

* Adjust hyperband configuration distribution across brackets

* Compute the actual differences between the isb keys. (#957)

* Compute the actual differences between the isb keys.

* Added change to CHANGELOG.md

* Adjust schedule for stale reminder

* fix(logging): Prevent automatic logging setup at init (#970)

* fix(logging): Prevent automatic logging setup at init

* fix(logging): Rely on `setup_logging` to handle arg

* Fix validate method of smbo, update docstring.

* Allow callbacks to be added to a specific index, make callback registering public

* Update CHANGELOG.md

* Fix broken references (#988)

* Adapt developer install instructions to include pre-commit installation (#994)

* [Feature] Initial Design now supports executing the default config provided by the user by means of the configspace he generated. (and is no longer ignored)

* Pipe dask_client through facade for exec on hpc (#983)

* Pipe dask_client through facade for exec on hpc

* Handle pynisher's memory arg

Before: Could only pass int via SMAC with the default unit B, but now tuple/list is possible

* Update CHANGELOG.md

* Make format

* No printi

---------

Co-authored-by: Carolin Benjamins <[email protected]>

* [Bug-fix] Pr was failing due to mutable additional configs default

* [doc-fix] the count of initial design configs is computed slightly differently

* Feature/metadata callback (#999)

* Add example for using a callback to log run metadata to a file

* Add issue number in changelog

* Changelog formatting

* Simplify metadata example

* Simplify metadata example

* Put callback in smac directory to allow importing it in custom repos

* Move callback files to callback directory

* Edit changelog

* Correct metadata callback argument types

* Additional metadata arguments in example

* Set metadata default values in callback

* Edit comment to fix PR

* Documentation/dask client example (#1001)

* Update requirements (dask_jobqueue)

* Fix broken link

* Ignore parallel example

* Add parallelization example

* Remove imports, add comment abt dask client

* Add E's information

* Update docs

* Add comment about n_workers

---------

Co-authored-by: Carolin Benjamins <[email protected]>

* Documentation/dask client example (#1001)

* Update requirements (dask_jobqueue)

* Fix broken link

* Ignore parallel example

* Add parallelization example

* Remove imports, add comment abt dask client

* Add E's information

* Update docs

* Add comment about n_workers

---------

Co-authored-by: Carolin Benjamins <[email protected]>

* Feature/dask client (#1002)

* Add info message that scenario.n_workers is ignored

When passing a dask client,
directly set n_workers in client.

* Change info to warning

---------

Co-authored-by: Carolin Benjamins <[email protected]>

* Update smac version (#1003)

* Update smac version

* Add hint on github release in make publish

* Update copyright year

* check if config in rh when storing state (#997)

* check if config in rh when storing state

* maint

* remove unnecessary changes

* Adapt developer install instructions to include pre-commit installation (#994)

* Pipe dask_client through facade for exec on hpc (#983)

* Pipe dask_client through facade for exec on hpc

* Handle pynisher's memory arg

Before: Could only pass int via SMAC with the default unit B, but now tuple/list is possible

* Update CHANGELOG.md

* Make format

* No printi

---------

Co-authored-by: Carolin Benjamins <[email protected]>

* update changelog

* Increase tolerance for runhistory restoration test

---------

Co-authored-by: Sarah Segel <[email protected]>
Co-authored-by: C. Benjamins <[email protected]>
Co-authored-by: Carolin Benjamins <[email protected]>
Co-authored-by: Helena Graf <[email protected]>

* Add a workaround to be able to pass a dataset via dask.scatter (#993)

* [feat] Support dask.scatter

* [fix] Add shared_data arg in abstract_facade

* Address the comments by Eddie

* [fix] Fix errors raised by Eddie

* [format] Apply black locally

* [fix] Get retries back to 16 as it was a mistake

* [doc] Update CHANGELOG

---------

Co-authored-by: helegraf <[email protected]>
Co-authored-by: C. Benjamins <[email protected]>

* Adding Binder links for example (#976)

* binder

* maint

* fix dependencies

* maint docs

* Revert "maint docs"

This reverts commit 4fa1a0f.

* add requirement

---------

Co-authored-by: Difan Deng <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: René Sass <[email protected]>
Co-authored-by: dengdifan <[email protected]>
Co-authored-by: Carolin Benjamins <[email protected]>
Co-authored-by: Katharina Eggensperger <[email protected]>
Co-authored-by: Matthias Feurer <[email protected]>
Co-authored-by: Eric Kalosa-Kenyon <[email protected]>
Co-authored-by: Pascal <[email protected]>
Co-authored-by: helegraf <[email protected]>
Co-authored-by: timruhkopf <[email protected]>
Co-authored-by: Alexander Tornede <[email protected]>
Co-authored-by: Sarah Krebs <[email protected]>
Co-authored-by: Alexander Tornede <[email protected]>
Co-authored-by: Alexander Tornede <[email protected]>
Co-authored-by: Sarah Krebs <[email protected]>
Co-authored-by: helegraf <[email protected]>
Co-authored-by: Jeroen Rook <[email protected]>
Co-authored-by: Eddie Bergman <[email protected]>
Co-authored-by: Tim Ruhkopf <[email protected]>
Co-authored-by: Difan Deng <[email protected]>
Co-authored-by: Aron Bahram <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sarah Segel <[email protected]>
Co-authored-by: Shuhei Watanabe <[email protected]>
Co-authored-by: Difan Deng <[email protected]>
  • Loading branch information
25 people authored May 17, 2023
1 parent 8ccd733 commit 712543f
Show file tree
Hide file tree
Showing 40 changed files with 666 additions and 143 deletions.
2 changes: 2 additions & 0 deletions .binder/apt.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
build-essential
swig
43 changes: 43 additions & 0 deletions .binder/postBuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/bash

set -e

python -m pip install -e .[dev]

# Taken from https://github.com/scikit-learn/scikit-learn/blob/22cd233e1932457947e9994285dc7fd4e93881e4/.binder/postBuild
# under BSD3 license, copyright the scikit-learn contributors

# This script is called in a binder context. When this script is called, we are
# inside a git checkout of the automl/SMAC3 repo. This script
# generates notebooks from the SMAC3 python examples.

if [[ ! -f /.dockerenv ]]; then
echo "This script was written for repo2docker and is supposed to run inside a docker container."
echo "Exiting because this script can delete data if run outside of a docker container."
exit 1
fi

# Copy content we need from the SMAC3 repo
TMP_CONTENT_DIR=/tmp/SMAC3
mkdir -p $TMP_CONTENT_DIR
cp -r examples .binder $TMP_CONTENT_DIR
# delete everything in current directory including dot files and dot folders
find . -delete

# Generate notebooks and remove other files from examples folder
GENERATED_NOTEBOOKS_DIR=examples
cp -r $TMP_CONTENT_DIR/examples $GENERATED_NOTEBOOKS_DIR

find $GENERATED_NOTEBOOKS_DIR -name 'example_*.py' -exec sphx_glr_python_to_jupyter.py '{}' +
# Keep __init__.py and custom_metrics.py
NON_NOTEBOOKS=$(find $GENERATED_NOTEBOOKS_DIR -type f | grep -v '\.ipynb' | grep -v 'init' | grep -v 'custom_metrics')
rm -f $NON_NOTEBOOKS

# Modify path to be consistent by the path given by sphinx-gallery
mkdir notebooks
mv $GENERATED_NOTEBOOKS_DIR notebooks/

# Put the .binder folder back (may be useful for debugging purposes)
mv $TMP_CONTENT_DIR/.binder .
# Final clean up
rm -rf $TMP_CONTENT_DIR
Empty file added .binder/requirements.txt
Empty file.
9 changes: 8 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,12 @@ updates:
# https://docs.github.com/en/[email protected]/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "development"
schedule:
interval: "daily"
interval: "weekly"
assignees:
- "eddiebergman"
reviewers:
- "eddiebergman"
commit-message:
include: "chore: "
26 changes: 25 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,33 @@
# 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)


# 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
- Add version to makefile to install correct test release version.
- Add option to disable logging by setting `logging_level=False`. (#947)

## Bugfixes
- Continue run when setting incumbent selection to highest budget when using Successive Halving (#907).
Expand Down
84 changes: 54 additions & 30 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ date-released: "2016-08-17"
url: "https://automl.github.io/SMAC3/master/index.html"
repository-code: "https://github.com/automl/SMAC3"

version: "1.0.1"
version: "2.0.1"

type: "software"
keywords:
Expand All @@ -25,84 +25,108 @@ license: "BSD-3-Clause"
authors:
- family-names: "Lindauer"
given-names: "Marius"
affiliation: "Leibniz Universität Hannover"
affiliation: "Leibniz University Hannover, Germany"

- family-names: "Benjamins"
given-names: "Carolin"
affiliation: "Leibniz University Hannover, Germany"

- family-names: "Biedenkapp"
given-names: "André"
orcid: "https://orcid.org/0000-0002-8703-8559"
affiliation: "University of Freiburg, Germany"

- family-names: "Deng"
given-names: "Difan"
affiliation: "Leibniz University Hannover, Germany"

- family-names: "Eggensperger"
given-names: "Katharina"
orcid: "https://orcid.org/0000-0002-0309-401X"
affiliation: "University of Freiburg, Germany"

- family-names: "Falkner"
given-names: "Stefan"
orcid: "https://orcid.org/0000-0002-6303-9418"
affiliation: "Bosch Center for Artificial Intelligence, Rennigen, Germany"

- family-names: "Feurer"
given-names: "Matthias"
orcid: "https://orcid.org/0000-0001-9611-8588"
affiliation: "University of Freiburg, Germany"

- family-names: "Biedenkapp"
given-names: "André"
orcid: "https://orcid.org/0000-0002-8703-8559"
affiliation: "University of Freiburg, Germany"

- family-names: "Deng"
given-names: "Difan"
affiliation: "Leibniz Universität Hannover"
- family-names: "Graf"
given-names: "Helena"
affiliation: "Leibniz University Hannover, Germany"

- family-names: "Benjamins"
given-names: "Carolin"
affiliation: "Leibniz Universität Hannover"
- family-names: "Ruhkopf"
given-names: "Tim"
affiliation: "Leibniz University Hannover, Germany"

- family-names: "Sass"
given-names: "René"
affiliation: "Leibniz Universität Hannover"
affiliation: "Leibniz University Hannover, Germany"

- family-names: "Segel"
given-names: "Sarah"
affiliation: "Leibniz University Hannover, Germany"

- family-names: "Tornede"
given-names: "Alexander"
affiliation: "Leibniz University Hannover, Germany"

- family-names: "Hutter"
given-names: "Frank"
affiliation: "University of Freiburg, Germany"

- family-names: "Falkner"
given-names: "Stefan"
orcid: "https://orcid.org/0000-0002-6303-9418"
affiliation: "Bosch Center for Artificial Intelligence, Rennigen, Germany"

preferred-citation:
type: "article"
title: "SMAC3: A Versatile Bayesian Optimization Package for Hyperparameter Optimization"
month: "9"
year: "2021"
url: "https://arxiv.org/abs/2109.09831"
journal: "Journal of Machine Learning Research"
year: "2022"
volume: "23"
number: "54"
start: "1"
end: "9"
url: "https://www.jmlr.org/papers/volume23/21-0888/21-0888.pdf"

authors:
- family-names: "Lindauer"
given-names: "Marius"
affiliation: "Leibniz Universität Hannover"
affiliation: "Leibniz University Hannover"

- family-names: "Eggensperger"
given-names: "Katharina"
orcid: "https://orcid.org/0000-0002-0309-401X"
affiliation: "University of Freiburg, Germany"
affiliation: "University of Freiburg"

- family-names: "Feurer"
given-names: "Matthias"
orcid: "https://orcid.org/0000-0001-9611-8588"
affiliation: "University of Freiburg, Germany"
affiliation: "University of Freiburg"

- family-names: "Biedenkapp"
given-names: "André "
orcid: "https://orcid.org/0000-0002-8703-8559"
affiliation: "University of Freiburg, Germany"
affiliation: "University of Freiburg"

- family-names: "Deng"
given-names: "Difan"
affiliation: "Leibniz Universität Hannover"
affiliation: "Leibniz University Hannover"

- family-names: "Benjamins"
given-names: "Carolin"
affiliation: "Leibniz Universität Hannover"
affiliation: "Leibniz University Hannover"

- family-names: "Ruhkopf"
given-names: "Tim"
affiliation: "Leibniz University Hannover"

- family-names: "Sass"
given-names: "René"
affiliation: "Leibniz Universität Hannover"
affiliation: "Leibniz University Hannover"

- family-names: "Hutter"
given-names: "Frank"
affiliation: "University of Freiburg, Germany"
affiliation: "University of Freiburg"
...
6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ SHELL := /bin/bash

NAME := SMAC3
PACKAGE_NAME := smac
VERSION := 2.0.0
VERSION := 2.0.1

DIR := "${CURDIR}"
SOURCE_DIR := ${PACKAGE_NAME}
Expand Down Expand Up @@ -136,7 +136,7 @@ clean-data:
# Will echo the commands to actually publish to be run to publish to actual PyPi
# This is done to prevent accidental publishing but provide the same conveniences
publish: clean build
read -p "Did you update the version number in Makefile, smac/__init__.py, benchmark/src/wrappers/v20.py? \
read -p "Did you update the version number in Makefile, smac/__init__.py, benchmark/src/wrappers/v20.py, CITATION.cff? \
Did you add the old version to docs/conf.py? Did you add changes to CHANGELOG.md?"

$(PIP) install twine
Expand All @@ -152,3 +152,5 @@ publish: clean build
@echo
@echo "Once you have decided it works, publish to actual pypi with"
@echo "--- python -m twine upload dist/*"
@echo "After publishing via pypi, please also add a new release on Github and edit the version in the SMAC link \
on the SMAC Github page."
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,10 @@ Install SMAC via PyPI:
pip install smac
```

Or alternatively, clone the environment:
If you want to contribute to SMAC, use the following steps instead:
```
git clone https://github.com/automl/SMAC3.git && cd SMAC3
pip install -e .[dev]
make install-dev
```


Expand Down
2 changes: 1 addition & 1 deletion benchmark/src/wrappers/v20.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@


class Version20(Wrapper):
supported_versions: list[str] = ["2.0.0"]
supported_versions: list[str] = ["2.0.1"]

def __init__(self, task: Task, seed: int) -> None:
super().__init__(task, seed)
Expand Down
2 changes: 1 addition & 1 deletion docs/6_references.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ References
.. [Know06] J. Knowles;
ParEGO: A Hybrid Algorithm with on-Line Landscape Approximation for Expensive Multiobjective Optimization Problems;
https://ieeexplore.ieee.org/document/1583627
https://www.cs.bham.ac.uk/~jdk/parego/ParEGO-TR3.pdf
.. [SKKS10] N. Srinivas, S. M. Kakade, A. Krause, M. Seeger;
Expand Down
23 changes: 22 additions & 1 deletion docs/advanced_usage/9_parallelism.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Parallelism
===========

SMAC supports multiple workers natively. Just specify ``n_workers`` in the scenario and you are ready to go.
SMAC supports multiple workers natively via Dask. Just specify ``n_workers`` in the scenario and you are ready to go.


.. note ::
Expand All @@ -19,3 +19,24 @@ SMAC supports multiple workers natively. Just specify ``n_workers`` in the scena
.. warning ::
When using multiple workers, SMAC is not reproducible anymore.
Running on a Cluster
--------------------
You can also pass a custom dask client, e.g. to run on a slurm cluster.
See our :ref:`parallelism example<Parallelization-on-Cluster>`.

.. warning ::
On some clusters you cannot spawn new jobs when running a SLURMCluster inside a
job instead of on the login node. No obvious errors might be raised but it can hang silently.
.. warning ::
Sometimes you need to modify your launch command which can be done with
``SLURMCluster.job_class.submit_command``.
.. code-block:: python
cluster.job_cls.submit_command = submit_command
cluster.job_cls.cancel_command = cancel_command
15 changes: 15 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"version": version,
"versions": {
f"v{version}": "#",
"v2.0.0": "https://automl.github.io/SMAC3/v2.0.0/",
"v2.0.0b1": "https://automl.github.io/SMAC3/v2.0.0b1/",
"v2.0.0a2": "https://automl.github.io/SMAC3/v2.0.0a2/",
"v2.0.0a1": "https://automl.github.io/SMAC3/v2.0.0a1/",
Expand All @@ -27,6 +28,20 @@
"plot_gallery": True,
"within_subsection_order": FileNameSortKey,
"filename_pattern": "/", # We want to execute all files in `examples`
"binder": {
# Required keys
"org": "automl",
"repo": "SMAC3",
"branch": "main",
"binderhub_url": "https://mybinder.org",
"dependencies": ["../.binder/apt.txt", "../.binder/requirements.txt"],
# "filepath_prefix": "<prefix>" # A prefix to prepend to any filepaths in Binder links.
# Jupyter notebooks for Binder will be copied to this directory (relative to built documentation root).
"notebooks_dir": "notebooks/",
"use_jupyter_lab": True,
# Whether Binder links should start Jupyter Lab instead of the Jupyter Notebook interface.
},
"ignore_pattern": ".*7_parallelization_cluster.py$",
},
}

Expand Down
15 changes: 9 additions & 6 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,15 @@ If you use SMAC, please cite our `JMLR paper <https://jmlr.org/papers/v23/21-088

.. code-block:: text
@inproceedings {lindauer-arxiv21a,
author = {Marius Lindauer and Katharina Eggensperger and Matthias Feurer and André Biedenkapp and Difan Deng and Carolin Benjamins and Tim Ruhkopf and René Sass and Frank Hutter},
title = {SMAC3: A Versatile Bayesian Optimization Package for Hyperparameter Optimization},
booktitle = {ArXiv: 2109.09831},
year = {2021},
url = {https://arxiv.org/abs/2109.09831}
@article{lindauer-jmlr22a,
author = {Marius Lindauer and Katharina Eggensperger and Matthias Feurer and André Biedenkapp and Difan Deng and Carolin Benjamins and Tim Ruhkopf and René Sass and Frank Hutter},
title = {SMAC3: A Versatile Bayesian Optimization Package for Hyperparameter Optimization},
journal = {Journal of Machine Learning Research},
year = {2022},
volume = {23},
number = {54},
pages = {1--9},
url = {http://jmlr.org/papers/v23/21-0888.html}
}
For the original idea, we refer to:
Expand Down
Loading

0 comments on commit 712543f

Please sign in to comment.