Releases: ICB-DCM/pyscat
Releases · ICB-DCM/pyscat
PyScat v0.0.1.post1
Immutable
release. Only release title and notes can be modified.
PyScat started from the scatter search implementation included in pyPESTO 0.5.7.
Most relevant changes since pyPESTO 0.5.7
- The deprecated
startpoint_methodhas been removed fromSacessOptimizer.minimizeandESSOptimizer.minimize.Problem.startpoint_methodis now used instead. - Fixed a bug in counting of function evaluations that led to double counting of some function evaluations in eSS and saCeSS optimizers, potentially resulting in premature termination if a function evaluation budget was set.
- Fixed a bug in the ranking of candidates for local optimization startpoints in eSS and saCeSS optimizers.
- Updated/extended documentation and examples.
- Initialization of
SacessOptimizeris now problem-dependent, i.e., aProbleminstance has to be provided at initialization instead of atminimizetime. This simplifies changing local optimizers;SacessOptimizer.set_local_optimizerwas added. - If the provided objective function does not provide gradient information, no local optimizer is used by default. This may change in future (minor) releases.
- Added experimental functionality to record all function evaluations during optimization, or the k-best ones, or those below a certain threshold based on the best objective function value found so far. This is intended to construct parameter ensembles for uncertainty quantification. See example in the documentation.
Migrating from SacessOptimizer in pyPESTO 0.5.7 to PyScat 0.0.1
Old pyPESTO 0.5.7 code:
from pypesto.optimize import SacessOptimizer
from pypesto.optimize.ess import get_default_ess_options
problem = Problem(...) # define your problem here
ess_init_args = get_default_ess_options(
num_workers=12,
dim=problem.dim,
local_optimizer=False,
)
optimizer = SacessOptimizer(
ess_init_args=ess_init_args,
max_walltime_s=5,
sacess_loglevel=logging.WARNING
)
result = optimizer.minimize(problem)New PyScat 0.0.1 code:
from pyscat import SacessOptimizer
problem = Problem(...) # define your problem here
optimizer = SacessOptimizer(
problem=problem,
num_workers=12,
max_walltime_s=5,
sacess_loglevel=logging.WARNING
)
optimizer.set_local_optimizer(None)
result = optimizer.minimize()
Full Changelog: https://github.com/ICB-DCM/pyscat/commits/v0.0.1.post1
PyScat v0.0.1
Immutable
release. Only release title and notes can be modified.
PyScat started from the scatter search implementation included in pyPESTO 0.5.7.
Most relevant changes since pyPESTO 0.5.7
- The deprecated
startpoint_methodhas been removed fromSacessOptimizer.minimizeandESSOptimizer.minimize.Problem.startpoint_methodis now used instead. - Fixed a bug in counting of function evaluations that led to double counting of some function evaluations in eSS and saCeSS optimizers, potentially resulting in premature termination if a function evaluation budget was set.
- Fixed a bug in the ranking of candidates for local optimization startpoints in eSS and saCeSS optimizers.
- Updated/extended documentation and examples.
- Initialization of
SacessOptimizeris now problem-dependent, i.e., aProbleminstance has to be provided at initialization instead of atminimizetime. This simplifies changing local optimizers;SacessOptimizer.set_local_optimizerwas added. - If the provided objective function does not provide gradient information, no local optimizer is used by default. This may change in future (minor) releases.
- Added experimental functionality to record all function evaluations during optimization, or the k-best ones, or those below a certain threshold based on the best objective function value found so far. This is intended to construct parameter ensembles for uncertainty quantification. See example in the documentation.
Migrating from SacessOptimizer in pyPESTO 0.5.7 to PyScat 0.0.1
Old pyPESTO 0.5.7 code:
from pypesto.optimize import SacessOptimizer
from pypesto.optimize.ess import get_default_ess_options
problem = Problem(...) # define your problem here
ess_init_args = get_default_ess_options(
num_workers=12,
dim=problem.dim,
local_optimizer=False,
)
optimizer = SacessOptimizer(
ess_init_args=ess_init_args,
max_walltime_s=5,
sacess_loglevel=logging.WARNING
)
result = optimizer.minimize(problem)New PyScat 0.0.1 code:
from pyscat import SacessOptimizer
problem = Problem(...) # define your problem here
optimizer = SacessOptimizer(
problem=problem,
num_workers=12,
max_walltime_s=5,
sacess_loglevel=logging.WARNING
)
optimizer.set_local_optimizer(None)
result = optimizer.minimize()
Full Changelog: https://github.com/ICB-DCM/pyscat/commits/v0.0.1