Skip to content
This repository was archived by the owner on Aug 28, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 4 additions & 13 deletions lightning_examples/augmentation_kornia/augmentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import torch.nn as nn
import torchmetrics
import torchvision
from IPython.core.display import display
from kornia import image_to_tensor, tensor_to_image
from kornia.augmentation import ColorJitter, RandomChannelShuffle, RandomHorizontalFlip, RandomThinPlateSpline
from pytorch_lightning import LightningModule, Trainer
Expand Down Expand Up @@ -190,7 +191,7 @@ def val_dataloader(self):
accelerator="auto",
devices=1 if torch.cuda.is_available() else None, # limiting got iPython runs
max_epochs=10,
logger=CSVLogger(save_dir="logs/", name="cifar10-resnet18"),
logger=CSVLogger(save_dir="logs/"),
)

# Train the model ⚡
Expand All @@ -203,15 +204,5 @@ def val_dataloader(self):
metrics = pd.read_csv(f"{trainer.logger.log_dir}/metrics.csv")
del metrics["step"]
metrics.set_index("epoch", inplace=True)
print(metrics.dropna(axis=1, how="all").head())
g = sn.relplot(data=metrics, kind="line")
plt.gcf().set_size_inches(12, 4)
plt.grid()

# %% [markdown]
# ## Tensorboard

# %%
# Start tensorboard.
# # %load_ext tensorboard
# # %tensorboard --logdir lightning_logs/
display(metrics.dropna(axis=1, how="all").head())
sn.relplot(data=metrics, kind="line")
2 changes: 1 addition & 1 deletion lightning_examples/basic-gan/gan.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ def __init__(
b1: float = 0.5,
b2: float = 0.999,
batch_size: int = BATCH_SIZE,
**kwargs
**kwargs,
):
super().__init__()
self.save_hyperparameters()
Expand Down
2 changes: 2 additions & 0 deletions lightning_examples/cifar10-baseline/.meta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,7 @@ description: >
requirements:
- torchvision
- lightning-bolts
- pandas
- seaborn
accelerator:
- GPU
26 changes: 20 additions & 6 deletions lightning_examples/cifar10-baseline/baseline.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,19 @@
# %%
import os

import pandas as pd
import seaborn as sn
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision
from IPython.core.display import display
from pl_bolts.datamodules import CIFAR10DataModule
from pl_bolts.transforms.dataset_normalizations import cifar10_normalization
from pytorch_lightning import LightningModule, Trainer, seed_everything
from pytorch_lightning.callbacks import LearningRateMonitor
from pytorch_lightning.callbacks.progress import TQDMProgressBar
from pytorch_lightning.loggers import TensorBoardLogger
from pytorch_lightning.loggers import CSVLogger
from torch.optim.lr_scheduler import OneCycleLR
from torch.optim.swa_utils import AveragedModel, update_bn
from torchmetrics.functional import accuracy
Expand Down Expand Up @@ -142,13 +145,21 @@ def configure_optimizers(self):
max_epochs=30,
accelerator="auto",
devices=1 if torch.cuda.is_available() else None, # limiting got iPython runs
logger=TensorBoardLogger("lightning_logs/", name="resnet"),
logger=CSVLogger(save_dir="logs/"),
callbacks=[LearningRateMonitor(logging_interval="step"), TQDMProgressBar(refresh_rate=10)],
)

trainer.fit(model, cifar10_dm)
trainer.test(model, datamodule=cifar10_dm)

# %%

metrics = pd.read_csv(f"{trainer.logger.log_dir}/metrics.csv")
del metrics["step"]
metrics.set_index("epoch", inplace=True)
display(metrics.dropna(axis=1, how="all").head())
sn.relplot(data=metrics, kind="line")

# %% [markdown]
# ### Bonus: Use [Stochastic Weight Averaging](https://arxiv.org/abs/1803.05407) to get a boost on performance
#
Expand Down Expand Up @@ -199,14 +210,17 @@ def on_train_end(self):
max_epochs=20,
accelerator="auto",
devices=1 if torch.cuda.is_available() else None, # limiting got iPython runs
logger=TensorBoardLogger("lightning_logs/", name="swa_resnet"),
callbacks=[TQDMProgressBar(refresh_rate=20)],
logger=CSVLogger(save_dir="logs/"),
)

