Skip to content

Instantly share code, notes, and snippets.

@SOVIETIC-BOSS88
Last active March 16, 2020 19:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SOVIETIC-BOSS88/1a9fcf31f9d17d756b930e71fec1079b to your computer and use it in GitHub Desktop.
Save SOVIETIC-BOSS88/1a9fcf31f9d17d756b930e71fec1079b to your computer and use it in GitHub Desktop.
FAST.AI JOURNEY: COURSE V3. PART 1. LESSON 5. Documenting my fast.ai journey: CODE REVIEW. PYTORCH DEEP DIVE PROJECT. TORCH.NN.MODULES.LINEAR CLASS.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# FAST AI JOURNEY: COURSE V3. PART 1. LESSON 5.\n",
"## Documenting my fast.ai journey: CODE REVIEW. PYTORCH DEEP DIVE PROJECT. TORCH.NN.MODULES.LINEAR CLASS."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this new project, we will dive deeper into the implement the torch.nn.modules.linear class. We will use the [Official PyTorch Documentation](https://pytorch.org/docs/stable/index.html) as a guide, more than I would like to admit, and cover some concepts we have learned during class.\n",
"\n",
"Every notebook starts with the following three lines; they ensure that any edits to libraries you make are reloaded here automatically, and also that any charts or images displayed are shown in this notebook."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"from fastai import *"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"#First we will import the following libraries. \n",
"import math\n",
"\n",
"import torch\n",
"from torch.nn.parameter import Parameter\n",
"\n",
"#from .. import functional as F\n",
"#from .module import Module\n",
"\n",
"from torch.nn import functional as F\n",
"from torch.nn.modules.module import Module "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"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": 6,
"metadata": {},
"outputs": [],
"source": [
"path = Path('data/mnist')\n",
"dest = path\n",
"dest.mkdir(parents=True, exist_ok=True)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[PosixPath('data/mnist/mnist.pkl.gz')]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path.ls()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"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": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(50000, 784)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([50000, 784]), tensor(0), tensor(9))"
]
},
"execution_count": 10,
"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": 11,
"metadata": {},
"outputs": [],
"source": [
"bs=64\n",
"train_ds = TensorDataset(x_train, y_train)\n",
"valid_ds = TensorDataset(x_valid, y_valid)\n",
"data = DataBunch.create(train_ds, valid_ds, bs=bs)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([64, 784]), torch.Size([64]))"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x,y = next(iter(data.train_dl))\n",
"x.shape,y.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## PyTorch Class: torch.nn.modules.linear."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"#def linear(input, weight, bias=None):\n",
"def my_linear(input, weight, bias=None):\n",
" r\"\"\"\n",
" Applies a linear transformation to the incoming data: :math:`y = xA^T + b`.\n",
"\n",
" Shape:\n",
"\n",
" - Input: :math:`(N, *, in\\_features)` where `*` means any number of\n",
" additional dimensions\n",
" - Weight: :math:`(out\\_features, in\\_features)`\n",
" - Bias: :math:`(out\\_features)`\n",
" - Output: :math:`(N, *, out\\_features)`\n",
" \"\"\"\n",
" \n",
" \"\"\"\n",
" if input.dim() == 2 and bias is not None:\n",
" # fused op is marginally faster\n",
" #return torch.addmm(bias, input, weight.t())\n",
" \n",
" #my_weight = weight.detach().numpy()\n",
" return np.matmul(input, weight.t(), bias )\n",
" \"\"\"\n",
" \n",
" output = input.matmul(weight.t())\n",
" #my_weight = weight.detach().numpy()\n",
" #output = np.matmul(input, weight.t())\n",
" if bias is not None:\n",
" output += bias\n",
" return output\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"#class Linear(Module):\n",
"class my_Linear(Module):\n",
" r\"\"\"Applies a linear transformation to the incoming data: :math:`y = xA^T + b`\n",
"\n",
" Args:\n",
" in_features: size of each input sample\n",
" out_features: size of each output sample\n",
" bias: If set to False, the layer will not learn an additive bias.\n",
" Default: ``True``\n",
"\n",
" Shape:\n",
" - Input: :math:`(N, *, in\\_features)` where :math:`*` means any number of\n",
" additional dimensions\n",
" - Output: :math:`(N, *, out\\_features)` where all but the last dimension\n",
" are the same shape as the input.\n",
"\n",
" Attributes:\n",
" weight: the learnable weights of the module of shape\n",
" `(out_features x in_features)`\n",
" bias: the learnable bias of the module of shape `(out_features)`\n",
"\n",
" Examples::\n",
"\n",
" >>> m = nn.Linear(20, 30)\n",
" >>> input = torch.randn(128, 20)\n",
" >>> output = m(input)\n",
" >>> print(output.size())\n",
" \"\"\"\n",
"\n",
" def __init__(self, in_features, out_features, bias=True):\n",
" #super(Linear, self).__init__()\n",
" super(my_Linear, self).__init__()\n",
" #super().__init__()\n",
" \n",
" self.in_features = in_features\n",
" self.out_features = out_features\n",
" self.weight = Parameter(torch.Tensor(out_features, in_features))\n",
" \n",
" if bias:\n",
" self.bias = Parameter(torch.Tensor(out_features))\n",
" else:\n",
" self.register_parameter('bias', None)\n",
" self.reset_parameters()\n",
"\n",
" def reset_parameters(self):\n",
" stdv = 1. / math.sqrt(self.weight.size(1)) \n",
" self.weight.data.uniform_(-stdv, stdv) \n",
" if self.bias is not None:\n",
" self.bias.data.uniform_(-stdv, stdv)\n",
"\n",
" def forward(self, input):\n",
" #return F.linear(input, self.weight, self.bias)\n",
" return my_linear(input, self.weight, self.bias)\n",
"\n",
" def extra_repr(self):\n",
" return 'in_features={}, out_features={}, bias={}'.format(\n",
" self.in_features, self.out_features, self.bias is not None\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"class Mnist_Logistic(nn.Module):\n",
" def __init__(self):\n",
" super().__init__()\n",
" self.lin = my_Linear(784, 10, bias=True)\n",
"\n",
" def forward(self, xb): return self.lin(xb)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"model = Mnist_Logistic().cuda()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Mnist_Logistic(\n",
" (lin): my_Linear(in_features=784, out_features=10, bias=True)\n",
")"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"my_Linear(in_features=784, out_features=10, bias=True)"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.lin"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([64, 10])"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model(x).shape"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[torch.Size([10, 784]), torch.Size([10])]"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[p.shape for p in model.parameters()]"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"lr=2e-2"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"loss_func = nn.CrossEntropyLoss()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"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": 24,
"metadata": {},
"outputs": [],
"source": [
"losses = [update(x,y,lr) for x,y in data.train_dl]"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(losses);"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"class Mnist_NN(nn.Module):\n",
" def __init__(self):\n",
" super().__init__()\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": 27,
"metadata": {},
"outputs": [],
"source": [
"model = Mnist_NN().cuda()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"losses = [update(x,y,lr) for x,y in data.train_dl]"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(losses);"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"model = Mnist_NN().cuda()"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"def update(x,y,lr):\n",
" opt = 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": 32,
"metadata": {},
"outputs": [],
"source": [
"losses = [update(x,y,1e-3) for x,y in data.train_dl]"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(losses);"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"learn = Learner(data, Mnist_NN(), loss_func=loss_func, metrics=accuracy)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"learn.lr_find()\n",
"learn.recorder.plot()"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"Total time: 00:03 <p><table style='width:300px; margin-bottom:10px'>\n",
" <tr>\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <th>0.147097</th>\n",
" <th>0.132961</th>\n",
" <th>0.961600</th>\n",
" </tr>\n",
"</table>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"learn.fit_one_cycle(1, 1e-2)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"learn.recorder.plot_lr(show_moms=True)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"learn.recorder.plot_losses()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## fin"
]
}
],
"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.7.0"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment