8.10.5. Logger¶
- class Logger(data_sets: Dict[str, DataSet], interface: BaseParameters, losses: Dict[str, Loss], path: str | Path | None = None, group_by: Tuple[str] | None = None, iteration_digits: int = 6, sort_stats_by: str = 'contribution', general_log_interval: int = 10, parameters_log_interval: int = 500, history_log_interval: int = 500, flush_log_interval: int = 10)¶
Logger class used to save function evaluations to disk. Single instance is used for all logging from all optimizers.
Logs and saves the following data produced during an Optimization to disk for every Data Set provided:
best/*: Same as latest/* but for the iteration with the lowest loss function.
history/ : Same as latest/* but stored every history iterations.
initial/*: Same as latest/* but for the initial parameter settings.
latest/active_parameters.txt: iteration and list of current parameter values.
latest/data_set_predictions.yaml: file in DataSet yaml format that can be loaded with a DataSetEvaluator.
latest/engine.txt: Engine settings block for AMS.
latest/evaluation.txt: Current evaluation number.
latest/loss.txt: The loss function value.
latest/parameter_interface.yaml: Parameters in yaml format.
latest/pes_predictions/*.txt: Predictions for all entries with the
pes
extractor.latest/scatter_plots/*.txt: Current predictions per extractor or grouped as defined by the group_by attribute.
latest/stats.txt: Current MAE and RMSE per extractor or grouped as defined by the group_by attribute.
running_active_parameters.txt: The values of the (active) parameters, stored every ‘parameters’ iterations.
running_loss.txt: iteration and loss function value. Plottable with
params plot
.running_stats.txt: mae and rmse per extractor or grouped as defined by the group_by attribute.
Depending on the parameter interface, also:
latest/lj_parameters.txt: For Lennard-Jones optimizations, contains the LJ parameters
latest/ffield.ff: For ReaxFF optimizations, contains the parameters in ffield format
latest/xtb_files: For GFN1-xTB optimizations, contains the parameters in a format that can be read by AMS
The files are stored in a directory called dataset_name_results, e.g. training_set_results.
Note
It is possible to turn off the logging of a particular type by setting the associated
*_log_interval parameter=0
- Parameters:
- data_setsDict[str, DataSet]
Dictionary of data set names to
DataSet
instances.- interfaceBaseParameters
Parameter interface used during the optimization. Note that a copy of the interface is made by the logger so that the provided interface and logger interface are no longer the same python object.
- lossesDict[str, Loss]
Dictionary of data set names to
Loss
instances.- path :str OR Path, optional
Path to root directory in which all files will be logged. Defaults to the current working directory.
- group_bytuple of strings
A tuple in the same format as accepted by DataSetEvaluator.group_by().
Examples
group_by=('Extractor', 'Expression') # default group_by=('Group', 'SubGroup') # requires that the dataset entries have Group and SubGroup metadata
- iteration_digitsint
Number of digits to print the iteration number to file names and latest/evaluation.txt, running_loss.txt, and running_stats.txt.
Example: iteration_digits == 6 will print the first iteration as 000001
Example: iteration_digits == None will print the first iteration as 1
- sort_stats_bystr
Sort the latest/stats.txt and related files.
‘contribution’: sort by contribution to loss function value
‘rmse’: sort by rmse
‘mae’: sort by mae
None: do not sort (use the same order as in the original DataSet)
- general_log_intervalint
Interval between writes to stdout, running_loss and running_stats and all latest/ and best/ files.
- parameters_log_intervalint
Interval between writes to running_active_parameters.txt
- history_log_intervalint
Interval of copies from ‘latest’ to ‘history’
- flush_log_intervalint
How often to flush the running_* files