swa_trainer.fit(swa_model, cifar10_dm)
swa_trainer.test(swa_model, datamodule=cifar10_dm)

# %%
# Start tensorboard.
# %reload_ext tensorboard
# %tensorboard --logdir lightning_logs/

metrics = pd.read_csv(f"{trainer.logger.log_dir}/metrics.csv")
del metrics["step"]
metrics.set_index("epoch", inplace=True)
display(metrics.dropna(axis=1, how="all").head())
sn.relplot(data=metrics, kind="line")
2 changes: 2 additions & 0 deletions lightning_examples/mnist-hello-world/.meta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ description: In this notebook, we'll go over the basics of lightning by preparin
models to train on the [MNIST Handwritten Digits dataset](https://en.wikipedia.org/wiki/MNIST_database).
requirements:
- torchvision
- pandas
- seaborn
accelerator:
- CPU
- GPU
14 changes: 11 additions & 3 deletions lightning_examples/mnist-hello-world/hello-world.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
# %%
import os

import pandas as pd
import seaborn as sn
import torch
from IPython.core.display import display
from pytorch_lightning import LightningModule, Trainer
from pytorch_lightning.callbacks.progress import TQDMProgressBar
from pytorch_lightning.loggers import CSVLogger
from torch import nn
from torch.nn import functional as F
from torch.utils.data import DataLoader, random_split
Expand Down Expand Up @@ -204,6 +208,7 @@ def test_dataloader(self):
devices=1 if torch.cuda.is_available() else None, # limiting got iPython runs
max_epochs=3,
callbacks=[TQDMProgressBar(refresh_rate=20)],
logger=CSVLogger(save_dir="logs/"),
)
trainer.fit(model)

Expand All @@ -230,6 +235,9 @@ def test_dataloader(self):
# In Colab, you can use the TensorBoard magic function to view the logs that Lightning has created for you!

# %%
# Start tensorboard.
# %load_ext tensorboard
# %tensorboard --logdir lightning_logs/

metrics = pd.read_csv(f"{trainer.logger.log_dir}/metrics.csv")
del metrics["step"]
metrics.set_index("epoch", inplace=True)
display(metrics.dropna(axis=1, how="all").head())
sn.relplot(data=metrics, kind="line")
2 changes: 2 additions & 0 deletions lightning_examples/reinforce-learning-DQN/.meta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ description: |
requirements:
- gym
- pygame
- pandas
- seaborn
accelerator:
- CPU
- GPU
14 changes: 11 additions & 3 deletions lightning_examples/reinforce-learning-DQN/dqn.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,12 @@

import gym
import numpy as np
import pandas as pd
import seaborn as sn
import torch
from IPython.core.display import display
from pytorch_lightning import LightningModule, Trainer
from pytorch_lightning.loggers import CSVLogger
from torch import Tensor, nn
from torch.optim import Adam, Optimizer
from torch.utils.data import DataLoader
Expand Down Expand Up @@ -364,11 +368,15 @@ def get_device(self, batch) -> str:
devices=1 if torch.cuda.is_available() else None, # limiting got iPython runs
max_epochs=150,
val_check_interval=50,
logger=CSVLogger(save_dir="logs/"),
)

trainer.fit(model)

# %%
# Start tensorboard.
# %load_ext tensorboard
# %tensorboard --logdir lightning_logs/

metrics = pd.read_csv(f"{trainer.logger.log_dir}/metrics.csv")
del metrics["step"]
metrics.set_index("epoch", inplace=True)
display(metrics.dropna(axis=1, how="all").head())
sn.relplot(data=metrics, kind="line")
3 changes: 2 additions & 1 deletion templates/img-classify/classify.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import pandas as pd
import seaborn as sn
from flash.image import ImageClassificationData, ImageClassifier
from IPython.core.display import display
from pytorch_lightning.loggers import CSVLogger

PATH_DATASETS = os.environ.get("PATH_DATASETS", ".")
Expand Down Expand Up @@ -41,7 +42,7 @@
metrics = pd.read_csv(f"{trainer.logger.log_dir}/metrics.csv")
del metrics["step"]
metrics.set_index("epoch", inplace=True)
print(metrics.dropna(axis=1, how="all").head())
display(metrics.dropna(axis=1, how="all").head())

g = sn.relplot(data=metrics, kind="line")
plt.gcf().set_size_inches(12, 4)
Expand Down