pytorch_lightning.loggers.base module¶
-
class
pytorch_lightning.loggers.base.
DummyLogger
[source]¶ Bases:
pytorch_lightning.loggers.base.LightningLoggerBase
Dummy logger for internal use. Is usefull if we want to disable users logger for a feature, but still secure that users code can run
-
log_metrics
(metrics, step)[source]¶ Records metrics. This method logs metrics as as soon as it received them. If you want to aggregate metrics for one specific step, use the
agg_and_log_metrics()
method.
-
-
class
pytorch_lightning.loggers.base.
LightningLoggerBase
(agg_key_funcs=None, agg_default_func=numpy.mean)[source]¶ Bases:
abc.ABC
Base class for experiment loggers.
- Parameters
agg_key_funcs¶ (
Optional
[Mapping
[str
,Callable
[[Sequence
[float
]],float
]]]) – Dictionary which maps a metric name to a function, which will aggregate the metric values for the same steps.agg_default_func¶ (
Callable
[[Sequence
[float
]],float
]) – Default function to aggregate metric values. If some metric name is not presented in the agg_key_funcs dictionary, then the agg_default_func will be used for aggregation.
Note
The agg_key_funcs and agg_default_func arguments are used only when one logs metrics with the
agg_and_log_metrics()
method.-
_aggregate_metrics
(metrics, step=None)[source]¶ Aggregates metrics.
- Parameters
- Return type
- Returns
Step and aggregated metrics. The return value could be
None
. In such case, metrics are added to the aggregation list, but not aggregated yet.
-
static
_flatten_dict
(params, delimiter='/')[source]¶ Flatten hierarchical dict, e.g.
{'a': {'b': 'c'}} -> {'a/b': 'c'}
.- Parameters
- Return type
- Returns
Flattened dict.
Examples
>>> LightningLoggerBase._flatten_dict({'a': {'b': 'c'}}) {'a/b': 'c'} >>> LightningLoggerBase._flatten_dict({'a': {'b': 123}}) {'a/b': 123}
-
static
_sanitize_params
(params)[source]¶ Returns params with non-primitvies converted to strings for logging.
>>> params = {"float": 0.3, ... "int": 1, ... "string": "abc", ... "bool": True, ... "list": [1, 2, 3], ... "namespace": Namespace(foo=3), ... "layer": torch.nn.BatchNorm1d} >>> import pprint >>> pprint.pprint(LightningLoggerBase._sanitize_params(params)) {'bool': True, 'float': 0.3, 'int': 1, 'layer': "<class 'torch.nn.modules.batchnorm.BatchNorm1d'>", 'list': '[1, 2, 3]', 'namespace': 'Namespace(foo=3)', 'string': 'abc'}
-
agg_and_log_metrics
(metrics, step=None)[source]¶ Aggregates and records metrics. This method doesn’t log the passed metrics instantaneously, but instead it aggregates them and logs only if metrics are ready to be logged.
-
abstract
log_metrics
(metrics, step=None)[source]¶ Records metrics. This method logs metrics as as soon as it received them. If you want to aggregate metrics for one specific step, use the
agg_and_log_metrics()
method.
-
update_agg_funcs
(agg_key_funcs=None, agg_default_func=numpy.mean)[source]¶ Update aggregation methods.
- Parameters
agg_key_funcs¶ (
Optional
[Mapping
[str
,Callable
[[Sequence
[float
]],float
]]]) – Dictionary which maps a metric name to a function, which will aggregate the metric values for the same steps.agg_default_func¶ (
Callable
[[Sequence
[float
]],float
]) – Default function to aggregate metric values. If some metric name is not presented in the agg_key_funcs dictionary, then the agg_default_func will be used for aggregation.
-
class
pytorch_lightning.loggers.base.
LoggerCollection
(logger_iterable)[source]¶ Bases:
pytorch_lightning.loggers.base.LightningLoggerBase
The
LoggerCollection
class is used to iterate all logging actions over the given logger_iterable.- Parameters
logger_iterable¶ (
Iterable
[LightningLoggerBase
]) – An iterable collection of loggers
-
log_metrics
(metrics, step=None)[source]¶ Records metrics. This method logs metrics as as soon as it received them. If you want to aggregate metrics for one specific step, use the
agg_and_log_metrics()
method.
-
pytorch_lightning.loggers.base.
merge_dicts
(dicts, agg_key_funcs=None, default_func=numpy.mean)[source]¶ Merge a sequence with dictionaries into one dictionary by aggregating the same keys with some given function.
- Parameters
dicts¶ (
Sequence
[Mapping
]) – Sequence of dictionaries to be merged.agg_key_funcs¶ (
Optional
[Mapping
[str
,Callable
[[Sequence
[float
]],float
]]]) – Mapping from key name to function. This function will aggregate a list of values, obtained from the same key of all dictionaries. If some key has no specified aggregation function, the default one will be used. Default is:None
(all keys will be aggregated by the default function).default_func¶ (
Callable
[[Sequence
[float
]],float
]) – Default function to aggregate keys, which are not presented in the agg_key_funcs map.
- Return type
- Returns
Dictionary with merged values.
Examples
>>> import pprint >>> d1 = {'a': 1.7, 'b': 2.0, 'c': 1, 'd': {'d1': 1, 'd3': 3}} >>> d2 = {'a': 1.1, 'b': 2.2, 'v': 1, 'd': {'d1': 2, 'd2': 3}} >>> d3 = {'a': 1.1, 'v': 2.3, 'd': {'d3': 3, 'd4': {'d5': 1}}} >>> dflt_func = min >>> agg_funcs = {'a': np.mean, 'v': max, 'd': {'d1': sum}} >>> pprint.pprint(merge_dicts([d1, d2, d3], agg_funcs, dflt_func)) {'a': 1.3, 'b': 2.0, 'c': 1, 'd': {'d1': 3, 'd2': 3, 'd3': 3, 'd4': {'d5': 1}}, 'v': 2.3}