{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#|default_exp sgd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Accelerated SGD"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#|export\n",
"import torch\n",
"\n",
"from miniai.datasets import *\n",
"from miniai.conv import *\n",
"from miniai.learner import *\n",
"from miniai.activations import *\n",
"from miniai.init import *"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import pickle,gzip,math,os,time,shutil,torch,matplotlib as mpl,numpy as np,matplotlib.pyplot as plt\n",
"import fastcore.all as fc\n",
"from collections.abc import Mapping\n",
"from pathlib import Path\n",
"from operator import attrgetter,itemgetter\n",
"from functools import partial\n",
"from copy import copy\n",
"from contextlib import contextmanager\n",
"\n",
"import torchvision.transforms.functional as TF,torch.nn.functional as F\n",
"from torch import tensor,nn,optim\n",
"from torch.utils.data import DataLoader,default_collate\n",
"from torch.nn import init\n",
"from torch.optim import lr_scheduler\n",
"from torcheval.metrics import MulticlassAccuracy\n",
"from datasets import load_dataset,load_dataset_builder\n",
"\n",
"from miniai.datasets import *\n",
"from miniai.conv import *\n",
"from miniai.learner import *\n",
"from miniai.activations import *\n",
"from miniai.init import *"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from fastcore.test import test_close\n",
"\n",
"torch.set_printoptions(precision=2, linewidth=140, sci_mode=False)\n",
"torch.manual_seed(1)\n",
"\n",
"import logging\n",
"logging.disable(logging.WARNING)\n",
"\n",
"set_seed(42)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "34d26ce6618046058a51cd6e109f5a06",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/2 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"xl,yl = 'image','label'\n",
"name = \"fashion_mnist\"\n",
"dsd = load_dataset(name)\n",
"\n",
"bs = 1024\n",
"xmean,xstd = 0.28, 0.35\n",
"\n",
"@inplace\n",
"def transformi(b): b[xl] = [(TF.to_tensor(o)-xmean)/xstd for o in b[xl]]\n",
"\n",
"tds = dsd.with_transform(transformi)\n",
"dls = DataLoaders.from_dd(tds, bs, num_workers=4)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"metrics = MetricsCB(accuracy=MulticlassAccuracy())\n",
"astats = ActivationStats(fc.risinstance(GeneralRelu))\n",
"cbs = [DeviceCB(), metrics, ProgressCB(plot=True), astats]\n",
"act_gr = partial(GeneralRelu, leak=0.1, sub=0.4)\n",
"iw = partial(init_weights, leaky=0.1)\n",
"lrf_cbs = [DeviceCB(), LRFinderCB()]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Optimizers"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### SGD"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"class SGD:\n",
" def __init__(self, params, lr, wd=0.):\n",
" params = list(params)\n",
" fc.store_attr()\n",
" self.i = 0\n",
"\n",
" def step(self):\n",
" with torch.no_grad():\n",
" for p in self.params:\n",
" self.reg_step(p)\n",
" self.opt_step(p)\n",
" self.i +=1\n",
"\n",
" def opt_step(self, p): p -= p.grad * self.lr\n",
" def reg_step(self, p):\n",
" if self.wd != 0: p *= 1 - self.lr*self.wd\n",
"\n",
" def zero_grad(self):\n",
" for p in self.params: p.grad.data.zero_()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"set_seed(42)\n",
"model = get_model(act_gr, norm=nn.BatchNorm2d).apply(iw)\n",
"learn = TrainLearner(model, dls, F.cross_entropy, lr=0.4, cbs=cbs, opt_func=SGD)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" | accuracy | \n",
" loss | \n",
" epoch | \n",
" train | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0.773 | \n",
" 0.641 | \n",
" 0 | \n",
" train | \n",
"
\n",
" \n",
" | 0.825 | \n",
" 0.485 | \n",
" 0 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.845 | \n",
" 0.425 | \n",
" 1 | \n",
" train | \n",
"
\n",
" \n",
" | 0.844 | \n",
" 0.429 | \n",
" 1 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.863 | \n",
" 0.376 | \n",
" 2 | \n",
" train | \n",
"
\n",
" \n",
" | 0.852 | \n",
" 0.406 | \n",
" 2 | \n",
" eval | \n",
"
\n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"learn.fit(3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Consider the difference between *weight decay* and *L2 regularization*:\n",
"\n",
"``` python\n",
"weight -= lr*wd*weight\n",
"```\n",
"\n",
"...vs...\n",
"\n",
"``` python\n",
"weight.grad += wd*weight\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Momentum"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"xs = torch.linspace(-4, 4, 100)\n",
"ys = 1 - (xs/3) ** 2 + torch.randn(100) * 0.1"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"_,axs = plt.subplots(2,2, figsize=(12,8))\n",
"betas = [0.5,0.7,0.9,0.99]\n",
"for beta,ax in zip(betas, axs.flatten()):\n",
" ax.scatter(xs,ys)\n",
" avg,res = 0,[]\n",
" for yi in ys:\n",
" avg = beta*avg + (1-beta)*yi\n",
" res.append(avg)\n",
" ax.plot(xs,np.array(res), color='red');\n",
" ax.set_title(f'beta={beta}')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"class Momentum(SGD):\n",
" def __init__(self, params, lr, wd=0., mom=0.9):\n",
" super().__init__(params, lr=lr, wd=wd)\n",
" self.mom=mom\n",
"\n",
" def opt_step(self, p):\n",
" if not hasattr(p, 'grad_avg'): p.grad_avg = torch.zeros_like(p.grad)\n",
" p.grad_avg = p.grad_avg*self.mom + p.grad*(1-self.mom)\n",
" p -= self.lr * p.grad_avg"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"set_seed(42)\n",
"model = get_model(act_gr, norm=nn.BatchNorm2d).apply(iw)\n",
"learn = TrainLearner(model, dls, F.cross_entropy, lr=1.5, cbs=cbs, opt_func=Momentum)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" | accuracy | \n",
" loss | \n",
" epoch | \n",
" train | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0.784 | \n",
" 0.597 | \n",
" 0 | \n",
" train | \n",
"
\n",
" \n",
" | 0.845 | \n",
" 0.423 | \n",
" 0 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.870 | \n",
" 0.356 | \n",
" 1 | \n",
" train | \n",
"
\n",
" \n",
" | 0.868 | \n",
" 0.361 | \n",
" 1 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.886 | \n",
" 0.311 | \n",
" 2 | \n",
" train | \n",
"
\n",
" \n",
" | 0.876 | \n",
" 0.343 | \n",
" 2 | \n",
" eval | \n",
"
\n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"learn.fit(3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"astats.color_dim()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### RMSProp"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"class RMSProp(SGD):\n",
" def __init__(self, params, lr, wd=0., sqr_mom=0.99, eps=1e-5):\n",
" super().__init__(params, lr=lr, wd=wd)\n",
" self.sqr_mom,self.eps = sqr_mom,eps\n",
"\n",
" def opt_step(self, p):\n",
" if not hasattr(p, 'sqr_avg'): p.sqr_avg = p.grad**2\n",
" p.sqr_avg = p.sqr_avg*self.sqr_mom + p.grad**2*(1-self.sqr_mom)\n",
" p -= self.lr * p.grad/(p.sqr_avg.sqrt() + self.eps)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" | accuracy | \n",
" loss | \n",
" epoch | \n",
" train | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0.768 | \n",
" 0.660 | \n",
" 0 | \n",
" train | \n",
"
\n",
" \n",
" | 0.818 | \n",
" 0.489 | \n",
" 0 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.847 | \n",
" 0.417 | \n",
" 1 | \n",
" train | \n",
"
\n",
" \n",
" | 0.844 | \n",
" 0.430 | \n",
" 1 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.864 | \n",
" 0.368 | \n",
" 2 | \n",
" train | \n",
"
\n",
" \n",
" | 0.853 | \n",
" 0.407 | \n",
" 2 | \n",
" eval | \n",
"
\n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"set_seed(42)\n",
"model = get_model(act_gr, norm=nn.BatchNorm2d).apply(iw)\n",
"learn = TrainLearner(model, dls, F.cross_entropy, lr=3e-3, cbs=cbs, opt_func=RMSProp)\n",
"learn.fit(3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"astats.color_dim()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Adam"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"class Adam(SGD):\n",
" def __init__(self, params, lr, wd=0., beta1=0.9, beta2=0.99, eps=1e-5):\n",
" super().__init__(params, lr=lr, wd=wd)\n",
" self.beta1,self.beta2,self.eps = beta1,beta2,eps\n",
"\n",
" def opt_step(self, p):\n",
" if not hasattr(p, 'avg'): p.avg = torch.zeros_like(p.grad.data)\n",
" if not hasattr(p, 'sqr_avg'): p.sqr_avg = torch.zeros_like(p.grad.data)\n",
" p.avg = self.beta1*p.avg + (1-self.beta1)*p.grad\n",
" unbias_avg = p.avg / (1 - (self.beta1**(self.i+1)))\n",
" p.sqr_avg = self.beta2*p.sqr_avg + (1-self.beta2)*(p.grad**2)\n",
" unbias_sqr_avg = p.sqr_avg / (1 - (self.beta2**(self.i+1)))\n",
" p -= self.lr * unbias_avg / (unbias_sqr_avg + self.eps).sqrt()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" | accuracy | \n",
" loss | \n",
" epoch | \n",
" train | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0.790 | \n",
" 0.582 | \n",
" 0 | \n",
" train | \n",
"
\n",
" \n",
" | 0.841 | \n",
" 0.431 | \n",
" 0 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.867 | \n",
" 0.363 | \n",
" 1 | \n",
" train | \n",
"
\n",
" \n",
" | 0.863 | \n",
" 0.376 | \n",
" 1 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.884 | \n",
" 0.315 | \n",
" 2 | \n",
" train | \n",
"
\n",
" \n",
" | 0.871 | \n",
" 0.349 | \n",
" 2 | \n",
" eval | \n",
"
\n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"set_seed(42)\n",
"model = get_model(act_gr, norm=nn.BatchNorm2d).apply(iw)\n",
"learn = TrainLearner(model, dls, F.cross_entropy, lr=6e-3, cbs=cbs, opt_func=Adam)\n",
"learn.fit(3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Schedulers"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We've already seen how we can easily write a custom LR-adjusting callback or `Learner`, or can use the predefined PyTorch schedulers. We'll use the predefined ones for now since there's nothing new to learn in implementing them ourselves."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'ChainedScheduler ConstantLR CosineAnnealingLR CosineAnnealingWarmRestarts Counter CyclicLR ExponentialLR LambdaLR LinearLR MultiStepLR MultiplicativeLR OneCycleLR Optimizer PolynomialLR ReduceLROnPlateau SequentialLR StepLR'"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"' '.join(o for o in dir(lr_scheduler) if o[0].isupper() and o[1].islower())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'ChainedScheduler ConstantLR CosineAnnealingLR CosineAnnealingWarmRestarts Counter CyclicLR ExponentialLR LambdaLR LinearLR MultiStepLR MultiplicativeLR OneCycleLR Optimizer PolynomialLR ReduceLROnPlateau SequentialLR StepLR'"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"' '.join(filter(lambda x: x[0].isupper() and x[1].islower(), dir(lr_scheduler)))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"learn = TrainLearner(get_model(), dls, F.cross_entropy, lr=6e-3, cbs=[DeviceCB(), SingleBatchCB()])\n",
"learn.fit(1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'add_param_group defaults load_state_dict param_groups state state_dict step zero_grad'"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"opt = learn.opt\n",
"' '.join(o for o in dir(opt) if o[0]!='_')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"SGD (\n",
"Parameter Group 0\n",
" dampening: 0\n",
" differentiable: False\n",
" foreach: None\n",
" lr: 0.006\n",
" maximize: False\n",
" momentum: 0\n",
" nesterov: False\n",
" weight_decay: 0\n",
")"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"opt"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"param = next(iter(learn.model.parameters()))\n",
"st = opt.state[param]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'momentum_buffer': None}"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"st"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(opt.param_groups)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"pg = opt.param_groups[0]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['params',\n",
" 'lr',\n",
" 'momentum',\n",
" 'dampening',\n",
" 'weight_decay',\n",
" 'nesterov',\n",
" 'maximize',\n",
" 'foreach',\n",
" 'differentiable']"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list(pg)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sched = lr_scheduler.CosineAnnealingLR(opt, 100)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0.006]"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sched.base_lrs"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0.006]"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sched.get_last_lr()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def sched_lrs(sched, steps):\n",
" lrs = [sched.get_last_lr()]\n",
" for i in range(steps):\n",
" sched.optimizer.step()\n",
" sched.step()\n",
" lrs.append(sched.get_last_lr())\n",
" plt.plot(lrs)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sched_lrs(sched, 110)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Scheduler callbacks"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#|export\n",
"class BaseSchedCB(Callback):\n",
" def __init__(self, sched): self.sched = sched\n",
" def before_fit(self, learn): self.schedo = self.sched(learn.opt)\n",
" def _step(self, learn):\n",
" if learn.training: self.schedo.step()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#|export\n",
"class BatchSchedCB(BaseSchedCB):\n",
" def after_batch(self, learn): self._step(learn)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#|export\n",
"class HasLearnCB(Callback):\n",
" def before_fit(self, learn): self.learn = learn \n",
" def after_fit(self, learn): self.learn = None"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#|export\n",
"class RecorderCB(Callback):\n",
" def __init__(self, **d): self.d = d\n",
" def before_fit(self, learn):\n",
" self.recs = {k:[] for k in self.d}\n",
" self.pg = learn.opt.param_groups[0]\n",
" \n",
" def after_batch(self, learn):\n",
" if not learn.training: return\n",
" for k,v in self.d.items():\n",
" self.recs[k].append(v(self))\n",
"\n",
" def plot(self):\n",
" for k,v in self.recs.items():\n",
" plt.plot(v, label=k)\n",
" plt.legend()\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def _lr(cb): return cb.pg['lr']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"59"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(dls.train)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"tmax = 3 * len(dls.train)\n",
"sched = partial(lr_scheduler.CosineAnnealingLR, T_max=tmax)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" | accuracy | \n",
" loss | \n",
" epoch | \n",
" train | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0.809 | \n",
" 0.515 | \n",
" 0 | \n",
" train | \n",
"
\n",
" \n",
" | 0.858 | \n",
" 0.383 | \n",
" 0 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.881 | \n",
" 0.327 | \n",
" 1 | \n",
" train | \n",
"
\n",
" \n",
" | 0.874 | \n",
" 0.339 | \n",
" 1 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.898 | \n",
" 0.280 | \n",
" 2 | \n",
" train | \n",
"
\n",
" \n",
" | 0.883 | \n",
" 0.317 | \n",
" 2 | \n",
" eval | \n",
"
\n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"set_seed(42)\n",
"model = get_model(act_gr, norm=nn.BatchNorm2d).apply(iw)\n",
"rec = RecorderCB(lr=_lr)\n",
"xtra = [BatchSchedCB(sched),rec]\n",
"learn = TrainLearner(model, dls, F.cross_entropy, lr=2e-2, cbs=cbs+xtra, opt_func=optim.AdamW)\n",
"learn.fit(3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"rec.plot()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#|export\n",
"class EpochSchedCB(BaseSchedCB):\n",
" def after_epoch(self, learn): self._step(learn)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" | accuracy | \n",
" loss | \n",
" epoch | \n",
" train | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0.809 | \n",
" 0.517 | \n",
" 0 | \n",
" train | \n",
"
\n",
" \n",
" | 0.857 | \n",
" 0.382 | \n",
" 0 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.881 | \n",
" 0.327 | \n",
" 1 | \n",
" train | \n",
"
\n",
" \n",
" | 0.875 | \n",
" 0.339 | \n",
" 1 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.899 | \n",
" 0.275 | \n",
" 2 | \n",
" train | \n",
"
\n",
" \n",
" | 0.887 | \n",
" 0.307 | \n",
" 2 | \n",
" eval | \n",
"
\n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sched = partial(lr_scheduler.CosineAnnealingLR, T_max=3)\n",
"set_seed(42)\n",
"xtra = [EpochSchedCB(sched),rec]\n",
"model = get_model(act_gr, norm=nn.BatchNorm2d).apply(iw)\n",
"learn = TrainLearner(model, dls, F.cross_entropy, lr=2e-2, cbs=cbs+xtra, opt_func=optim.AdamW)\n",
"learn.fit(3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"rec.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1cycle training"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[Paper](https://arxiv.org/abs/1803.09820) by Leslie Smith."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def _beta1(cb): return cb.pg['betas'][0]\n",
"rec = RecorderCB(lr=_lr, mom=_beta1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" | accuracy | \n",
" loss | \n",
" epoch | \n",
" train | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0.765 | \n",
" 0.662 | \n",
" 0 | \n",
" train | \n",
"
\n",
" \n",
" | 0.822 | \n",
" 0.546 | \n",
" 0 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.862 | \n",
" 0.376 | \n",
" 1 | \n",
" train | \n",
"
\n",
" \n",
" | 0.856 | \n",
" 0.413 | \n",
" 1 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.888 | \n",
" 0.304 | \n",
" 2 | \n",
" train | \n",
"
\n",
" \n",
" | 0.879 | \n",
" 0.333 | \n",
" 2 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.904 | \n",
" 0.257 | \n",
" 3 | \n",
" train | \n",
"
\n",
" \n",
" | 0.901 | \n",
" 0.279 | \n",
" 3 | \n",
" eval | \n",
"
\n",
" \n",
" | 0.924 | \n",
" 0.210 | \n",
" 4 | \n",
" train | \n",
"
\n",
" \n",
" | 0.906 | \n",
" 0.267 | \n",
" 4 | \n",
" eval | \n",
"
\n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"set_seed(42)\n",
"lr,epochs = 6e-2,5\n",
"model = get_model(act_gr, norm=nn.BatchNorm2d).apply(iw)\n",
"tmax = epochs * len(dls.train)\n",
"sched = partial(lr_scheduler.OneCycleLR, max_lr=lr, total_steps=tmax)\n",
"xtra = [BatchSchedCB(sched), rec]\n",
"learn = TrainLearner(model, dls, F.cross_entropy, lr=lr, cbs=cbs+xtra, opt_func=optim.AdamW)\n",
"learn.fit(epochs)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"rec.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Export -"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import nbdev; nbdev.nbdev_export()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"jupytext": {
"split_at_heading": true
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}