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_modulocontrols whether and when logging takes place for each call to the methodadd | 
| 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 nameor self.filename | 
| Method | plot | plot the stored data in figure fig_number. | 
| Method | save | save data to file nameor 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 | dictof logged data | 
              Inherited from BaseDataLogger:
            
| Method | disp | abstract method, display some data trace | 
| Method | register | register an optimizer optim, only needed if method addis 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.addappend some logging data from CMAES class instance es,
if number_of_times_called modulo verb_modulo equals zero
cma.interfaces.BaseDataLogger.plotplot the stored data in figure fig_number.
Dependencies: matlabplotlib.pylab
cma.interfaces.BaseDataLogger.filenamefile to save to or load from unless specified otherwise