{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# CIFAR-10 Darknet" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "%reload_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Download" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CIFAR-10 dataset website: https://www.cs.toronto.edu/~kriz/cifar.html\n", "\n", "Direct download link for CIFAR-10 dataset in PNG format (instead of raw Python pickle format): http://files.fast.ai/data/cifar10.tgz" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[#380821 144MiB/160MiB(90%) CN:3 DL:\u001b[32m22MiB\u001b[0m]\u001b[0m \n", "07/06 16:19:14 [\u001b[1;32mNOTICE\u001b[0m] Download complete: data//cifar10.tgz\n", "\n", "Download Results:\n", "gid |stat|avg speed |path/URI\n", "======+====+===========+=======================================================\n", "380821|\u001b[1;32mOK\u001b[0m | 22MiB/s|data//cifar10.tgz\n", "\n", "Status Legend:\n", "(OK):download completed.\n" ] } ], "source": [ "!aria2c --file-allocation=none -c -x 5 -s 5 -d data/ http://files.fast.ai/data/cifar10.tgz" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "!tar -xzf data/cifar10.tgz --directory data/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Setup directory and file paths**" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [], "source": [ "from fastai.conv_learner import *\n", "\n", "PATH = Path('data/cifar10/')\n", "os.makedirs(PATH, exist_ok=True)\n", "torch.cuda.set_device(0)" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [], "source": [ "# My own codes for cutting down the training duration from ~3 hr to ~1hr\n", "torch.backends.cudnn.benchmark = True" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute CIFAR10 dataset stats" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./cifar10/cifar-10-python.tar.gz\n", "[0.4914 0.48216 0.44653]\n", "[0.24703 0.24349 0.26159]\n" ] } ], "source": [ "import torchvision.transforms as transforms\n", "\n", "# ToTensor() converts image, whose elements ar in the range 0-255 to 0-1\n", "train_transform = transforms.Compose([transforms.ToTensor()])\n", "train_set = torchvision.datasets.CIFAR10(root='./cifar10', train=True, download=True, transform=train_transform)\n", "# train_set.train_data returns numpy ndarray\n", "# train_set.train_data.shape returns (50000, 32, 32, 3)\n", "print(train_set.train_data.mean(axis=(0, 1, 2)) / 255)\n", "print(train_set.train_data.std(axis=(0, 1, 2)) / 255)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "%rm -rf cifar10/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Build a network from scratch" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [], "source": [ "classes = ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n", "\n", "# these numbers are the averages and standard deviations for each channel in CIFAR10\n", "stats = (np.array([ 0.4914 , 0.48216, 0.44653]), np.array([ 0.24703, 0.24349, 0.26159]))\n", "\n", "num_workers = num_cpus() // 2 # num cpus returns 4\n", "bs = 256\n", "sz = 32" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [], "source": [ "tfms = tfms_from_stats(stats, sz, aug_tfms=[RandomFlip()], pad=sz // 8)\n", "data = ImageClassifierData.from_paths(PATH, val_name='test', tfms=tfms, bs=bs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Architecture" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [], "source": [ "def conv_layer(ni, nf, ks=3, stride=1):\n", " return nn.Sequential(\n", " nn.Conv2d(in_channels=ni, out_channels=nf, kernel_size=ks, bias=False, stride=stride, padding=ks // 2),\n", " nn.BatchNorm2d(num_features=nf, momentum=0.01),\n", " nn.LeakyReLU(negative_slope=0.1, inplace=True)\n", " )" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [], "source": [ "class ResLayer(nn.Module):\n", " def __init__(self, ni):\n", " super().__init__()\n", " self.conv1 = conv_layer(ni, ni // 2, ks=1)\n", " self.conv2 = conv_layer(ni // 2, ni, ks=3)\n", " \n", " def forward(self, x):\n", " # Received error:\n", " # \"RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation\"\n", " # Others facing this problem: http://forums.fast.ai/t/part-2-lesson-12-wiki/15023/175?u=cedric\n", " #\n", " # Jeremy suspect if it only works on Pytorch 0.4:\n", " # http://forums.fast.ai/t/part-2-lesson-12-wiki/15023/176?u=cedric\n", " #\n", " # Disabled for now and replaced with the next line below which does it non in-place.\n", " # return x.add_(self.conv2(self.conv1(x)))\n", " return x.add(self.conv2(self.conv1(x)))" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [], "source": [ "class Darknet(nn.Module):\n", " def make_group_layer(self, ch_in, num_blocks, stride=1):\n", " return [conv_layer(ch_in, ch_in * 2, stride=stride)\n", " ] + [(ResLayer(ch_in * 2)) for i in range(num_blocks)]\n", " \n", " def __init__(self, num_blocks, num_classes, nf=32):\n", " super().__init__()\n", " layers = [conv_layer(3, nf, ks=3, stride=1)]\n", " for i, nb in enumerate(num_blocks):\n", " layers += self.make_group_layer(nf, nb, stride=2 - (i == 1))\n", " nf *= 2\n", " layers += [nn.AdaptiveAvgPool2d(1), Flatten(), nn.Linear(nf, num_classes)]\n", " self.layers = nn.Sequential(*layers)\n", "\n", " def forward(self, x):\n", " return self.layers(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Define `Darknet`**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create 5 group layers: the first one will contain 1 extra ResLayer, the second will contain 2, then 4, 6, 3 and we want to start with 32 filters. The first one of ResLayers will contain 32 filters, and there’ll just be one extra ResLayer. The second one, it’s going to double the number of filters because that’s what we do each time we have a new group layer. So the second one will have 64, and then 128, 256, 512 and that’ll be it. Nearly all of the network is going to be those bunches of layers and remember, every one of those group layers also has one convolution at the start. So then all we have is before that all happens, we are going to have one convolutional layer at the very start, and at the very end we are going to do our standard adaptive average pooling, flatten, and a linear layer to create the number of classes out at the end." ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [], "source": [ "m = Darknet([1, 2, 4, 6, 3], num_classes=10, nf=32)\n", "# m = nn.DataParallel(m, [1, 2, 3]) # disabled for single GPU" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Train the model**" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [], "source": [ "lr = 1.3" ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [], "source": [ "learn = ConvLearner.from_model_data(m, data)\n", "learn.crit = nn.CrossEntropyLoss()\n", "learn.metrics = [accuracy]\n", "wd = 1e-4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fit the model and time it" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e1431d2da8a9430faae38a8febf46444", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(IntProgress(value=0, description='Epoch', max=30), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "epoch trn_loss val_loss accuracy \n", " 0 2.121895 3.889506 0.2192 \n", " 1 1.833416 2.600925 0.145 \n", " 99%|█████████▉| 194/196 [06:16<00:03, 1.94s/it, loss=1.67]" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n", "\u001b[0;32m~/fastai/courses/dl2/fastai/learner.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, lrs, n_cycle, wds, **kwargs)\u001b[0m\n\u001b[1;32m 285\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msched\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[0mlayer_opt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_layer_opt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlrs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 287\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit_gen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlayer_opt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_cycle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 288\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 289\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwarm_up\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwds\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/fastai/courses/dl2/fastai/learner.py\u001b[0m in \u001b[0;36mfit_gen\u001b[0;34m(self, model, data, layer_opt, n_cycle, cycle_len, cycle_mult, cycle_save_name, best_save_name, use_clr, use_clr_beta, metrics, callbacks, use_wd_sched, norm_wds, wds_sched_mult, use_swa, swa_start, swa_eval_freq, **kwargs)\u001b[0m\n\u001b[1;32m 232\u001b[0m \u001b[0mmetrics\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmetrics\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreg_fn\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreg_fn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mclip\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclip\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfp16\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp16\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 233\u001b[0m \u001b[0mswa_model\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswa_model\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0muse_swa\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mswa_start\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mswa_start\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 234\u001b[0;31m swa_eval_freq=swa_eval_freq, **kwargs)\n\u001b[0m\u001b[1;32m 235\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 236\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_layer_groups\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodels\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_layer_groups\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/fastai/courses/dl2/fastai/model.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(model, data, n_epochs, opt, crit, metrics, callbacks, stepper, swa_model, swa_start, swa_eval_freq, **kwargs)\u001b[0m\n\u001b[1;32m 138\u001b[0m \u001b[0mbatch_num\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcb\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mcb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_batch_begin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 140\u001b[0;31m \u001b[0mloss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel_stepper\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mV\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mV\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepoch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 141\u001b[0m \u001b[0mavg_loss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mavg_loss\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mavg_mom\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mloss\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mavg_mom\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 142\u001b[0m \u001b[0mdebias_loss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mavg_loss\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mavg_mom\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mbatch_num\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/fastai/courses/dl2/fastai/model.py\u001b[0m in \u001b[0;36mstep\u001b[0;34m(self, xs, y, epoch)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloss_scale\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32massert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp16\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0mloss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloss_scale\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreg_fn\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mloss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreg_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxtra\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mraw_loss\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 57\u001b[0;31m \u001b[0mloss\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 58\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp16\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mupdate_fp32_grads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp32_params\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mm\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloss_scale\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/autograd/variable.py\u001b[0m in \u001b[0;36mbackward\u001b[0;34m(self, gradient, retain_graph, create_graph, retain_variables)\u001b[0m\n\u001b[1;32m 165\u001b[0m \u001b[0mVariable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 166\u001b[0m \"\"\"\n\u001b[0;32m--> 167\u001b[0;31m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mautograd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgradient\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mretain_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcreate_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mretain_variables\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 168\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 169\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mregister_hook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhook\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/autograd/__init__.py\u001b[0m in \u001b[0;36mbackward\u001b[0;34m(variables, grad_variables, retain_graph, create_graph, retain_variables)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m Variable._execution_engine.run_backward(\n\u001b[0;32m---> 99\u001b[0;31m variables, grad_variables, retain_graph)\n\u001b[0m\u001b[1;32m 100\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "# before torch.backends.cudnn.benchmark = True\n", "%time learn.fit(lr, 1, wds=wd, cycle_len=30, use_clr_beta=(20, 20, 0.95, 0.85))" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0c009e7c6c194d79947160ff1ad840e3", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(IntProgress(value=0, description='Epoch', max=30), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "epoch trn_loss val_loss accuracy \n", " 0 2.273209 3.089595 0.1342 \n", " 1 1.943588 2.079482 0.203 \n", " 2 1.776733 2.449777 0.1387 \n", " 3 1.633869 1.856296 0.3322 \n", " 4 1.516814 1.788031 0.3439 \n", " 5 1.384691 1.658907 0.4009 \n", " 6 1.215425 1.329689 0.523 \n", " 7 1.045645 1.808462 0.4049 \n", " 8 0.944703 1.199622 0.5684 \n", " 9 0.861089 1.152094 0.5983 \n", " 10 0.768517 1.26957 0.5655 \n", " 11 0.715325 1.065744 0.6576 \n", " 12 0.679374 0.895768 0.6918 \n", " 13 0.628235 1.363744 0.5982 \n", " 14 0.611679 1.07958 0.6316 \n", " 15 0.575896 1.165053 0.6142 \n", " 16 0.547221 0.853739 0.7128 \n", " 17 0.510849 0.757642 0.7432 \n", " 18 0.50825 0.651673 0.7792 \n", " 19 0.468146 0.896297 0.6905 \n", " 20 0.434183 0.882692 0.7072 \n", " 21 0.394144 0.707379 0.7618 \n", " 22 0.342838 0.472685 0.8353 \n", " 23 0.287789 0.465744 0.8417 \n", " 24 0.243499 0.375864 0.8719 \n", " 25 0.214729 0.339046 0.8879 \n", " 26 0.193691 0.417216 0.8659 \n", " 27 0.171616 0.294998 0.9032 \n", " 28 0.153442 0.283025 0.908 \n", " 29 0.136805 0.281036 0.911 \n", "CPU times: user 57min 53s, sys: 8min 41s, total: 1h 6min 35s\n", "Wall time: 52min 38s\n" ] }, { "data": { "text/plain": [ "[array([0.28104]), 0.911]" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# after torch.backends.cudnn.benchmark = True\n", "%time learn.fit(lr, 1, wds=wd, cycle_len=30, use_clr_beta=(20, 20, 0.95, 0.85))\n", "# note-to-self:\n", "# a better name for cycle_len -> num_epochs_per_cycle\n", "# The cycle_len parameter governs how long we're going to ride that cosine curve as we decrease the learning rate.\n", "# Cycles are measured in epochs, so cycle_len=1 by itself would mean to continually decrease the learning rate over\n", "# the course of one epoch, and then jump it back up. The cycle_mult parameter says to multiply the length of a cycle\n", "# by something as soon as you finish one.\n", "# So, here we're going to do 1 cycle, of lengths (in epochs): 30. So, 30 epochs in total,\n", "# but our SGDR (not cosine LR because we're using CLR) no restarts." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ================================== START DEBUG ==================================\n", "\n", "#### Find Learning Rate" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "48edb7cd1a0444fc87463e502a3d5b77", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ " 93%|█████████▎| 183/196 [01:31<00:06, 2.01it/s, loss=0.521]" ] } ], "source": [ "learn.lr_find()" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "learn.sched.plot()" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "learn.sched.plot_lr()" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "learn.sched.plot(0, 20)" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b2e250544b994a9eacd58ada049adf64", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ " 48%|████▊ | 95/196 [01:06<01:10, 1.43it/s, loss=0.529]" ] } ], "source": [ "learn.lr_find2()" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "learn.sched.plot(0, 85, smoothed=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ================================== END DEBUG ==================================" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Experiment with different learning rate" ] }, { "cell_type": "code", "execution_count": 125, "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "26e1a3fc078448a792d017ce22426584", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(IntProgress(value=0, description='Epoch', max=30), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "epoch trn_loss val_loss accuracy \n", " 0 2.35064 2.318816 0.1 \n", " 1 2.313356 2.311985 0.1072 \n", " 2 2.277475 2.283653 0.141 \n", " 3 2.252725 2.246049 0.1651 \n", " 4 2.228495 2.219853 0.1795 \n", " 14%|█▍ | 27/196 [00:14<01:30, 1.86it/s, loss=2.22]" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n", "\u001b[0;32m~/fastai/courses/dl2/fastai/learner.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, lrs, n_cycle, wds, **kwargs)\u001b[0m\n\u001b[1;32m 285\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msched\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[0mlayer_opt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_layer_opt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlrs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 287\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit_gen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlayer_opt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_cycle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 288\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 289\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwarm_up\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwds\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/fastai/courses/dl2/fastai/learner.py\u001b[0m in \u001b[0;36mfit_gen\u001b[0;34m(self, model, data, layer_opt, n_cycle, cycle_len, cycle_mult, cycle_save_name, best_save_name, use_clr, use_clr_beta, metrics, callbacks, use_wd_sched, norm_wds, wds_sched_mult, use_swa, swa_start, swa_eval_freq, **kwargs)\u001b[0m\n\u001b[1;32m 232\u001b[0m \u001b[0mmetrics\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmetrics\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreg_fn\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreg_fn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mclip\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclip\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfp16\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp16\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 233\u001b[0m \u001b[0mswa_model\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswa_model\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0muse_swa\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mswa_start\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mswa_start\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 234\u001b[0;31m swa_eval_freq=swa_eval_freq, **kwargs)\n\u001b[0m\u001b[1;32m 235\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 236\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_layer_groups\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodels\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_layer_groups\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/fastai/courses/dl2/fastai/model.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(model, data, n_epochs, opt, crit, metrics, callbacks, stepper, swa_model, swa_start, swa_eval_freq, **kwargs)\u001b[0m\n\u001b[1;32m 138\u001b[0m \u001b[0mbatch_num\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcb\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mcb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_batch_begin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 140\u001b[0;31m \u001b[0mloss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel_stepper\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mV\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mV\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepoch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 141\u001b[0m \u001b[0mavg_loss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mavg_loss\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mavg_mom\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mloss\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mavg_mom\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 142\u001b[0m \u001b[0mdebias_loss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mavg_loss\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mavg_mom\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mbatch_num\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/fastai/courses/dl2/fastai/model.py\u001b[0m in \u001b[0;36mstep\u001b[0;34m(self, xs, y, epoch)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloss_scale\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32massert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp16\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0mloss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloss_scale\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreg_fn\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mloss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreg_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxtra\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mraw_loss\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 57\u001b[0;31m \u001b[0mloss\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 58\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp16\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mupdate_fp32_grads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp32_params\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mm\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloss_scale\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/autograd/variable.py\u001b[0m in \u001b[0;36mbackward\u001b[0;34m(self, gradient, retain_graph, create_graph, retain_variables)\u001b[0m\n\u001b[1;32m 165\u001b[0m \u001b[0mVariable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 166\u001b[0m \"\"\"\n\u001b[0;32m--> 167\u001b[0;31m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mautograd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgradient\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mretain_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcreate_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mretain_variables\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 168\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 169\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mregister_hook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhook\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/autograd/__init__.py\u001b[0m in \u001b[0;36mbackward\u001b[0;34m(variables, grad_variables, retain_graph, create_graph, retain_variables)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m Variable._execution_engine.run_backward(\n\u001b[0;32m---> 99\u001b[0;31m variables, grad_variables, retain_graph)\n\u001b[0m\u001b[1;32m 100\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "lr = 1.75e-5\n", "%time learn.fit(lr, 1, wds=wd, cycle_len=30, use_clr_beta=(20, 20, 0.95, 0.85))" ] }, { "cell_type": "code", "execution_count": 128, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ffe4a22f443340b2844bab21da32a684", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(IntProgress(value=0, description='Epoch', max=30), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "epoch trn_loss val_loss accuracy \n", " 0 1.885113 2.382229 0.1 \n", " 1 1.563582 2.904207 0.1165 \n", " 2 1.370303 1.344049 0.5285 \n", " 3 1.202677 1.370056 0.5243 \n", " 4 1.106625 1.159941 0.5755 \n", " 5 1.0138 1.018526 0.6401 \n", " 6 0.944485 1.073753 0.6367 \n", " 7 0.871943 1.083816 0.6317 \n", " 8 0.827627 1.069024 0.6304 \n", " 9 0.79562 0.862613 0.6942 \n", " 10 0.747476 0.837587 0.7117 \n", " 11 0.703309 0.772034 0.7273 \n", " 12 0.672228 0.822387 0.7172 \n", " 13 0.631399 0.746245 0.7452 \n", " 14 0.595418 0.722072 0.7518 \n", " 15 0.562507 0.7937 0.7324 \n", " 16 0.532592 0.697391 0.7648 \n", " 17 0.521908 0.673137 0.7674 \n", " 18 0.478348 0.57928 0.7995 \n", " 19 0.463415 0.574918 0.8054 \n", " 20 0.423702 0.566404 0.8107 \n", " 21 0.408435 0.560283 0.8141 \n", " 22 0.385365 0.520602 0.8237 \n", " 23 0.347461 0.503538 0.8285 \n", " 24 0.327953 0.494226 0.8309 \n", " 25 0.324428 0.495891 0.8317 \n", " 26 0.314827 0.491033 0.836 \n", " 27 0.312408 0.485812 0.8355 \n", " 28 0.307704 0.486351 0.8383 \n", " 29 0.300459 0.483517 0.8374 \n", "CPU times: user 57min 50s, sys: 8min 39s, total: 1h 6min 29s\n", "Wall time: 52min 28s\n" ] }, { "data": { "text/plain": [ "[array([0.48352]), 0.8374]" ] }, "execution_count": 128, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lr = 2e-3\n", "%time learn.fit(lr, 1, wds=wd, cycle_len=30, use_clr_beta=(20, 20, 0.95, 0.85))" ] }, { "cell_type": "code", "execution_count": 129, "metadata": {}, "outputs": [], "source": [ "# My own code for testing\n", "\n", "def get_TTA_accuracy(learn):\n", " preds, targs = learn.TTA()\n", " # combining the predictions across augmented and non augmented inputs\n", " preds = 0.6 * preds[0] + 0.4 * preds[1:].sum(0)\n", " return accuracy_np(preds, targs)" ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " \r" ] }, { "data": { "text/plain": [ "0.8516" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_TTA_accuracy(learn)" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAD8CAYAAAB9y7/cAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAHvRJREFUeJzt3Xl8VdW99/HPLwMhkAFCQgIGSKKRSVEhgorQPs7i0NaiV62teq201mtr7X36KF6neivU9vqyaq9DtXaytVqrFxUFLNY6AYZJZogQIMwQEgKBTGc9f5xNbgIZ4ST7DN/365VX9l575Zzf0sM3O2tP5pxDRESiT5zfBYiISNdQwIuIRCkFvIhIlFLAi4hEKQW8iEiUUsCLiEQpBbyISJRSwIuIRKl2A97MBpnZ+2a2ysxWmNkPWujzZTOrNLMl3tf9XVOuiIh0VEIH+tQDP3LOLTKzVGChmc1xzq08ot+HzrnLO/rGmZmZLi8vrxOliojIwoULdzvnsjrSt92Ad85tA7Z5y1Vmtgo4ATgy4DslLy+P4uLi43kJEZGYY2YbO9q3U3PwZpYHnAHMb2Hz2Wa21MzeMbORrfz8FDMrNrPiXbt2deatRUSkkzoc8GaWArwG3Omc23fE5kXAEOfcacCTwBstvYZz7jnnXJFzrigrq0N/YYiIyDHqUMCbWSLBcH/JOfe3I7c75/Y55/Z7yzOBRDPLDGmlIiLSKR05i8aAF4BVzrnHWumT4/XDzMZ6r7snlIWKiEjndOQsmvHAN4FlZrbEa5sKDAZwzj0DTAZuM7N64CBwrdON5kVEfNWRs2g+AqydPk8BT4WqKBEROX66klVEJEpFXMDvqqph2jurCAQ0AyQi0paIC/jXF5fx7AfrWbhpr9+liIiEtYgL+IknB8+f37HvkM+ViIiEt4gL+MyUJAB2V9X4XImISHiLuIDv26sH8XHGrv0KeBGRtkRcwMfHGTlpPdlaoSkaEZG2RFzAA+T2TaZsb7XfZYiIhLUIDfhebC4/6HcZIiJhLSID/sT+vdm+7xCV1XV+lyIiErYiMuBPy+0DwILScp8rEREJXxEZ8GPzM0hPTmTWiu1+lyIiErYiMuAT4+OYeHIW/1izU7csEBFpRUQGPMB5w7LYvb+WZVsq/S5FRCQsRWzAn3tS8JYF8zfouSIiIi2J2IDPSk0ir18vFmzQTcdERFoSsQEPcGZeBsUbyzUPLyLSgsgO+PwMKqrrKNm13+9SRETCTkQH/Ni8DAA+0/nwIiJHieiAH9KvF1mpSXy2QQEvInKkiA54M2PM4L4s3lzhdykiImEnogMe4PTBfdi4p5ryA7V+lyIiElYiPuDPGBS8L81S7cWLiDQT8QF/am468XHGYj2EW0SkmYgP+F49EhiancqiTdqDFxFpKuIDHuC0Qeks21KJc7rgSUTksKgI+JED06k8WMeWCj3lSUTksKgI+BED0wBYuXWfz5WIiISPqAj4k/qnAOiWBSIiTURFwKf1TCQnrSclOxTwIiKHRUXAAxRmp2gPXkSkiagJ+BOzUijZuV+3DhYR8URNwJ+cnUp1bQNle3UmjYgIRFHADx+QCsCq7TqTRkQEoijgh+akYgartingRUQgigK+V48E8vr1ZvW2Kr9LEREJC1ET8BCcplmtKRoREaADAW9mg8zsfTNbZWYrzOwHLfQxM3vCzErM7HMzG9015bZtWE4aG8urOVBT78fbi4iElY7swdcDP3LODQfOAm43sxFH9LkUKPS+pgBPh7TKDho+IA3nYM0OTdOIiLQb8M65bc65Rd5yFbAKOOGIbl8Bfu+C5gF9zGxAyKttx0jvnjSf6+EfIiKdm4M3szzgDGD+EZtOADY3WS/j6F8CXW5gn2Sy05L4vKyyu99aRCTsdDjgzSwFeA240zl35JFMa+FHjrqk1MymmFmxmRXv2rWrc5V20MnZqazbqVsWiIh0KODNLJFguL/knPtbC13KgEFN1nOBrUd2cs4955wrcs4VZWVlHUu97Srsn6pbFoiI0LGzaAx4AVjlnHuslW4zgG95Z9OcBVQ657aFsM4OK8xO4WBdgx7+ISIxL6EDfcYD3wSWmdkSr20qMBjAOfcMMBOYBJQA1cDNoS+1Ywq9e8Ov21nFoIxefpUhIuK7dgPeOfcRLc+xN+3jgNtDVdTxODnHuyfNtirOG5btczUiIv6JqitZIfjwj9y+yazernPhRSS2RV3AQ3CaZp0udhKRGBeVAT80J40vdu3nYG2D36WIiPgmKgN+bH5f6hocizfv9bsUERHfRGXAjxmSgRnMX1/udykiIr6JyoBPT05kxIA05m/Y43cpIiK+icqABxiX34/Fmyqoqdc8vIjEpugN+IIMauoDLN2sG4+JSGyK2oAfm5cBwPz1mqYRkdgUtQHft3cPhuWkMn+DDrSKSGyK2oAHGJefwcKNe6lrCPhdiohIt4vqgB+b34+DdQ0s26J5eBGJPVEe8Ifn4TVNIyKxJ6oDPis1iROzeut8eBGJSVEd8ADjCvpRXLqXes3Di0iMif6Az89gf009K7cd+RhZEZHoFvUBf1ZBP0Dz8CISe6I+4LPTepKf2Zt5uuBJRGJM1Ac8wDkn9mPe+j26L42IxJSYCPgLhmdzoLaB1xZu8bsUEZFuExMBf25hJgB/Kd7scyUiIt0nJgI+MT6OOy8oZOnmCrZXHvK7HBGRbhETAQ9w+aiBAMxasd3nSkREukfMBPxJ/VMo7J/CO8u3+V2KiEi3iJmAB7jklBwWbChnz/4av0sREelyMRfwAQezV+7wuxQRkS4XUwE/YkAagzN6MVvz8CISA2Iq4M2Mi0Zk81HJbk3TiEjUi6mAB/j6mFzqGhy/ev8Lv0sREelSMRfwwwekAcHTJZ1zPlcjItJ1Yi7gAR675jS2VBzkg7W7/C5FRKTLxGTAXz5qIP1Tk5g2c7XfpYiIdJmYDPgeCXFcN3Ywa3ZUMXOZLnwSkegUkwEPcMuEfABe/HiDz5WIiHSNmA34tJ6JTJ00jM9K9/Kq7jIpIlEoZgMe4KrRuQD8379+rjNqRCTqxHTAZ6YkUTSkLwCrt1f5XI2ISGjFdMADPH3DGOLjjP+avdbvUkREQqrdgDez35jZTjNb3sr2L5tZpZkt8b7uD32ZXScrNYmvnD6Q91bt4JOS3X6XIyISMh3Zg/8tcEk7fT50zp3uff3k+MvqXg9eOTL4/c0VPlciIhI67Qa8c+6fQHk31OKbtJ6JXDIyh7U79rNq2z6/yxERCYlQzcGfbWZLzewdMxsZotfsVo9cdSoAD8zQXryIRIeEELzGImCIc26/mU0C3gAKW+poZlOAKQCDBw8OwVuHTkbvHgAs2FBOfUOAhPiYP/4sIhHuuFPMObfPObffW54JJJpZZit9n3POFTnnirKyso73rUPuvstHALBoU4XPlYiIHL/jDngzyzEz85bHeq+553hf1w+TxwQvfLrm2U+prQ/4XI2IyPHpyGmSfwY+BYaaWZmZ3WJm3zWz73pdJgPLzWwp8ARwrYvQy0LTkxP55llDAHj8PZ0XLyKRzfzK4qKiIldcXOzLe7clEHAUTJ0JwNr/vJQeCZqLF5HwYWYLnXNFHemr9DpCXJzx/y4ZBsC/PPepz9WIiBw7BXwLpkwsAGDxpgre0f3iRSRCKeBbEB9nvHvnBAB++MoSDtTU+1yRiEjnKeBbMSwnjdduO4dDdQF+/eF6v8sREek0BXwbxgzpywXDs3n8vXXk3f223+WIiHSKAr4d93sXPwG626SIRBQFfDsG9+vF/KnnA3D98/OpOlTnc0UiIh2jgO+A7LSe3Dw+D4Bzps/1txgRkQ5SwHfQA1cEb5JZdaiezeXVPlcjItI+BXwnfHrPeQBMePR9GgIReTcGEYkhCvhOGJCeTEpS8A7LJ06dSUAhLyJhTAHfSYvvv7BxuWDqTPbrIigRCVMK+E5KjI9j/SOTGtdPeWAW9Q26tbCIhB8F/DGIizNKp1/G10cH7x8/d/VOnysSETmaAv44/Ozrp5KdlsSfF2zyuxQRkaMo4I9DQnwcV43O5YO1uyjbq1MnRSS8KOCP0/VjB9MjIY7b/7SYmvoGv8sREWmkgD9OgzJ68eOLh7F0cwW3v7TY73JERBop4EPgX8/NpyCrN++t2sHsFdv9LkdEBFDAh8wzN4wB0L3jRSRsKOBD5OTsVL7zpQI+K93L3xaV+V2OiIgCPpRunRB8lutdryzlYK0OuIqIvxTwIZSZksTPJ48C4Bez1/hcjYjEOgV8iE0ek8vIgWm88NEGlm+p9LscEYlhCvgQMzMeujJ47/jLn/yILRUHfa5IRGKVAr4LFOVlcPqgPgCMnz6XDbsP+FyRiMQiBXwXeeP28ZyWmw7ADc/P97kaEYlFCvgu9DPvgOuWioPk3f02P3plKc7pISEi0j0U8F1oWE4an917QeP6a4vKyL9nJp+VlvtYlYjECgV8F8tKTWLDtElcP25wY9vVz3xK3t1vs61SB2BFpOso4LuBmfHI106ldPplfP+8kxrbz542l0N1uiBKRLqGAr6b3XXRUEqnX9a4Puy+dzUvLyJdQgHvk0X3/e/Du/PvmeljJSISrRTwPsno3YOl91/UuH73a5/7WI2IRCMFvI/SeyVS8tNLAXj5s828NH+jzxWJSDRRwPssIT6O2T+cCMC9ry9n5rJtPlckItFCAR8GTs5O5dlvBh8Ycv//rNCZNSISEgr4MHHxyBz+dOs4du+vYdh97/L4e2vJu/ttfvdJqd+liUiEajfgzew3ZrbTzJa3st3M7AkzKzGzz81sdOjLjA1nF/RrXH78vXUAPDBjBQ+/tdKvkkQkgnVkD/63wCVtbL8UKPS+pgBPH39ZscnMKJ1+GTePzwPg1gn5ALzw0Qb++x8lPlYmIpGo3YB3zv0TaOvmKV8Bfu+C5gF9zGxAqAqMRQ9cMZLS6Zdx72Uj+P75hQA8+u4aPQZQRDolFHPwJwCbm6yXeW0SAnddeHLjAdifzlzJzn2HfK5IRCJFQghew1poa/HaezObQnAah8GDB7fURVpw8cgcRuWm88d5m/jjvE0MTO/JtycUcOM5ecTHtfSfX0QkNHvwZcCgJuu5wNaWOjrnnnPOFTnnirKyskLw1rHj55NPa1zeWnmIn7y1khOnzuSTL3b7WJWIhLNQBPwM4Fve2TRnAZXOOV2tE2JDc1IpnX4Zyx+6uFn79b+ez7SZq/SAbxE5irV3J0Mz+zPwZSAT2AE8ACQCOOeeMTMDniJ4pk01cLNzrri9Ny4qKnLFxe12kzb89uMNPPhm81MoF9x7Pv1Te/pUkYh0NTNb6Jwr6lBfv25Vq4APjYUby/n60582a7umKJdHm0zpiEj06EzAh+Igq/hozJCMxvvLv7NsG7e9tIhXissYmpPGLefm+1ydiPhJe/BRZvmWSi5/8qPmbQ9dTEqSfpeLRIPO7MHrXjRR5pQT0huvhG1se2CWzp8XiUHag49SWysOMnvFdv66qIzlW/Y1tk8ozOQPt4zzsTIROR7agxcG9knmpvH5vHXHBFKbTM98uG43y8p0SqVILNAefIyorQ/weVkFk58JnnEzLCeVt+44l4R4/Y4XiSTag5ej9EiIoygvg3snDQdg9fYqfvTqUmrrA+yvqfe5OhHpCtqDj0EtnWkDwbNtkhLiSNRevUjY0oVO0q59h+oY9eDsVrf/8ZZxnFuY2Y0ViUhHKOClUyqqazn9J3OOav/Tt8eRmZpEYf8UgnekEBG/KeCl0w7U1HOoroEP1u5i9fYqnvvn+sZtqT0TWHr/RcTp1sQivtNBVum03kkJ9EtJ4qrRuUydNJyLRmQ3bqs6VM+df1niY3Uicix0/bq06LlvFbFxzwEG9kmm8N53mLF0Kwdq6vnxJcPI7ZtM7yNufbBj3yH6pyZpKkckjGiKRtq1q6qGM3/6Xrv97rrw5MZnyIpI19AUjYRUVmoSc344keTE+Db7PTZnLdW1OqdeJFxoD146ra4hQH2D47//UUKfXj14+K2VfOdLBTz7wXq+dHIWD145kn+s2clVo3NJSUrQc2NFQkhn0Ui3c86Rf8/MVrd/cvd5LN1cwcSTs46avxeRjtMUjXQ7M+OtO85tXP/q6QObbT9n+lxue2kRIx+YxZLNFd1dnkhM0h68dJnKg3XU1gdaPUC7YdoknXUj0kmaopGwVFPfwND/eLdZ2+GHhB/+HCrwRdqmgJewFQg41u8+wAWPfdDi9nn3nE9Oes9urkokcijgJewFAo6Cqa0flAV48rozuOK0gW32EYk1CniJGL96v4QFG8qZMrGAxZv28ovZa4/qM6Ewk2duGKOzb0RQwEuEW7ejio9LdvPgmyubtV91xglU1dSTlZrEI1871afqRPylgJeosH7Xfh5/bx0zlm5ttc+ZeX25umgQ1xQN6sbKRPyjgJeo4pxjzsodPDZnLau3V7XY5+lvjObSUwd0c2Ui3U8BL1EtEHC8tGATKUnx/GLWWrZUHGzc1qdXIhMKs3jyujOorq0nMT6Og3UNpPVM9LFikdBRwEtM+cWsNTz1fkm7/ZY/dDEpOlArEU63KpCY8u8XD2XDtElkpyWRlND6R/r0h2YzZ+WObqxMxF/ag5eoFQg4Fm3aS35mbz5ct7vZU6m+eGSS7nIpEUlTNCItWLVtH5f+8sPG9V9eezq//aSUxZsqmFCYye9uHosDBb+ENQW8SCsCAceDb67g959ubLPfq989mzPzMrqpKpGO0xy8SCvi4oyffOUUZt05EYDkxHjeu2viUf2ufuZT8u5+m5tfXEBDwJ+dIJHjpT14kSYqq+t4Y8kWHpixoln7tKtOJTE+jq+ePpCEeO0XiX80RSNyHJxzvL1sGwPSk/n605+02z89OZHF911InObupRtoikbkOJgZl48ayJghffnikUlcP25wm/0rD9ZRMHUm//7qUuobAt1UpUj7tAcv0gl1DQE2lVfzxc79pCUncmZeBiPuf5ea+ubBvvSBi0hP1tWzEnqaohHpZpUH6zjtodnN2gZn9OKZG8Yw7Z1V1NYHeHnKWS0+sco5pydZSYeFPODN7BLgl0A88LxzbvoR228Cfg5s8Zqecs4939ZrKuAlGrX0WMKm5k89n+y0nvxh3kauGDWAK5/6mE3l1fzi6tNIT06ktj7AZaN00zRpXUgD3szigbXAhUAZ8BlwnXNuZZM+NwFFzrl/62iRCniJZjv2HeLBGSt4Z/l2RgxIY+W2fR3+2a+dcQLfGDeY0YP76sCtHKUzAd+ROy+NBUqcc+u9F38Z+Aqwss2fEolh2Wk9efqGMc3afvV+CT+ftaZZ22m56Tz81VO48qmPG9teX7yF1xcH/xh+8eYz+T9D+3d9wRKVOrIHPxm4xDn3bW/9m8C4pnvr3h78NGAXwb39HzrnNrfwWlOAKQCDBw8es3Fj21cTikSbQMBRdaie9F4tH4Ddvb+Gov9876j2/MzevDzlLLLTemrOPsaFeormauDiIwJ+rHPujiZ9+gH7nXM1ZvZd4Brn3Hltva6maETa9tuPNxz12MKmFt93IX179+jGiiQchPo8+DKg6fPQcoFmz1Bzzu1xztV4q78Gmv9tKiKddtP4fEqnX0bp9Mu4d9Lwo7af8fAclm+p5LPSciqr6zhQU8/+mnoAKqprmb1iO3sP1HZ32RJGOjIH/xlQaGb5BM+SuRa4vmkHMxvgnNvmrV4JrApplSIx7taJBQzNSSU9OZHKg3X8Yd5G5qzcweVPftSs37CcVKoO1Td7yhVA0ZC+/OnWs+jRxv3yJfp09DTJScDjBE+T/I1z7qdm9hOg2Dk3w8ymEQz2eqAcuM05t7qt19QUjcjxeeGjDTz8VufOdXj9e+cwNCeVXj30ZKtIpQudRGLQoboGbv19MZvLq3n7+xPonZRAQ8BRfqCWM3/a/MDtd75UwD2XDmfhxr0MH6DAjyQKeBFpprY+wF8XlvHgjBXUtnK/nJnfn8CIgWndXJl0lgJeRFp1sLaBCY/OZff+1g/AXj0ml7K9B7nj/JP4xvPzeeHGIs49KYuDdQ306hFPom6Z7BsFvIi0qbq2noS4OBLiDAc88fd1/PLv6zr0sylJCfx88ijOH56tg7Y+UMCLSKct3LiXmroGNpVXM2flDuoCjuqaevIze/PqwrKj+o/Lz+CSU3IYm5/BiVkp9EyM96Hq2KOAF5Eu4Zzj3eXbmfbOajaVV7fZ93tfPpEfXzKsmyqLHQp4EelSDQHHs//8gpcXbG436P9wy1gmFGZ1U2XRTwEvIt3KOUdtQ4Cd+2rYse8Qp5yQzrXPzWPJ5oqj+o7Ny+C6cYP42hm5PlQa+RTwIuK7mvoGXi0u4z/eWN5qn0EZybx405nsqqpl9fZ93Hh2nm6R3A4FvIiEjcqDdaT1TMDMcM5RVVPPqAdnt/kz556UybSrTmVgn2TiFfjNKOBFJOzt2HeI219aRPHGvW32S+uZwL5D9ZyWm06fXj0Ym5/BiIFpTDgpk4T4OLZWHOSP8zYyKjeduat3Mv6kTCYWZkXtnTYV8CISscoP1PLSvI3815y17fYdlpPK2h1VBFqIsbx+vSjdEzwAfOkpOZQfqGXJ5gpq6gOcmdeXG8/JoyAzhX2H6nAueNrnngO1/Or9EpIS45g8OhczIz7O2LjnAEV5GfTuEd94L37nHHUNrtuvBVDAi0jUmLt6Bw0BKC4tJy05kZq6Bp6YW9K4PTOlB6eekE5BVgoNAUdNfYA/L9jUZfVMnTSMWSt2sLCFvzxevOlMeiclMGJgGsvKKnl01mr69U5ixMA0nvAuJIszePOOcxk5MP2Y3l8BLyIxwTlHQ8CRcMStExZt2svm8mpKd1dzzZm5PDJzNZePGoABZ5/Yj4ffWskrxcGLt246J4/31+xk455qTuqfQlrPBHomxvPJF3sAKMjszfrdB0Ja983j83jgipHH9LMKeBGRLrB0cwVPzl3H+cOzmXTqANKTEzmcoeUHannwzZW8uXQrk07NYUJhFg0Bx9CcVL730iIevGIkJ/VPYX9NPWOG9D3mGhTwIiJRKtSP7BMRkQikgBcRiVIKeBGRKKWAFxGJUgp4EZEopYAXEYlSCngRkSilgBcRiVK+XehkZruAjcf445nA7hCW4zeNJ7xF03iiaSwQm+MZ4pzr0COyfAv442FmxR29kisSaDzhLZrGE01jAY2nPZqiERGJUgp4EZEoFakB/5zfBYSYxhPeomk80TQW0HjaFJFz8CIi0r5I3YMXEZF2RFTAm9klZrbGzErM7G6/62mNmf3GzHaa2fImbRlmNsfM1nnf+3rtZmZPeGP63MxGN/mZG73+68zsRj/G4tUxyMzeN7NVZrbCzH4QyWMys55mtsDMlnrjechrzzez+V5tfzGzHl57krde4m3Pa/Ja93jta8zsYj/G49URb2aLzewtbz1ix+LVUmpmy8xsiZkVe22R+nnrY2Z/NbPV3r+hs7ttLM65iPgC4oEvgAKgB7AUGOF3Xa3UOhEYDSxv0vYocLe3fDfwM295EvAOYMBZwHyvPQNY733v6y339Wk8A4DR3nIqsBYYEalj8upK8ZYTgflena8A13rtzwC3ecvfA57xlq8F/uItj/A+h0lAvvf5jPfp/9FdwJ+At7z1iB2LV08pkHlEW6R+3n4HfNtb7gH06a6x+PI/7xj/I50NzGqyfg9wj991tVFvHs0Dfg0wwFseAKzxlp8FrjuyH3Ad8GyT9mb9fB7b/wAXRsOYgF7AImAcwQtMEo78vAGzgLO95QSvnx35GWzar5vHkAv8HTgPeMurLSLH0uT9Szk64CPu8wakARvwjnd291giaYrmBGBzk/Uyry1SZDvntgF43/t77a2NKyzH6/1JfwbBvd6IHZM3pbEE2AnMIbjHWuGcq2+htsa6ve2VQD/CZzyPAz8GAt56PyJ3LIc5YLaZLTSzKV5bJH7eCoBdwIveFNrzZtabbhpLJAW8tdAWDacAtTausBuvmaUArwF3Ouf2tdW1hbawGpNzrsE5dzrBvd+xwPCWunnfw3Y8ZnY5sNM5t7Bpcwtdw34sRxjvnBsNXArcbmYT2+gbzmNKIDhd+7Rz7gzgAMEpmdaEdCyRFPBlwKAm67nAVp9qORY7zGwAgPd9p9fe2rjCarxmlkgw3F9yzv3Na47oMQE45yqAfxCc7+xjZgnepqa1NdbtbU8HygmP8YwHrjSzUuBlgtM0jxOZY2nknNvqfd8JvE7wl3Akft7KgDLn3Hxv/a8EA79bxhJJAf8ZUOidHdCD4AGiGT7X1BkzgMNHvm8kOI99uP1b3tHzs4BK70+2WcBFZtbXO8J+kdfW7czMgBeAVc65x5psisgxmVmWmfXxlpOBC4BVwPvAZK/bkeM5PM7JwFwXnAidAVzrnZmSDxQCC7pnFEHOuXucc7nOuTyC/ybmOue+QQSO5TAz621mqYeXCX5OlhOBnzfn3HZgs5kN9ZrOB1bSXWPx6yDKMR6wmETwDI4vgHv9rqeNOv8MbAPqCP7mvYXgPOffgXXe9wyvrwG/8sa0DChq8jr/CpR4Xzf7OJ5zCf45+DmwxPuaFKljAkYBi73xLAfu99oLCIZaCfAqkOS19/TWS7ztBU1e615vnGuAS33+3H2Z/z2LJmLH4tW+1PtacfjfegR/3k4Hir3P2xsEz4LplrHoSlYRkSgVSVM0IiLSCQp4EZEopYAXEYlSCngRkSilgBcRiVIKeBGRKKWAFxGJUgp4EZEo9f8BEWRM5UKYF0EAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# My own code for testing\n", "\n", "learn.sched.plot_loss()" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# My own code for testing\n", "\n", "learn.sched.plot_lr()" ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [], "source": [ "learn.save('darknet_lr_3e-2')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**_Note: I didn't try the other experiments in the original notebook._**" ] } ], "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.5" } }, "nbformat": 4, "nbformat_minor": 2 }