Releases: automl/SMAC3
Releases · automl/SMAC3
Version 0.10.0
Major changes
- ADD further acquisition functions: PI and LCB
*SMAC can now be installed without installing all its dependencies - Simplify setup.py by moving most thing to setup.cfg
Bug fixes
- RM typing as requirement
- FIX import of authors in setup.py
- MAINT use json-file as standard pcs format for internal logging
Version 0.9.0
Major changes
- ADD multiple optional initial designs: LHC, Factorial Design, Sobol
- ADD fmin interface know uses BORF facade (should perform much better on continuous, low-dimensional functions)
- ADD Hydra (see "Hydra: Automatically Configuring Algorithms for Portfolio-Based Selection" by Xu et al)
- MAINT Not every second configuration is randomly drawn, but SMAC samples configurations randomly with a given probability (default: 0.5)
- MAINT parsing of options
Interface changes
- ADD two new interfaces to optimize low dimensional continuous functions (w/o instances, docs missing)
- BORF facade: Initial design + Tuned RF
- BOGP interface: Initial design + GP
- ADD options to control acquisition function optimization
- ADD option to transform function values (log, inverse w/ and w/o scaling)
- ADD option to set initial design
Minor changes
- ADD output of estimated cost of final incumbent
- ADD explanation of "deterministic" option in documentation
- ADD save configspace as json
- ADD random forest with automated HPO (not activated by default)
- ADD optional linear cooldown for interleaving random configurations (not active by default)
- MAINT Maximal cutoff time of pynisher set to UINT16
- MAINT make SMAC deterministic if function is deterministic, the budget is limited and the run objective is quality
- MAINT SLS on acquisition function (plateau walks)
- MAINT README
- FIX abort-on-first-run-crash
- FIX pSMAC input directory parsing
- FIX fmin interface with more than 10 parameters
- FIX no output directory if set to '' (empty string)
- FIX use
np.log
instead ofnp.log10
- FIX No longer use law of total variance for uncertainty prediction for RFs as EPM, but only variance over trees (no variance in trees)
- FIX Marginalize over instances inside of each tree of the forest leads to better uncertainty estimates (motivated by the original SMAC implementation)
Version 0.8.0
Major changes
- Upgrade to ConfigSpace (0.4.X), which is not backwards compatible. On the plus
side, the ConfigSpace is about 3-10 times faster, depending on the task. - FIX #240: improved output directory structure. If the user does not specify
an output directory a SMAC experiment will have the following structure:
smac_/run_<run_id>/*.json
. The user can specify a output directory, e.g.
./myExperiment
or./myExperiment/
which results in
./myExperiment/run_<run_id>/*.json
. - Due to changes in AnaConda's compiler setup we drop the unit tests for
python3.4.
Interface changes
- Generalize the interface of the acquisition functions to work with
ConfigSpaces's configuration objects instead of numpy arrays. - The acquisition function optimizer can now be passed to the SMBO object.
- A custom SMBO class can now be passed to the SMAC builder object.
run_id
is no longer an argument to the Scenario object, making the interface
a bit cleaner.
Minor changes
- #333 fixes an incompability with
uncorrelated_mo_rf_with_instances
. - #323 fixes #324 and #319, which both improve the functioning of the built-in
validation tools. - #350 fixes random search, which could accidentaly use configurations found my
a local acquisition function optimizer. - #336 makes validation more flexible.
Release 0.7.1
Release 0.6.0
Major changes
MAINT documentation (nearly every part was improved and extended, including installation, examples, API)
ADD EPILS as mode (modified version of ParamILS)
MAINT minimal required versions of configspace, pyrfr, sklearn increased (several issues fixed in new configspace version)
MAINT for quality scenarios, the user can specify the objective value for crashed runs (returned NaN and Inf are replaced by value for crashed runs)
Minor changes
FIX issue #220, do not store external data in runhistory
MAINT TAEFunc without pynisher possible
MAINT intensification: minimal number of required challengers parameterized
FIX saving duplicated (capped) runs
FIX handling of ordinal parameters
MAINT runobj is now mandatory
FIX arguments passed to pyrfr
v0.5.0: Merge pull request #238 from automl/development
Major changes
- MAINT #192: SMAC uses version 0.4 of the random forest library pyrfr. As a side-effect, the library swig is necessary to build the random forest.
- MAINT: random samples which are interleaved in the list of challengers are now obtained from a generator. This reduces the overhead of sampling random configurations.
- FIX #117: only round the cutoff when running a python function as the target algorithm.
- MAINT #231: Rename the submodule smac.smbo to smac.optimizer.
- MAINT #213: Use log(EI) as default acquisition function when optimizing running time of an algorithm.
- MAINT #223: updated example of optimizing a random forest with SMAC.
- MAINT #221: refactored the EPM module. The PCA on instance features is now part of fitting the EPM instead of reading a scenario. Because of this restructuring, the PCA can now take instance features which are external data into account.
Minor changes
- SMAC now outputs scenario options if the log level is DEBUG (2f0ceee).
- SMAC logs the command line call if invoked from the command line (3accfc2).
- SMAC explicitly checks that it runs in python>=3.4.
- MAINT #226: improve efficientcy when loading the runhistory from a json file.
- FIX #217: adds milliseconds to the output directory names to avoid race. conditions when starting multiple runs on a cluster.
- MAINT #209: adds the seed or a pseudo-seed to the output directory name for better identifiability of the output directories.
- FIX #216: replace broken call to in EIPS acqusition function.
- MAINT: use codecov.io instead of coveralls.io.
- MAINT: increase minimal required version of the ConfigSpace package to 0.3.2.
SMAC3 v0.4.0
- ADD #204: SMAC now always saves runhistory files as
runhistory.json
. - MAINT #205: the SMAC repository now uses codecov.io instead of coveralls.io.
- ADD #83: support of ACLIB 2.0 parameter configuration space file.
- FIX #206: instances are now explicitly cast to
str
. In case no instance is
given, a singleNone
is used, which is not cast tostr
. - ADD #200: new convenience function to retrieve an
X
,y
representation
of the data to feed it to a new fANOVA implementation. - MAINT #198: improved pSMAC interface.
- FIX #201: improved handling of boolean arguments to SMAC.
- FIX #194: fixes adaptive capping with re-occurring configurations.
- ADD #190: new argument
intensification_percentage
. - ADD #187: better dependency injection into main SMAC class to avoid
ill-configured SMAC objects. - ADD #161: log scenario object as a file.
- ADD #186: show the difference between old and new incumbent in case of an
incumbent change. - MAINT #159: consistent naming of loggers.
- ADD #128: new helper method to get the target algorithm evaluator.
- FIX #165: default value for par = 1.
- MAINT #153: entries in the trajectory logger are now named tuples.
- FIX #155: better handling of SMAC shutdown and crashes if the first
configuration crashes.
Spead improvement release 0.3
Bugfix release 0.2.4
- CI only check code quality for python3
- Perform local search on configurations from previous runs as proposed in the original paper from 2011 instead of * random configurations as implemented before
- CI run travis-ci unit tests with python3.6
- FIX #167, remove an endless loop which occured when using pSMAC
SMAC v0.2.3
- MAINT refactor Intensifcation and adding unit tests
- CHANGE StatusType to Enum
- RM parameter importance package
- FIX ROAR facade bug for cli
- ADD easy access of runhistory within Python
- FIX imputation of censored data
- FIX conversion of runhistory to EPM training data (in particular running time data)
- FIX initial run only added once in runhistory
- MV version number to a separate file
- MAINT more efficient computations in run_history (assumes average as aggregation function across instances)