lightning/docs/LightningModule/properties.md

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)