Hi all,
I am using pytorch_lightning.loggers.WandbLogger to log some intermediate results of my preprocessing but nothing (i.e. matplotlib plots and images) are logged, except the key name.
Below is what I did:
wandb_logger = WandbLogger(..)
runner = Trainer(logger=wandb_logger,..)
data = VAEDataset(.., logger=runner.logger,..) # LightningDataModule
data.setup()
# in my dataset (after some transforms are performed)
plt.figure(figsize=(10, 30))
plt.subplot(131), plt.imshow(orig_spec.detach(), cmap='gray')
plt.title('Input'), plt.xticks([]), plt.yticks([])
plt.subplot(132), plt.imshow(filtered_spec.squeeze().detach(), cmap='gray')
plt.title('FilteredSpec'), plt.xticks([]), plt.yticks([])
plt.subplot(133), plt.imshow(magnitude_spec.detach(), cmap='gray')
plt.title('MagnitudeSpec'), plt.xticks([]), plt.yticks([])
self.logger.experiment.log(
{"HPFilter/Input_Filtered-_Magnitude-Spec": plt}
)
There is no subdir called “HPFilter” under “media” but when I checked wandb-summary.json
:
..., "HPFilter/FilteredSpec": {"_type": "image-file", "sha256": "92bd05772ad44d6be9ef9fed80df00ff649e378abbcbb34f73d4082aceacedb0", "size": 86404, "path": "media/images/HPFilter/FilteredSpec_2_92bd05772ad44d6be9ef.png", "format": "png", "width": 128, "height": 256, "caption": "FilteredSpec_33150.png"}, ...
Is the problem that such logging could only be performed within LightningModule?
Many thanks in advance for any hints!
Added:
To eliminate that the problem lies in my actual data, I tried the below to replace my intended logging:
arr = torch.rand(256, 128)
wandb.log(
{"HPFilter/FilteredSpec": wandb.Image(torch.flipud(arr).detach().cpu().numpy(), caption=f"FilteredSpec.png")}
)
It still behaved the same.