geowatch.utils.lightning_ext.callbacks.tensorboard_plotter module¶
Parses an existing tensorboard event file and draws the plots as pngs on disk in the monitor/tensorboard directory.
Derived from netharn/mixins.py for dumping tensorboard plots to disk
CommandLine
# cd into training directory
GEOWATCH_PREIMPORT=0 python -m geowatch.utils.lightning_ext.callbacks.tensorboard_plotter .
python -m geowatch.utils.lightning_ext.callbacks.tensorboard_plotter \
/data/joncrall/dvc-repos/smart_expt_dvc/training/toothbrush/joncrall/Drop6/runs/Drop6_BAS_scratch_landcover_10GSD_split2_V4/lightning_logs/version_4/
- class geowatch.utils.lightning_ext.callbacks.tensorboard_plotter.TensorboardPlotter[source]¶
Bases:
Callback
Asynchronously dumps PNGs to disk visualize tensorboard scalars. exit
CommandLine
xdoctest -m geowatch.utils.lightning_ext.callbacks.tensorboard_plotter TensorboardPlotter
Example
>>> # xdoctest: +REQUIRES(module:tensorboard) >>> from geowatch.utils.lightning_ext import demo >>> from geowatch.monkey import monkey_lightning >>> import pytorch_lightning as pl >>> import pandas as pd >>> monkey_lightning.disable_lightning_hardware_warnings() >>> self = demo.LightningToyNet2d(num_train=55) >>> default_root_dir = ub.Path.appdir('lightning_ext/tests/TensorboardPlotter').ensuredir() >>> # >>> trainer = pl.Trainer(callbacks=[TensorboardPlotter()], >>> default_root_dir=default_root_dir, >>> max_epochs=3, accelerator='cpu', devices=1) >>> trainer.fit(self) >>> train_dpath = trainer.logger.log_dir >>> print('trainer.logger.log_dir = {!r}'.format(train_dpath)) >>> data = read_tensorboard_scalars(train_dpath) >>> for key in data.keys(): >>> d = data[key] >>> df = pd.DataFrame({key: d['ydata'], 'step': d['xdata'], 'wall': d['wall']}) >>> print(df)