clean up docs around loggers (#304)

This commit is contained in:
William Falcon
2019-10-04 18:53:38 -04:00
committed by GitHub
parent a8ccb88163
commit a578de511d
7 changed files with 23 additions and 12 deletions
@@ -281,7 +281,7 @@ def validation_step(self, batch, batch_nb):
# or generated text... or whatever
sample_imgs = x[:6]
grid = torchvision.utils.make_grid(sample_imgs)
self.experiment.add_image('example_images', grid, 0)
self.logger.experiment.add_image('example_images', grid, 0)
# calculate acc
labels_hat = torch.argmax(out, dim=1)
+7 -5
View File
@@ -11,18 +11,20 @@ Current dtype
---
#### logger
A reference to the logger you passed into trainer.
Passing a logger is optional. If you don't pass one in, Lightning will create one for you automatically.
This logger saves logs to '''/os.getcwd()/lightning_logs'''
```python
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](https://pytorch.org/docs/stable/tensorboard.html) with versioned folder structure).
Here is an example using the TestTubeLogger (which is a wrapper on [PyTorch SummaryWriter](https://pytorch.org/docs/stable/tensorboard.html) with versioned folder structure).
```{.python}
# 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(...)
# if logger is a tensorboard logger or TestTubeLogger
self.logger.experiment.add_embedding(...)
self.logger.experiment.log({'val_loss': 0.9})
self.logger.experiment.add_scalars(...)
```
---
+9 -1
View File
@@ -81,7 +81,15 @@ If you write a logger than may be useful to others, please send
a pull request to add it to Lighting!
---
### Using loggers
#### Using loggers
You can call the logger anywhere from your LightningModule by doing:
```python
self.logger
# add an image if using TestTubeLogger
self.logger.experiment.add_image(...)
```
#### Display metrics in progress bar
``` {.python}
+1 -1
View File
@@ -137,5 +137,5 @@ def on_after_backward(self):
for k, v in params.items():
grads = v
name = k
self.experiment.add_histogram(tag=name, values=grads, global_step=self.trainer.global_step)
self.logger.experiment.add_histogram(tag=name, values=grads, global_step=self.trainer.global_step)
```
+1 -1
View File
@@ -109,7 +109,7 @@ class GAN(pl.LightningModule):
# log sampled images
sample_imgs = self.generated_imgs[:6]
grid = torchvision.utils.make_grid(sample_imgs)
self.experiment.add_image('generated_images', grid, 0)
self.logger.experiment.add_image('generated_images', grid, 0)
# ground truth result (ie: all fake)
valid = torch.ones(imgs.size(0), 1)
+2 -1
View File
@@ -19,13 +19,14 @@ class LightningModule(GradInformation, ModelIO, ModelHooks):
self.global_step = 0
self.loaded_optimizer_states_dict = {}
self.trainer = None
self.experiment = None
self.logger = None
self.example_input_array = None
# track if gpu was requested for checkpointing
self.on_gpu = False
self.use_dp = False
self.use_ddp = False
self.use_ddp2 = False
self.use_amp = False
def forward(self, *args, **kwargs):
+2 -2
View File
@@ -88,7 +88,7 @@ class TrainerIO(object):
if self.proc_rank == 0:
# save weights
print('handling SIGUSR1')
self.hpc_save(self.weights_save_path, self.experiment)
self.hpc_save(self.weights_save_path, self.logger)
# find job id
job_id = os.environ['SLURM_JOB_ID']
@@ -105,7 +105,7 @@ class TrainerIO(object):
print('requeue failed...')
# close experiment to avoid issues
self.experiment.close()
self.logger.close()
def term_handler(self, signum, frame):
# save