anomalib.utils.loggers¶
Load PyTorch Lightning Loggers.
Submodules¶
Package Contents¶
Classes¶
Logger for tensorboard. |
|
Logger for wandb. |
Functions¶
|
Get console logger by name. |
Return a logger based on the choice of logger in the config file. |
- class anomalib.utils.loggers.AnomalibTensorBoardLogger(save_dir: str, name: Optional[str] = 'default', version: Optional[Union[int, str]] = None, log_graph: bool = False, default_hp_metric: bool = True, prefix: str = '', **kwargs)[source]¶
Bases:
anomalib.utils.loggers.base.ImageLoggerBase,pytorch_lightning.loggers.tensorboard.TensorBoardLoggerLogger for tensorboard.
Adds interface for add_image in the logger rather than calling the experiment object.
Note
Same as the Tensorboard Logger provided by PyTorch Lightning and the doc string is reproduced below.
Logs are saved to
os.path.join(save_dir, name, version). This is the default logger in Lightning, it comes preinstalled.Example
>>> from pytorch_lightning import Trainer >>> from anomalib.utils.loggers import AnomalibTensorBoardLogger >>> logger = AnomalibTensorBoardLogger("tb_logs", name="my_model") >>> trainer = Trainer(logger=logger)
- Parameters
save_dir (str) – Save directory
name (Optional, str) – Experiment name. Defaults to
'default'. If it is the empty string then no per-experiment subdirectory is used.version (Optional, int, str) – Experiment version. If version is not specified the logger inspects the save directory for existing versions, then automatically assigns the next available version. If it is a string then it is used as the run-specific subdirectory name, otherwise
'version_${version}'is used.log_graph (bool) – Adds the computational graph to tensorboard. This requires that the user has defined the self.example_input_array attribute in their model.
default_hp_metric (bool) – Enables a placeholder metric with key hp_metric when log_hyperparams is called without a metric (otherwise calls to log_hyperparams without a metric are ignored).
prefix (str) – A string to put at the beginning of metric keys.
**kwargs – Additional arguments like comment, filename_suffix, etc. used by
SummaryWritercan be passed as keyword arguments in this logger.
- add_image(image: Union[numpy.ndarray, matplotlib.figure.Figure], name: Optional[str] = None, **kwargs: Any)¶
Interface to add image to tensorboard logger.
- Parameters
image (Union[np.ndarray, Figure]) – Image to log
name (Optional[str]) – The tag of the image
kwargs – Accepts only global_step (int). The step at which to log the image.
- class anomalib.utils.loggers.AnomalibWandbLogger(name: Optional[str] = None, save_dir: Optional[str] = None, offline: Optional[bool] = False, id: Optional[str] = None, anonymous: Optional[bool] = None, version: Optional[str] = None, project: Optional[str] = None, log_model: Union[str, bool] = False, experiment=None, prefix: Optional[str] = '', **kwargs)[source]¶
Bases:
anomalib.utils.loggers.base.ImageLoggerBase,pytorch_lightning.loggers.wandb.WandbLoggerLogger for wandb.
Adds interface for add_image in the logger rather than calling the experiment object.
Note
Same as the wandb Logger provided by PyTorch Lightning and the doc string is reproduced below.
Log using Weights and Biases.
Install it with pip:
$ pip install wandb
- Parameters
name – Display name for the run.
save_dir – Path where data is saved (wandb dir by default).
offline – Run offline (data can be streamed later to wandb servers).
id – Sets the version, mainly used to resume a previous run.
version – Same as id.
anonymous – Enables or explicitly disables anonymous logging.
project – The name of the project to which this run will belong.
log_model – Save checkpoints in wandb dir to upload on W&B servers.
prefix – A string to put at the beginning of metric keys.
experiment – WandB experiment object. Automatically set when creating a run.
**kwargs – Arguments passed to
wandb.init()like entity, group, tags, etc.
- Raises
ImportError – If required WandB package is not installed on the device.
MisconfigurationException – If both
log_modelandoffline``is set to ``True.
Example
>>> from anomalib.utils.loggers import AnomalibWandbLogger >>> from pytorch_lightning import Trainer >>> wandb_logger = AnomalibWandbLogger() >>> trainer = Trainer(logger=wandb_logger)
Note: When logging manually through wandb.log or trainer.logger.experiment.log, make sure to use commit=False so the logging step does not increase.
See also
Tutorial on how to use W&B with PyTorch Lightning
- add_image(image: Union[numpy.ndarray, matplotlib.figure.Figure], name: Optional[str] = None, **kwargs: Any)¶
Interface to add image to wandb logger.
- Parameters
image (Union[np.ndarray, Figure]) – Image to log
name (Optional[str]) – The tag of the image
- save() None¶
Upload images to wandb server.
Note
There is a limit on the number of images that can be logged together to the wandb server.
- anomalib.utils.loggers.configure_logger(level: Union[int, str] = logging.INFO)[source]¶
Get console logger by name.
- Parameters
level (Union[int, str], optional) – Logger Level. Defaults to logging.INFO.
- Returns
The expected logger.
- Return type
Logger
- anomalib.utils.loggers.get_experiment_logger(config: Union[omegaconf.dictconfig.DictConfig, omegaconf.listconfig.ListConfig]) Union[pytorch_lightning.loggers.LightningLoggerBase, Iterable[pytorch_lightning.loggers.LightningLoggerBase], bool][source]¶
Return a logger based on the choice of logger in the config file.
- Parameters
config (DictConfig) – config.yaml file for the corresponding anomalib model.
- Raises
ValueError – for any logger types apart from false and tensorboard
- Returns
Logger
- Return type
Union[LightningLoggerBase, Iterable[LightningLoggerBase], bool]