Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save sean-adler/467321a23805736f8dc06a19157b0567 to your computer and use it in GitHub Desktop.
Save sean-adler/467321a23805736f8dc06a19157b0567 to your computer and use it in GitHub Desktop.
PyTorch ignite parameter scheduling
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Create MNIST data loader + simple CNN"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import math\n",
"import typing as t\n",
"\n",
"import numpy as np\n",
"import torch\n",
"import torch.nn.functional as F\n",
"from torch import nn\n",
"from torch.optim import SGD\n",
"from torch.utils.data import DataLoader\n",
"from torchvision.transforms import Compose, ToTensor, Normalize\n",
"from torchvision.datasets import MNIST\n",
"\n",
"from ignite.engine import Events, create_supervised_trainer, create_supervised_evaluator\n",
"from ignite.metrics import CategoricalAccuracy, Loss\n",
"from ignite.handlers.param_scheduler import CosineAnnealingScheduler, LinearScheduler"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def get_data_loaders(train_batch_size: int, val_batch_size: int) -> t.Tuple[DataLoader, DataLoader]:\n",
" data_transform = Compose([ToTensor(), Normalize((0.1307,), (0.3081,))])\n",
"\n",
" train_loader = DataLoader(MNIST(download=True,\n",
" root=\".\",\n",
" transform=data_transform,\n",
" train=True),\n",
" batch_size=train_batch_size,\n",
" shuffle=True)\n",
"\n",
" val_loader = DataLoader(MNIST(download=False,\n",
" root=\".\",\n",
" transform=data_transform,\n",
" train=False),\n",
" batch_size=val_batch_size,\n",
" shuffle=False)\n",
"\n",
" return (train_loader, val_loader)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"class CNN(nn.Module):\n",
" def __init__(self):\n",
" super(CNN, self).__init__()\n",
" self.conv1 = nn.Conv2d(1, 10, kernel_size=5)\n",
" self.conv2 = nn.Conv2d(10, 20, kernel_size=5)\n",
" self.conv2_drop = nn.Dropout2d()\n",
" self.fc1 = nn.Linear(320, 50)\n",
" self.fc2 = nn.Linear(50, 10)\n",
"\n",
" def forward(self, x):\n",
" x = F.relu(F.max_pool2d(self.conv1(x), 2))\n",
" x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))\n",
" x = x.view(-1, 320)\n",
" x = F.relu(self.fc1(x))\n",
" x = F.dropout(x, training=self.training)\n",
" x = self.fc2(x)\n",
" return F.log_softmax(x)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Set up training loop"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def train(epochs: int,\n",
" train_batch_size: int,\n",
" val_batch_size: int,\n",
" lr: t.Optional[float] = 1e-2,\n",
" momentum: t.Optional[float] = 0.5,\n",
" log_interval: t.Optional[int] = 50,\n",
" random_seed: t.Optional[int] = 42,\n",
" handlers: t.Optional[t.Tuple] = ()\n",
" ) -> nn.Module:\n",
" \"\"\"\n",
" Instantiates and trains a CNN on MNIST.\n",
" \"\"\"\n",
" torch.manual_seed(random_seed)\n",
" np.random.seed(random_seed)\n",
"\n",
" model = CNN()\n",
" train_loader, val_loader = get_data_loaders(train_batch_size, val_batch_size)\n",
" device = 'cpu'\n",
"\n",
" if torch.cuda.is_available():\n",
" model = model.cuda()\n",
" device = 'cuda'\n",
"\n",
" optimizer = SGD(model.parameters(), lr=lr, momentum=momentum)\n",
" trainer = create_supervised_trainer(\n",
" model,\n",
" optimizer,\n",
" F.nll_loss,\n",
" device=device)\n",
" evaluator = create_supervised_evaluator(\n",
" model,\n",
" metrics={'accuracy': CategoricalAccuracy(), 'nll': Loss(F.nll_loss)},\n",
" device=device)\n",
"\n",
" @trainer.on(Events.ITERATION_COMPLETED)\n",
" def log_training_loss(engine):\n",
" i = (engine.state.iteration - 1) % len(train_loader) + 1\n",
" if i % log_interval == 0:\n",
" print(f\"[{engine.state.epoch}] {i}/{len(train_loader)} loss: {'%.2f' % engine.state.output}\")\n",
"\n",
" # Attach scheduler(s)\n",
" for handler_args in handlers:\n",
" (scheduler_cls, param_name, start_value, end_value, cycle_mult) = handler_args\n",
" handler = scheduler_cls(\n",
" optimizer, param_name, start_value, end_value, len(train_loader),\n",
" cycle_mult=cycle_mult, save_history=True)\n",
" trainer.add_event_handler(Events.ITERATION_COMPLETED, handler)\n",
"\n",
" @trainer.on(Events.EPOCH_COMPLETED)\n",
" def log_validation_results(engine):\n",
" evaluator.run(val_loader)\n",
" metrics = evaluator.state.metrics\n",
" avg_accuracy = metrics['accuracy']\n",
" avg_nll = metrics['nll']\n",
" print(\"Validation Accuracy: {:.2f} Loss: {:.2f}\\n\".format(avg_accuracy, avg_nll))\n",
"\n",
" trainer.run(train_loader, max_epochs=epochs)\n",
" \n",
" return (model, trainer.state)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Train model over different schedules"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"%matplotlib inline\n",
"plt.rcParams['figure.figsize'] = ((13, 7))\n",
"plt.rcParams['image.interpolation'] = 'nearest'\n",
"plt.rcParams['image.cmap'] = 'gray'\n",
"\n",
"\n",
"def plot_metric(state, field, label):\n",
" plt.plot(state.param_history[field])\n",
" plt.xlabel('batch')\n",
" plt.ylabel(label)\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ipykernel_launcher.py:17: UserWarning: Implicit dimension choice for log_softmax has been deprecated. Change the call to include dim=X as an argument.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1] 250/938 loss: 1.59\n",
"[1] 500/938 loss: 0.88\n",
"[1] 750/938 loss: 0.57\n",
"Validation Accuracy: 0.94 Loss: 0.23\n",
"\n",
"[2] 250/938 loss: 0.55\n",
"[2] 500/938 loss: 0.27\n",
"[2] 750/938 loss: 0.75\n",
"Validation Accuracy: 0.96 Loss: 0.14\n",
"\n",
"[3] 250/938 loss: 0.24\n",
"[3] 500/938 loss: 0.18\n",
"[3] 750/938 loss: 0.18\n",
"Validation Accuracy: 0.97 Loss: 0.10\n",
"\n",
"[4] 250/938 loss: 0.16\n",
"[4] 500/938 loss: 0.39\n",
"[4] 750/938 loss: 0.29\n",
"Validation Accuracy: 0.97 Loss: 0.09\n",
"\n",
"[5] 250/938 loss: 0.21\n",
"[5] 500/938 loss: 0.27\n",
"[5] 750/938 loss: 0.25\n",
"Validation Accuracy: 0.97 Loss: 0.08\n",
"\n",
"[6] 250/938 loss: 0.35\n",
"[6] 500/938 loss: 0.36\n",
"[6] 750/938 loss: 0.30\n",
"Validation Accuracy: 0.98 Loss: 0.08\n",
"\n",
"[7] 250/938 loss: 0.10\n",
"[7] 500/938 loss: 0.21\n",
"[7] 750/938 loss: 0.18\n",
"Validation Accuracy: 0.98 Loss: 0.07\n",
"\n"
]
}
],
"source": [
"# No parameter scheduling.\n",
"lr = 1e-3\n",
"momentum = 0.95\n",
"\n",
"model_1, state_1 = train(7, 64, 1000, lr=lr, momentum=momentum, log_interval=250)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ipykernel_launcher.py:17: UserWarning: Implicit dimension choice for log_softmax has been deprecated. Change the call to include dim=X as an argument.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1] 250/938 loss: 0.94\n",
"[1] 500/938 loss: 0.57\n",
"[1] 750/938 loss: 0.21\n",
"Validation Accuracy: 0.96 Loss: 0.12\n",
"\n",
"[2] 250/938 loss: 0.51\n",
"[2] 500/938 loss: 0.35\n",
"[2] 750/938 loss: 0.48\n",
"Validation Accuracy: 0.97 Loss: 0.08\n",
"\n",
"[3] 250/938 loss: 0.28\n",
"[3] 500/938 loss: 0.25\n",
"[3] 750/938 loss: 0.13\n",
"Validation Accuracy: 0.98 Loss: 0.07\n",
"\n",
"[4] 250/938 loss: 0.23\n",
"[4] 500/938 loss: 0.47\n",
"[4] 750/938 loss: 0.18\n",
"Validation Accuracy: 0.98 Loss: 0.06\n",
"\n",
"[5] 250/938 loss: 0.13\n",
"[5] 500/938 loss: 0.28\n",
"[5] 750/938 loss: 0.13\n",
"Validation Accuracy: 0.98 Loss: 0.05\n",
"\n",
"[6] 250/938 loss: 0.30\n",
"[6] 500/938 loss: 0.25\n",
"[6] 750/938 loss: 0.19\n",
"Validation Accuracy: 0.99 Loss: 0.05\n",
"\n",
"[7] 250/938 loss: 0.14\n",
"[7] 500/938 loss: 0.19\n",
"[7] 750/938 loss: 0.20\n",
"Validation Accuracy: 0.99 Loss: 0.04\n",
"\n"
]
}
],
"source": [
"# Linearly cycle LR up and down.\n",
"lr = 1e-3\n",
"momentum = 0\n",
"\n",
"handlers = [\n",
" (LinearScheduler, 'lr', lr, lr * 100, 1)\n",
"]\n",
"\n",
"model_2, state_2 = train(7, 64, 1000, lr=lr, momentum=momentum, log_interval=250, handlers=handlers)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_metric(state_2, 'lr', 'learning rate')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ipykernel_launcher.py:17: UserWarning: Implicit dimension choice for log_softmax has been deprecated. Change the call to include dim=X as an argument.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1] 250/938 loss: 0.96\n",
"[1] 500/938 loss: 0.55\n",
"[1] 750/938 loss: 0.22\n",
"Validation Accuracy: 0.96 Loss: 0.12\n",
"\n",
"[2] 250/938 loss: 0.49\n",
"[2] 500/938 loss: 0.25\n",
"[2] 750/938 loss: 0.59\n",
"Validation Accuracy: 0.97 Loss: 0.10\n",
"\n",
"[3] 250/938 loss: 0.28\n",
"[3] 500/938 loss: 0.21\n",
"[3] 750/938 loss: 0.17\n",
"Validation Accuracy: 0.98 Loss: 0.07\n",
"\n",
"[4] 250/938 loss: 0.22\n",
"[4] 500/938 loss: 0.42\n",
"[4] 750/938 loss: 0.13\n",
"Validation Accuracy: 0.98 Loss: 0.07\n",
"\n",
"[5] 250/938 loss: 0.14\n",
"[5] 500/938 loss: 0.36\n",
"[5] 750/938 loss: 0.14\n",
"Validation Accuracy: 0.98 Loss: 0.06\n",
"\n",
"[6] 250/938 loss: 0.23\n",
"[6] 500/938 loss: 0.28\n",
"[6] 750/938 loss: 0.15\n",
"Validation Accuracy: 0.98 Loss: 0.05\n",
"\n",
"[7] 250/938 loss: 0.19\n",
"[7] 500/938 loss: 0.15\n",
"[7] 750/938 loss: 0.26\n",
"Validation Accuracy: 0.99 Loss: 0.04\n",
"\n"
]
}
],
"source": [
"# Linearly cycle LR up and down, with an increasing cycle length.\n",
"lr = 1e-3\n",
"momentum = 0\n",
"\n",
"handlers = [\n",
" (LinearScheduler, 'lr', lr, lr * 100, 2)\n",
"]\n",
"\n",
"model_3, state_3 = train(7, 64, 1000, lr=lr, momentum=momentum, log_interval=250, handlers=handlers)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_metric(state_3, 'lr', 'learning rate')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ipykernel_launcher.py:17: UserWarning: Implicit dimension choice for log_softmax has been deprecated. Change the call to include dim=X as an argument.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1] 250/938 loss: 0.73\n",
"[1] 500/938 loss: 0.47\n",
"[1] 750/938 loss: 0.34\n",
"Validation Accuracy: 0.97 Loss: 0.10\n",
"\n",
"[2] 250/938 loss: 0.43\n",
"[2] 500/938 loss: 0.47\n",
"[2] 750/938 loss: 0.68\n",
"Validation Accuracy: 0.96 Loss: 0.13\n",
"\n",
"[3] 250/938 loss: 0.26\n",
"[3] 500/938 loss: 0.19\n",
"[3] 750/938 loss: 0.12\n",
"Validation Accuracy: 0.98 Loss: 0.06\n",
"\n",
"[4] 250/938 loss: 0.24\n",
"[4] 500/938 loss: 0.31\n",
"[4] 750/938 loss: 0.24\n",
"Validation Accuracy: 0.98 Loss: 0.08\n",
"\n",
"[5] 250/938 loss: 0.32\n",
"[5] 500/938 loss: 0.32\n",
"[5] 750/938 loss: 0.27\n",
"Validation Accuracy: 0.96 Loss: 0.12\n",
"\n",
"[6] 250/938 loss: 0.70\n",
"[6] 500/938 loss: 0.38\n",
"[6] 750/938 loss: 0.44\n",
"Validation Accuracy: 0.97 Loss: 0.09\n",
"\n",
"[7] 250/938 loss: 0.07\n",
"[7] 500/938 loss: 0.26\n",
"[7] 750/938 loss: 0.44\n",
"Validation Accuracy: 0.98 Loss: 0.06\n",
"\n"
]
}
],
"source": [
"# Linearly cycle LR and momentum up and down, with an increasing cycle length.\n",
"lr = 1e-3\n",
"momentum = 0.95\n",
"\n",
"handlers = [\n",
" (LinearScheduler, 'lr', lr, lr * 100, 2),\n",
" (LinearScheduler, 'momentum', momentum, momentum - 0.2, 2)\n",
"]\n",
"\n",
"model_4, state_4 = train(7, 64, 1000, lr=lr, momentum=momentum, log_interval=250, handlers=handlers)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_metric(state_4, 'lr', 'learning rate')\n",
"plot_metric(state_4, 'momentum', 'momentum')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ipykernel_launcher.py:17: UserWarning: Implicit dimension choice for log_softmax has been deprecated. Change the call to include dim=X as an argument.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1] 250/938 loss: 0.67\n",
"[1] 500/938 loss: 0.48\n",
"[1] 750/938 loss: 0.22\n",
"Validation Accuracy: 0.96 Loss: 0.11\n",
"\n",
"[2] 250/938 loss: 0.46\n",
"[2] 500/938 loss: 0.26\n",
"[2] 750/938 loss: 0.43\n",
"Validation Accuracy: 0.97 Loss: 0.08\n",
"\n",
"[3] 250/938 loss: 0.13\n",
"[3] 500/938 loss: 0.21\n",
"[3] 750/938 loss: 0.07\n",
"Validation Accuracy: 0.98 Loss: 0.06\n",
"\n",
"[4] 250/938 loss: 0.22\n",
"[4] 500/938 loss: 0.37\n",
"[4] 750/938 loss: 0.19\n",
"Validation Accuracy: 0.98 Loss: 0.06\n",
"\n",
"[5] 250/938 loss: 0.13\n",
"[5] 500/938 loss: 0.29\n",
"[5] 750/938 loss: 0.14\n",
"Validation Accuracy: 0.98 Loss: 0.05\n",
"\n",
"[6] 250/938 loss: 0.18\n",
"[6] 500/938 loss: 0.24\n",
"[6] 750/938 loss: 0.05\n",
"Validation Accuracy: 0.99 Loss: 0.05\n",
"\n",
"[7] 250/938 loss: 0.20\n",
"[7] 500/938 loss: 0.12\n",
"[7] 750/938 loss: 0.24\n",
"Validation Accuracy: 0.99 Loss: 0.04\n",
"\n"
]
}
],
"source": [
"# Perform cosine annealing with warm restarts to LR.\n",
"lr = 1e-3\n",
"momentum = 0\n",
"\n",
"handlers = [\n",
" (CosineAnnealingScheduler, 'lr', lr, lr * 100, 2)\n",
"]\n",
"\n",
"model_5, state_5 = train(7, 64, 1000, lr=lr, momentum=momentum, log_interval=250, handlers=handlers)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_metric(state_5, 'lr', 'learning rate')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment