1.6 KiB
A LightningModule has the following properties which you can access at any time
current_epoch
The current epoch
dtype
Current dtype
logger
A reference to the logger you passed into trainer.
Trainer(logger=your_logger)
Call it from anywhere in your LightningModule to add metrics, images, etc... whatever your logger supports.
Here is an example using the Test-tube logger (which is a wrapper on PyTorch SummaryWriter with versioned folder structure).
# if logger is a tensorboard logger or test-tube experiment
self.logger.add_embedding(...)
self.logger.log({'val_loss': 0.9})
self.logger.add_scalars(...)
global_step
Total training batches seen across all epochs
gradient_clip_val
The current gradient clip value
on_gpu
True if your model is currently running on GPUs. Useful to set flags around the LightningModule for different CPU vs GPU behavior.
trainer
Last resort access to any state the trainer has. Changing certain properties here could affect your training run.
self.trainer.optimizers
self.trainer.current_epoch
...
Debugging
The LightningModule also offers these tricks to help debug.
example_input_array
In the LightningModule init, you can set a dummy tensor for this property to get a print out of sizes coming into and out of every layer.
def __init__(self):
# put the dimensions of the first input to your system
self.example_input_array = torch.rand(5, 28 * 28)