{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "from fastai2.basics import *\n", "import gzip" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MNIST SGD" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get the 'pickled' MNIST dataset from http://deeplearning.net/data/mnist/mnist.pkl.gz. We're going to treat it as a standard flat dataset with fully connected layers, rather than using a CNN." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "path = Config().data/'mnist'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(#1) [/home/sgugger/.fastai/data/mnist/mnist.pkl.gz]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "path.ls()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gzip.open(path/'mnist.pkl.gz', 'rb') as f:\n", " ((x_train, y_train), (x_valid, y_valid), _) = pickle.load(f, encoding='latin-1')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(50000, 784)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.imshow(x_train[0].reshape((28,28)), cmap=\"gray\")\n", "x_train.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(torch.Size([50000, 784]), tensor(0), tensor(9))" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_train,y_train,x_valid,y_valid = map(torch.tensor, (x_train,y_train,x_valid,y_valid))\n", "n,c = x_train.shape\n", "x_train.shape, y_train.min(), y_train.max()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In lesson2-sgd we did these things ourselves:\n", "\n", "```python\n", "x = torch.ones(n,2) \n", "def mse(y_hat, y): return ((y_hat-y)**2).mean()\n", "y_hat = x@a\n", "```\n", "\n", "Now instead we'll use PyTorch's functions to do it for us, and also to handle mini-batches (which we didn't do last time, since our dataset was so small)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from torch.utils.data import TensorDataset" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bs=64\n", "train_ds = TensorDataset(x_train, y_train)\n", "valid_ds = TensorDataset(x_valid, y_valid)\n", "train_dl = TfmdDL(train_ds, bs=bs, shuffle=True)\n", "valid_dl = TfmdDL(valid_ds, bs=2*bs)\n", "dls = DataLoaders(train_dl, valid_dl)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(torch.Size([64, 784]), torch.Size([64]))" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x,y = dls.one_batch()\n", "x.shape,y.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "class Mnist_Logistic(Module):\n", " def __init__(self): self.lin = nn.Linear(784, 10, bias=True)\n", " def forward(self, xb): return self.lin(xb)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "model = Mnist_Logistic().cuda()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Mnist_Logistic(\n", " (lin): Linear(in_features=784, out_features=10, bias=True)\n", ")" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Linear(in_features=784, out_features=10, bias=True)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.lin" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "torch.Size([64, 10])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model(x).shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[torch.Size([10, 784]), torch.Size([10])]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[p.shape for p in model.parameters()]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "lr=2e-2" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "loss_func = nn.CrossEntropyLoss()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def update(x,y,lr):\n", " wd = 1e-5\n", " y_hat = model(x)\n", " # weight decay\n", " w2 = 0.\n", " for p in model.parameters(): w2 += (p**2).sum()\n", " # add to regular loss\n", " loss = loss_func(y_hat, y) + w2*wd\n", " loss.backward()\n", " with torch.no_grad():\n", " for p in model.parameters():\n", " p.sub_(lr * p.grad)\n", " p.grad.zero_()\n", " return loss.item()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "losses = [update(x,y,lr) for x,y in dls.train]" ] }, { "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": [ "plt.plot(losses);" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "class Mnist_NN(Module):\n", " def __init__(self):\n", " self.lin1 = nn.Linear(784, 50, bias=True)\n", " self.lin2 = nn.Linear(50, 10, bias=True)\n", "\n", " def forward(self, xb):\n", " x = self.lin1(xb)\n", " x = F.relu(x)\n", " return self.lin2(x)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "model = Mnist_NN().cuda()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "losses = [update(x,y,lr) for x,y in dls.train]" ] }, { "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": [ "plt.plot(losses);" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "model = Mnist_NN().cuda()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def update(x,y,lr):\n", " opt = torch.optim.Adam(model.parameters(), lr)\n", " y_hat = model(x)\n", " loss = loss_func(y_hat, y)\n", " loss.backward()\n", " opt.step()\n", " opt.zero_grad()\n", " return loss.item()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "losses = [update(x,y,1e-3) for x,y in dls.train]" ] }, { "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": [ "plt.plot(losses);" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "learn = Learner(dls, Mnist_NN(), loss_func=loss_func, metrics=accuracy)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from fastai2.callback.all import *" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd5xddZ3/8dfnluk1UzKZSSYhhVRCEgISI10E6cWVJjYQUSws/FyxrLrruuK6oq6uJYiIboBFCFVYBAGpISQhvUBInWSS6b3d8vn9ce+EIUzNzLnnls/z8bgP7txzzj3vucD9zPd8v+f7FVXFGGNM6vK4HcAYY4y7rBAYY0yKs0JgjDEpzgqBMcakOCsExhiT4qwQGGNMivO5HWCkiouLdcqUKW7HMMaYhLJmzZo6VS3pb1vCFYIpU6awevVqt2MYY0xCEZE9A22zS0PGGJPirBAYY0yKs0JgjDEpzgqBMcakOCsExhiT4qwQGGNMirNCYIwxCeCZLYfYUdPqyHtbITDGmDinqnxx+RoeXLPfkfe3QmCMMXGuvSdEIKQUZvkdeX8rBMYYE+ca23sAKMxKc+T9rRAYY0yca+oIAFCQaC0CEZkkIs+LyFYR2SwiX+1nn9NFpFlE1kUf33EqjzHGJKqmzmiLINuZFoGTk84FgVtVda2I5AJrROQZVd1yxH4vqeoFDuYwxpiE1tjbIshMsBaBqlar6tro81ZgK1Dh1PmMMSZZNXVEWgQFidxHICJTgIXA6/1sXiIi60XkKRGZO8DxN4jIahFZXVtb62BSY4yJP43tCdpH0EtEcoCHgJtVteWIzWuByap6PPAL4JH+3kNVl6nqYlVdXFLS77oKxhiTtBo7eshN9+H3OvOV7WghEBE/kSKwXFVXHLldVVtUtS36/EnALyLFTmYyxphE09wZoCDbmdYAODtqSIC7gK2qescA+5RF90NETormqXcqkzHGJKLGjh4KMp3pHwBnRw0tBa4FNorIuuhr3wQqAVT1N8DHgC+ISBDoBK5UVXUwkzHGJJzGjoBj/QPgYCFQ1ZcBGWKfXwK/dCqDMcYkg6aOHiaPy3Ls/e3OYmOMiXON7T2OzTMEVgiMMSauBUNhWrqCjt1DAFYIjDEmrrV0BQGsRWCMMamq0eG7isEKgTHGxLV3p5ewFoExxqSk3uklnFqLAKwQGGNMXOu9NGSFwBhjUlRzZ3TCuUScYsIYY8zoNXb04PUIuenOTQRhhcAYY+JYY0eAgkw/0WnZHGGFwBhj4lhTR4+jI4bACoExxsS1xvaAox3FYIXAGGPiWmNHj6M3k4EVAmOMiWvNnQFHp5cAKwTGGBPXGjt6KMy2FoExxqSkrkCIrkCY/ExrERhjTEqKxV3FYIXAGGPi1rvzDFmLwBhjUlJTp/NTUIODhUBEJonI8yKyVUQ2i8hXB9n3RBEJicjHnMpjjDGJpqkj2iJwcJ4hcHDxeiAI3Kqqa0UkF1gjIs+o6pa+O4mIF/gR8LSDWYwxJuEcXpQmM0FbBKparapro89bga1ART+7fhl4CKhxKosxxiSi3hZBUkwxISJTgIXA60e8XgFcCvxmiONvEJHVIrK6trbWqZjGGBNXGtt7yPR7yfB7HT2P44VARHKI/MV/s6q2HLH5Z8DXVTU02Huo6jJVXayqi0tKSpyKaowxcaWxw/m7isHZPgJExE+kCCxX1RX97LIYuD86vWoxcJ6IBFX1ESdzGWNMImjudH6eIXCwEEjk2/0uYKuq3tHfPqp6TJ/9/wA8YUXAGGMiGjsCjo8YAmdbBEuBa4GNIrIu+to3gUoAVR20X8AYY1JdY0cPs8vyHD+PY4VAVV8Ghr2kjqp+2qksxhiTiJo6Ao6PGAK7s9gYY+JSOKw0dfQ4Ps8QWCEwxpi41NodJKzO30MAVgiMMSYuNcVo5lGwQmCMMXGpvj1aCGIwasgKgTHGxKEDTZ0AlBdkOn4uKwTGGBOH9jdGCkGFFQJjjElN+5s6ycvwkZthl4aMMSYl7W/spKIwKybnskJgjDFxaH9TZ0wuC4EVAmOMiTuqyv7GTiYWWiEwxpiU1NIZpLU7aC0CY4xJVVVNHQBUWIvAGGNSUyyHjoIVAmOMiTv7ozeTWYvAGGNS1P7GTjL8HoqynZ9nCKwQGGNM3Nnf1El5QSbRZXwdZ4XAGGPizP6mTibG6GYycHjx+nijqqzZ08iDa6p4dmsNs8pyuWhBOefOKyNviNu4VZV9DZ0U5aSRnZ5SH5sxJsb2N3Yytzw/ZudLmW+0F9+q5TuPbmJ3fQdZaV5On1nC5gMt/NODG/j2I5s4dUYxZ8wq5cxZpUzIz6QrEKK2tZsdtW08t7WGv209xIHmLgAqx2UxsyyXY8fnML00h+klufh9wo6aNnbUtFHV2EkgFCYYVsJhJd3nITPNS6bfR0luOpPGZTKpMIuy/AzyM/1k+L3D+h1CYaWhvYdDLV0caumivr2Hju4gHYEQ3YEwGX4v2elestJ8lBdkMKUom7K8DDye2DQvjTGj19kTor69J2Y3k4GDhUBEJgF/BMqAMLBMVX9+xD4XA9+Pbg8CN0fXOh5zRTlplOVn8KUzZ/DReWVkp/tQVdbta+LRdQd4dushnt1aA0Buho/WruDhYzP9Xk6ZUcwXTp9GY0eA7Qdb2Xawhee21RAK6xG/N5TlZZDm8+DzCB4RuoNhOgMhOrqDtPeE3pctw+8hN8NPmtdDus+DzysIgqKoQkdPiJbOAK3dwfcdO5R0n4ecdN/hwqQK6f7oeTweekJhugIhuoNhfB4hzechzevB6xFU3803Pi+DCfkZlOSmk+7zkubz4Pd68HsFn0fweaO/r0fwipCT4aOiIJOJhZnkZ/pjdq3TmER3eMRQjIaOgrMtgiBwq6quFZFcYI2IPKOqW/rs8zfgMVVVEZkPPADMciLM3PJ87r9hyXteExEWVhaysLKQ7144hx01bTy3rYb9TZ2U5qZTmptBRWEmJ0wu7Pev9p5gmD317eyoaSMQVqaX5DC1JHvQv/BbuwJUNXayr6GD2rZumjoCNHcGaO0K0BNUekJhAsFwn4yQleYjL9NHfqafcdlpjM/LYHxeBkXZkctUWWle0rweuoNhOnqCtHUHqWrsZHd9O7vr2unoCR3+0u7N3R0M0xMKk+7zku7zkO73EApFzt8TDBOOVgFBaO8JcqilizV7G6lr7aE7GOKI+jeoDL+H/Ew/eRl+8jL9ZKf7yEn3kpPuIyfdT26Gj9wMHznpPjLTvKT7vIhAY3sP9e09NHcGyPB7ozMx+giElI6eIO3dIXweIT/LH3n/TP/h2RpzMyKfV6bfa0XIJJRYDx0FBwuBqlYD1dHnrSKyFagAtvTZp63PIdnACL5expaIMGN8LjPG5w77mDSfZ8TH5Gb4mT3Bz+wJeUcTc1CZaV4y07wU5aQzuSibpdOLx/wcvYKhSCEJhpVgSAmGwoQ08jysSnNngANNnVQ1dnKopYvWriAtXZGi17utrStStNqGaOmk+Tz09CmOI+HzCLkZPvxeDx4RPEKk1RJtuaT5PORl+inI9FOUk8a0khyOHZ/LseNzKc1Nt8tqJuZifTMZxKiPQESmAAuB1/vZdinwQ6AUOH+A428AbgCorKx0KqYZAZ/Xg887+KCz+RMLhvVeobDS1hWkvSdIVyBEZyCEKozLTmNcdhoZfm9kn+4grV0B/F4P2ek+Mv3ew0Wnb8uqt+i0dgVp6QzQ0hUgFNboI9LxH9LIz93BMM2dAfbUd7BmTyP17fsO5/J6hKLstEi/TmEWM6J9QrPK8phemoPXioRxQFVjBz6PMD4vI2bndLwQiEgO8BCR6/8tR25X1YeBh0XkVCL9BR/uZ59lwDKAxYsXu9ZqMM7w9l7eyRp45JbXI+RnRi4Bved1hOKcdIpz0sckS31bN28damNHTSuHWrqpbe2mprWLt2paeWbrocN9QjnpPo6flM/8iQVMLc5mSnE2U4qyKc5Js0tRZlT2N3VSlp8R0z80HC0EIuInUgSWq+qKwfZV1RdFZJqIFKtqnZO5jBlIUU46S3LSWTKt6H3buoMhdtd1sKW6mbV7mnhzXyN3vriTYJ8Ok+KcdOZV5HFcRT7HVeSzoLKA0tzY/WVnEt/+xtitQ9DLyVFDAtwFbFXVOwbYZzrwTrSzeBGQBtQ7lcmY0Uj3eZlZlsvMslwuXTgRgEAozP5ox/zO2na2VLewaX8zL71dd7j1UFGQyeIphZw5q5TTji2hICs20waYxLS/qbPfP0Sc5GSLYClwLbBRRNZFX/smUAmgqr8BLgc+KSIBoBO4QlXt0o9JGH6vJ3JZqDib02e++3pXIMTmA828ubeJdfuaePntOh5ddwCPwKLKQk49toQPzShmfkX+kH0tJnUEQmEOtXQxMVlaBNH7AQa9yKWqPwJ+5FQGY9yS4fdywuRxnDB5HADhsLJhfzPPbT3E89tr+emzb3HHM2+Rn+nnyhMncd2HjqE0hp2DJj4dbO4irLEdOgopdGexMW7yeIQFkwpYMKmAWz4yk4b2Hl59p46nNh3kzpd2cvcru7n8hIl86oOTmVU29kOLTWKoig4djeU8Q2CFwBhXjMtO44L55Vwwv5w99e3c+dJOHlhdxX2r9jKrLJdLFlZw2cIKayWkGDfuKgabfdQY100uyubfLjmOld84i+9fPJesNC+3P7WNs37ydx5aU4V1m6WOV3fUkZvuo9wKgTGpaVx2GtcumcKKLy7l2VtOY/aEPG7983q+8D9raWjvcTuecVhzR4C/bKzm4oXlpPli+9VshcCYODS9NIf7bjiZ2z46i+e21fCRn77Ic9sOuR3LOOjR9fvpDoa58sTYz55ghcCYOOX1CDeeNo1Hv7SU4pw0PvuH1Xzr4Y109Ix8FloT31SV+1btY15FHvMqYrcOQS8rBMbEudkT8njkpqXccOpU7l21l/N+/hLv1LYNfaBJGBv3N7O1uoUrXGgNgBUCYxJCht/LN8+bzb3Xn0xbd5ArfvsaW6vfN3WXSVD3v7GPDL+HixeUu3J+KwTGJJAl04p44PNL8Hs9XLlsJev2NbkdyYxSe3eQx9Yd4PzjyodcMtcpVgiMSTBTS3J44PNLyM/0c82dK1m7t9HtSGYU/rKxmrbuIFedNMm1DFYIjElAk8Zl8ecbl1CUk86X732Tlq6A25HMUXp600EmF2VxwuRC1zJYITAmQY3Py+BnVy7gYEsX3310s9txzFHaWdfO3PI8V9exsEJgTAJbVFnIl8+czsNv7uex9QfcjmNGKBgKs6+hgylF2a7msEJgTIL70hnTWVhZwLcf3siB6Fw1JjHsb+okGFYrBMaY0fF5PfzsigUEw8o//u86gqGw25HMMO2qawdgSrEVAmPMKEUmrpvH67sauOOZt9yOY4ZpT30HAFOKYzvt9JGsEBiTJC5bNJGrTqrkVy+8w7NbbF6iRLCrrp3sNC8lOemu5rBCYEwS+e6Fc5hbnsctD6xjX0OH23HMEHbXtzO5KNvVEUNghcCYpJLh9/Lra05AgZvuXWv9BXFuT30Hx7jcPwAOFgIRmSQiz4vIVhHZLCJf7Wefa0RkQ/Txqogc71QeY1JFZVEWt182nw1Vzdz9ym6345gB9A4dnVzkbv8AONsiCAK3qups4GTgJhGZc8Q+u4DTVHU+8H1gmYN5jEkZ5x1Xxodnl3LHM2/ZJaI4VdUYHTqazC0CVa1W1bXR563AVqDiiH1eVdXeiVJWAhOdymNMKhER/uXieYjAdx7dZMtdxqHd9ZGhowlzaUhEpolIevT56SLyFREpGO5JRGQKsBB4fZDdrgOeGuD4G0RktYisrq2tHe5pjUlpFQWZ3HL2sTy/vZYnNx50O445wu7oPQSJdGnoISAkItOBu4BjgHuHc6CI5ESPv1lV+51AXUTOIFIIvt7fdlVdpqqLVXVxSUnJMCMbYz79wSnMq8jje49vptUmposru+s74mLoKAy/EIRVNQhcCvxMVf8RmDDUQSLiJ1IElqvqigH2mQ/8DrhYVeuHmccYMww+r4fvXzyP2tZulr++1+04po/d9e1MKXZ/6CgMvxAEROQq4FPAE9HXBl1BQSK/3V3AVlW9Y4B9KoEVwLWqardDGuOAhZWFLJ1exN2v7KI7GHI7jonaXdfu+hxDvYZbCD4DLAF+oKq7ROQY4H+GOGYpcC1wpoisiz7OE5EbReTG6D7fAYqAX0W3rz6aX8IYM7jPnzqNQy3dPLrOZiiNB4FQmH2Nna5PLdHLN5ydVHUL8BUAESkEclX19iGOeRkYtM2jqtcD1w8vqjHmaJ0yo5jZE/JY9uJOPrZoIh6P+5cjUllVYyehOJh1tNdwRw29ICJ5IjIOWA/cLSL9Xu4xxsQfEeHzp05lR00bz2+vcTtOyusdOhoP9xDA8C8N5UdH/FwG3K2qJwAfdi6WMWasnT9/AhUFmfz27zvdjpJyuoMhlr++h9rWbuDdoaMJ1SIAfCIyAfg473YWG2MSiN/r4boPHcOq3Q224H0MdfaEuP6e1Xzr4U1c8t+vsO1gC7vr2slJ91Gck+Z2PGD4heBfgaeBd1T1DRGZCrztXCxjjBOuOHESuRk+7nl1t9tRUkJrV4BP/X4Vr+yo4ytnzSAQCvOxX7/G89trmVKcFRdDR2GYhUBV/6yq81X1C9Gfd6rq5c5GM8aMtex0H5cvmsiTG6upa+t2O05Sa+kK8Im7VrF2byM/v3Iht5x9LI9+aSmV47LY29DB5Di5LATD7yyeKCIPi0iNiBwSkYdExOYFMiYBfeLkyQRCygOr97kdJak9uLqK9fua+O9rFnHh8eUATMjP5M83LuG6Dx3DNSdVupzwXcO9NHQ38BhQTmTiuMejrxljEsz00hyWTC1i+cq9hMI2GZ1TNu1vpjQ3nXPmlr3n9ex0H/98wRw+OL3YpWTvN9xCUKKqd6tqMPr4A2CT/hiToK5dMpn9TZ28YENJHbP5QAtzy/PcjjEswy0EdSLyCRHxRh+fAGxeIGMS1NlzxlOam87/rNzjdpSk1BUIsaO2jbnl+W5HGZbhFoLPEhk6ehCoBj5GZNoJY0wC8ns9XHlSJS+8Vcveelu4ZqxtP9hKKKzJ1SJQ1b2qepGqlqhqqapeQuTmMmNMgrrqpEl4RFi+yloFY21LdWTG/WRrEfTnljFLYYyJuQn5mZw1q5QHV1fRE7RF7sfS5gPN5Kb7mDQu0+0owzKaQhAfd0IYY47a1R+opL69h6c32wpmY2nzgRZml+fFzQ1jQxlNIbBxZ8YkuFNnlDCxMJN7bdGaMRMKK9uqWxOmfwCGKAQi0ioiLf08WoncU2CMSWAej3DVSZW8trOenbVtbsdJCrvq2ugMhBKmfwCGKASqmquqef08clV1WGsZGGPi2z8snojPI9y3yloFY2Hzgd6O4iRpERhjkl9pbgZnzxnPg2uq6ArYUpajteVAC2k+D9NLc9yOMmxWCIwxXP2BSho7AtZpPAY2H2hh5vhc/N7E+XpNnKTGGMcsnVZM5bgsllun8aioKpsPNCfUZSFwsBCIyCQReV5EtorIZhH5aj/7zBKR10SkW0T+n1NZjDGD83iEK06cxKpdDexrsDuNj1Z1cxeNHQErBH0EgVtVdTZwMnCTiMw5Yp8G4CvAfzqYwxgzDBdFp0p+fMMBl5Mkri3RjuI5CVYIHBv5o6rVROYlQlVbRWQrkSmst/TZpwaoEZHzncphjBmeSeOyWFRZwGPrDvDF06e7HSdhPL+thk37m/F5Paze3YAIzCqzQvA+IjIFWAi8fpTH3wDcAFBZGT+LORiTbC46vpzvPb6F7QdbmVmW63acuNfaFeALy9fQFXh3io5FlQVkpyfW6HrH04pIDvAQcLOqthzNe6jqMmAZwOLFi+2OZmMccv78cv71iS08tn4/Xyub5XacuPfUxoN0BcL8+cYlzCvPJxgOk+n3uh1rxBwdNSQifiJFYLmqrnDyXMaY0SvJTWfp9GIeW38AVfubaygPrq1ianE2iycXkpnmJTfDjy+Bho32cnLUkAB3AVtV9Q6nzmOMGVsXHV/OvoZO3tzX5HaUuLavoYNVuxq4bFFFwkwuNxAnS9dS4FrgTBFZF32cJyI3isiNACJSJiJVRKa0/raIVIlIYvWyGJNkzplXRprPw2PrbPTQYB5aW4UIXLpoottRRs3JUUMvM8RU1ap6EEj8T9GYJJKX4efMmaU8saGab58/OyEvdThNVVmxdj9LphZRUZAYaw4Mxv4NG2Pe5+IF5dS1dfPKO7Y0eX/e2N3I3oYOLk+C1gBYITDG9OPM2aXkZ/p5aE2V21Hi0oq1VWSleTl3XpnbUcaEFQJjzPuk+7xcePwEnt58kNaugNtx4kpXIMRfNlTz0XkTEu5+gYFYITDG9OuyRRPpDoZ5cmO121HiytuH2mjtDnLW7FK3o4wZKwTGmH4tnFTA1OJsHlqz3+0ocWVnXWQlt0Rab2AoVgiMMf0SES4/YSKrdjewt95mJO31Tm07HoHJRVluRxkzVgiMMQO6ZGEFIrDiTes07vVObRsTC7NI9yXeVBIDsUJgjBlQRUEmS6YWsWLtfptyImpnbTtTS7LdjjGmrBAYYwZ1+aKJ7G3o4I3djW5HcV04rOyqa2NqcfL0D4AVAmPMEM6dV0am38sj66zTuLqli65AmGml1iIwxqSQ7HQfZ88Zz5Mbq+kJhoc+IIntrI2MGLIWgTEm5VyysJymjgAvvlXrdhRXvVMTKQTTrI/AGJNqTplRQmGWn0fXp/aMpDvr2slJ91GSm+52lDFlhcAYMyS/18P58yfwzJaDtHUH3Y7jmt4RQ4m+/sCRrBAYY4bl4gUVdAXCPLPloNtRXLOzto1pJcnVPwBWCIwxw3RCZSEVBZk88mZqXh7q6AlyoLmLqcXJ1T8AVgiMMcPk8QgXLSjn5R111LV1ux0n5nbWtgMw1VoExphUdsmCCkJh5S8bUm9G0p11vYXAWgTDJiKTROR5EdkqIptF5Kv97CMi8l8iskNENojIIqfyGGNGb2ZZLseOz+GpTSlYCGrbEIFj7NLQiASBW1V1NnAycJOIzDlin48CM6KPG4BfO5jHGDMGzpo9ntW7G2lJsQVrdta2U1GQSYY/eSab6+VYIVDValVdG33eCmwFKo7Y7WLgjxqxEigQkQlOZTLGjN6Zs0oJhpWX3qpzO0pM7axrS8r+AYhRH4GITAEWAq8fsakC2Nfn5yreXyyMMXFk4aQC8jP9PLetxu0oMaOqkXsIkvCyEMSgEIhIDvAQcLOqthy5uZ9D3jfXrYjcICKrRWR1bW1q3+JujNt8Xg+nHVvCC9trCIdTY2rqgy1ddPSEkm5qiV6OFgIR8RMpAstVdUU/u1QBk/r8PBF43yBlVV2mqotVdXFJSYkzYY0xw3bW7FLq23tYX9XkdpSYSOaho+DsqCEB7gK2quodA+z2GPDJ6Oihk4FmVU294QjGJJjTji3BI/B8ilweWrsnshbDrLJcl5M4w8kWwVLgWuBMEVkXfZwnIjeKyI3RfZ4EdgI7gDuBLzqYxxgzRgqy0lhUWchz21OjEDy/vYb5E/MpykmuyeZ6+Zx6Y1V9mf77APruo8BNTmUwxjjnjFml/Pjp7Rxq6WJ8XobbcRzT2N7Dm/ua+PKZM9yO4hi7s9gYc1TOml0KJP/loRffrkUVzpiZvP2TVgiMMUdl5vhcyvMzkn4Y6QvbaxmXncb8iQVuR3GMFQJjzFEREc6aPZ6X3q6joyc51ygIhZW/v1XLaceW4PUk1xoEfVkhMMYctfOOm0BnIMTftiZnq2BDVRMN7T2cnsSXhcAKgTFmFE46Zhyluek8sSE51yh4fnstHoFTZ1ghMMaYfnk9wnnHTeD57bW0JuEkdH/fXsPCykIKs9PcjuIoKwTGmFG58PgJ9ATDPLv1kNtRxlRtazfrq5qTerRQLysExphRWTipkPL8DJ5Yn1yTArz4VmRes9NnlrqcxHlWCIwxo+LxCOfPn8CLb9fS3JE8l4dW72mgIMvP3PI8t6M4zgqBMWbULphfTiCkPL3loNtRxsyBpi4qx2URmTYtuVkhMMaM2vyJ+VSOy+KJJFrL+GBzck+d0ZcVAmPMqIlELg+9sqOOxvYet+OMiermTibkWyEwxphhO2/eBEJhTYrRQx09QVq6gpRZITDGmOGbV5FHRUEmT29O/EJwsLkLgDK7NGSMMcMnIpw9ZzwvvV2b8HMPHS4E1iIwxpiR+cjc8XQHw/x9e2KvLX6wJVIIJuRnupwkNqwQGGPGzElTxlGY5efpzYk9jLTaLg0ZY8zR8Xk9nDV7PH/bVkNPMOx2nKN2qKWL/Ew/mWlet6PEhBUCY8yYOmduGa1dQVburHc7ylGrbu5KmaGj4GAhEJHfi0iNiGwaYHuhiDwsIhtEZJWIzHMqizEmdk6ZUUxWmjehLw+l0s1k4GyL4A/AuYNs/yawTlXnA58Efu5gFmNMjGT4vZx2bAnPbDlEOKxuxzkqB1usRTAmVPVFoGGQXeYAf4vuuw2YIiLjncpjjImdc+aWUdPazZv7mtyOMmI9wTB1bd0pM3QU3O0jWA9cBiAiJwGTgYku5jHGjJEzZ5eS5vXw5MbYzT20saqZj//2NR5fP7rV0mpau1BNnRFD4G4huB0oFJF1wJeBN4F+70IRkRtEZLWIrK6tTezxycakgrwMP6fNLOGJDQccvzwUCiv//fwOLv3VK6za1cBtD21gX0PHUb/foZbUupkMXCwEqtqiqp9R1QVE+ghKgF0D7LtMVRer6uKSkuRfLciYZHDh8eUcaulm1e7BrhCPzo6aVq5atpIfP72dc+aW8cSXP4SI8LUH1x91Aeq9hyBVbiYDFwuBiBSISO9CoNcDL6pqi1t5jDFj68OzS8n0e0d9qaY/TR09fO+xzZzzs5fYerCFOz5+PL+8eiHzKvL55wtms3JnA/e8tvuo3jvV5hkC8Dn1xiJyH3A6UCwiVcB3AT+Aqv4GmA38UURCwBbgOqeyGGNiLyvNx1mzS3lq00G+d9Fc/N6x+btz1a4GbvjTalo6A1x5UiW3nn0sRTnph7d/fPEknt58iNuf2sapx5YwrSRnRO9/sLmLTL+XvEzHvh7jjrlHLvIAAAx2SURBVGO/qapeNcT214AZTp3fGOO+C48v54kN1bz6Tj2nHTs2l3V/+sxbZPq93Pe5k5k94f3LSIoIt192HGf/9EVuvn8dD35hCem+4d8hXB0dOpoKK5P1sjuLjTGOOX1mCbkZvjG7PLSzto3XdtbziZMn91sEepXmZfAfH5vPxv3N/OAvW0d0jlS7mQysEBhjHJTu83LO3DKe3nSQ7mBo1O93/xv78HmEf1g89Ejzc+aW8blTjuGPr+0ZUSE6mGLTS4AVAmOMwy48vpzW7uCop6buDoZ4cE0VZ88ZT2nu8L6o/+ncWZwwuZDbHtrAO7VtQ+4fDiuHWrpSaugoWCEwxjjsg9OKKM5J4/439o3qfZ7efIiG9h6u/kDlsI/xez388uqFpPu93PDH1exv6hx0/7r2boJhtUJgjDFjye/18MklU3huWw3bDh79CPF7X99D5bgslk4rHtFxE/Iz+dU1i6hp6eaiX7zMG4Pc13CouRtIraGjYIXAGBMDn1wymew0L7954Z2jOn5nbRsrdzZw5UmT8HhGPprn5KlFPHzTUvIy/Vx950ruX7W33/2qmyMthlS6mQysEBhjYqAgK42rP1DJ4xuqRzz9w666dn70f9vweYSPnXD005FNL83hkS8u5eSpRdy2YiPfWLGBrsB7O7B7l6gcn5/e31skLSsExpiYuO5DU/EI3PnSzmHt/9TGai771Suc8Z8v8MyWQ1x/ytRhdxIPJD/Lz92fPpEvnj6N+1bt4/Jfv8re+ncL08HmLnweoTjbCoExxoy5svwMLls4kf99Yx+1rd2D7lvb2s1N966lqSPANz46i1dvO4vbPjprTHL4vB7+6dxZ3PWpxexr6OD8X7zEr194h7q27sP3EBzN5adEZoXAGBMznz9tKj2hMHe/0u/8koc9vfkgYYVffWIRnz9tmiOjeM6aPZ6/fOUU5k/M50f/t40lP/wbz2w5lHIjhsAKgTEmhqaW5HD+cRP43Uu7WDfIojVPbapmakk2M8fnOppn0rgsll9/Ms/eciqfXDIFr1c4fmKBo+eMR1YIjDEx9f2L51Gal86Nf1rT7yWi+rZuVu5s4Lx5E2I238/00lz++YI5vPnPZ/OdC+fE5JzxxAqBMSamCrPT+O21J9DU2cNNy9cSCIXfs/2vWw4RCisfPa4s5tlSaaK5vqwQGGNibm55Pj+6fD6rdjfwb09sec+2JzdWM7koizmDTCpnxpYVAmOMKy5eUMH1HzqGe17bw59W7gGgsb2HV9+p57zjYndZyDi4HoExxgzlG+fNZnd9O999dBMTCzKpbe0mFFbOmzfB7WgpxVoExhjXeD3Cz69cyJzyPG66dy2/f2UXEwszmVdhl4ViyQqBMcZV2ek+fv+pEynI9LPtYCvn22WhmLNCYIxxXWleBnd/5iROmVHMlScNf5ppMzYcKwQi8nsRqRGRTQNszxeRx0VkvYhsFpHPOJXFGBP/Zpbl8qfrPsAxxdluR0k5TrYI/gCcO8j2m4Atqno8cDrwExFJczCPMcaYfjhWCFT1RWDgFSBAgVyJXAzMie4bdCqPMcaY/rk5fPSXwGPAASAXuEJVw4MfYowxZqy52Vl8DrAOKAcWAL8UkX7HjInIDSKyWkRW19aObgFsY4wx7+VmIfgMsEIjdgC7gH4nHFfVZaq6WFUXl5SUxDSkMcYkOzcLwV7gLAARGQ/MBIa3dJExxpgx41gfgYjcR2Q0ULGIVAHfBfwAqvob4PvAH0RkIyDA11W1zqk8xhhj+udYIVDVq4bYfgD4iFPnN8YYMzyiqm5nGBERqQX2RH/MB5oHeX7ka35gpK2Ovu8xnG1HvjbcjL3/LB5hxljl633NPsP4ypcIGeM932gyDvZavH2Gk1W1/05WVU3YB7BssOdHvgasHs05hrPtyNeGm7HPP0eUMVb57DOMz3yJkDHe840m4xBZ4+ozHOyR6HMNPT7E84G2H+05hrPtyNeGmzHe8w11rsHYZzj0eQYz1HHxnjHe8w20fTgZh3ptJJz+DAeUcJeGRkNEVqvqYrdzDCbeM8Z7Poj/jPGeD+I/Y7zng8TI2CvRWwQjtcztAMMQ7xnjPR/Ef8Z4zwfxnzHe80FiZARSrEVgjDHm/VKtRWCMMeYIVgiMMSbFWSEwxpgUZ4UgSkROEZHfiMjvRORVt/P0R0Q8IvIDEfmFiHzK7TxHEpHTReSl6Od4utt5+iMi2SKyRkQucDtLf0RkdvTze1BEvuB2nv6IyCUicqeIPCoicTc7gIhMFZG7RORBt7P0iv53d0/0c7vG7TxHSopCMNCymCJyrohsF5EdInLbYO+hqi+p6o3AE8A98ZgRuBioAAJAVRzmU6ANyIjTfABfBx4Yy2xjmVFVt0b/O/w4MOZDD8co4yOq+jng08AVcZhvp6peN5a5+jPCrJcBD0Y/t4uczjZiI7nzLV4fwKnAImBTn9e8wDvAVCANWA/MAY4j8mXf91Ha57gHgLx4zAjcBnw+euyDcZjPEz1uPLA8DvN9GLiSyBfYBfH47zh6zEXAq8DV8ZoxetxPgEVxnG9M/x8ZZdZvAAui+9zrZK6jebi5QtmYUdUXRWTKES+fBOxQ1Z0AInI/cLGq/hDo97KAiFQCzaraEo8Zo7O49kR/DMVbvj4agfR4yyciZwDZRP7H7BSRJ3UMV8Ubq89QVR8DHhORvwD3jlW+scoYXV72duApVV0bb/liZSRZibSQJxJZjCvursQkRSEYQAWwr8/PVcAHhjjmOuBuxxK930gzrgB+ISKnAC86GSxqRPlE5DIiK88VEFmK1Gkjyqeq3wIQkU8DdWNZBAYx0s/wdCKXEdKBJx1N9q6R/nf4ZSKtq3wRma6RaeWdNNLPsAj4AbBQRL4RLRixMlDW/yKyCuP5HP0UFI5J5kIg/bw26N1zqvpdh7IMZEQZVbWDSLGKlZHmW0GkWMXKiP8dA6jqH8Y+yoBG+hm+ALzgVJgBjDTjfxH5YouVkearB250Ls6g+s2qqu1EVmWMS3HXRBlDVcCkPj9PBA64lGUg8Z7R8o2eZRy9eM/XVyJlPSyZC8EbwAwROUZE0oh0Ej7mcqYjxXtGyzd6lnH04j1fX4mU9V1u91aPUe/9fUA17w6rvC76+nnAW0R68b9lGS2fZYzvjPGeL1GzDvWwSeeMMSbFJfOlIWOMMcNghcAYY1KcFQJjjElxVgiMMSbFWSEwxpgUZ4XAGGNSnBUCkxREpC3G5/udiMwZo/cKicg6EdkkIo+LSMEQ+xeIyBfH4tzGgC1eb5KEiLSpas4Yvp9PVYNj9X5DnOtwdhG5B3hLVX8wyP5TgCdUdV4s8pnkZy0Ck7REpEREHhKRN6KPpdHXTxKRV0Xkzeg/Z0Zf/7SI/FlEHgf+KpEV116QyGph20RkeXQKZqKvL44+b5PIynHrRWSliIyPvj4t+vMbIvKvw2y1vEZkBktEJEdE/iYia0Vko4hcHN3ndmBatBXx4+i+X4ueZ4OI/MsYfowmBVghMMns58BPVfVE4HLgd9HXtwGnqupC4DvAv/c5ZgnwKVU9M/rzQuBmImsYTAWW9nOebGClqh5PZHrwz/U5/8+j5x9y4jER8QJn8e7cNF3Apaq6CDgD+Em0EN0GvKOqC1T1axJZLnIGkbnwFwAniMipQ53PmF7JPA21MR8G5kT/iAfIE5FcIB+4R0RmEJnO2N/nmGdUtaHPz6tUtQpARNYBU4CXjzhPD5HVsQDWAGdHny8BLok+vxf4zwFyZvZ57zXAM9HXBfj36Jd6mEhLYXw/x38k+ngz+nMOkcIQizUrTBKwQmCSmQdYoqqdfV8UkV8Az6vqpdHr7S/02dx+xHt093keov//ZwL6bmfbQPsMplNVF4hIPpGCchOR+f6vAUqAE1Q1ICK7iawHfSQBfqiqvx3heY0B7NKQSW5/Bb7U+4OILIg+zQf2R59/2sHzryRySQoi0xEPSlWbga8A/09E/ERy1kSLwBnA5OiurUBun0OfBj4rIr0dzhUiUjpGv4NJAVYITLLIEpGqPo9biHypLo52oG7h3VWr/gP4oYi8QmSxcafcDNwiIquACUDzUAeo6ptEFjy/ElhOJP9qIq2DbdF96oFXosNNf6yqfyVy6ek1EdkIPMh7C4Uxg7Lho8Y4RESyiFz2URG5ErhKVS8e6jhjYs36CIxxzglEFiwXoAn4rMt5jOmXtQiMMSbFWR+BMcakOCsExhiT4qwQGGNMirNCYIwxKc4KgTHGpDgrBMYYk+L+P7PlN08IGaihAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.lr_find()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(#5) [0,0.16419988870620728,0.12883101403713226,0.9624000191688538,00:09]\n" ] } ], "source": [ "learn.fit_one_cycle(1, 1e-2)" ] }, { "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": [ "learn.recorder.plot_sched()" ] }, { "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": [ "learn.recorder.plot_loss()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## fin" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "jupytext": { "split_at_heading": true }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 1 }