data logger for class CMAES
, that can record and plot data.
Examples
The data may come from fmin
or CMAES
and the simulation may
still be running in a different Python shell.
Use the default logger from CMAES
:
>>> try: import cma.purecma as pcma ... except ImportError: import purecma as pcma >>> es = pcma.CMAES(3 * [0.1], 1) >>> isinstance(es.logger, pcma.CMAESDataLogger) # type(es.logger) True >>> while not es.stop(): ... X = es.ask() ... es.tell(X, [pcma.ff.elli(x) for x in X]) ... es.logger.add(es) # doctest: +SKIP >>> es.logger.save() >>> # es.logger.plot() #
Load and plot previously generated data:
>>> logger = pcma.CMAESDataLogger().load() >>> logger.filename == "_CMAESDataLogger_datadict.py" True
>>> # logger.plot()
TODO: the recorded data are kept in memory and keep growing, which may well lead to performance issues for (very?) long runs. Ideally, it should be possible to dump data to a file and clear the memory and also to downsample data to prevent plotting of long runs to take forever. "], 'key': " or "]}" is the place where to prepend/append new data in the file.
Method | __init__ |
verb_modulo controls whether and when logging takes place for each call to the method add |
Method | add |
append some logging data from CMAES class instance es , if number_of_times_called modulo verb_modulo equals zero |
Method | load |
load data from file name or self.filename |
Method | plot |
plot the stored data in figure fig_number . |
Method | save |
save data to file name or self.filename |
Class Variable | plotted |
plot count for all instances |
Instance Variable | counter |
Undocumented |
Instance Variable | filename |
file to save to or load from unless specified otherwise |
Instance Variable | modulo |
Undocumented |
Instance Variable | optim |
object instance to be logging data from |
Instance Variable | _data |
dict of logged data |
Inherited from BaseDataLogger
:
Method | disp |
abstract method, display some data trace |
Method | register |
register an optimizer optim, only needed if method add is called without passing the optim argument |
Property | data |
logged data in a dictionary |
cma.interfaces.BaseDataLogger.__init__
verb_modulo
controls whether and when logging takes place
for each call to the method add
cma.interfaces.BaseDataLogger.add
append some logging data from CMAES class instance es
,
if number_of_times_called modulo verb_modulo equals zero
cma.interfaces.BaseDataLogger.plot
plot the stored data in figure fig_number
.
Dependencies: matlabplotlib.pylab
cma.interfaces.BaseDataLogger.filename
file to save to or load from unless specified otherwise