Skip to content

Instantly share code, notes, and snippets.

@arghyadeep99
Created September 6, 2019 19:41
Show Gist options
  • Save arghyadeep99/7fd98eb5991e02002cce57a99ef82cdd to your computer and use it in GitHub Desktop.
Save arghyadeep99/7fd98eb5991e02002cce57a99ef82cdd to your computer and use it in GitHub Desktop.
Multi-Layer Perceptron+FGSM Attack.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Multi-Layer Perceptron+FGSM Attack.ipynb",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": [
"1qkSmrr0pPaU",
"hPIcVfMUomgM",
"UueVGHwjtURB",
"omQKPXteuNI9",
"VCu0_ZXsINOC",
"5A2uOstaIicJ",
"MmY41oc0Ivmq",
"D5j8vq-JI2Cy",
"JwZa4vnII-uJ",
"7du6h5AOJpMi",
"JTkb7oaqJH_Y",
"80DQfhLcJbxR",
"hqXFYdehJ7wY",
"66WtTD5DKAT5",
"djMhd7mcKeuo",
"8fxfF1OWKo0R",
"tpkaPG5JLBUB"
],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/arghyadeep99/7fd98eb5991e02002cce57a99ef82cdd/multi-layer-perceptron-fgsm-attack.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ryJgTC5GnCAF",
"colab_type": "text"
},
"source": [
"#Multi-Layer Perceptron\n",
"<ul>\n",
" <li><a href=\"http://neuralnetworksanddeeplearning.com/chap1.html\">What is a neural network</a></li>\n",
" <li>Example</li>\n",
" </ul>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "1qkSmrr0pPaU",
"colab_type": "text"
},
"source": [
"##Importing all libraries"
]
},
{
"cell_type": "code",
"metadata": {
"id": "wy2nKYjzpOZT",
"colab_type": "code",
"outputId": "e4985f9a-5f2f-40f6-cfc3-7a13a4a41837",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 187
}
},
"source": [
"# make sure to enable GPU acceleration! == Done\n",
"device = 'cuda'\n",
"\n",
"!pip3 install torch torchvision\n",
"!pip install torchviz\n",
"\n",
"#Import Libraries\n",
"\n",
"\n",
"from __future__ import print_function\n",
"import argparse\n",
"import torch\n",
"import torch.nn as nn\n",
"import torch.nn.functional as F\n",
"import torch.optim as optim\n",
"from torchvision import datasets, transforms\n",
"from torch.autograd import Variable\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from math import pi"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Requirement already satisfied: torch in /usr/local/lib/python3.6/dist-packages (1.1.0)\n",
"Requirement already satisfied: torchvision in /usr/local/lib/python3.6/dist-packages (0.3.0)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from torch) (1.16.4)\n",
"Requirement already satisfied: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision) (4.3.0)\n",
"Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from torchvision) (1.12.0)\n",
"Requirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow>=4.1.1->torchvision) (0.46)\n",
"Requirement already satisfied: torchviz in /usr/local/lib/python3.6/dist-packages (0.0.1)\n",
"Requirement already satisfied: torch in /usr/local/lib/python3.6/dist-packages (from torchviz) (1.1.0)\n",
"Requirement already satisfied: graphviz in /usr/local/lib/python3.6/dist-packages (from torchviz) (0.10.1)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from torch->torchviz) (1.16.4)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hPIcVfMUomgM",
"colab_type": "text"
},
"source": [
"##Working with nested Linear Regression"
]
},
{
"cell_type": "code",
"metadata": {
"id": "5w7JitK2ovMN",
"colab_type": "code",
"outputId": "6dbd3903-e5c4-4838-d696-230b93b6f1f9",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"losses = []\n",
"\n",
"# generating the data\n",
"x = np.array([_/100 for _ in range(1000)])\n",
"y = 4.5*x + 3 + np.random.normal(size=1000)\n",
"\n",
"\n",
"plt.plot(x,y)\n",
"x = Variable(torch.tensor(x,dtype=torch.double))\n",
"y= Variable(torch.tensor(y,dtype=torch.double))\n",
"\n",
"params = [0]*8\n",
"params[0] = m = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[1] = b = Variable(torch.tensor(2,dtype=torch.double),requires_grad=True)\n",
"params[2] = A1 = Variable(torch.tensor(0.3,dtype=torch.double),requires_grad=True)\n",
"params[3] = w1 = Variable(torch.tensor(0.3,dtype=torch.double),requires_grad=True) # 0.9 for local minima\n",
"params[4] = c1 = Variable(torch.tensor(0.4,dtype=torch.double),requires_grad=True)\n",
"params[5] = A2 = Variable(torch.tensor(0.4,dtype=torch.double),requires_grad=True)\n",
"params[6] = w2 = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[7] = c2 = Variable(torch.tensor(2,dtype=torch.double),requires_grad=True)\n",
"\n",
"lr = 1e-3\n",
"\n",
"for epoch in range(1000):\n",
" \n",
" # Learning Rate Scheduling\n",
" # lr = lr*0.999\n",
" \n",
" # Compute the function\n",
" Y = params[0]*x + params[1]\n",
" Y = params[2]*Y + params[3]\n",
" Y = params[4]*Y + params[5]\n",
" Y = params[6]*Y + params[7]\n",
"\n",
" # Compute the loss\n",
" loss = ((Y-y)*(Y-y))/2\n",
" loss = loss.mean()\n",
"\n",
" # Zero out the gradients\n",
" for i in params:\n",
" if i.grad!=None:\n",
" i.grad.data=torch.tensor(0.0,dtype=torch.double)\n",
"\n",
" # Compute Gradients\n",
" loss.backward()\n",
" # for i in params:\n",
" # print(i.grad)\n",
" \n",
" losses.append(loss.detach().numpy())\n",
" \n",
" # Update Parameters\n",
" for i in range(len(params)):\n",
" params[i] = Variable(torch.tensor(params[i] - lr*params[i].grad.data,dtype=torch.double),requires_grad=True)\n",
" \n",
" if epoch%100==0:\n",
" print('Epoch: ',epoch)\n",
" print(\"Loss: \",loss)\n",
" plt.plot(x.detach().numpy(),Y.detach().numpy())\n",
" plt.plot(x.detach().numpy(),y.detach().numpy())\n",
" plt.show()\n",
" \n",
"for i in params:\n",
" print(i)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:53: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"Epoch: 0\n",
"Loss: tensor(326.0408, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 100\n",
"Loss: tensor(2.6895, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xd4VFX6wPHvSU8IhJIQakjoHUFE\niiAGRBQUK2JbVFzUtax9XX+666rr2kBsKCi6WHHBgh2QIlY6iNRQQ0IJLYGQnjm/P84MM5PMJJNk\nkkx5P8+T57Zzz31H4c3lzClKa40QQgj/F1LfAQghhPAOSehCCBEgJKELIUSAkIQuhBABQhK6EEIE\nCEnoQggRICShCyFEgJCELoQQAUISuhBCBIiwunxYfHy8Tk5OrstHCiGE31uzZs0RrXVCZeXqNKEn\nJyezevXqunykEEL4PaXUXk/KSZOLEEIECEnoQggRIDxqclFK7QFOAqVAida6v1KqKfAxkAzsAcZr\nrY/XTphCCCEqU5U39PO01mdorftbjx8GFmutOwGLrcdCCCHqSU2aXMYBs637s4FLax6OEEKI6vI0\noWtgoVJqjVJqsvVcotb6gHX/IJDo9eiEEEJ4zNNui+dorTOVUs2BRUqprY4XtdZaKeVy6SPrL4DJ\nAElJSTUKVgghhHsevaFrrTOt2yzgM2AAcEgp1RLAus1yc+9MrXV/rXX/hIRK+8ULIYR/2r8OMtdC\n3rF6C6HShK6UaqCUamjbB0YBfwBfABOtxSYC82srSCGE8Hkzh8Ob58FzKbDlq3oJwZM39ETgJ6XU\nBmAl8LXW+jvgGeB8pVQaMNJ6LIQQYteyenlspW3oWutdQB8X548CI2ojKCGE8DmlxaZZpXk3+OZB\nuOBpiGnquqylxL5fdApUCIRH13qIMlJUCCE8seQpmHU+fP0AbPgIfpzivqyl2L4/rTe8mVr78VHH\nk3MJIYTfytpstrkHzba02H1ZS6m1TAnkHTE/llIICa3VEOUNXQghyrJY4Pe59sQMEBJuttraQ1s7\nXCs86Xy/LdkX5NjPncj0fpxlyBu6EEKUteEjmP8XOHUYBv3FnDv9dm1N6JYSOLEfQsJg7k3O92es\ngsfjoP8kcxzTzJSrZZLQhRCirFOHzfbkAfu50DJv6KUlMLWb6/uzrdOXr55ltuOmQ6NW3o+zDGly\nEUKIspQ1Ne5bAbMugJLC8k0ujj1ZKtOsg3fjc0Pe0IUQwlFOJuQeMvv7Vpjte5dBZCOzX5xntp4m\n9Mg4iO/k3RjdkIQuhAhuRXkQFmnevEPD4MXu5cvs/dmh/Cmz/WOeZ/VHxdU8Rg9JQhdCBK/SEni6\npf34Hx6s0WN7Q/dUZGzVyteAtKELIYJXSb7z8e9zKr8nZ59ndY+bbrbhMVWLqQYkoQshgldJkfPx\nsd01rzO8gdna3sxDI2pep4ckoQshgldJgfOxttS8zolfwCP77Yk8JJSsEwUV3+MlktCFEMGrtND5\nuPCEZ/ed/4TZhkZC+/Ocr4XHQESD0wOJtmQVMOTZJew6nFvDYCsnCV0IEXxmDIO3R5v+5Y4ch+pX\npM1ZZnvuQ9C4zEpsIWHsz85n9s87ADh0qoRbhranWYPIGgZdOenlIoQIPKveguRhkNDZHBcXmCaQ\n4lMQ2RAObDDnq5vQIxrA49ay3z7sdOnVZbt5ecNORpLFxDAY1DGR4aO71uDDeE7e0IUQgcVSCl/f\nD7NGmuPf58K/E+Hz2+A/bSDfoWvid87JmIIcCIuq/BlhDnOb97vB6dLctZmM69OKJ8Z2ASAyQr4U\nFUKI6rEN/Cmwtodv/J/Z/v6x2W7+wl42/VfnewtOOHczHPYQ9Lqq/DPCTdLPKyph+pZIzueN05fe\nuW0Ez1/Vh/hO1maZ3uOr+0mqTJpchBCBxZbQbb1MyvZk+fLu8vdENISik5CTAREOCT31/8x241yn\n4oUWxZxf9vDKkh0cyS3kko7NIMM8s327dqZQsw72Zpk6IgldCBFYyib0kwcrv2fMFPhsMhTmmJ9K\nXDjjD3blWBiQ0pQ3ru9H/+SmsGEGtB9e7bC9QRK6ECJwnDwIr55p9m3T3R7ZXvl97c/1+BHJBR/S\nO74h717RhaGd4lFKmQt9JlQxWO+TNnQhhH9Z+SZMtU6gdWK/86pCaQvt+2GRUFxmaL8riT2hYQv7\n8aRFp3e11izdmuVU/I3rz2T+HUMY1jnBnsx9hLyhCyH8yzcPmO3qd+Cre2DwXTDqKXMuwmEirNBw\nyM+uuK6kQTDwdrN/07fQsCU0TTl9+co3fmXN3uPscej4MrpnC3yVvKELIfzTV/eY7fYF9nOOc5Q3\n61jxOp5XfwA3fwfdx5njdoOhaQq/Z9h/Cew7lsdTl/b0YtC1S97QhRD+zeJmseaQMHhrhPv7ysxT\nvv3QSaYs3MaCTYdOv5Evf+g8osJD4TtroWEPeSfmWiIJXQjhO0pLYMZQGPEP6HKhZ/cc22kWZL5i\nlj2hJ/Z0bk+vQPrRPKZ9v53P1mfSICKMe0Z2Ir/5u0Q3bW2SOcBtP8GhzdDn6mp8qLojCV0I4TsK\nsiFrM3x2Gzy8t2r3fjLJvu/BKkFZEUm89NlGPl61j9AQxeSh7bnt3A40aRABdHYu3KKX+fFxktCF\nEL7DNn2trS+5o5IimHujZ/W4m4P89l84mbmZVw72ZPbrmym1aCYMaMtdqZ1IbOTBkH8fJwldCOE7\nSq0LTliKy19L/wW2fV15HcP/Dhs+cj5331ZyCwp5c0MRs35qxKmiXVzWtzX3jOhMUrO6W1GotklC\nF0L4jlKHFYQy18COJdDtYjN8/+v7Pauj7QDTfn58z+lTM9bl8foPO8nOK2Z0jxbcN6oznRMbejd2\nHyAJXQjhO0od3szfTDXbpU9VrY6IWJj4FZbZlxCSuQqA/3y7lWGdE3hgVGd6t2nspWB9jyR0IYRv\nmHkexDSrcTWl4Q34fOMxph1/hB+5DIA5kwcysH3N6/Z1ktCFEL5h/9rKy8R3gSPbKixy0/sbWX6k\nIT1aNSI96RbadukbFMkcqpDQlVKhwGogU2s9VimVAswBmgFrgBu01kUV1SGEEBzabNrDr59nVv7Z\nudR50YmKpAyFPy82qw490850cywjT0cy/bp+jO7RgpCQoV4O3rdVZej/X4EtDsfPAi9qrTsCx4FJ\nLu8SQghHix4zPVb2/GyO37sU5t3k2b1tB5pkDvCX3yhomOx0OS35WubcN46LerUkJMS3Js6qCx4l\ndKVUG2AM8Jb1WAGpwDxrkdnApbURoBAigORnw47vzX5JPhTmen5vozbQ60oA/sjM4cZP9jHyyL0A\nFIWZSbk6nTmCsNDgnaLK0yaXacBDgK2fTzMgW2ttmwknA2jt5diEEIHmpxft+yWFsP4Dz+9texY7\nDp/ixUXb+XrjAeKiw7ntgqHkDT5KzOeTYPPn4GPT2da1ShO6UmoskKW1XqOUGl7VByilJgOTAZKS\nkqocoBDCj619F9b8F/68xBw7zoZYUuB+RKcL6/blcMWLPxAVHsrdqR2ZNLQ9cdHWRSxsI0xVqHfi\n9lOevKEPAS5RSl0ERAGNgJeAxkqpMOtbehvA5TyVWuuZwEyA/v37a69ELYTwbdsXwqks+OIuc2yx\nmKXdMtfYy5QUOg8kqsT+7HxuGpLC7cM7EB8b6XzxdEIP7jf0ShubtNZ/11q30VonAxOAJVrr64Cl\nwJXWYhOB+bUWpRDCt5WWwFMtYM1sc/zhVTD/Dvv1olz4YDyk/2o/980DsOCRCqu9tPSZ0/up3RJ5\nbGz38skc4MLnoM+10Hl0TT6F36vJtwd/A+5TSu3AtKnP8k5IQgi/U3zKfMn5zYOurxeegIyV7u+/\ndTncUf56l669OTzyZQCiwytoUIhrDZe9bpadC2JVSuha62Va67HW/V1a6wFa645a66u01oW1E6IQ\nwieVFNm7HpZY//qXukkDmz6rsKqC+J68tTW83PlnJwwgoVF0TaIMKjJSVAhRPV/fB+veg7vXmdWB\nbNJXlC+78NHy55KHYtGa7SRz4/PLOHiigH1tX+LWtntptXaqKRMSZtb5BEjo6v3PEGAkoQshqme7\ndV220mLThm7z9iiPbp9/xgymLtrO3qN59E2KYur4PgzuGA/HdsPaqRAZZ77kTBkKN35tFnQWFZKE\nLoSwO7HfLOOW0KXysqcOm21JAVD13iV/nbOeri0aMmtif1K7NkfZeqg0SYYr34aO59sLJ59T5fqD\nkSR0IYTd1G5m+3hOxeW0Qw/kkkLY7Fknt2wVR2Nt6n7lmr6McTVEXynoeYWnEQsHwTtGVghRsRP7\nYf+68ud3LjW9VmyK8+HXVz2q8hBNmT9iKSV3rOHiPq2Ccr6V2iRv6EII18q+rR/eDnuWl1856N1L\nPK4yeeIbdEnu56UARVmS0IUQ5e39xb5fWgKhYfDBFZCdXv06z3uUyOSBNY9NuCVNLkKI8o7tsu/n\nHTXbU0drVue5bgYdCa+RhC6EKK8oz75vax9vmlL9+u7dVLN4hEckoQsRDLSGZc9Cjss59Iy0Rfb9\no2n2/V9ehqcS4dAfnj+vk0Nf9AkfQlwbz+8V1SYJXYhgcPB3WPY0fDrZfZkfp9r3V850vlZS4PKW\nN0su4t5OC5xPnnkTXDfXftx1TBWDFdUlX4oKEQyKrQm57HS1JYWw+m3ofAEc3VHlai9KPY8/pw6E\nnZ9BkxQ4thPaySCg+iIJXYhgYEvkjgtKHPgdZlgXUf7u4WpV27qRdUKtDqlm69jOHt0EwqKqVa+o\nHknoQgSax+Og61iY4LC825YvzTY03KzjGRYF+1xMolWBbNWYmMhwIgoO208m9nB/w4M7q1S/qDlJ\n6EIEoq1fmW1psUniK2eY411L4T+todvF9iTvobhGsSiLBRyb09sOcH9DSHAvB1cf5EtRIQLV3l/g\nyXhY/1H5ax4k80MqnuKw2NPHKq6t8zS5wudIQhciUL1zodl6OHEWwA1F9rb0pn/bQPitS+wXL34J\nohub/U6j4ApZpMzXyK9bIQJdqOd/zS8+dyD8CkTFER4VCyVNzYXBd5kpdSd8CBvnwjn3Bv2CzL5I\nEroQga4KbeXjUwfCqigYbV2cOTYB7t0MDVuY48ZtYeh9tRCk8AZJ6EIEEkup6/MNW8LJA+7vi4qD\nsdMgPBoePeR8La619+ITtUra0IXwNctfgCVPVVxm51I44mIgUPZel8WzL59TcX0Pp0PPyz0MUPgq\nSehC+JolT8Ly511fy043ozvfuxRePdP0Kf9wAmRtNdffHOHytpHv7KmdWIVPkSYXIXzVl3+FDR/D\nowfNcXE+TOvlXOY/1uaQo2nQ5SLIP+ayqrO7JIFtvq1r5sDCR6s11F/4NknoQviqNf91Pi6oYJ3P\nozvMrIhuvHZdP3jcetDlQvOTfxw2zoOszTWNVPgISehC+LpvHjRfVp5xfc3rioyz70c3gQF/rnmd\nwmdIQhfC19mmsu16cc3q+XsmKPnaLJBJQhfCl2jt/lpFTS7uNGoNfa4x+5GxFZcVfk9+XQtRn7SG\nab1hnXVmxJJC92VzD1a9/gkfwIjHqheb8DuS0IWoT8X5pu/4F3eaLomZa9wW1V/cVXl949+FVv3s\nx6UlXghS+AtpchGiPtmaUbSlfJfEMpS2VFzXOfdC93Hm59Nb4fc5Mt9KkJE3dCHqQuYayM8uf746\n7eJlNWxltkmD7OfGTIFx06H1mTWvX/gNeUMXorZZSuHNVGgzAEb8w0x01SDetJ97I6F3GQ3D/w6x\nze3nImOh73U1r1v4FUnoQtQ228CdjJUwe6zztU6jal5/eIxzMhdBq9ImF6VUlFJqpVJqg1Jqk1Lq\nX9bzKUqpFUqpHUqpj5VSEZXVJURQeuMc99fSFta8/vDomtchAoInbeiFQKrWug9wBjBaKTUQeBZ4\nUWvdETgOTKq9MIUQ5TTrZLZhUfUbh/AZlSZ0beRaD8OtPxpIBeZZz88GLq2VCIXwZ9n7vFvf7b/a\nE3njJLMNi/TuM4Tf8qiXi1IqVCm1HsgCFgE7gWytta2TawbgchZ8pdRkpdRqpdTqw4cPeyNmIfxD\nTgZM6+mdusa/B32uhebdYNxrcNafoWmKuRYqrZ3C8Ciha61LtdZnAG2AAUBXTx+gtZ6pte6vte6f\nkJBQzTCF8EGFueUH7lhKYdVbUHQKsrZUrT4V6v5a90vgstdNv/Kks2HMC1BaZK5JQhdWVerlorXO\nVkotBQYBjZVSYda39DZAZm0EKITP+k9r6HkFXPk25B2DH6eYt+av74eCHHRELFUa1nP7zzB9oNmP\niIWErmaw0Kks1+VLi81WErqwqjShK6USgGJrMo8Gzsd8IboUuBKYA0wE5tdmoEL4FNskWn98YhL6\n94/D2tmnk2v6Cc3KLeu5sqI6uo+DzQ5/bZp3s+//PaPyUZ62eV+kDV1YedLk0hJYqpT6HVgFLNJa\nfwX8DbhPKbUDaAbMqr0whfAxtuYOm+I8p/OzfklHnzpacR1dx5q5V1zxZMi+NLmIMip9Q9da/w70\ndXF+F6Y9XYjgU2ZWxNz8Ahwnp708pZg+GQvc399rvHlDD4uE6z+xTwtw/SdwbLdnMUhCF2XISFEh\nqsMhoc+f8Ri9M1cR6/Dv3T4ZH1Z8/8Uv2ZtKOo60n3fcr4xtQFFEjOf3iIAmk3MJ4c6hzbDpM+dz\nG+bA43EczUo/fWrcgZdJCXEzV3mL3q7Pe6Pde8yLkPoYtKtgJKoIKpLQhQDIPWy6HAIc3AjzbobX\nB8HcG50m0Cr5ZToAr//XTdt3WS37mG3n0TDB4a09pIIuip5q0AyGPQAh8tdYGPInQQS3/Gz4/C/w\nQkdY/C9zbu5NpveKzTNJnCos4dUlaWw8VADAoyH/dV9n43b2aWsTrEM2Oo+GrmO8H78QDiShi+C2\n9N+w3rr829ZvTNt43pFyxYY9t5QeSyfRl22u67ne4RdA17Fw07dwzRwYfCfcuhzOvNFcSxrs3fiF\ncCBfiorgluswaCc0HGadD/nHyxXr2rIh52VscF+PY6IOCTFt5F0uNMe2ZheAGz6FwpM1DFoI1+QN\nXQQ3x+QaEgYHXCftD24+y30d3S42PU0G3WmOC064LxseLXOXi1ojb+giuBXnn961ZG1x/4az+m3X\n52/7GZp3N/utrMM1vLEKkRDVIAldBK/sfZBnH80ZYil2X/abB8qfu/B5aOEwm2JUY7MtcLF2qBB1\nQJpcRHAoKYL0FfZjS6mZ2vaImy85KxLbwmwLyzStNEw026i46sUoRA1JQhfB4fvH4e1RcGgzWw+e\n4OG3v6l+XcMegJ5XQp9rnM+36AWXvgFjp9UoVCGqS5pcRHDI2gTA618u55tdxTSPKKrkhgpENYYr\n3cxFd8Y1rs8LUQckoYuAtz87n+wjJXQHStJX8WXEvErvEcIfSZOLCFhHcgt54svNDH9hGbuyzbD+\nu0KqkcyvfKfMCV3z4ISoBfKGLgJOTn4xb/24i/k/rUUXF3JtnxTOU21hy6/Vq7Dn5WYVovxj3g1U\nCC+ThC4CRl5RCf/9ZQ8zfthFYX4uW6Nug0hgK9BvoucVnfsw/PCM87miXPt+yrneCFcIr5OELvzX\n/nUQFk1x+go+LDqXV5bs4EhuIaldm/PgOR3hfYeya2d7Xm+3sfaEbvtFYFtM4u8ZENnQK+EL4W2S\n0IV/sFjMsmyOS7PNHA5AOPB54b/4V9P1tB91Pd16d4HcQ1V/Rlg0pAyFyEbmeOBfYPR/zP7wR2DZ\n05LMhU9TWtfdFzz9+/fXq1evrrPniQDyeGNoezb0vQ5Lu6F8kxHO2M96lC+nQkGXVlxXn2thw4cQ\n1xaG3gdf3Wt9hsOQ/UObIb4zhMo7j6h/Sqk1Wuv+lZWTXi7CT2jY9xt8cRc5rw7nwY9WuC5W2UpA\n/zhmprQFM1Vu/5tdl0vsLslc+B35Eyv8ThOdzQuXdoLvXFys6F+c0U3NSkENW5rjWOtQ/WEPwfE9\n3g5TiDonCV34Lq35fd8xnl+YxntlLo3p2th1Qi/Jd3ESGDMVUoaZ/ZimcMmr0OE8c5z6f96KWIh6\nJQld+KTth05y5P1JDD65gO3qg/IFit0k7rImfARN2kFimfb2fjfUPEghfIwkdOFT0o/mMe377Xy2\nPpPdkQsAWHp1NMwpU7A4r+KKwhvABf82qwY59owRIoBJQhf1p+gULH8BhtzNwaJoXlmSxser9hEa\nopg8tD2sNMVi5lxe/l5Xb+gx8fb1QG9dDvEday92IXyQJHRRf5Y8Bb9N5+uMSO7b0YdSi+aaAUnc\nmdqRxEZRsL0dZO91fa+rdTmjGtkTum1uciGCiHRbFN614/uK19S0OllQzO5t6wH4Li2XMb1bsuT+\n4TzZ6zCJW6yjOh2H25f14fjy50IjzLZDqgwAEkFJErrwnpxMeP8K+OxWt0Xyi0qZ8cNOhj63lMNH\nzfJvL0e8xtTN55IUXQDvXQrfPgSHtzktD+eR49a3+R6XVfcTCOHXpMlFeI/ti8oj28tdKiqx8PHq\nfbyyOI2sk4UM65xAr9xQOAZKW0yhozvtN5w86P45LXrBwY3244Yt4eQBaNYRDm2UhC6CliR0UatK\nLZrP12UybfF2UnM+Z2X4bFbevJkBnVvDtFPOhR0XV373ErP903x4d5xzuZsXwtMt7cd3r7feq6C0\nUJpbRNCShC68T2u01izYdJApC7eTlpVLj1aNeER/B/kw4Jdb4avdlFso4uiO8nU1SSl/LiLG+Tg8\nCsJbeC18IfyVJHThPdZh93nFpVz96s9szMyhQ0IDpl/Xj9E9WhDyagPIB/b8aMo3auN8/+8fl68z\nurF9v+UZcGB97cQuRACoNKErpdoC7wKJmFeqmVrrl5RSTYGPgWRgDzBea3289kIVvm5jxjF6AQdz\nCjgWU8T0MQlcoH4jtOe5ZnBPWJTzDScynI/3rytfaYRD88nN30FJgdfjFiJQeNLLpQS4X2vdHRgI\n3KGU6g48DCzWWncCFluPRRD6IzOHG99Zyd/+twaA9iEHWd72DS5aMprQ7x+D3CwoKYKszVWr+PpP\nIcThj2h4NEQ3Mfu3LPFS9EIEjkrf0LXWB4AD1v2TSqktQGtgHDDcWmw2sAz4W61EKXzSjqxcXly0\nna83HiAuOpx/DE4Ck9MJTVtgL1h8Cla87lmltr7kpUUmgQPc9G35WRTbnFmz4IUIQFVqQ1dKJQN9\ngRVAojXZAxzENMmIILDvWB4vLU7j07UZRIeHcndqR24Z1p5GX052fcNvb0DaQs8qn7QI3rvMLMhs\na6JpN9h12cnLzNu/EAKoQkJXSsUCnwD3aK1PKIcJj7TWWinlciJqpdRkYDJAUlJSzaIV9SrrZAGv\nLdnBFyu3kqeiuXlICrcP70CzvF2w8iXY9KnrG1fO8PwhMc3Mm3k+9jd0d1r19bxeIYKARwldKRWO\nSeYfaK1tf2sPKaVaaq0PKKVaAi5flbTWM4GZYJag80LMoq6cPAjzJpFz8ZvM/WEdhzZ8x9cl57Au\nYjInBz1IwwvGmHIvDrMvolxdCd3gyDZ7QgdQMpBZiKrwpJeLAmYBW7TWUx0ufQFMBJ6xbufXSoSi\n3hT9Mp2IvT/xzitPcivziA4p4saJN8JH0HDrXIiLh7Mm1TyZA9z8LZSWmD7mnUaZPukRsTWvV4gg\n4skb+hDgBmCjUsrWCfgRTCL/n1JqErAXcDFbkvBHBcWlvP/bXsJ+28ONQNtmDYg+ZpJ26+gSU+j4\nHviuGt+BO05x6ygyzt6j5fwnzVqfca2rE74QQcuTXi4/Ae5WCBjh3XBEfSoutTB3dQYvL07j4IkC\nXosPh1y4olsD+Nla6FSZlrWKkvpda+GVfs7nHtoJP06BxU84n3fsnhgaBvGdqv05hAhW0kgpsFg0\n89dnMnLqDzzy2UZaNY7iwz+fzZie1o5L2en2wh9f73nFzTqY/uJD7nE+P+QeGPEP+3GnUdUPXghx\nmgz9D2JaaxZtPsSUhdvZdugk3Vo2YtbE/qR2bY5SCrZbZ0EsKaz+Q9qcCVu+MPv9JpptSCgkWbsi\ntj0brptb/fqFEKdJQg9SP+84wnMLtrFhXzYp8Q145Zq+jOnVkpAQh9Y1XWq2nvYhd8dibXdv2t5+\nztbtteyAISFEtUlCDzJr9h7nhQXb+HXXUVrFRfHcFb25vF9rwkIdWt+y95k1O1e9ZY4txTV7aFik\n2UY69lqx/eKQhC6Et0hCDxKb959gysJtLN6aRXxsBP+8uDvXnp1EZFho+cJzb4TM1d57+Dn3gQqF\nvn+yn5M+5kJ4nST0ALfrcC4vfp/Glxv20ygqjAcv6MKNg5NpEFnB/3pXyXz0s5V3U0zoar7snHOt\n8/nIWEj9P+dzrftB/0kw+E7PPogQolKS0ANUZnY+L3+fxry1GUSEhnDHeR2YPLQDcTHh5Qsf3wMN\nEiCigfsKoxpV/tCkQdB1jGcBhoTC2KmVlxNCeEwSeoA5fLKQ6ct28MFvpqvhnwa14y/DO5LQMNJe\n6KcXoc1ZkHyOOX6pj5l3/JEMszizK1FxZrDP6rft5wbdCb++aj9W7oYrCCHqgiT0AJGTV8zMH3fy\n9k97KCq1cNWZbbhrRCdaNy4zwZXW8P3jZv/xHDNPOUDRSdi3Cnb/4PoBkY3goilwxnXQpr/9vGNC\nl7U8hahXktD9XF5RCXOWrmHFrz+woKAHF/dpxb0jO9E+wdqjxFIKv003b9cRDSDfYVGpH6fAmTfZ\nj2eNtO836wRH0+zHUY3MaE7HZO4o9TEY+Bezf/UH0Kil63JCiFojCd1PFZaU8uGKdF5buoMPiu7h\n5pAMNt+5h+5tmsDCx6BZR0jsCW+lmhvyj5svLB3X7Vz8BPS8wvUDGrVyTuhxbSsOaNgD9v1uY6v3\noYQQNSIJ3c+UlFr4ZG0GLy/eQWZ2PgPbN6XLfrM2Z/cE6xeev7xsto5dA7V11GfWFucKv3nQ9YP6\n/Qn2rzcjPRu3g5imrstd8LTpsy6EqHeS0P2ExaL5euMBXly0nV1HTtGnbWOevaI3Qzo2gydCTMKe\ncy1c/b79JlsSB4i2JuRdy5wrdjcKtNeV5qcyg+6o0ucQQtQeSeg+TmvNkq1ZvLBwO1sOnKBLYkNm\n3nAm53dP5PSqUcqa0Hf/ADtH4gckAAAQ7klEQVQWua4oNByO7oTsvXUXvBCiTklC92G/7jzK8wu2\nsjY9m3bNYnhpwhmM7d2K0BBlmk6mD4TbfjajMLHOl2Jbh7Os4nwoznN9recV8Mcn9uN253j1cwgh\n6oYkdB+0fl82LyzYxk87jtCiURRPX9aLq/q3IdxxvpXN1hkMN3/u3FZeeNJ1pYv/ZX7Kuvp96HSB\nc0JP7F7zDyGEqHOS0H3ItoMnmbJwGws3H6JpgwgeHdON6we2IyrcxXwrtvZxFeI8eVbBCc8fGBMP\n3S6uWdBCCJ8hCd0H7Dlyimnfb2f+hv3ERoRx//mduemcFGIrmm/FNkvhD886ny6sQkIPcfGLAnC/\nQJUQwpdJQq9HB3LyeXnxDuau3kdYqOLWYR247dz2NI6JqPxmd/OIL3my8nvPexSWPmUGHdl0HQtb\nv/IscCGET5KEXg+O5hby+rKdvPvbXrTWXHd2Enec15Hmjdx8oZl7GP6YB2dca+ZUAfsqQDZNUuD4\nbvcPTRoM6b+Y/ZZ9zNa28ATAhA/g19dgwSMyJ4sQfkoSeh06UVDMW8t3Meun3eQXl3J5vzb8dUQn\n2jaNqfjGV/qZppTvHjbzrwAc3upcpllH9wm9WUcY8Ri8c6E5jmlmto5v6EIIvycJvQ7kF5Uy+9c9\nvL5sJzn5xYzp1ZJ7z+9Mx+axzgW1Nm/eXcZAaJhZnDksuny7uMVCOQ3i3QegQqDdYGjeA7I2QXRj\naz0lzuVirHU0bFGlzyeE8A2S0GtRUYmFOavSeWXJDg6fLOS8LgncP6oLPVvHlS9cWgzr3oOv7oVh\nD0LqozCtV/lyBza4nlcluon7QGzdGm/4FNIWmXlawL5mqE2vq8zW3fwuQgifJgm9FpRaNJ+ty2Ta\n99vJOJ7PgOSmTL+uH2clO8yHorVzW/WCR2DlTLO/e7n7ymcMg86jnc/FJkLnC8ysiq7YEnrDFtDv\nBvPsrmPhrEnO5UJCoM/Vnn1IIYTPkYTuRRaL5rtNB5mycBs7D5+iV+s4/n1ZL4aV/oaKjAGsCX37\nQvjwKrjtJzNAqNUZ9mQOkLEa5lewNNv275yPH9hutn/dAGvfNdPiOiq7fqdS5ktQIURAkYTuBVpr\nlm0/zJSF2/gj8wQdm8fyxvX9uKBHCzPfyuPXm4K2LzS3fmm2i/4JOxe7qLDUNL9UVZNkaHmG2U/o\nZt7GpdeKEEFDEnoNrdx9jOcXbGXVnuO0bRrNlKv6cGnf1ma+FXeUdUBP+q/eDyihq9kOuAVan2l9\nXoj78kKIgCEJvZo2ZuTwwsJt/LD9MM0bRvLkpT25un9bIsI8SJ4h1v/s7ibLKqtDKuxcYj8ecg+E\nRZYfJQqQ0Bke3GXmLz912JyzfdkphAhoktCrKO3QSV5e8AcLNh8iJiaGRy7qyg0Dk4mOcDeM3sGR\nNNPG7XbIvRsDbnVO6OdbJ9lyldABGlj7mcc2h/876H4GRiFEQJGE7qF9x/KY9n0an63LYEvERKbE\nhFP4UDoNo8Jd3/DmCOg+DobcbT/3qnU9ziYpnj/4kf2mq+JpZZpyulxU8f3h0RVfF0IEDEnolcg6\nUcArS3YwZ1U6IUpxy9D2RK4sBksxEe6SOUDmavNjWzjZUUVD9MuKaOB8fMdK+/4jByDUg3lfhBBB\nQRK6G8dPFfHGDzuZ/eseSko1V5/VlrtSO9EiLgpWlil8cCNs+RLOe8QcO06cVVrovaCSBpk2cpuI\nSqYMEEIElUoTulLqbWAskKW17mk91xT4GEgG9gDjtdbHay/MunOyoJhZP+3mrR93c6qohMvOaM09\nIzuT1KyC5Pn2aCjKhaH3my8rSwrs137/uOpBpJxrlpMTQogq8KQ/23+BMkMTeRhYrLXuBCy2Hvu1\nguJS3ly+i2HPLWXa92mc0zGeBfcMY+rVZ1SczNNXmGQOZrWgPT9BkUPvla/u9TyIC56GxF4wscxM\nirY5VmyzJAohhAuVvqFrrZcrpZLLnB4HDLfuzwaWAX/zYlx1prjUwser9vHKkjQOnShkaKd4HhjV\nhT5tG1d+c0kRvD3KfvzNg7DpU7jyneoFM+gO8wPw0G57//GEznDLEmjhYm4XIYSwqm4beqLW+oB1\n/yCQ6KV46kypRfPFhkxeXJRG+rE8+rdrwksT+jKwfTP3i0eUq6TI+XjTp2Y776byZc+5Dw5tgrQF\n9nOhke7b2GOaOh+3OdOzmIQQQavGX4pqrbVSym0GVEpNBiYDJCUl1fRxNaa1ZsGmQ0xdtI3th3Lp\n3rIR79x4FsO7JJhh+mDaxI/vgQe2VVxZ2YRekZa9oe/1zgnd9gbeOAkG3lGlzyGEEGVVN6EfUkq1\n1FofUEq1BLLcFdRazwRmAvTv39/DV1/v01rz044jvLBgGxsycmif0IDXru3HhT1bEFJ2mP6+31xX\nsmsZZKyyHz/fwfMAwqLNXCuOLnkFFv8L7l5f9cFGQghRRnUT+hfAROAZ63a+1yKqBav3HOP5BdtY\nsfsYrRtH89yVvbm8b2vCQqs4x8m745yPtYuFJtyJjDVJ+87V9gFGva8yP0II4QWedFv8CPMFaLxS\nKgP4JyaR/08pNQnYC4yvzSCra9P+HKYs3M6SrVnEx0byr0t6MGFAWyLD3LwN//4/iGxoP348znzB\nGdMUvq3hd762euM71aweIYRww5NeLte4uTTCy7F4zc7DuUxdtJ2vfz9AXHQ4fxvdlYmD2xETUcnH\n/fTP5c9tnAtZW6o2utPmwufh2wfNfkRsxWWFEKKGAmqkaMbxPF5enMa8NRlEhYdyV2pHbhnanrjo\nCoboe6I4v+r3/HkptO4Hi5+AopPOb/6Xvu7cFi+EEF4QEAk962QB05fu5MMV6aDgpiEp3D68A/Gx\nkTWvXFsg92DV72vdz2wjGpiE7jgnyxnXmh8hhPAiv07oOXnFzFi+k3d+3kNRqYXx/dtwV2onWjX2\n4gyDZZd7q8zEr8ocf2m6KpadZEsIIbzMLxP6qcIS3vl5NzOW7yK3sIRL+rTinpGdSYmvZtJc/jy0\nG1L1+yJi7cP+bVKGOh8ndHaeUEsIIWqJXyX0guJSPliRzvSlOzh6qoiR3RK5f1RnurVsVLWKvnkQ\n2gywdxlc8pTZhjeA4lOe1REWBa36wp4f4ezboe1ZsMPF+qBCCFFH/CKhF5da+GRNBi8tTuNATgFD\nOjbjgVFd6JvUpHoVrpxpfnpeDj+/ZD8fFulBQleANk0pv7xsTiUNhB6XQs8rqhePEEJ4gV8k9Bvf\nWcnPO47SN6kxU67qw+CO8d6pOG2hGalZFX/6HBY/Cc27mW6JYdHQ+QLvxCOEEDXgFwl94qBkbhqc\nwohuze3zrVTX3Bvt+0Vl3sZ1qfv7LpsBLc+A5l2h/XBzLrIhXPFmzeIRQggvqeLY9/oxqkcLRnZP\nNMk8Ox2+uMtMXVsdmz6z71vKJPCCHPf3pQwzyVwIIXyUXyR0J3NvhLXvmmXfqqKkEArL9EgpznNd\nNjLOxbmG5c8JIYQP8YsmFydH0sz2rVR4NMt8kVmRJf82TSk/vwyWYudrJ10MGOp9tWkf//5x5/My\ndF8I4eP8L6E7zkF+Yj80TSlfpqQICk9Ag3hY/pz7utJ/LX/OUgqD7oIuF0GzjvCEdaGJmrbdCyFE\nLfO/JhdHpQ5v3Om/wbFdZv/z28xc5ZZKprd1tRCzpQRCwyChi8xRLoTwK/73hu6opMC+/7a162Df\n6+GPT8x+/rGq11m2p8u9myDvaPXiE0KIOuQfb+gWCyz6p+nh4sjVl5rr3rfvu2ojr/RZZRJ6XBto\n2afq9QghRB3zj4R+eAv8PA3+9yfn82XnUSnry7udj4feb98/+3bTn7zj+c5lLCXVjVIIIeqVfzS5\nhFjnMy/bT9w2MGjFDNf3Za5xPo5tYd9v0QsufMa8ka//AGIT4cPxktCFEH7LPxK6rYeJ7UtPm/3r\nzfbbhzyrJ9ph7pfe1lXzQkKh359g51JzLAldCOGn/COhlxa7Pv/T1KrV06il2fa4HELLrGIUYv1P\nUVnPGCGE8FH+kdBXumlSqap2Q2D0s/a3c0dR1tGhtqQvhBB+xj8S+pavKi9TkbgkyEk3TTcDb3Nd\npmVvuGKWzJwohPBb/pHQazrAZ/IyOJFZebleV9bsOUIIUY/8o9uickjorfp5dk+Xi+z7DZqZN3Ah\nhAhg/pHQbW/oF78M137sukyzTs7H13wEETJDohAiePhHQrd1W2zRE2Kbw/h3oXl35zLjZ8N185zP\n3bcJHtpdNzEKIUQ985OEbn1Dtw0w6j6ufHt3Yg/oVGbUZ1QcxDSt/fiEEMIH+EdCtzW5OPYd7zUe\nGjSvn3iEEMIH+UcvF+Wil0vjtvBgGhTng5bBQEII4ScJ3foPCVeJOzy6bmMRQggf5R9NLlGN6jsC\nIYTwef7xhn7lO7DuvfI9W1yZ8JE0wQghgpJ/JPS41jD8Yc/Kdr2o8jJCCBGAatTkopQarZTappTa\noZTyMOMKIYSoDdVO6EqpUOA14EKgO3CNUsqDNhEhhBC1oSZv6AOAHVrrXVrrImAOMM47YQkhhKiq\nmiT01sA+h+MM6zkhhBD1oNa7LSqlJiulViulVh8+fLi2HyeEEEGrJgk9E2jrcNzGes6J1nqm1rq/\n1rp/QkJCDR4nhBCiIjVJ6KuATkqpFKVUBDAB+MI7YQkhhKiqavdD11qXKKXuBBYAocDbWutNXotM\nCCFElSitdd09TKnDwN5q3h4PHPFiOP5APnNwkM8cHGrymdtprStts67ThF4TSqnVWuv+9R1HXZLP\nHBzkMweHuvjM/jE5lxBCiEpJQhdCiADhTwl9Zn0HUA/kMwcH+czBodY/s9+0oQshhKiYP72hCyGE\nqIBfJPRgm6ZXKdVWKbVUKbVZKbVJKfXX+o6pLiilQpVS65RSX9V3LHVBKdVYKTVPKbVVKbVFKTWo\nvmOqbUqpe61/pv9QSn2klIqq75hqg1LqbaVUllLqD4dzTZVSi5RSadZtE28/1+cTepBO01sC3K+1\n7g4MBO4Igs8M8FdgS30HUYdeAr7TWncF+hDgn10p1Rq4G+ivte6JGZA4oX6jqjX/BUaXOfcwsFhr\n3QlYbD32Kp9P6AThNL1a6wNa67XW/ZOYv+gBPZOlUqoNMAZ4q75jqQtKqThgGDALQGtdpLXOrt+o\n6kQYEK2UCgNigP31HE+t0FovB46VOT0OmG3dnw1c6u3n+kNCD+ppepVSyUBfYEX9RlLrpgEPAcGy\nIGwKcBh4x9rM9JZSqkF9B1WbtNaZwAtAOnAAyNFaL6zfqOpUotb6gHX/IJDo7Qf4Q0IPWkqpWOAT\n4B6t9Yn6jqe2KKXGAlla6zX1HUsdCgP6Aa9rrfsCp6iFf4L7Emub8TjML7NWQAOl1PX1G1X90KZ7\node7GPpDQvdomt5Ao5QKxyTzD7TWn9Z3PLVsCHCJUmoPpkktVSn1fv2GVOsygAytte1fXvMwCT6Q\njQR2a60Pa62LgU+BwfUcU106pJRqCWDdZnn7Af6Q0INuml6llMK0rW7RWk+t73hqm9b671rrNlrr\nZMz/3yVa64B+c9NaHwT2KaW6WE+NADbXY0h1IR0YqJSKsf4ZH0GAfxFcxhfAROv+RGC+tx9Q7elz\n60qQTtM7BLgB2KiUWm8994jW+pt6jEl4313AB9YXlV3ATfUcT63SWq9QSs0D1mJ6cq0jQEeMKqU+\nAoYD8UqpDOCfwDPA/5RSkzCzzo73+nNlpKgQQgQGf2hyEUII4QFJ6EIIESAkoQshRICQhC6EEAFC\nEroQQgQISehCCBEgJKELIUSAkIQuhBAB4v8BkPk/tg3Iy6UAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 200\n",
"Loss: tensor(1.7114, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 300\n",
"Loss: tensor(1.2240, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nUEAXEYkT/w+MVoG7sArRkgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 400\n",
"Loss: tensor(0.9531, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 500\n",
"Loss: tensor(0.7946, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 600\n",
"Loss: tensor(0.6992, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xec1MX9x/HXXAcOjnYcvUSQYkHw\nomIXLGBDIyJWVAyJNfYWNZgYo4k1MRZU/CH2LmIDKbGjICpSFFB6lc4BV+f3x+yy5Xbv9u72btv7\n+Xjc4/ud+c53di6RD8PsFGOtRUREEl9arBsgIiLRoYAuIpIkFNBFRJKEArqISJJQQBcRSRIK6CIi\nSUIBXUQkSSigi4gkCQV0EZEkkdGQH9a6dWvbtWvXhvxIEZGEN3v27F+ttfnVlWvQgN61a1dmzZrV\nkB8pIpLwjDHLIimnIRcRkSShgC4ikiQiGnIxxiwFtgPlQJm1ttAY0xJ4GegKLAWGW2s3108zRUSk\nOjXpoR9jrT3AWlvoSd8MTLXW9gCmetIiIhIjdRlyGQqM99yPB06re3NERKS2Ig3oFphsjJltjBnt\nySuw1q7x3K8FCqLeOhERiVik0xYPt9auMsa0AaYYYxb6P7TWWmNMyKOPPH8BjAbo3LlznRorIiLh\nRdRDt9au8lzXA28CBwHrjDHtADzX9WHeHWutLbTWFubnVzsvXkQkMa2eA6u+gZ2bYtaEagO6MaaJ\nMaap9x44HvgBmAiM9BQbCbxdX40UEYl7Y4+GJ4+Bf3aDBZNi0oRIeugFwKfGmO+Ar4B3rbUfAPcA\nxxljFgHHetIiIvLzjJh8bLVj6Nban4G+IfI3AoPqo1EiInGnvNQNq7TpDe/dACfcDY1bhi5bUea7\nLykCkwaZjeq9iVopKiISiWl3wdPHwbvXw3cvwif3hy9bUeq7f2h/eHJg/bePBt6cS0QkYa2f7647\n1rpreWn4shXlnjJlsPNX91NRDmnp9dpE9dBFRIJVVMD3r/oCM0Baprtazwxt6/eseHvg+95gv3ur\nL2/bqui3M4h66CIiwb57Ed6+DIo2wIDLXN6e3rUnoFeUwbbVkJYBr14U+P7Kr2FMHhSOcunGrVy5\neqaALiISrGiDu25f48tLD+qhl5fBA71Dv7/Fs335rKcBmNP/bvo1a18PDQ2kIRcRkWDGExpXzISn\nT4Cy4spDLv4zWapx3dTtfLO8/jejVQ9dRMTf1lWwY527XzHTXSecDtnN3H3pTneNMKBvpzE3nXcK\n/To1j3JDK1NAF5HUVrITMrJdzzs9Ax7sU7nMss/8yhe56w+vRVR9bl4rTtinbRQaWj0FdBFJXeVl\ncHc7X/qOCIZFvD30CJnspjVsVO1pDF1EUlfZrsD09y9V/87WFZHVPfRRd81sXLM21YECuoikrrKS\nwPSmX+peZ2YTd83Oddf0rLrXGSEFdBFJXWW7A9O2ou51jpwIt672BfJ6Xh3qTwFdRFJXeXFgunhb\nRK/dXXo2ABXp2fCbYwIfZjaGrCa+hUTe+esNQAFdRFLPE0fCuMFufrk//6X6VTjimCEApB11IzQP\nOonNG8i90xobYIWol2a5iEjy+fop6Hok5O/t0qW73RBIaRFkN4U137n82gb0fbrCsZ6y798c+NA7\nxLInoKuHLiJSOxXl8O518PSxLv39q/D3Anjrj/CPjrDLb2riB0HBePdWyMip/jMy/PY2739+4DPv\nKlPvBl0aQxcRqSXvwp/dnvHwua+46/cvu+v8ib6yy78IfHf3Nsr9gvX4zOGs7XJK5c/I9Av6BfvA\nNfN9ae+883aec4H2H17DX6D2NOQiIsnFG9C9s0yCZ7K8c1Xld7KaQsl2dm9cxtayTAqMyx5x0+Nk\nZ6S7nRP9BY+LZ2T7PrNJa3ffai8YE9kQTrSohy4iySU4oG9fW+0rc/a/DYCc8h0UGN+QTHZGmOGS\nnKB9WZq0htOfgKvn1ri50aSALiLJY/taeORAd++dLvjrT9W+NvrT3Mg/Y8xWyAqx+rPvCGjaMHu2\nhKOALiKJ5asn4QHPBlrbVgeeKrRosu8+IxtKg5b2h/ATXbj69CN8GaOmRKmhDU9j6CKSWN673l1n\nPQOTroZDr4Tj73J5WX497fRM2LWlyqqWNdmfDsdezd79ukDb96FpO2jZrZ4aXv8U0EUkMU262l1/\n+tAX0P33KG/VvcpzPFcc/yRdDvWbgdLl0HpoZMPSkIuIJLaKMIc1p2XAU4PCvtapXbuwz8I68saa\nv9OA1EMXkfhRXgZPHAGD7oCeQyJ7Z9MSN63wjKd9Ab1g38Dx9Joa8QLkFvjSf/wU1s2HvmfVvs4G\noIAuIvFj9xZYPx/e/CPcvKxm774+as/t5opGtKiufOse4Z/1Oikw3XY/9xPnFNBFJH54t6/1ziX3\nV1YCr14YUTVz1+7myFBTyC/93E1j3Of0Wjcxnimgi0j8KPccOFFRWvnZ8s/hx3erreK/9kzOz/0C\n/GcsXrsQbDnkdXRL9ZOUArqIxI9yvxOEVs2GxdOg9ylu+f6710VUxTnDzqTZlz/DqpW+zGa1+AI0\nASmgi0j8KPfrmT850F2n31WjKlo0bwEjJ8Gzp8LKr6PYuPingC4i8WHsMdC4Vd3rycp1S/Mv+ajy\nplpJTgFdROLD6m+qLbKlyW9oXvRz1YX8t7Y99CrI71XHhiWOiBcWGWPSjTFzjDGTPOluxpiZxpjF\nxpiXjTENd7S1iCSudfNh3BDfTJYl0+GHNyJ6deLWvRjV/k0WXbqy8o6HXplNfPfH/w36nVvHBieO\nmqwU/ROwwC99L/CgtbY7sBkYFfItERF/U253M1aWfubSE06D1y6K6NW+h57AU78/hh4FTeGyL6Hl\nbwILHDQamhaEfjkFRBTQjTEdgZOApzxpAwwEXvMUGQ+cVh8NFJEksmsLLP7I3ZftguIdEb9qm3Wg\n75BLcOEHN3Pl/LfcfXYzd+10cBQbm3gi7aE/BNwIeGb90wrYYq317oSzEugQ5baJSLL59EHffVkx\nfPt8xK+aTgeBN5h7teji9iffyzMjJvh5iqk2oBtjTgbWW2tn1+YDjDGjjTGzjDGzNmzYUJsqRCRR\nffOsb/ohBO6GWLbbd6pQRKoI1t4VpqbhDmSOR5HMcjkMONUYcyKQAzQDHgaaG2MyPL30jkDIfSqt\ntWOBsQCFhYU2Kq0Wkfj202QoWg8Tr3Tpigoo3uoWC3mVFQcuJKqLPQFdPfQqWWtvsdZ2tNZ2BUYA\n06y15wLTgWGeYiOBt+utlSIS38rL4K62MHu8S79wJrx9ue95yQ54fjgs/8KX99718OGtVdf7h098\n91UF6yH/hL7nwN6Da972JFKX/dBvAq41xizGjak/HZ0miUjCKS1yX3K+d0Po58XbYOVXYV9fdNp7\ncHmI5y27ucOXgSqHXPI6wOmPuWPnUliNFhZZa2cAMzz3PwMHRb9JIpIQykrc0vquh7nhE4Dy4tBl\n571ZZVU9Djgs9IOMHDA6hydSWikqIrXz7rUwZwJcNcedDuS1fGblspNvq5RV1uVwMoxxh1F4jfoI\nfp4O0//u0mkZ7pxPSKkVn7WlgC4itfPTB+5aXurG0L3GHR/R6xkXhdgKt9NvoUlrF9Cz89y4ebcj\n4MJ3ofOAKDQ6uSmgi4jPttXuGLf8ntWXLfJMQy7bTZXj2zXVoisMGwfdj/PldT08evUnMQV0EfF5\noLe7jtladTnrNwO5rBjmRzjJrXFr2Plr1WWMgX3PiKw+CaCALiKhbVsNO9ZB+36B+UumQ4f+vnTp\nLvjikcjqbNbeHQNXEvmSf4mcArqIhBbcW9/wEyz9uPLJQc+eGnmdJz3g2TwrdTfQqk8K6CJS2bLP\nffflZZCeAc+fAVuW177OY25zX3pKvdEETxGpbJPfIRI7N7pr0ca61XlUmEVHEjUK6CJSWclO3713\nfLxlt9rXd828urVHIqKALpIKrIUZ98LWkHvoOYum+O43LvLdf/5vuKsA1v0Q+ef18JuLPuIFyOsY\n+btSawroIqlg7fcw4254Y3T4Mp884Lv/amzgs7Ldod8ZcAX8eV1g3oEXwbmv+tK9TqpZW6XW9KWo\nSCoo9QTk4O1qy4ph1jjY+wTYuLjm9eb3cocyn/8mtOgGm5ZAFy0CihUFdJFU4A3k/gdKrPkenjjC\n3X9wc+3q9R5Y4T0xyH+cvVELt7mWNBgFdJFkMyYPep0MI/yOd1vwjrumZ7pzPDNyYEWITbSq0iTf\n7Xy4w2+IpWCf8OVvWFKz+qXOFNBFktHCSe5aXuqC+FeePcV/ng7/6AC9T/EF+Uhl5EBFeWBepyp2\n0E5L7ePgYkFfiookq2Wfw99aw7cvVn4WSTBv1hGym/nSeR0Dt8mVuKOALpKsnhnirpFunAVUnPuG\nL3HF13DJR770KQ9Do+buvsfxcIYOKYs3+utWJNmlR/7HPK1lV3eTkwdZjaFRS5c+9Eq3pe6IF2Du\nq3D4NSl/IHM8UkAXSXY1GStv1t6NlQ++x6Vz8+Ga+dC0rUs37wRHXBv9NkpUKKCLJJPgLy09ypu0\nJb1obfj3cvLg5IcgsxHcFrRQKK9DFBso9Ulj6CLx5uP7YNpdVZdZMh1+DbEQaMuykMVP33ZdyPw9\nbl4O+/4uwgZKvFJAF4k30/4GH/8r9LMty93qzgmnwSMHujnlL4yA9Qvd8ycHhXytW48+9dRYiSca\nchGJV+/8Cb57GW7zDJWU7oKH9gss8w/PcMjGRdDzRNi1KWRVD19wOIzxJM5+CSbfVrul/hLXFNBF\n4tXs/wtM767inM+Ni92uiJHoOcT97NoMc1+D9fNr3USJLwroIvHuvRvcl5UHnFf3urLzfPeNWsBB\nv697nRI3FNBF4p13K9tep9StnltWub1YJGkpoIvEE2vDP6tqyCWcZh2g79nuPju3dm2ShKG/rkVi\nyVp4aH+Y49kZsaw4fNkdVcwjD2fE8zDo9tq1TRKOArpILJXucnPHJ17hpiSumh22qJ14ZfX1DX8W\n2vf3pcvLotBISRQachGJJe8wiq2oPCUxiLEVVdd1+DXQZ6j7eeMP8P1L2m8lxaiHLtIQVs2GXVsq\n59dmXDxY0/bu2nmAL++k+2Hoo9DhwLrXLwlDPXSR+lZRDk8OhI4HwaA73EZXTVq78fNoBPSeg+Ho\nWyC3jS8vOxf6nVv3uiWhKKCL1Dfvwp2VX8H4kwOf9Ti+7vVnNg4M5pKyqh1yMcbkGGO+MsZ8Z4yZ\nZ4y505PfzRgz0xiz2BjzsjEmq7q6RFLS44eHf7Zoct3rz2xU9zokKUQyhl4MDLTW9gUOAAYbYw4B\n7gUetNZ2BzYDo+qvmSJSSase7pqRE9t2SNyoNqBbZ4cnmen5scBA4DVP/njgtHppoUgi27IiuvVd\n+oUvkDfv7K4Z2dH9DElYEc1yMcakG2O+BdYDU4AlwBZrrXeS60og5C74xpjRxphZxphZGzZsiEab\nRRLD1pXw0L7RqWv4BOh7DrTpDUP/C7/9PbTs5p6la7RTnIgCurW23Fp7ANAROAjoFekHWGvHWmsL\nrbWF+fn5tWymSBwq3lF54U5FOXz9FJQUwfoFNavPpId/1udUOP0xN6+888Fw0n1QXuKeKaCLR41m\nuVhrtxhjpgMDgObGmAxPL70jsKo+GigSt/7RAfY9A4aNg52b4JP7Xa/53evcdMSspjWr79LP4NFD\n3H1WLuT3couFitaHLl9e6q4K6OJRbUA3xuQDpZ5g3gg4DveF6HRgGPASMBJ4uz4bKhJXvJto/fC6\nC+gfjYFvxvuCa0YjKKpmiLHPUJjv98emTW/f/S0rq1/l6d33RWPo4hHJkEs7YLox5nvga2CKtXYS\ncBNwrTFmMdAKeLr+mikSZ7zDHV6lOwPyiytgzo9Lqq6j18lu75VQIlmyryEXCVJtD91a+z3QL0T+\nz7jxdJHUE7wrYkXgWPobUz/j7IpJ4d/fb7jroWdkw3mv+7YFOO912PRLZG1QQJcgWikqUhv+Af3L\nx2HN9wGPqwzmAKc87Bsq6X6sL9//vjreBUVZjSN/R5KaNucSCWfdfJj3ZmDedy/BmDzYsc6X98FN\nsCnM8Erb/UPnR2Pc+6QHYeDt0KWKlaiSUhTQRQB2bHBTDgHWzoXXLobHBsCrFwZuoPXlY+667LPI\n6m3X1133HgwjXvDlp1UxRTFSTVrBkddDmv4Yi6P/EiS17doCb10G93WHqXe6vFcvcrNXvO7p7Lv3\n9qzfvzF8nc27+Latzfcs2dh7MPQ6KXrtFglBAV1S2/S/w7ee498WvufGxnf+Grrsc8NgxczQz87z\n+wug18lw0ftw9ktw6BXwh4/hwAvds86HRq3pIsH0paikth1+i3bSM+Hp42DX5krFdpeWk7N4Svh6\n/AN1Wprryfcc4tLeYReA89+A4u11bLRIaOqhS2rzD65pGbDmu5DFBj8wPXwdvU9xM00GXOHSu7eF\nL5vZSHuXS71RD11SW+ku3/2GhWGL/c6G2bf8j59Bmz7uvr1nuUY0TiESqQUFdEldW1bAzo2+dPDq\nTz9X7X6icuaQf0Fbv90Uc5q76+4QZ4eKNAANuUhqKCuB5X5faFaUu61tf/2x5nXltnXX4qChlaYF\n7pqTV7s2itSRArqkho/GwLjj3WIhgK11OHjiyOth32HQ9+zA/Lb7wWmPw8kP1b5ukTrQkIukhvXz\n3HXbaigvrvqLy+rkNIdhYfaiO+Ds0PkiDUABXVJDpme/k1WzYMY/YtsWkXqiIRdJDd6DlGsTzIc9\nE5Rh69wckfqggC7Ja/ta2LwMijb6Anpt7Ps7aNQyeu0SqScacpHkVLIT7u+5Jzm34DT2i/Tdo26G\n/90TVN8O3323o+rcPJH6oB66JK7Vc2D9QvhmQuVn3hOEPPZb91bk9fY+2Xfff6S7eueo37LSNz1R\nJM6ohy6JoaLCHcvmfzTb2KN99/m9YN4bsM/pkN+LX1aspFtNPyOjEXQ7ArKbufQhl8Fgz5j70bfC\njLshu4YHP4s0IGNtw33BU1hYaGfNmtVgnydJZExz6HQw9DsXuh7htqj9a4tKxaxJx9jyquvqew58\n9wLkdYIjroVJ13g+w2/J/rr50HpvSFefR2LPGDPbWltYXTkNuUiCsLDiS5h4pdsRsWxXyFK7bTUB\n+I5NbktbcFvlFl4culxBHwVzSTj6L1YST9GGwE21/FTZQ2nU0p0U1LSdS+d6xsKPvBE2L41mC0Vi\nQgFd4pe1YCvAhAjTQV96emVTHDKfkx6Abke6+8Yt4dRHYK9jXHrgn6PQWJHYU0CX+PX25e40oT+v\nq/To1S9+4sxI6hjxIrToAgX7BOb3Pz8qTRSJJxpDl/jlPRouxLFv4z9eUPW7mU3cJlk9h1QO5iJJ\nSgFdYqekCD66M+SRbwGePbVS1p1DQkxKbNzad/+Hj6HwosBpjiJJTgFdYmfaXfDpAzB/YujnzbuE\nffXAtpmVM3Oa+e61+EdSkAK6RNfijyLfmvbXRe6anevLWzIdZj6BtZbinVXU88LwynnpWe6610At\nAJKUpIAu0bN1FTx3Brz5h8jKe/dHef0SGJMHOzfBhNPg/Ru59r+vkF1SzVBMsM3L3HWf02v2nkiS\nUECX6PFOJfz1p8jKF3sCuq0AYPtq3yHNRRtXhn+vbdA2W9555a26u6sCuqQoBXRpODOfcD1x76Kg\noDM5b37+kz33Y+1f3c0Fb1eu5+LJgemrvoXrfoTzXoer52q4RVKW5qFL9IXbH+jTB931+TNh0y8E\nHxRxUNNNEDxs3iLEbJasxoHpzBzIbFurpookE/XQJXqq2+gts5G7Lv0Etq1k887SgMcX5Faeb06j\n5r77dgfUsYEiya3agG6M6WSMmW6MmW+MmWeM+ZMnv6UxZooxZpHnWnnrO0ktwbscblkOn//HF+iD\nTg1qUbY+IG1Wz6lcZ5bf8MnFH8BNS6PQUJHkFEkPvQy4zlrbBzgEuNwY0we4GZhqre0BTPWkJZWV\ne3rcm5bAC2fBwwfA5Ntgx3ooK4H182tW33lvQJrff6KZjaCRp99wybTotFkkiVQ7hm6tXQOs8dxv\nN8YsADoAQ4GjPcXGAzOAm+qllZIYKsp89z99sOd2+boNzJ14BydFUod3Lnl5iW+I5qL3Kw/ndDyw\nTk0VSUY1+lLUGNMV6AfMBAo8wR5gLaCleanu8/+EzJ4x/q8cnfYtRLIKf9QUmHA67NrkG6Lpcmjo\nsqNnuN6/iAA1COjGmFzgdeBqa+0247dHhrXWGmNCfiNmjBkNjAbo3Llz3Vor8WH3NsjK9Q2HrF8A\nC991R8CFcEH6h5HX3biV65nvwtdDD6d9v8jrFUkBEc1yMcZk4oL589Za75/adcaYdp7n7YCQXSVr\n7VhrbaG1tjA/Pz8abZaGsn0tPHMSFP3qjmT78jG3mvOeTvDxv3zlnjgSpv2tbp+V39vte+4N6BB6\nH3QRCavaHrpxXfGngQXW2gf8Hk0ERgL3eK4hVoBIQpv5OCz7FL55Fv73T3fsW7ej3LPvXoCcPPjt\nKDfeXVcXvw/lZW6OeY/jYeNi968AEYlYJEMuhwHnA3ONMd968m7FBfJXjDGjgGVAiN2SJKF5luRj\n0nxneBZvd9fNS+GDmyi3lvSa1Nm4Nez8tXJ+dp5vCOe4v7mzPvM61LLhIqkpklkunxL+66xB0W2O\nxBVvQPffr7wocGQt/cMqZqte+Q38p39g3o1L4JP7YepfA/P9pyemZ0DrHrVosEhq0yClhFfhCehb\nlvvyXj4v8vdb7eXmix92dWD+YVfDoDt86R7H176NIrKHArqE5+2hl4U5eDkS/vPF+49017R06OyZ\nitjpYDj31drXLyJ7KKBLeJ6l/HbR5GoKVsO74Kjlb3x53mmv1e3/IiIR026LUtmWFW6L26+fAsBU\nlFbzQjUyst3V/2SiPV/LKKCLRIsCulT26oWwalb06jv8WjDp0O8CX57mmItEnf5USYCKChs6mA++\nt/qX83vBiBcq52fnwsA/Q0aWL69DfygcBb8bW/vGikgABXRxc8pLipizfDOnP/pZ6DI5zaqvp/MA\n6BXRFlzui9GTHwgcVxeROlFAT0WfPghLP/WlH+7L7nu6c/qjn5O9ZXHod3Ly3GIffwOuCEybSHbf\nEpH6ojH0VGMtfDQGgNLbNzPh00VcDORU7OSv/XdyVv56+F+I97KbwYn3wwHnQsdCX/4Xj/iV0Vme\nIrGkgJ4MdqyHtXOhe4iFuxXl8OWjrned1SRg1ef4e6/ikW2Hc7Fnl9oL5l/ie69VD9i4yJfOaeZW\nc/oHc38Db4dDLnP3Zz0PzdrV8ZcSkZpSQE8G40+FDQvgjk1ubHry7dCqOxTsC08NdGV2bYZBd7D5\niwl4zwq8pGQCfYZdCJNC1NmsfWBAz+tUdRuOvN533/vkOvwyIlJbCujJYMMCdy3d5WaUfP5vl/ab\nGlhaVs5/Jv9Ih09ncJbfNyeH/hhm9kr/C2D1t26lZ/Mu0Lhl6HIn3O0+V0RiTgE9GZg0t0z/pXPg\nrOd8+d6l+8DjX23i30WLmdV0AfivEwq3CnS/Ye6nOgMur12bRSTqNMslGXh74r/8DxZPCVkkKyub\niee0pXXpmpDPRSTxKaAnqvULYEwerP3BrcL08p7DGeT3A9qzf5uskM/Y94zAdJfDo9RIEWlICuiJ\nav5Ez/WtgLHyz+f/ErJ42rQ74fEQgfqs5+C0xwPzCvpEq5Ui0oAU0BOV/2lCfptnfTD7p8jraNwa\nep8SuCRfRBKWAnrC8uxS+L97fdvTAmf3bRGmfAhp4Q6P04pPkUSkgJ6gysrLQ+b3nv9Q9S8fc5u7\nVvjV0Utzx0USnQJ6ItixAb58DHZvBWDawnWs+OzlwDItulVdh/eEIIB2fd3Vr2fPiOfdnHLQniwi\nCUrz0BPBf/pD8Tb44GYu7voR0xauZ2nOisAyrbrD5tBfiNKqOwy6HZ4Z4tKNW7lrRehevogkJvXQ\n44m1MP9tKPf0nLcsd73z4m17inz1yyb+PKRn5XebtA5fr0mDLodCm31culFzd/XvoYP7khSgadta\n/gIiEkvqoceL8lKYMwEmXQNH3gADb4OH9qtU7OPzW9KyfUuYHvSgURVfhnqnNZ7/Biya4vZpgT1n\nhu6x35nuGjwvXUQSgnrosRJ8OPKHt7pgDvDLx/ywamvI11o+dyy8dWlgZm4B7H1C+M/yBvSmbaH/\n+W7xUa+T4Zygcfi0NOh7FqTr73mRRKSA3hAWTII13/nSP02GO5u7LW+n/R0Wvgtf+Y5iK18xi3mP\nXxCiIu/7HwSmr/8JfnM0/Ok7OOK6yuWDz+80xn0JutfAGv8qIhK/1BVrCC+f665jPL3uhe+465S/\nwJKplYqnU85Z6TNq/jktukK7A9x9fm/XG//wVs1aEUkRCuix4N17ZfkX0a87v5e7HnQJdDjQ83n6\nh5hIKlBAj4U0z//spTsjK7/XQFgyzZc+7GrIyHarRIPl7w03/Oz2Ly/a4PK8X3aKSFJTQK+N0t1u\nGCMju2bv/boIvnmWMkzN/oc/6A+BAf24O901VEAHaOKZZ57bBv68NuwOjCKSXBTQa+OezpCeCbeu\nCl/myUHQZygcdpUv7xF3Huda05aOkX7WrasDv1AN3mel54lVv5/ZKNJPEpEEp4BeG+XF7qcqq2a5\nH+/ByX462rWRf1ZWk8D05V/57m9dA+naKVFEHH1bFg1r58L0u31pvznm24p2RO9zOg9wY+ReWY01\nZ1xE9qg2oBtjxhlj1htjfvDLa2mMmWKMWeS51mDP1iQ0brAbzy7z9NrLdu959MhDd4d5qQrdjopS\nw0QklUTSQ/8/YHBQ3s3AVGttD2CqJ52als+EEk8vvHg7LP2UuUt953beWvFE5HWdcDcU7AcjJwbm\ne/dY8e6SKCISQrX/XrfWfmyM6RqUPRQ42nM/HpgB3BTFdiWGshIYd/ye5O6J15Hz41s8XnIV/63N\n0PaAy90PwI2/+OaP5+8Nl0yDtpX3dhER8artGHqBtdbbDV0LFESpPfEheJ+VcMpLApI5P74FwH+z\n/l257OHXQo+g/VbSq5j22Lilb1dEgI4H6qg4EalSnb8UtdZa9pyHVpkxZrQxZpYxZtaGDRvq+nEN\nY9xguC/EFrXBggJ6ldrtD4MMzBH/AAAJjUlEQVT/EZjn7YE37wyDw8wpFxGJUG2nSKwzxrSz1q4x\nxrQD1ocraK0dC4wFKCwsjLDrG2Mrvgyd//MMWPn1nmTFP/eK/G/EjEZurxV/p/4Hpt4JV31bxfme\nIiKRqW0PfSIw0nM/Eng7Os2Jc88OhWl37UmmURH5u9m5LmhfMcuXt/+ZcM0PCuYiEhXV9tCNMS/i\nvgBtbYxZCfwFuAd4xRgzClgGDK/PRjaY71+B7Ka+9Jg8GPYMNG6Jff+m4DWaNeOtt3WPutQiIhJW\nJLNczg7zaFCU2xJ7b/y+ct7cVylZM4+sbctqXt+Qf8H7N7j7rNy6tU1EpBpaKVqNhWu3sXlr6NOD\nqvT76XDwaMjy9Mz9e/6nPQaFF0engSIiHlo3Xo1Vm4rolb6l5i926O+uWU2gZHvgniwHnON+RESi\nSAG9GoPS59TshZGTgtLvwKIPK2+yJSISZQroAB//i82tf0uNN6TJyvUt+/fqdkRgOn/vwA21RETq\nSWoG9PdugI4Hwf5nUlJWQda0u2gBFNlsmphqtsX1ysiB9v1g6Sdw8KXQ6bewuPL5oCIiDSU1vxT9\naiy8cQnTF6xh/D99B1DkNGocwcueyYsj3/Etze98COx7Bpz2aPTbKiISodTsoXs8N+FJns6asCed\nbiKYaX7BWzD1b9Cmt5uWmNEI9j6h+vdEROpZSgX0ouIylj9xFr096bMPaAXz/QrY8vAvn/4EtDsA\n2vSC3xzt8rKbwhlP1k9jRURqKPGGXLYsh4lXuq1rI2St5e1vVzHw/hn03vTRnvxje7YOLLi7ivnm\n3Y50wVxEJE4lXkB/9UL45ll37FsE5q3eyvAnvuCGl76mc27Q3mClO0O/lJ0XIq9p5TwRkTiSeEMu\nvy5y16cGwm3rISP0nuKbi0q4b/KPFMy+n8GZhpcaTSR9U1lgoe0hDmve/yw3Pv7RmMB8Ld0XkTiX\neAHdfw/ybauhZbeAx2XlFbz85RKenPItK0qasCTrzfC7tS//onJeRTkMuBJ6ngitusNfW7r8SL4w\nFRGJocQL6P7KS333y79kzuYsbpm+g8s23s2M9C/48crlUNWRnr/8r3JeRRmkZ0B+BAdciIjEkcQO\n6GW7AVi9ZRftx51AP+Dy9EGcku563j2blVbxchjBM12umQc7N9axoSIi9S8xvhStqIApf3EzXPwU\n79rOI9MWMeh+X0/7lHK/1Zqhxsir/ayggJ7XEdr1rXk9IiINLDEC+oYF8NlD8MoFAdm3vjyT+yb/\nxFF754d+752rAtNHXOe7P/hSN5+8+3GBZSqCvjgVEUkQiTHkkpbprru3UmF9fws1SyvmuVEHc/im\n12FJiPdWzQ5M57b13bfdD4bc43rk3z4PuQXwwnAFdBFJWInRQ/fOMNn0M2nlu/dk39a/mMNLP4P3\nb4ysnkZ++ynu7zk1Ly0d+l8A6VkurYAuIgkqIXroU+au5LgQ+emfPVizipq1c9d9fgfpmYHP0jz/\nU1TU4OBnEZE4khABvfF3T0enoi6HweB7fb1zfzme1aHeoC8ikmASIqAfWhJiAVBN5HWGrcvd0M0h\nfwxdpt3+cMbT2jlRRBJWQgR0k5ZetwpGz4Btq6ovt9+wun2OiEgMJciXon4BvX3/yN7peaLvvkkr\n1wMXEUliiRHQvT30U/4N57wcukyrHoHps1+ELO2QKCKpIzECunfaYtt9IbcNDH8W2vQJLDN8PJz7\nWmDetfPgxl8apo0iIjGWIAHd00P3LjDqM7TyeHfBPtAjaHJjTh40bln/7RMRiQOJEdC9Qy7+c8f3\nGw5N2sSmPSIicSghZrkEfCnq1bwT3LAISneB1WIgEZEECeief0iECtyZjRq2LSIicSoxhlxymsW6\nBSIicS8xeujDnoE5EyrPbAllxIsaghGRlJQYAT2vAxx9c2Rle51YfRkRkSRUpyEXY8xgY8yPxpjF\nxpgII66IiNSHWgd0Y0w68F9gCNAHONsYE8GYiIiI1Ie69NAPAhZba3+21pYALwFDo9MsERGpqboE\n9A7ACr/0Sk+eiIjEQL1PWzTGjDbGzDLGzNqwYUN9f5yISMqqS0BfBXTyS3f05AWw1o611hZaawvz\n8/Pr8HEiIlKVugT0r4EexphuxpgsYAQwMTrNEhGRmqr1PHRrbZkx5grgQyAdGGetnRe1lomISI0Y\na23DfZgxG4BltXy9NfBrFJuTCPQ7pwb9zqmhLr9zF2tttWPWDRrQ68IYM8taWxjrdjQk/c6pQb9z\namiI3zkxNucSEZFqKaCLiCSJRAroY2PdgBjQ75wa9Dunhnr/nRNmDF1ERKqWSD10ERGpQkIE9FTb\nptcY08kYM90YM98YM88Y86dYt6khGGPSjTFzjDGTYt2WhmCMaW6Mec0Ys9AYs8AYMyDWbapvxphr\nPP9N/2CMedEYkxPrNtUHY8w4Y8x6Y8wPfnktjTFTjDGLPNcW0f7cuA/oKbpNbxlwnbW2D3AIcHkK\n/M4AfwIWxLoRDehh4ANrbS+gL0n+uxtjOgBXAYXW2n1xCxJHxLZV9eb/gMFBeTcDU621PYCpnnRU\nxX1AJwW36bXWrrHWfuO53477g57UO1kaYzoCJwFPxbotDcEYkwccCTwNYK0tsdZuiW2rGkQG0MgY\nkwE0BlbHuD31wlr7MbApKHsoMN5zPx44LdqfmwgBPaW36TXGdAX6ATNj25J69xBwI5AqB8J2AzYA\nz3iGmZ4yxjSJdaPqk7V2FXAfsBxYA2y11k6ObasaVIG1do3nfi1QEO0PSISAnrKMMbnA68DV1tpt\nsW5PfTHGnAyst9bOjnVbGlAG0B94zFrbDyiiHv4JHk88Y8ZDcX+ZtQeaGGPOi22rYsO66YVRn2KY\nCAE9om16k40xJhMXzJ+31r4R6/bUs8OAU40xS3FDagONMc/Ftkn1biWw0lrr/ZfXa7gAn8yOBX6x\n1m6w1pYCbwCHxrhNDWmdMaYdgOe6PtofkAgBPeW26TXGGNzY6gJr7QOxbk99s9beYq3taK3tivv/\nd5q1Nql7btbatcAKY0xPT9YgYH4Mm9QQlgOHGGMae/4bH0SSfxEcZCIw0nM/Eng72h9Q6+1zG0qK\nbtN7GHA+MNcY860n71Zr7XsxbJNE35XA856Oys/ARTFuT72y1s40xrwGfIObyTWHJF0xaox5ETga\naG2MWQn8BbgHeMUYMwq36+zwqH+uVoqKiCSHRBhyERGRCCigi4gkCQV0EZEkoYAuIpIkFNBFRJKE\nArqISJJQQBcRSRIK6CIiSeL/AaL38KhsQE/EAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 700\n",
"Loss: tensor(0.6412, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 800\n",
"Loss: tensor(0.6056, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 900\n",
"Loss: tensor(0.5837, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nRK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"tensor(2.1920, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.1768, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.1693, dtype=torch.float64, requires_grad=True)\n",
"tensor(-0.3395, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.2039, dtype=torch.float64, requires_grad=True)\n",
"tensor(-0.0630, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.4395, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.7137, dtype=torch.float64, requires_grad=True)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "PyxuMnp3NLTK",
"colab_type": "code",
"outputId": "35580004-c8e2-416e-8f52-ec0c15107ea2",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"import torch\n",
"from torchviz import make_dot, make_dot_from_trace\n",
"\n",
"x = np.array([_/100 for _ in range(1000)])\n",
"y = 4.5*x + 3 + 2.8 * np.sin( 0.5 * pi * x + pi/3) - 5.2 * np.sin(0.25 * pi * x + pi/5) + np.random.normal(size=1000)\n",
"\n",
"x = Variable(torch.tensor(x,dtype=torch.double))\n",
"y= Variable(torch.tensor(y,dtype=torch.double))\n",
"\n",
"params = [0]*8\n",
"params[0] = m = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[1] = b = Variable(torch.tensor(2,dtype=torch.double),requires_grad=True)\n",
"params[2] = A1 = Variable(torch.tensor(0.3,dtype=torch.double),requires_grad=True)\n",
"params[3] = w1 = Variable(torch.tensor(0.3,dtype=torch.double),requires_grad=True) # 0.9 for local minima\n",
"params[4] = c1 = Variable(torch.tensor(0.4,dtype=torch.double),requires_grad=True)\n",
"params[5] = A2 = Variable(torch.tensor(0.4,dtype=torch.double),requires_grad=True)\n",
"params[6] = w2 = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[7] = c2 = Variable(torch.tensor(2,dtype=torch.double),requires_grad=True)\n",
"\n",
"# Compute the function\n",
"Y = params[0]*x + params[1]\n",
"Y = params[2]*Y + params[3]\n",
"Y = params[4]*Y + params[5]\n",
"Y = params[6]*Y + params[7]\n",
"\n",
"# Compute the loss\n",
"loss = ((Y-y)*(Y-y))/2\n",
"loss = loss.sum() # Computing the error\n",
"\n",
"make_dot(loss)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<graphviz.dot.Digraph at 0x7f039013f208>"
],
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n -->\n<!-- Title: %3 Pages: 1 -->\n<svg width=\"224pt\" height=\"825pt\"\n viewBox=\"0.00 0.00 224.00 825.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 821)\">\n<title>%3</title>\n<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-821 220,-821 220,4 -4,4\"/>\n<!-- 139653278855408 -->\n<g id=\"node1\" class=\"node\">\n<title>139653278855408</title>\n<polygon fill=\"#caff70\" stroke=\"#000000\" points=\"163.5,-21 70.5,-21 70.5,0 163.5,0 163.5,-21\"/>\n<text text-anchor=\"middle\" x=\"117\" y=\"-7.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SumBackward0</text>\n</g>\n<!-- 139653278855464 -->\n<g id=\"node2\" class=\"node\">\n<title>139653278855464</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"161.5,-78 72.5,-78 72.5,-57 161.5,-57 161.5,-78\"/>\n<text text-anchor=\"middle\" x=\"117\" y=\"-64.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">DivBackward0</text>\n</g>\n<!-- 139653278855464&#45;&gt;139653278855408 -->\n<g id=\"edge1\" class=\"edge\">\n<title>139653278855464&#45;&gt;139653278855408</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M117,-56.7787C117,-49.6134 117,-39.9517 117,-31.3097\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"120.5001,-31.1732 117,-21.1732 113.5001,-31.1732 120.5001,-31.1732\"/>\n</g>\n<!-- 139653278855632 -->\n<g id=\"node3\" class=\"node\">\n<title>139653278855632</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"162.5,-135 71.5,-135 71.5,-114 162.5,-114 162.5,-135\"/>\n<text text-anchor=\"middle\" x=\"117\" y=\"-121.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 139653278855632&#45;&gt;139653278855464 -->\n<g id=\"edge2\" class=\"edge\">\n<title>139653278855632&#45;&gt;139653278855464</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M117,-113.7787C117,-106.6134 117,-96.9517 117,-88.3097\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"120.5001,-88.1732 117,-78.1732 113.5001,-88.1732 120.5001,-88.1732\"/>\n</g>\n<!-- 139653278855800 -->\n<g id=\"node4\" class=\"node\">\n<title>139653278855800</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"108,-192 18,-192 18,-171 108,-171 108,-192\"/>\n<text text-anchor=\"middle\" x=\"63\" y=\"-178.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SubBackward0</text>\n</g>\n<!-- 139653278855800&#45;&gt;139653278855632 -->\n<g id=\"edge3\" class=\"edge\">\n<title>139653278855800&#45;&gt;139653278855632</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M73.157,-170.7787C80.6994,-162.8173 91.1616,-151.7739 99.9742,-142.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"102.5519,-144.8399 106.8886,-135.1732 97.4702,-140.0256 102.5519,-144.8399\"/>\n</g>\n<!-- 139653278855968 -->\n<g id=\"node5\" class=\"node\">\n<title>139653278855968</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"163,-249 71,-249 71,-228 163,-228 163,-249\"/>\n<text text-anchor=\"middle\" x=\"117\" y=\"-235.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 139653278855968&#45;&gt;139653278855800 -->\n<g id=\"edge4\" class=\"edge\">\n<title>139653278855968&#45;&gt;139653278855800</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M106.843,-227.7787C99.3006,-219.8173 88.8384,-208.7739 80.0258,-199.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"82.5298,-197.0256 73.1114,-192.1732 77.4481,-201.8399 82.5298,-197.0256\"/>\n</g>\n<!-- 139653278855856 -->\n<g id=\"node21\" class=\"node\">\n<title>139653278855856</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"216,-192 126,-192 126,-171 216,-171 216,-192\"/>\n<text text-anchor=\"middle\" x=\"171\" y=\"-178.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SubBackward0</text>\n</g>\n<!-- 139653278855968&#45;&gt;139653278855856 -->\n<g id=\"edge21\" class=\"edge\">\n<title>139653278855968&#45;&gt;139653278855856</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M127.157,-227.7787C134.6994,-219.8173 145.1616,-208.7739 153.9742,-199.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"156.5519,-201.8399 160.8886,-192.1732 151.4702,-197.0256 156.5519,-201.8399\"/>\n</g>\n<!-- 139653278856080 -->\n<g id=\"node6\" class=\"node\">\n<title>139653278856080</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"117.5,-313 26.5,-313 26.5,-292 117.5,-292 117.5,-313\"/>\n<text text-anchor=\"middle\" x=\"72\" y=\"-299.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 139653278856080&#45;&gt;139653278855968 -->\n<g id=\"edge5\" class=\"edge\">\n<title>139653278856080&#45;&gt;139653278855968</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M79.4308,-291.9317C85.9705,-282.6309 95.6534,-268.8597 103.5509,-257.6276\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"106.519,-259.4914 109.4077,-249.2979 100.7928,-255.4651 106.519,-259.4914\"/>\n</g>\n<!-- 139653278856248 -->\n<g id=\"node7\" class=\"node\">\n<title>139653278856248</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"54,-391 0,-391 0,-356 54,-356 54,-391\"/>\n<text text-anchor=\"middle\" x=\"27\" y=\"-363.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653278856248&#45;&gt;139653278856080 -->\n<g id=\"edge6\" class=\"edge\">\n<title>139653278856248&#45;&gt;139653278856080</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M38.1236,-355.9494C44.7263,-345.5318 53.1027,-332.3157 59.8742,-321.6318\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.9296,-323.3489 65.3268,-313.0288 57.0172,-319.6016 62.9296,-323.3489\"/>\n</g>\n<!-- 139653278856304 -->\n<g id=\"node8\" class=\"node\">\n<title>139653278856304</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"164,-384 72,-384 72,-363 164,-363 164,-384\"/>\n<text text-anchor=\"middle\" x=\"118\" y=\"-370.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 139653278856304&#45;&gt;139653278856080 -->\n<g id=\"edge7\" class=\"edge\">\n<title>139653278856304&#45;&gt;139653278856080</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M111.0136,-362.7166C104.0563,-351.9782 93.2182,-335.2498 84.7292,-322.1472\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"87.427,-319.8743 79.0522,-313.3849 81.5522,-323.6805 87.427,-319.8743\"/>\n</g>\n<!-- 139653278856472 -->\n<g id=\"node9\" class=\"node\">\n<title>139653278856472</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"118.5,-455 27.5,-455 27.5,-434 118.5,-434 118.5,-455\"/>\n<text text-anchor=\"middle\" x=\"73\" y=\"-441.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 139653278856472&#45;&gt;139653278856304 -->\n<g id=\"edge8\" class=\"edge\">\n<title>139653278856472&#45;&gt;139653278856304</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M79.8345,-433.7166C86.6406,-422.9782 97.2431,-406.2498 105.5475,-393.1472\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"108.704,-394.705 111.1011,-384.3849 102.7915,-390.9576 108.704,-394.705\"/>\n</g>\n<!-- 139653278856584 -->\n<g id=\"node10\" class=\"node\">\n<title>139653278856584</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"55,-533 1,-533 1,-498 55,-498 55,-533\"/>\n<text text-anchor=\"middle\" x=\"28\" y=\"-505.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653278856584&#45;&gt;139653278856472 -->\n<g id=\"edge9\" class=\"edge\">\n<title>139653278856584&#45;&gt;139653278856472</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M39.1236,-497.9494C45.7263,-487.5318 54.1027,-474.3157 60.8742,-463.6318\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"63.9296,-465.3489 66.3268,-455.0288 58.0172,-461.6016 63.9296,-465.3489\"/>\n</g>\n<!-- 139653278856640 -->\n<g id=\"node11\" class=\"node\">\n<title>139653278856640</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"165,-526 73,-526 73,-505 165,-505 165,-526\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-512.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 139653278856640&#45;&gt;139653278856472 -->\n<g id=\"edge10\" class=\"edge\">\n<title>139653278856640&#45;&gt;139653278856472</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M112.0136,-504.7166C105.0563,-493.9782 94.2182,-477.2498 85.7292,-464.1472\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"88.427,-461.8743 80.0522,-455.3849 82.5522,-465.6805 88.427,-461.8743\"/>\n</g>\n<!-- 139653278856808 -->\n<g id=\"node12\" class=\"node\">\n<title>139653278856808</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"118.5,-597 27.5,-597 27.5,-576 118.5,-576 118.5,-597\"/>\n<text text-anchor=\"middle\" x=\"73\" y=\"-583.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 139653278856808&#45;&gt;139653278856640 -->\n<g id=\"edge11\" class=\"edge\">\n<title>139653278856808&#45;&gt;139653278856640</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M79.9864,-575.7166C86.9437,-564.9782 97.7818,-548.2498 106.2708,-535.1472\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"109.4478,-536.6805 111.9478,-526.3849 103.573,-532.8743 109.4478,-536.6805\"/>\n</g>\n<!-- 139653278856920 -->\n<g id=\"node13\" class=\"node\">\n<title>139653278856920</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"55,-675 1,-675 1,-640 55,-640 55,-675\"/>\n<text text-anchor=\"middle\" x=\"28\" y=\"-647.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653278856920&#45;&gt;139653278856808 -->\n<g id=\"edge12\" class=\"edge\">\n<title>139653278856920&#45;&gt;139653278856808</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M39.1236,-639.9494C45.7263,-629.5318 54.1027,-616.3157 60.8742,-605.6318\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"63.9296,-607.3489 66.3268,-597.0288 58.0172,-603.6016 63.9296,-607.3489\"/>\n</g>\n<!-- 139653278856976 -->\n<g id=\"node14\" class=\"node\">\n<title>139653278856976</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"165,-668 73,-668 73,-647 165,-647 165,-668\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-654.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 139653278856976&#45;&gt;139653278856808 -->\n<g id=\"edge13\" class=\"edge\">\n<title>139653278856976&#45;&gt;139653278856808</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M112.0136,-646.7166C105.0563,-635.9782 94.2182,-619.2498 85.7292,-606.1472\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"88.427,-603.8743 80.0522,-597.3849 82.5522,-607.6805 88.427,-603.8743\"/>\n</g>\n<!-- 139653278857144 -->\n<g id=\"node15\" class=\"node\">\n<title>139653278857144</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"119.5,-739 28.5,-739 28.5,-718 119.5,-718 119.5,-739\"/>\n<text text-anchor=\"middle\" x=\"74\" y=\"-725.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 139653278857144&#45;&gt;139653278856976 -->\n<g id=\"edge14\" class=\"edge\">\n<title>139653278857144&#45;&gt;139653278856976</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M80.8345,-717.7166C87.6406,-706.9782 98.2431,-690.2498 106.5475,-677.1472\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"109.704,-678.705 112.1011,-668.3849 103.7915,-674.9576 109.704,-678.705\"/>\n</g>\n<!-- 139653278857256 -->\n<g id=\"node16\" class=\"node\">\n<title>139653278857256</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"101,-817 47,-817 47,-782 101,-782 101,-817\"/>\n<text text-anchor=\"middle\" x=\"74\" y=\"-789.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653278857256&#45;&gt;139653278857144 -->\n<g id=\"edge15\" class=\"edge\">\n<title>139653278857256&#45;&gt;139653278857144</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M74,-781.9494C74,-772.058 74,-759.6435 74,-749.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"77.5001,-749.0288 74,-739.0288 70.5001,-749.0289 77.5001,-749.0288\"/>\n</g>\n<!-- 139653278857088 -->\n<g id=\"node17\" class=\"node\">\n<title>139653278857088</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"192,-746 138,-746 138,-711 192,-711 192,-746\"/>\n<text text-anchor=\"middle\" x=\"165\" y=\"-718.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653278857088&#45;&gt;139653278856976 -->\n<g id=\"edge16\" class=\"edge\">\n<title>139653278857088&#45;&gt;139653278856976</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M153.6292,-710.9494C146.8798,-700.5318 138.3172,-687.3157 131.3953,-676.6318\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"134.1963,-674.5183 125.8215,-668.0288 128.3216,-678.3245 134.1963,-674.5183\"/>\n</g>\n<!-- 139653278856752 -->\n<g id=\"node18\" class=\"node\">\n<title>139653278856752</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"191,-604 137,-604 137,-569 191,-569 191,-604\"/>\n<text text-anchor=\"middle\" x=\"164\" y=\"-576.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653278856752&#45;&gt;139653278856640 -->\n<g id=\"edge17\" class=\"edge\">\n<title>139653278856752&#45;&gt;139653278856640</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M152.8764,-568.9494C146.2737,-558.5318 137.8973,-545.3157 131.1258,-534.6318\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"133.9828,-532.6016 125.6732,-526.0288 128.0704,-536.3489 133.9828,-532.6016\"/>\n</g>\n<!-- 139653278856416 -->\n<g id=\"node19\" class=\"node\">\n<title>139653278856416</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"191,-462 137,-462 137,-427 191,-427 191,-462\"/>\n<text text-anchor=\"middle\" x=\"164\" y=\"-434.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653278856416&#45;&gt;139653278856304 -->\n<g id=\"edge18\" class=\"edge\">\n<title>139653278856416&#45;&gt;139653278856304</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M152.6292,-426.9494C145.8798,-416.5318 137.3172,-403.3157 130.3953,-392.6318\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"133.1963,-390.5183 124.8215,-384.0288 127.3216,-394.3245 133.1963,-390.5183\"/>\n</g>\n<!-- 139653278856136 -->\n<g id=\"node20\" class=\"node\">\n<title>139653278856136</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"190,-320 136,-320 136,-285 190,-285 190,-320\"/>\n<text text-anchor=\"middle\" x=\"163\" y=\"-292.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653278856136&#45;&gt;139653278855968 -->\n<g id=\"edge19\" class=\"edge\">\n<title>139653278856136&#45;&gt;139653278855968</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M150.1864,-284.6724C144.1095,-276.2176 136.8436,-266.1085 130.6618,-257.5078\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"133.3859,-255.3009 124.7075,-249.2234 127.7018,-259.3863 133.3859,-255.3009\"/>\n</g>\n<!-- 139653278855856&#45;&gt;139653278855632 -->\n<g id=\"edge20\" class=\"edge\">\n<title>139653278855856&#45;&gt;139653278855632</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M160.843,-170.7787C153.3006,-162.8173 142.8384,-151.7739 134.0258,-142.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"136.5298,-140.0256 127.1114,-135.1732 131.4481,-144.8399 136.5298,-140.0256\"/>\n</g>\n</g>\n</svg>\n"
},
"metadata": {
"tags": []
},
"execution_count": 34
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "UueVGHwjtURB",
"colab_type": "text"
},
"source": [
"##Nested Linear Regression for curves"
]
},
{
"cell_type": "code",
"metadata": {
"id": "8NZPPqqNojU9",
"colab_type": "code",
"outputId": "f2db57ce-03ca-4494-93cc-c777934a408d",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"losses = []\n",
"\n",
"# generating the data\n",
"x = np.array([_/100 for _ in range(1000)])\n",
"y = 2*x*x + 4.5*x + 3 + np.random.normal(size=1000)\n",
"\n",
"\n",
"plt.plot(x,y)\n",
"x = Variable(torch.tensor(x,dtype=torch.double))\n",
"y= Variable(torch.tensor(y,dtype=torch.double))\n",
"\n",
"params = [0]*8\n",
"params[0] = m = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[1] = b = Variable(torch.tensor(2,dtype=torch.double),requires_grad=True)\n",
"params[2] = A1 = Variable(torch.tensor(0.3,dtype=torch.double),requires_grad=True)\n",
"params[3] = w1 = Variable(torch.tensor(0.3,dtype=torch.double),requires_grad=True) # 0.9 for local minima\n",
"params[4] = c1 = Variable(torch.tensor(0.4,dtype=torch.double),requires_grad=True)\n",
"params[5] = A2 = Variable(torch.tensor(0.4,dtype=torch.double),requires_grad=True)\n",
"params[6] = w2 = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[7] = c2 = Variable(torch.tensor(2,dtype=torch.double),requires_grad=True)\n",
"\n",
"lr = 1e-4\n",
"\n",
"for epoch in range(1000):\n",
" \n",
" # Learning Rate Scheduling\n",
" # lr = lr*0.999\n",
" \n",
" # Compute the function\n",
" Y = params[0]*x + params[1]\n",
" Y = params[2]*Y + params[3]\n",
" Y = params[4]*Y + params[5]\n",
" Y = params[6]*Y + params[7]\n",
"\n",
" # Compute the loss\n",
" loss = ((Y-y)*(Y-y))/2\n",
" loss = loss.mean()\n",
"\n",
" # Zero out the gradients\n",
" for i in params:\n",
" if i.grad!=None:\n",
" i.grad.data=torch.tensor(0.0,dtype=torch.double)\n",
"\n",
" # Compute Gradients\n",
" loss.backward()\n",
" # for i in params:\n",
" # print(i.grad)\n",
" \n",
" losses.append(loss.detach().numpy())\n",
" \n",
" # Update Paramters\n",
" for i in range(len(params)):\n",
" params[i] = Variable(torch.tensor(params[i] - lr*params[i].grad.data,dtype=torch.double),requires_grad=True)\n",
" \n",
" if epoch%100==0:\n",
" print('Epoch: ',epoch)\n",
" print(\"Loss: \",loss)\n",
" plt.plot(x.detach().numpy(),Y.detach().numpy())\n",
" plt.plot(x.detach().numpy(),y.detach().numpy())\n",
" plt.show()\n",
" \n",
"for i in params:\n",
" print(i)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Epoch: 0\n",
"Loss: tensor(6516.5045, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:53: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n"
],
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 100\n",
"Loss: tensor(349.6479, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 200\n",
"Loss: tensor(281.5043, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nuf8DLXgd6BMw4M0AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 300\n",
"Loss: tensor(233.7818, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 400\n",
"Loss: tensor(194.7659, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 500\n",
"Loss: tensor(161.8376, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nZ2eQobAAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 600\n",
"Loss: tensor(136.4009, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\ns9WD/3YAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 700\n",
"Loss: tensor(120.8378, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n/7AAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 800\n",
"Loss: tensor(114.1968, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xd8FVX+//HXSSGEUAIkhJYAoYVe\njIBYAAFpKvbFyqorroKu/tSvqNu+KygKCthQLCs21K8VqQpSFCnSlJIESCAklBAIhJKQen5/TDAJ\nBEi7ucnN+/l45HFnzsyc+7m78Z3LzJkzxlqLiIh4Li93FyAiIq6loBcR8XAKehERD6egFxHxcAp6\nEREPp6AXEfFwCnoREQ+noBcR8XAKehERD+fj7gIAgoKCbMuWLd1dhohIlbJ+/fpD1trgC+1XKYK+\nZcuWrFu3zt1liIhUKcaY+OLsp1M3IiIeTkEvIuLhFPQiIh5OQS8i4uEU9CIiHu6CQW+MCTXGLDXG\nbDPGbDXG/C2v/d/GmL3GmE15P8MLHPOUMWanMSbGGDPElR9ARETOrzjDK7OBx6y1G4wxdYD1xpgf\n8rZNtdZOKbizMaYjMAroBDQFFhtj2llrc8qzcBERKZ4LfqO31u631m7IWz4ORAHNznPISOBTa22G\ntXYXsBPoVR7Fioh4jOwMWPee8+piJTpHb4xpCfQA1uQ1jTPG/G6Mec8YUz+vrRmQUOCwRIr4w2CM\nGWOMWWeMWZecnFziwkVEqrQtX8HcR2HJf1z+VsUOemNMbeBL4BFr7TFgBtAa6A7sB14qyRtba2da\nayOttZHBwRe8g1dExLNEz3VeQ11/wqNYQW+M8cUJ+Y+ttV8BWGuTrLU51tpc4G3yT8/sBUILHN48\nr01ERHKyIGpuftB3HOnytyzOqBsDvAtEWWtfLtDepMBu1wNb8pbnAKOMMX7GmFZAW2Bt+ZUsIlKF\nzRwAn91eoW9ZnFE3lwJ3ApuNMZvy2p4GbjXGdAcssBu4H8Bau9UY8zmwDWfEzliNuBGRam//bxC3\nHJI257eNWVYhb33BoLfW/gyYIjbNP88xE4GJZahLRMRz7NsEM/ud3d60R4W8faWYplhExKOlxOUv\ntxsGDVtDi74V9vYKehERV8rOhC/uzl/vOBK631qhJSjoRURcJSUOfvssf33sWghuX+FlKOhFRFwh\n4wS8UuAc/K2fuSXkQUEvIlL+Th2DSQVuJ3p4IzQId1s5CnoRkfK2clr+8vgEqFnXfbWgoBcRKR+Z\naXB4B2yaDWtmOG0D/u72kAcFvYhI+ZgzDrZ8mb9+31Jo1tN99RSgJ0yJiJRWVjociXeWYxbktz+4\nutKEPOgbvYhI6X19P2z7FiKuhqw0p63LzdCog3vrOoOCXkSktE5/iz89E+XtX0LbQe6r5xx06kZE\npLT8ClxovfgvlTLkQUEvIlI6a96CtEP560NfcF8tF6BTNyIixWUt7FwMMfOd570CDHgGLhkL3pU3\nTitvZSIilc13D8OGD/LXH1gFIR3dV08xKehFRC4kLQW+eQC2L8xv63BNlQh5UNCLiFxYzPz8kO92\nK1w3A0xRz2OqnHQxVkTkfDLTYPMXznLP0TDyjSoV8qBv9CIi57b/N3jrCme5/Qi49hX31lNK+kYv\nIlKUjOP5IQ+VakqDklLQi4icKTcHnm+ev975Ruj7cLm+xcmMbF7+PoZVsYfLtd+i6NSNiEhBMQth\n9p/y17uOghveKrfuc3ItX6xPYMr320k+ngHAJa0bllv/RVHQi4gAnEiGg1udicpOa9INrplebm/x\n845DTJi3jegDx+kZFshbd15Ez7D65db/uSjoRUQA3r4SUvc4y7614Jn95db1zoPHeW5+ND9GH6R5\nfX9eu60HI7o0wVTQ6B0FvYjIqdT8kAcY+M9y6fbwiQymLd7BJ2v3UMvXm6eGRTC6b0tq+nqXS//F\npaAXkeorNwe+uAe2feOsB7WHMUuhRkCZuj2VlcP7v+zm9R93kpaVw+29w/jbwLY0rO1XDkWX3AWD\n3hgTCnwAhAAWmGmtnW6MaQB8BrQEdgO3WGuPGOffItOB4UAa8Gdr7QbXlC8iUkrWwn8aFG6748sy\nhby1lrm/7+eFhdEkHknnyohGPD08gjaN6pSx2LIpzjf6bOAxa+0GY0wdYL0x5gfgz8ASa+0kY8x4\nYDzwJDAMaJv30xuYkfcqIlI5fDsWNn6Uv95+BFz9MtRpXOou18cfYeK8bWzYc5SIxnX46N7eXNY2\nqByKLbsLBr21dj+wP2/5uDEmCmgGjAT65+02C1iGE/QjgQ+stRZYbYwJNMY0yetHRMS9tn1bOOS7\n3Aw3vF3qaQ0SUtJ4YWE0c3/fT3AdP168sSs3XtQcb6/KM01Cic7RG2NaAj2ANUBIgfA+gHNqB5w/\nAgkFDkvMa1PQi4h7ZWfA53cVbivl3DXHTmXxxtJY3lu5Cy8DDw9sy/1XhBPgV/kufRa7ImNMbeBL\n4BFr7bGCw4KstdYYY0vyxsaYMcAYgLCwsJIcKiJSOhMa5S9fMg563gU+NUrURXZOLrPX7mHq4h2k\nnMzkhp7NeGJIe5rU8y/nYstPsYLeGOOLE/IfW2u/ymtOOn1KxhjTBDiY174XCC1wePO8tkKstTOB\nmQCRkZEl+iMhIlJsv30Kjbs65+VPC+niDKH0Kf4oGGsty2KSmTg/ip0HT9C7VQP+PqIjXZrXc0HR\n5as4o24M8C4QZa19ucCmOcBoYFLe67cF2scZYz7FuQibqvPzIuIWOdmF73QF6PMgDH2+RN1E7T/G\nxHlR/LzzEK2CAph550UM7hhSYTc8lVVxvtFfCtwJbDbGbMprexon4D83xtwLxAO35G2bjzO0cifO\n8Mq7y7ViEZHi+vnlwutj10Jw+2IffvDYKV76fjufr0+gbk1f/nl1R+7o04IaPlVrPsjijLr5GTjX\nn62BRexvgbFF7CsiUjFOpcKch5wRNqeNWwdBbYt1eHpmDu/8FMeM5bFk5eRyz6WteOjKNgTWKtn5\n/Mqi8l0eFhEpq5WvFA75hzZAw9YXPCw31/LNpr1MXhTD/tRTDO3UmPHDImgZVLY7Zd1NQS8iniM3\nxxkj/9OU/LYxy4sV8qvjDjNxXhSb96bStXk9pv2pO73DXTt9cEVR0IuI59j9M3xX4AEh/0694CG7\nDp1k0oIoFm1Nokm9mkz9UzdGdmuGVyW64amsFPQiUvX9/n+QuBbWzsxvu/Wz8x5yNC2TV5bs5INV\nu/Hz8eLxq9px72Xh+Neo2JklK4KCXkSqvq/+Unj9vqXnfMZrZnYuH66O55UlOzh+Kos/XRzKo4Pb\n0ahOzQoo1D0U9CJSdeXmwqrXCrfdNafIkLfWsmhrEpMWRLH7cBqXtw3imREdiGhct4KKdR8FvYhU\nPWkpznTC8x6DjR/mt9/+JYT3O2v3zYmpPDtvG2t3pdC2UW3+e/fF9G8XXGVueCorBb2IVD0vtoLw\nARC3NL/t4Y3QILzQbvuOpjNlUQxfbdxLw4AaTLiuM6MuDsXHu2rd8FRWCnoRqVoy05zX0yFvvOEf\nh8ArP7xPZmTz5vJYZq6IwwIP9G/NA/1bU7emb8XXWwko6EWk6jh+AKZ1yV/vcSdcM/2PkM/JtXyx\nPoEp328n+XgG13ZryhND2hPaoJabCq4cFPQiUjUcjoVXC1xkvWQcDH72j5D/aUcyE+dFEX3gOD3D\nAnnrzovoGVbfTcVWLgp6Eanc0o/CW5fD0T3OetglMPg/0PxiMIYdScd5bn4US2OSCW3gz+u39WR4\nl8bV5kJrcSjoRaTyilsOH1ybv95rDAx7EYzh0IkMpi3ezuy1CdTy9ebp4RGM7tsSPx/Pu+GprBT0\nIlL55GRD9qnCIX/54zDgGU5l5/Lflbt5Y+lO0rJyuL13GH8b2JaGtYv/EJHqRkEvIpXPt2Ph908L\nNdmIEczdfIBJC6LZezSdgRGNeGp4B9o0qu2mIqsOBb2IVC5H4guHfNdRrO8xgQnfbmfjno10aFKX\nF2/qyqVtgtxXYxWjoBeRyuPYPpje9Y/V1N6P88yREcx9ay2N6vjx4k1dubFnc7w9aGbJiqCgF5HK\n4eRheLnDH6uftp/OP38OwcsriYcHtuX+K8IJ8FNklYb+VxORymHrV38sjvKazJrfg7mhR1MeH9KO\nJvX83VhY1aegFxH3On4AO+NSTNohANqe+oCLwhvx3YiOdG5Wz83FeQYFvYi4R0ocbPoEVkzm9Bn3\ntd49eP3O3gzuGKIbnsqRgl5EKt6ReHilxx+rHzOczMHPcXvvFtTwqV4zS1YEBb2IVBxryZl9B5lx\nP3H6rHtU/QFcffdM6tWt49bSPJmCXkQqRG5OLnvev4eWCXPxB9bUHkTInz+gQ1CAu0vzeAp6EXG5\nTRvXkrzwBQZnLP6jrfegG0EhXyEU9CLiMrsOneT5+VFMjb2a7iYDgNwB/8Ar/TB0vtHN1VUfCnoR\nKXdH0zKZvmQHH66K5zqfVQR4ZfyxzavvWPDVuPiKdMHL28aY94wxB40xWwq0/dsYs9cYsynvZ3iB\nbU8ZY3YaY2KMMUNcVbiIVD6Z2bm881Mc/SYvY9Yvu3ki4jBTvF5xNvrXh4H/VMi7QXG+0b8PvAZ8\ncEb7VGvtlIINxpiOwCigE9AUWGyMaWetzSmHWkWkkrLWsmhrEpMWRHHo8CHGNY3h3syP8Y3b5+xw\n0Z9hxNRCz3WVinPBoLfWrjDGtCxmfyOBT621GcAuY8xOoBewqtQVikil9nviUSbMjWLt7hTaBgew\nse7j+KYczd9h2IvOA0N0A5TblOXP6zhjzO95p3ZOP5ixGZBQYJ/EvDYR8TD7jqbz6GebuPa1lcQm\nn2Di9Z1Z1PZrfDPzQj6oPdy9AHrfr5B3s9JejJ0BPAvYvNeXgHtK0oExZgwwBiAsLKyUZYhIRTuR\nkc1by2OZuSKOQI7xYL+ujGt9kFoLr4eUWAgMc57veutsaNja3eUKpQx6a23S6WVjzNvA3LzVvUBo\ngV2b57UV1cdMYCZAZGSkLU0dIlJxcnItn69L4KXvt3PoRAa3d/JjYuwYqPkkfPKCs1ODcLjne6gd\n7N5ipZBSBb0xpom1dn/e6vXA6RE5c4BPjDEv41yMbQusLXOVIuJWP+1IZuK8KKIPHOeiFvV5+45u\n9NgzC2KB5S/k7/jgGvCp4bY6pWgXDHpjzGygPxBkjEkE/gX0N8Z0xzl1sxu4H8Bau9UY8zmwDcgG\nxmrEjUjVtSPpOBPnR7EsJpnQBv68cXtPhnVujNn4Ifz4bOGdR89VyFdSxRl1c2sRze+eZ/+JwMSy\nFCUi7nXoRAZTf9jOp78mUKuGN08Pj2B035b4eQErpzuP/APwrQVdboJB/wu1Gri1Zjk33RkrIn84\nlZXDf1fu5vWlO0nPyuGO3mH8bVA7GgTkfVPfuRgW/8tZrtsc/t9W9xUrxaagFxGstXz3+35eWBDN\n3qPpDOrQiPHDOtCmUW1nh5xs2L8Jvn0o/6BrX3FPsVJiCnqRam59/BEmzNvGxj1H6dikLpNv6krf\nNkH5O+RkwYQQsDngXQP6PQndb4f6LdxXtJSIgl6kmkpISWPSwmjm/b6fRnX8ePGmrtzYszneXgVu\nbso4Aa9e5IQ8QJebYcDT7ilYSk1BL1LNpKZn8cbSnfx35W68vQx/G9iWMVeEE+B3RhxkZ8L0rpB2\n2Fmv38q5y1WqHAW9SDWRlZPL7LV7mLZ4B0fSMrmxZ3Mev6o9jevVLLzjhg/hu4fB5jrrHa6FWz7Q\nNAZVmIJexMNZa/kx+iDPzY8iNvkkfcIb8PcRHencrN7ZOx+OhTnj8td73AFXT1fIV3EKehEPtm3f\nMSbO38bKnYcJDwrg7bsiGdShEaZgcB+Jh28ehGY94JdXnbZON8BN7yngPYSCXsQDJR07xUvfx/B/\n6xOp5+/Lv6/pyO19WuDrfcaEtafPwwPE/+y8Nu4CN76rkPcgCnoRD5KWmc3bK3bx5vJYsnNz+ctl\nrRg3oC31avkWfcD2hYXX2wyGP32oB4R4GAW9iAfIzbV8vXEvkxfFcODYKYZ3acyTQyNo0TCg6AM2\nfgQN28KaN531K56AnqOdx/3pUX8eR0EvUsWtij3MxPnb2LL3GN2a1+PV23pwccvzzDuTuhe+HVu4\n7cq/u7ZIcSsFvUgVFZd8gucXRPPDtiSa1qvJ9FHduaZrU7y8LnBufcXkwus3z3JdkVIpKOhFqpgj\nJzOZvmQHH62Ox8/HiyeGtOfey1pR09e76ANyc2DfJqjXDF5qn9/+8CYIbKHz8dWAgl6kisjMzuWD\nVbt5ZckOTmRk86eLw/h/g9sRXMfv/Ac+G5R/89Npt38BDVq5rFapXBT0IpWctZZFWw/w/IJo4g+n\ncUW7YJ4Z3oH2jetc+OBTqWeHPEDbweVfqFRaCnqRSuy3hKNMnBfF2t0ptAupzft3X0z/9o2Kd/Dh\nWFj1Wv56YBh0uw3C+rimWKm0FPQildC+o+lMXhTD1xv3ElS7Bs9d34VbIpvjc+YNT0WJ+g4+uyN/\nPawv3Pk1+NY89zHi0RT0IpXIiYxs3lwWy9s/xWGBB/u35oH+ralT8xw3PJ1p2SRY9nz++tAXoNcY\nXXCt5hT0IpVATq7l83UJvPT9dg6dyGBk96Y8MaQ9zevXKl4H6Udg3XuFQ37UbIgY7pqCpUpR0Iu4\n2YrtyTw3P4roA8eJbFGfd0ZH0j00sPgd5GTDtK6QccxZ7/8U9B/vmmKlSlLQi7jJ9qTjPDc/imUx\nyYQ1qMUbt/dkWOfGhWeWLI4fn80P+REvQ9dbyr9YqdIU9CIV7NCJDKb+sJ3Za/cQ4OfDM8M7cFff\nFvj5nOOGp6JkZ8CS/+SPqvH2g7FrNDZeiqSgF6kgp7JyeG/lLt5YGkt6Vg53XdKShwe2pUFAjeJ3\nknUK3ugDR3YVbn9kM9QJKd+CxWMo6EVczFrLnN/28eLCGPYeTWdQhxCeGh5B6+DaJevocCx8ckvh\nkB/4T2jVTyEv56WgF3Gh9fEpPDs3ik0JR+nYpC6Tb+5K39ZBJevkeJIT7u8NyW9rPwKufRUCGpZv\nweKRFPQiLrDncBovLIxm3ub9NKrjx+SbunJDz+Z4X2hmyTMdic9/AtRp/Z+Gyx4FnxKc8pFq7YJB\nb4x5D7gaOGit7ZzX1gD4DGgJ7AZusdYeMc5wgenAcCAN+LO1doNrShepfFLTs3h96U7eX7kbby/D\nI4PaMuaKcGrVKMV3quQYeL1X/nrTHnD3Aj0YREqsOL997wOvAR8UaBsPLLHWTjLGjM9bfxIYBrTN\n++kNzMh7FfFoWTm5fLJmD9MWb+doehY39mzO41e1p3G9Ek47kHkScjKdsfEFQ/7aV6HnXeVbtFQb\nFwx6a+0KY0zLM5pHAv3zlmcBy3CCfiTwgbXWAquNMYHGmCbW2v3lVbBIZWKt5cfog0ycH0Vc8kku\nCW/IMyM60LlZvdJ1+HpvSE0o3HbVBIW8lElpz9GHFAjvA8DpS/7NgIK/pYl5bQp68Thb96UycV4U\nv8QeJjwogHfuimRgh0Ylv+EJ4PgBWPTM2SEPEHZJ2YuVaq3MF2OttdYYY0t6nDFmDDAGICwsrKxl\niFSYpGOnmLIohi82JBLo78v/XtuJ23qH4VucmSWLcjQBpnXOX79rDjTpBt41nPnk6zYpn8Kl2ipt\n0CedPiVjjGkCHMxr3wuEFtiveV7bWay1M4GZAJGRkSX+QyFS0dIys3l7xS7eXB5Ldm4u910eztgB\nbajnX8yZJc908jD8Mh1WTs9vG/AMhPfLX69RzEnNRM6jtEE/BxgNTMp7/bZA+zhjzKc4F2FTdX5e\nqrrcXMtXG/cyeVE0SccyGN6lMU8OjaBFw4DSdZiyCxY8CTsWFW7/d2rZixUpQnGGV87GufAaZIxJ\nBP6FE/CfG2PuBeKB07MozccZWrkTZ3jl3S6oWaTC/BJ7iInzoti67xjdQgN57baeXNyyQek7XPkK\n/PCPs9tv+7z0fYpcQHFG3dx6jk0Di9jXAmPLWpSIu8Uln+D5BdH8sC2JZoH+TB/VnWu6NsWrpDc8\nnZabCyunOhORnRYQDKO/g0YdyqdokXPQnbEiBRw5mcn0JTv4aHU8NX29eWJIe+69rBU1fUsws+SZ\nUuJg+Yvw22xn/ZHNzoXWOo3Lp2iRC1DQiwAZ2Tl8uCqeV5bs4ERGNqN6hfHooHYE1/ErW8f7NsHM\nfoXbAjXKTCqWgl6qNWstC7cc4PkF0exJSaNfu2CeHt6B9o3rlK3jde+BT0345oH8Nr96MPS5svUr\nUgoKeqm2fks4yoR52/h19xHahdRm1j296NcuuGyd5mRB3DKY+6iz7uMPt/8fhPYCnzL+60CklBT0\nUu3sPZrO5IXRfLNpH0G1a/Dc9V24JbI5PqW94Sk3B7Z8CdbC12MKbxs+GVpdXvaiRcpAQS/VxomM\nbGYs28k7PzkP7hg7oDV/7deaOjVLecMTOOH+2Z0QM69we2CYc9FVpBJQ0IvHy87J5fN1ibz8QwyH\nTmRyXfemPDE0gmaBZZzuN/0ovNCicNtFf3bmiq/brGx9i5QjBb14tOXbk3luXhQxSceJbFGfd0Zf\nTPfQwNJ3mJ0Ji/8FXW+BWSPP3n71NCjNpGYiLqSgF4+0Pek4E+dFsXx7MmENajHj9p4M7dy4dDNL\ngnOK5uA2WPS0c7F19RuFt9+3FPwDFfJSKSnoxaMkH89g6uLtfLp2DwF+Pvx9RAfuvKQFfj6lvOEp\nKx0y0yBxLcweVXjbVRPhkrwbwRXwUokp6MUjnMrK4d2fdzFjWSynsnK465KW/G1gW+oHlOG5qjnZ\n8FwzsDmF2//6M5xIgjaDyla0SAVR0EuVZq1lzm/7eHFhDHuPpjO4YwhPDYsgPLh22TrOznAe5Vcw\n5Jt0h5GvQeMuQJey9S9SgRT0UmWt253Cs/Oi+C3hKB2b1GXyzV3p2zqo7B1vmg3f/PXs9vuXl71v\nETdQ0EuVs+dwGpMWRjF/8wFC6vox+aau3NCzOd6lnVnytJiFsPFDiJ579rZ7fyhb3yJupKCXKiM1\nPYvXftzBrF/i8fYyPDKoLWOuCKdWjTL8GlsLu1Y4z2w9865Wn5rw9H44dRRqlWEOehE3U9BLpZeV\nk8sna/YwbfF2jqZncVPP5jw+pD0hdWuWrWNrnakLvry3cHuvMdD3IfCtBV5eCnmp8hT0UmlZa1kS\ndZDnFkQRl3ySvq0b8syIDnRqWq/0nR5PcuaHn/sI5GQ6y6d1vA463wjth4O3/tMQz6HfZqmUtuxN\nZeK8KFbFHSY8OIB37opkYIdGpb/h6bQv74XdP53dPnwKXPwXjYcXj6Sgl0ol6dgppiyK4YsNiQT6\n+/KfkZ24tVcYvqWdWfK0tW/D4dizQ/6+pdCgFfjXL1v/IpWYgl4qhbTMbGauiOOt5XHk5Fruuzyc\nsQPaUM+/DDNLAuxcDGvfge0L8tuCIyC0N1z5D6hdxvnnRaoABb24VW6u5csNiUz5PoakYxmM6NKE\nJ4dGENawVuk7PX2RdelzkBJ79vY7v4G6TUrfv0gVo6AXt/kl9hAT50Wxdd8xuoUG8vptPYlsWcYR\nLge2wJuXnt3euCt0uBb6/BX8yviYQJEqRkEvFS42+QTPz49mcVQSzQL9mT6qO9d0bYpXaW942rXC\nOQcfNefsbT3vgssfh/otzt4mUk0o6KXCHDmZyfQlO/hodTw1fb35n6HtuefSVtT0LeXMkgBpKTDr\nmsJt/g3guhnQ/GIIaFi2okU8gIJeXC4jO4cPfonn1R93cCIjm1t7hfHo4HYE1S7Dw7JT4uCVHkVv\nu/IZaD+09H2LeBgFvbiMtZYFWw4waUE0e1LS6N8+mKeHd6BdSCnPkWdnwPZFUKcxfHxTfnu32+C3\nT5zl/9mloZIiZ1DQi0tsSjjKhLnbWBd/hPYhdZh1Ty/6tSvlUMZt38Lnd517e/thENwOQvtougKR\nIpQp6I0xu4HjQA6Qba2NNMY0AD4DWgK7gVustUfKVqZUFXuPpvPiwmi+3bSPoNo1eP6GLtx8UXN8\nSnrDk7Ww43vw9S865Ac/C/G/OOPja9Z1HsgtIkUqj2/0A6y1hwqsjweWWGsnGWPG560/WQ7vI5XY\n8VNZzFgWy7s/7wJg3IA2/LV/a2r7leJXLCcbNn4Ac4sI79s+h1ZXOH8AOt8A9VtCiyKGU4rIH1xx\n6mYk0D9veRawDAW9x8rOyeWzdQlM/WE7h05kcl33pjwxNIJmgf4l78xa2LcRNn8Bq18vep92Q/KX\n6zWHYZNKV7hINVLWoLfA98YYC7xlrZ0JhFhr9+dtPwCElPE9pJJavj2ZifO2sT3pBBe3rM+7oy+m\nW2hgyTp583LnHPslY2FqZ8g4lr+tdgg8vAlSE+HA7xAxonw/gEg1Udagv8xau9cY0wj4wRgTXXCj\ntdbm/RE4izFmDDAGICwsrIxlSEWKOXCcifOjWLE9mRYNa/HmHT0Z0qlxyWaWTI5xxrsf+N35Wf5C\n4e2Nu8IdX0KNWs6F1uB25fshRKqRMgW9tXZv3utBY8zXQC8gyRjTxFq73xjTBDh4jmNnAjMBIiMj\ni/xjIJVL8vEMXv5hO5/9uofafj78fUQH7rykBX4+JbjhyVo4sst58HZRWlwKo+c6D/wQkXJR6qA3\nxgQAXtba43nLVwH/AeYAo4FJea/flkeh4j6nsnJ49+ddvLF0JxnZuYzu25KHr2xL/YAaJevoSDz8\n9BJsmHX2tnqh8OiW8ilYRAopyzf6EODrvH+u+wCfWGsXGmN+BT43xtwLxAO3lL1McYfcXMt3v+/j\nxYUx7D2azuCOITw1LILw4NrF6+BEMuxaDmF9YGqns7f71YW2g2HYi1CzDE+NEpHzKnXQW2vjgG5F\ntB8GBpalKHG/X3enMGHuNn5LTKVT07pMubkbl7Qu5rwx1sL/XuCibI3a8FRC2QsVkQvSnbFSSPzh\nk7ywMJr5mw8QUtePKTd344YezYo/s2RmGiRtLXpb/6edse+ZJyFQF+BFKoqCXgBITcvitaU7eP+X\n3fh4efHooHbcd0UratW4wK9IVjp880DeTJHB8NV9Z+/T6QYYOgnqaKStiDso6Ku5rJxcPl4dz7Ql\nO0hNz+Lmi5rz2FXtCalb89x7l8A1AAANQklEQVQHnToGc8ZB+ACY+4jTtvXrovft+xBcNaH8CxeR\nYlPQV1PWWhZHHeT5+VHEHTpJ39YNeWZEBzo1Pc9F0X2bYM5Dzrh3cCYbO1PdZs7491pBeh6rSCWh\noK+GtuxNZeK8KFbFHaZ1cADvjo7kyohG577h6cRBqNUQZvY7f8cj34AO1ziTjIlIpaGgr0YOpJ5i\nyvcxfLkhkUB/X/4zshO39grD93wzS677b/7pmaI8uBoadSj/YkWk3Cjoq4G0zGzeWh7HzBVx5ORa\nxlwezoMD2lDP37foA3KyIepb5ylOP57j/PojW5xv7hr/LlLpKeg9WE6u5csNiUxZFMPB4xmM6NqE\n8UMjCG1Q6+ydU+Kc8e+1GsIL53mQdvNe0PUWCAx1XeEiUq4U9B7ql52HmDAvim37j9E9NJAZd/Tk\nohZnPH1p6zfw5V8gN+vcHTXuApc+4vwBaD3AtUWLiEso6D1MbPIJnp8fxeKogzQL9OeVW3twTdcm\nhS+0rn4TDmyGTR+du6M+D0LNQOivRwmIVHUKeg+RcjKT6Yu38/GaPdT09ebJoRHcfWlLanobyMmC\n9BT49HYI6VR4UjGfms6MkbFL4Kb3nId+9HsSmnZ334cRkXKloK/iMrJzmPXLbl79cQeNMhMZ1as3\njwxqR1BtP9j4MXz7YOED9q5zXltf6TzNaexaZ96Z3CznwmrnGyv+Q4iISynoqyhrLQu2HOD5BVEk\npKQzu8HbXMJS6PI1pGbBJ4/Bvg1FH/zoVucxfCJSLSjoq6CNe44wcV4U6+KP0D6kDv93UzAXz13q\nbPzw+qIP6jcedi6GyHsU8iLVjIK+sjuw2Xkoh38giUfSeGnBFupv/YBHa2wholEGDbzSMHN3n31c\nrzGwdqaz/MhmZ7bIAU9VaOkiUjko6Cuz3Fx48zKsX11WN7yOOQn+TPV+C3xxHst+7Iz9ez8Aa2Y4\ny0MnwcX3ORde6+obvEh1Zqx1/+NaIyMj7bp169xdhvv99qkzCqbDNbByGtnhg/B5+4qi9732VUg/\n6nxrb3sVXP2y055+BIyX7lgVqQaMMeuttZEX2k/f6CuD3T9DjQD4+v5CzT5L/lP0/s8kgW/eNMKX\nPlx4m399FxQoIlWZgr6irXsPUhOdh2QD9BkLq18/7yG233jM8knQfjhc80p+yIuIFIOCviKcPAyT\nw8HHH7LTC28rEPIb6g+lW8oijpna2IBGBIZ2wmvwvzENW8MVT4CXN5xrKmERkXNQ0Je3Qzucb+zx\nv0DfcTDnYdj2jbPtzJC/etofUwB/Yofwz6TRPBD5IPdeEUH9oDMeu+et/6tEpHSUHmWVlgIvtoLQ\nPnAoxrkYelriWohblr8e0hmStvyx+o33Vfzu8zDrTgbTuENfvh8WQXhw7YqrXUSqBQX9+RyMgoZt\n4fBOZ4qA2KXQ4w7ncXr7NkG/J+CX15x9E1affXzcMuj6JzgSD8NfhCbdnKmA/zeQvd7NeOSzTXRu\ndhV/v60jfcIbVuhHE5HqQ8MrC0o/CntWOa8168Gnt5a+r1b9oGEbGPLcHxdP4w+fZNKCaDZv/R2f\n2o14aGg3ru/RDC8vnXcXkZLT8MozWes8+zQg74HViWsh8wSsnwVRc2DESzDvsZL12eIyaB7p9DPw\nn5DwqzNLZLshhcaxp6Zl8eqPO5i1aje+3l78ddBl3Hd5OP41vMvv84mInINnBn1aCnjXcEaoJKxx\nZmeMngcrpznbawVB2qHCx5wr5Jv2hKHPw+o3wL8BtB8GJ5KcoY4BQYX3bTuo0GpWTi4frY5n+pId\npKZncctFoTx2VTsa1dXwSBGpOFU76HNz4buHnKcfrX0H2lzpPA3pnYHnP+7MkD+tx53OMEbvGjD3\nUefb+qWPOCNewvoUuyxrLT9sS2LSgmjiDp3k0jYNeWZ4Rzo2rVuCDyciUj5cFvTGmKHAdMAbeMda\nO6nc3+RYImws8JSkqO+cn3OJvMe5YSniamcETMdrYUZfZ9s9iwqH+W2flqqkLXtTmTBvG6vjUmgd\nHMB7f45kQPtGhZ/wJCJSgVwS9MYYb+B1YDCQCPxqjJljrd1Wrm90aMf5t/f+K3S6Hpa/AFdPhfot\nndeCHlgFB7eV6Bt7UQ6knmLyohi+2phI/Vo1eHZkJ0b1CsPX26tM/YqIlJWrvtH3AnZaa+MAjDGf\nAiOB8g167xoQ3MF5rml4f+cZp1FznCGPwyfnPw7vzq/P3UdIR+enlE5mZPPWijhmroglNxfGXBHO\n2AFtqFvTt9R9ioiUJ1cFfTMgocB6ItC74A7GmDHAGICwsLDSvUury2HsGePXO450flwsJ9fy5fpE\npnwfw8HjGYzo2oTxQyMIbVDL5e8tIlISbrsYa62dCcwEZxy9u+oojZU7DzFhXhRR+4/RIyyQGXf0\n5KIWDdxdlohIkVwV9HuB0ALrzfPaqrSdB0/w/PwolkQfpFmgP6/e2oOruzbRhVYRqdRcFfS/Am2N\nMa1wAn4UcJuL3svlUk5mMm3xdj5es4davt48OTSCuy9tSU1f3fAkIpWfS4LeWpttjBkHLMIZXvme\ntXarK97LlTKyc5j1y25e/XEnaZk53NorlEcGtSOotp+7SxMRKTaXnaO31s4H5ruqf1ey1jJ/8wEm\nLYwiISWdAe2DeXp4B9qG1HF3aSIiJVa174x1gY17jjBhXhTr448Q0bgOH97bi8vbBru7LBGRUlPQ\n50k8ksaLC2OY89s+gmr7MemGLtwcGYq3ZpYUkSqu2gf98VNZvLEslnd/3oWXgYeubMP9/VpT26/a\n/08jIh6i2qZZdk4un/6awNQftnP4ZCY39GjG40Pa0zTQ392liYiUq2oX9NZalm1P5rl5Uew4eIJe\nrRrw3xEd6No80N2liYi4RLUK+ugDx5g4L4qfdhyiZcNavHnHRQzpFKIbnkTEo1WLoD94/BRTf9jO\nZ78mUKemL/+4uiN39mlBDR/NLCkins+jg/5UVg7v/BTHjGWxZGTn8ue+rXh4YBsCa9Vwd2kiIhXG\nI4M+N9fy7W97mbwwhn2ppxjSKYTxwzrQKijA3aWJiFQ4jwv6tbtSmDBvG78nptK5WV1e/lN3+oQ3\ndHdZIiJu4zFBv/vQSSYtiGbh1gM0rluTl2/pxnXdm+GlG55EpJqr8kGfmpbFKz/u4INVu/H19uKx\nwe34y+Xh+NfQzJIiIlDFg35p9EEe/XwTqelZ3HJRKI9d1Y5GdWu6uywRkUqlSgd9q6AAuocG8j9D\nIujYtK67yxERqZSqdNC3DArg/bt7ubsMEZFKTXcMiYh4OAW9iIiHU9CLiHg4Bb2IiIdT0IuIeDgF\nvYiIh1PQi4h4OAW9iIiHM9Zad9eAMSYZiC/l4UHAoXIspyrQZ64e9Jmrh7J85hbW2uAL7VQpgr4s\njDHrrLWR7q6jIukzVw/6zNVDRXxmnboREfFwCnoREQ/nCUE/090FuIE+c/Wgz1w9uPwzV/lz9CIi\ncn6e8I1eRETOo0oHvTFmqDEmxhiz0xgz3t31uJoxJtQYs9QYs80Ys9UY8zd311RRjDHexpiNxpi5\n7q6lIhhjAo0xXxhjoo0xUcaYS9xdk6sZYx7N+73eYoyZbYzxuMfFGWPeM8YcNMZsKdDWwBjzgzFm\nR95r/fJ+3yob9MYYb+B1YBjQEbjVGNPRvVW5XDbwmLW2I9AHGFsNPvNpfwOi3F1EBZoOLLTWRgDd\n8PDPboxpBjwMRFprOwPewCj3VuUS7wNDz2gbDyyx1rYFluStl6sqG/RAL2CntTbOWpsJfAqMdHNN\nLmWt3W+t3ZC3fBznP/5m7q3K9YwxzYERwDvurqUiGGPqAVcA7wJYazOttUfdW1WF8AH8jTE+QC1g\nn5vrKXfW2hVAyhnNI4FZecuzgOvK+32rctA3AxIKrCdSDULvNGNMS6AHsMa9lVSIacD/ALnuLqSC\ntAKSgf/mna56xxgT4O6iXMlauxeYAuwB9gOp1trv3VtVhQmx1u7PWz4AhJT3G1TloK+2jDG1gS+B\nR6y1x9xdjysZY64GDlpr17u7lgrkA/QEZlhrewAnccE/5yuTvPPSI3H+yDUFAowxd7i3qopnnWGQ\n5T4UsioH/V4gtMB687w2j2aM8cUJ+Y+ttV+5u54KcClwrTFmN87puSuNMR+5tySXSwQSrbWn/7X2\nBU7we7JBwC5rbbK1Ngv4Cujr5poqSpIxpglA3uvB8n6Dqhz0vwJtjTGtjDE1cC7czHFzTS5ljDE4\n522jrLUvu7ueimCtfcpa29xa2xLn/+MfrbUe/U3PWnsASDDGtM9rGghsc2NJFWEP0McYUyvv93wg\nHn4BuoA5wOi85dHAt+X9Bj7l3WFFsdZmG2PGAYtwrtC/Z63d6uayXO1S4E5gszFmU17b09ba+W6s\nSVzjIeDjvC8xccDdbq7Hpay1a4wxXwAbcEaXbcQD75I1xswG+gNBxphE4F/AJOBzY8y9OLP43lLu\n76s7Y0VEPFtVPnUjIiLFoKAXEfFwCnoREQ+noBcR8XAKehERD6egFxHxcAp6EREPp6AXEfFw/x9C\njO1RR92LGwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 900\n",
"Loss: tensor(112.2726, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nQgjh4v4f/YwMGD/U5yoAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"tensor(2.2185, dtype=torch.float64, requires_grad=True)\n",
"tensor(-1.7130, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.7383, dtype=torch.float64, requires_grad=True)\n",
"tensor(-1.7033, dtype=torch.float64, requires_grad=True)\n",
"tensor(2.4262, dtype=torch.float64, requires_grad=True)\n",
"tensor(-0.5226, dtype=torch.float64, requires_grad=True)\n",
"tensor(2.6018, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.6220, dtype=torch.float64, requires_grad=True)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "omQKPXteuNI9",
"colab_type": "text"
},
"source": [
"##Nested Linear Regression with activation function"
]
},
{
"cell_type": "code",
"metadata": {
"id": "FqaXi2AeuR6f",
"colab_type": "code",
"outputId": "608f6c91-ecf9-4edc-80cd-b8900688fb31",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"losses = []\n",
"\n",
"# generating the data\n",
"x = np.array([_/100 for _ in range(1000)])\n",
"y = 2*x*x + 4.5*x + 3 + np.random.normal(size=1000)\n",
"y = (y-np.min(y))/np.std(y)\n",
"x = (x-np.min(x))/np.std(x)\n",
"\n",
"plt.plot(x,y)\n",
"x = Variable(torch.tensor(x,dtype=torch.double))\n",
"y= Variable(torch.tensor(y,dtype=torch.double))\n",
"\n",
"params = [0]*9\n",
"params[0] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[1] = Variable(torch.tensor(2,dtype=torch.double),requires_grad=True)\n",
"params[2] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[3] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[4] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[5] = Variable(torch.tensor(3,dtype=torch.double),requires_grad=True)\n",
"params[6] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[7] = Variable(torch.tensor(3,dtype=torch.double),requires_grad=True)\n",
"params[8] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"\n",
"lr = 1e-2\n",
"\n",
"for epoch in range(100001):\n",
" \n",
" # Learning Rate Scheduling\n",
" # lr = lr*0.999\n",
" \n",
" # Compute the function\n",
" Y = params[0]*x + params[1]\n",
" Y = torch.max(Y,torch.tensor([0.0],dtype = torch.double))\n",
" Y1 = params[2]*Y + params[3]\n",
" Y1 = torch.max(Y1,torch.tensor([0.0],dtype = torch.double))\n",
" Y2 = params[4]*Y + params[5]\n",
" Y2 = torch.max(Y2,torch.tensor([0.0],dtype = torch.double))\n",
" Y3 = params[6]*Y1 + params[7]*Y2 + params[8]\n",
" Y3 = torch.max(Y3,torch.tensor([0.0],dtype = torch.double))\n",
" Y = Y3\n",
"\n",
" # Compute the loss\n",
" loss = ((Y-y)*(Y-y))/2\n",
" loss = loss.mean()\n",
"\n",
" # Zero out the gradients\n",
" for i in params:\n",
" if i.grad!=None:\n",
" i.grad.data=torch.tensor(0.0,dtype=torch.double)\n",
"\n",
" # Compute Gradients\n",
" loss.backward()\n",
" # for i in params:\n",
" # print(i.grad)\n",
" \n",
" losses.append(loss.detach().numpy())\n",
" \n",
" # Update Paramters\n",
" for i in range(len(params)):\n",
" params[i] = Variable(torch.tensor(params[i] - lr*params[i].grad.data,dtype=torch.double),requires_grad=True)\n",
" \n",
" if epoch%10000==0:\n",
" print('Epoch: ',epoch)\n",
" print(\"Loss: \",loss)\n",
" plt.plot(x.detach().numpy(),Y.detach().numpy())\n",
" plt.plot(x.detach().numpy(),y.detach().numpy())\n",
" plt.show()\n",
" \n",
"for i in params:\n",
" print(i)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Epoch: 0\n",
"Loss: tensor(309.0507, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:60: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n"
],
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 10000\n",
"Loss: tensor(0.0056, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 20000\n",
"Loss: tensor(0.0054, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nof8H/RX9oUCcHJIAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 30000\n",
"Loss: tensor(0.0051, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 40000\n",
"Loss: tensor(0.0048, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nRK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 50000\n",
"Loss: tensor(0.0043, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 60000\n",
"Loss: tensor(0.0038, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xd4VGX6//H3TQihhE7oRBRQlA5R\nROwKi6hgQQXFwqoorqvuquu2n211VXStuCJiAdcvImABRF0VVGxIQHpRwFV6AkhCgISU5/fHmZBJ\nIxOYlsnndV25csqTmTuDfjic+5znmHMOERGJLTUiXYCIiASfwl1EJAYp3EVEYpDCXUQkBincRURi\nkMJdRCQGKdxFRGKQwl1EJAYp3EVEYlDNigaYWW3gCyDBN366c+6+EmOuAx4HNvs2jXPOTTzU6zZr\n1sy1b9/+MEoWEam+Fi1atMM5l1TRuArDHcgBznbOZZlZPPClmX3gnPu2xLipzrlbAy2wffv2pKam\nBjpcREQAM/s5kHEVhrvzJp/J8q3G+740IY2ISBQL6Jy7mcWZ2RIgDfjYObegjGGXmtkyM5tuZu2C\nWqWIiFRKQOHunMt3zvUE2gInmVnXEkNmAe2dc92Bj4FJZb2OmY02s1QzS01PTz+SukVE5BAqdbWM\nc243MA8YVGL7Tudcjm91ItCnnJ+f4JxLcc6lJCVV2A8QEZHDVGG4m1mSmTXyLdcBBgBrSoxp5bc6\nBFgdzCJFRKRyArlaphUwyczi8P4yeMs5N9vMHgRSnXMzgdvMbAiQB+wCrgtVwSIiUjGL1JOYUlJS\nnC6FFBGpHDNb5JxLqWic7lAVEQmXNXPglfNg48KQv1Ugp2VERORIbUqFN0d4y6vehXYnhvTtdOQu\nIhIOv/jd1N8v4Jv5D5uO3EVEQmnHOph1G/z8FTQ7Dn63AMxC/rY6chcRCRXnYPVML9gBzvxzWIId\ndOQuIhI6c/8B8//lLd+6CJp1DNtb68hdRCQU8nPh6+e85eOHhDXYQUfuIiLBlZsNS96ANbMh/wBc\n8BT0GBH2MhTuIiLB9OkD8O2/i9Z7jID4OmEvQ6dlRESCadvyouVbUyMS7KAjdxGRI7fhc9i1Hmo3\nhP/N97YNegyadYpYSQp3EZEjNXlI8fXhU6Dz4FLDnHP8mJZFYkJNWjcK7RG9TsuIiARbGcGek5fP\nn6YvY+BTXzD5m4Aeg3pEdOQuInK4crJg/afFtw2fUmrYzqwcbv7PIhb+71euP/VohvVpG/LSFO4i\nIofrw3vg+/94y90uhx8/gmPOKDZk7bY9XD9pIel7cnhuRC8u7NE6LKUp3EVEDkd+HmxdWrR+yYRS\nUwt8uno7t035nnoJNXnrpn70aNcobOUp3EVEKis/F17oDzvWQkID+PMvxYLdOcdL8zfwyAdr6NK6\nAROvOZGWDWuHtUSFu4hIZRTkw6vnecEOcOZfigV7Tl4+f39nBdMWbeL8bq144rIe1KkVF/YyFe4i\nIoEoyIdne8Fu35UunS/wphZIbH5wiH/j9PZzOnH7OZ2oUSM8s0CWpHAXEQnEzvVFwQ5w8YuQkHhw\nNVKN0/Io3EVEArFtWdFy/VbFgj2SjdPyVBjuZlYb+AJI8I2f7py7r8SYBGAy0AfYCVzhnPtf0KsV\nEYkE52DhRKgRD1dNO3gqxjnHhC828OiHa+jauiEvXZMS9sZpeQI5cs8BznbOZZlZPPClmX3gnPN7\nICDXA7865zqa2XDgMeCKENQrIhI+G7+DKcOhTmPYuQ7a9YUOZwFe4/Rv76xgeoQbp+WpMNydcw7I\n8q3G+75ciWFDgft9y9OBcWZmvp8VEamaXh7gfd+30/s+4k0AdmTlMCZKGqflCeicu5nFAYuAjsDz\nzrkFJYa0ATYCOOfyzCwDaArsKPE6o4HRAMnJyUdWuYhIqPz8DfzyddF6jXjvJqW6TVizLZPrX0tl\nR1YO467sxQXdI9s4LU9A4e6cywd6mlkj4B0z6+qcW1HZN3POTQAmAKSkpOioXkSi06uDipYvfBb6\nXAvAJ6u2c/ub0dU4LU+lZoV0zu0G5gGDSuzaDLQDMLOaQEO8xqqISNWyb1fR8nHnQ+9rcM7x4ufr\nufH1VI5JSmTmradGdbBDAOFuZkm+I3bMrA4wAFhTYthM4Frf8jBgrs63i0iVs3UpjD26aP28x8jJ\nL+Cuact45IM1DO7airdu6hc1V8QcSiCnZVoBk3zn3WsAbznnZpvZg0Cqc24m8DLwupmtA3YBw0NW\nsYhIKGRnwIune8tD/w29rmJHVg43v7SA1J9/5Y5zvcapWXQ1TssTyNUyy4BeZWy/1285G7gsuKWJ\niITJ3p0wfVTReq+rqkzjtDy6Q1VEqq+lb8LiyfDzV0Xbbpp/sHGaWLsm027uR/e20X1+vSwKdxGp\nvt65qdiqu2YmL/5Qj8c+TKVbm4ZMuDp67jitLIW7iIjPXamNmLF4Ded3b8UTw6LrjtPKUriLSPW0\nZs7Bxbwmx/L/GMOMxZuqXOO0PAp3Eal+Ni6EN0cA8NMlcxg5J4ede3N4/sqenN+9VYSLCw6Fu4hU\nD7n7YcNn8MkDkL4agEVnvMY10/eQWNu747QqNk7Lo3AXkerhvd/BihnFNg37by26tUms0o3T8ijc\nRaR6WPdJsdUdrgGDu1X9xml5FO4iEtucg6+e9u5A9Xknvz+bT32UcQO7VfnGaXkqNXGYiEiV4hzs\n2gCf3A9AJon0zZ9IwqXjufU33WM22EFH7iISqxZNglm3QY2imLu75j1MvGEg3do2jGBh4aFwF5HY\nU5DvBTtAQR4Az9e7lQdvGk2LBrHVOC2Pwl1EYs/ch4qtvtn8dn57w30x2Tgtj8JdRGJLfh58+SQA\nuS6Ob475PVeMuAerRsEOCncRiSXfvwHv3XJw9etz3+GM086IYEGRo6tlRCRm7Pn82YPLOztfWW2D\nHXTkLiIxwO37FcYeTX0cv8Ql0/CcP9L05GsiXVZE6chdRKq0A2v/y86n+mN4j21uef5faHjKKKhR\nvc6xl6QjdxGpsnb/+DWNplxGM9+6a9CWWidcENGaooXCXUSqpJ9TP+TX9x+gZ+GGy1/HThgSyZKi\nSoWnZcysnZnNM7NVZrbSzG4vY8yZZpZhZkt8X/eW9VoiIsHwydKfOGr2FfR0q7wNva4GBXsxgRy5\n5wF3OucWm1l9YJGZfexc4ad60HznnP49JCIh45xj/OcbGD7vdCicFubSl6HbsIjWFY0qPHJ3zm11\nzi32Le8BVgNtQl2YiIi/7Nx8XnrlRcZ81pvGluVtPPFGBXs5KnW1jJm1B3oBC8rY3c/MlprZB2bW\npZyfH21mqWaWmp6eXuliRaR6St+Tw5UvfUvuT18VbTz3fjj/iUiVFPUCbqiaWSIwA7jDOZdZYvdi\n4CjnXJaZDQbeBTqVfA3n3ARgAkBKSoo77KpFpNpYtSWT30/6kmnZo2lSc4+38ZTboP8dkS0sygV0\n5G5m8XjB/oZz7u2S+51zmc65LN/yHCDezJqVHCciUhn/XbmNq8fP5eWcu2hivmCPrwcD/wExPBd7\nMFR45G7ebPYvA6udc0+WM6YlsN0558zsJLy/NHYGtVIRqTacc7z6cSp15z/M+NpZtM/dXLRz9GeR\nKqtKCeS0TH/gamC5mS3xbfsrkAzgnBsPDAPGmFkesB8Y7pzTaRcRqbTs3Hz++vZyjln+HL+tOQ9y\nfTt6XwNblkDSsRGtr6qoMNydc19SdNFReWPGAeOCVZSIVE/pe3K46fVUDmxczJMJ7xXtGPUhHNUv\ncoVVQbpDVUSiwqotmdw4OZW9ezNZkvD3oh2Xv65gPwwKdxGJuI9WbuMPU5fQMiGPj9qOh62+Hbd8\nC82Pj2htVZXCXUQixjnHC5+v5/GP1tK9TUPe2XMlNbZmeDsH/EPBfgQ05a+IRER2bj53vrWUsR+u\n5YJurZh+0o/UyPEF+1GnQv/bIltgFacjdxEJu/Q9OYx+PZXvf9nNvac3YtTGP2BzfBfjHdUfrpoW\n2QJjgMJdRMJq1ZZMbpi0kF37DvDS5ccyYN4Q2LMFajeE330H9VtGusSYoHAXkbApbJw2qB3P29f3\n4ITX/M6pd7tMwR5EOucuIiHnnOP5eeu46fVFdGpRn7knzC4e7Kfc5jVQJWh05C4iIZWdm89f3l7O\nO99v5sIerXl8aCdqjx1cNOCudZCYFLkCY5TCXURCprBxuuqXNOa3/Ddta7bFxvrmHuxwDsTXgXqa\nYzAUFO4iEhIrt2Rw46RUft2Xy+sDHO3mfwe7vysacPlkSEiMXIExTufcRSToPlq5jWEvfEOBgxm/\n7cJJa0s8VOPWRQr2ENORu4gEjXOOf3/m3XHao10jXrq6D80nnwY7figadOdaXRUTBgp3EQkK/8bp\nkB6tGTusO7U/e7Ao2K+cBjvXQWKLyBZaTSjcReSIpe3J5qbXF/H9L7u5a+Cx/O6sjtjun+Grp70B\nZ/8djh0IDIxondWJwl1Ejoh/4/SFq3pzXrdWsHkxvHSWb4TBcYMP+RoSfAp3ETlsH67w7jhtVDee\naTf3o2vrBrDjR5h0oTegzyi48OnIFllNKdxFpNL8G6c92zViwtV9aJ5YC57qCpmbigYq2CNG4S4i\nlZKdm8+fZyzj3SVbihqnccBDSVCQF+nyxEfXuYtIwNL2ZDPipW95d8kW7hp4LM8M70nt+DiY/6+i\nYB/4ENRuBGf/v8gWW81VeORuZu2AyUALwAETnHPPlBhjwDPAYGAfcJ1zbnHwyxWRSPFvnI4f2ZtB\nXVvB52Nh3sNFgy6bBF0uglN+H7lCBQjstEwecKdzbrGZ1QcWmdnHzrlVfmPOAzr5vvoCL/i+i0gM\nKNU4bV4LUl8pHuzgBbtEhQrD3Tm3Fd/jap1ze8xsNdAG8A/3ocBk55wDvjWzRmbWyvezIlJFldk4\nLUiHh7sWH9jpN3Dl1MgUKWWqVEPVzNoDvYAFJXa1ATb6rW/ybSsW7mY2GhgNkJycXLlKRSSs/Bun\nQ3u25rFLu3vn17+cXnrw6XeDWfiLlHIFHO5mlgjMAO5wzmUezps55yYAEwBSUlLc4byGiIRe2p5s\nRk9exJKNu7n7N8dxy5kdMDPIzYZP7vcGdbsM8g9459kV7FEnoHA3s3i8YH/DOfd2GUM2A+381tv6\ntolIFVNm49Q5+PkbeHWQN6jvGDjv0cgWKodU4aWQvithXgZWO+eeLGfYTOAa85wMZOh8u0jV8+GK\nrQx74Rsc8P7QGgzKmAYF+TDr9qJgB+h+ecRqlMAEcuTeH7gaWG5mS3zb/gokAzjnxgNz8C6DXId3\nKeSo4JcqIqFS+IzTJ/77g9c4vaYPzf/lm71x+TTYtsxbPvY8qN0AWnQt/8UkKgRytcyXwCFPqPmu\nkvldsIoSkfDxb5xe1LM1j17andpZflMIFAY7wNBxeixeFaHpB0SqsXIbp9OuLT248wUK9ipE4S5S\nTa3YnMGNk1PZvS+X8SP7MKir7+lIGZtgy/dFA7sPh8FjoWbtyBQqh0XhLlINfbhiK3+YupTGdeOZ\nPqYfXVo39K6I2by4+GmYkTOg47mRK1QOm8JdpBops3Fa33dE/v3rMLPEnDAK9ipL4S5STWTn5nPP\njGW85984jY/zjtgnD4WfPi/+A5dNikyhEhQKd5FqoNzGad4BSFtVOthvXwqN20ekVgkOhbtIjCuz\ncVqQD5/+A9bMgR1rvYFXTYdty6FdXwV7DFC4i8SwMhunALPvgMWTiw/ucDZ0GhD+IiUkFO4iMajc\nxqlzsHpW8WBvdBRcOwtqxEWuYAk6hbtIjCm3cQqwYR68dbW3XK853LoQ6jSKXLESMgp3kRiSlpnN\nja8vYmnJxmmhVe953y94CvqM0lS9MUzhLhIjyr3jdMNncGAffHgP7P4Feo2ElN9GtFYJPYW7SAwo\nt3G65XvvGvZCtRvByZrjrzpQuItUYc45xs1dx78+/oFeyY148Wq/O043L4KXzi4a3OUSuOQliNP/\n9tWB/pRFqqjs3Hz+NH0ZM5du4eJebXjkkm5e43TjQm9Wx0zfw9DanQzHnQcnj1GwVyP6kxapggob\np8s27eZPg45jzBkdMFcAvyyAVwYWDbzufWh/auQKlYhRuItUMYWN04z9XuP0N118jdP5T8Lch4oG\nHnWqgr0aU7iLVCEfLN/KH95aQpO6tZh+8ymc0LoB5OUABj9+XDSw3cneaRipthTuIlWAf+O0d3Ij\nXrw6haT6Cd7Of/eDPVsh/wB0OAcueFJzw4jCXSTa+TdOL+nVhn8WNk4LCuCx9pCTUTRYwS4+NSoa\nYGavmFmama0oZ/+ZZpZhZkt8X/cGv0yR6iktM5srJnzLrGVb+NOg4/jX5T28YJ/7EDzYuHiwH326\ngl0OCuTI/TVgHDD5EGPmO+cuCEpFIgJ4jdMbJqWSmV2icTr+tOKPwgNo2A5GTA1/kRK1Kgx359wX\nZtY+9KWISKEyG6cA344vHux9x0Dz46HLRVCrbmSKlagUrHPu/cxsKbAFuMs5tzJIrytSrTjneG7u\nOp4sq3FaUODND1Po/oyyX0SE4IT7YuAo51yWmQ0G3gU6lTXQzEYDowGSk5OD8NYisSM7N5+7py9j\nln/j9N3rYeU70PtaWOz3TNPe10SuUKkSzDlX8SDvtMxs51zXAMb+D0hxzu041LiUlBSXmpoaWJUi\nMS4tM5sbJ6eybHMGd//G747TB5sUH9gwGYY+B21P0mmYasrMFjnnUioad8RH7mbWEtjunHNmdhLe\nFTg7j/R1RaoL/8bpiyP7MLCwcfrzN8UH3vwVJB0HcfHhL1KqnArD3cymAGcCzcxsE3AfEA/gnBsP\nDAPGmFkesB8Y7gL554CIMGf5Vv741hKa1kvwGqctE71pejM2wdSRRQNPuAhaVvgPZ5GDArlaZkQF\n+8fhXSopIgEqs3Facx/8szXk7S8amNQZel4F/TQHu1SO7lAVCbNSjdOBLaj9/bOwaHJRsDfpAFf8\nx7vMUY/Ck8OgcBcJo+2Z2Yz2NU7vGdSZm08/GnuwcfFBTTrA7xcp1OWIKNxFwqRU43TfbHj6wuKD\nBj8BJ90YmQIlpijcRcLAv3E6Y8wpHJ+wE569s/RAPbhagkThLhJCzjme/XQdT33yA32Oasz4kX28\nO06n3lJ84CUTocPZUCMuMoVKzFG4i4RIscZp7zY8cnFXEvKyYP3XsHqWN+jCZyFnD3S/LLLFSsxR\nuIuEgH/j9IGzm3FN9qvYY1OLX+Z47CBvGgE1TiUEFO4iQbZ8k/eM08zsXKZcUIeTPx5YetCV0+DY\nMraLBEmFD+sQkcC9v2wrl734NXE1jNmXN+bkjy8uPaj/7dBpQPiLk2pFR+4iQVCqcTq8K0nfPVZ8\n0FH9YcQUqN0wMkVKtaJwFzlC2bn53DVtKbOXbfUap+c0JuGZdt7OVj3gzL/C/Ce8O04V7BImCneR\nI7DdN1Xv8s0Z/G3g0dzw/aXYc1v8RhgcN8j7EgkjhbvIYVq+KYMbJi9kT3YeUy6oy8kb/gZ7thQf\nNOTZyBQn1Z7CXeQwvL9sK3dO87vj9MV2xQf8bRvE14lMcSIo3EUqxTnHM5/+yNOf/Mhfk77ixn0v\nYa/XLxow6gNo11d3mkrEKdxFApSdm8/dby1m9vJtPHXUAi7e/ry3Y99OaH6CdyVM4/YRrVGkkMJd\nJACFjdPfbv8nz9X+Crb77axZB8Z8rTtNJaoo3EUqsGzjr8x47UnOz9vIRXFfFe1of5p3aWPfmxTs\nEnUU7iKHMHvZFtZMf5AHakyBwvxu2gm6XuLNC9OwbUTrEymPwl2kDP6N03mJCyDPtyO5H1z3vhqm\nEvUqDHczewW4AEhzzpV6/LqZGfAMMBjYB1znnFsc7EJFwmV/Ti4bnz6XO/Yv4Xd1ahGfdwA6ngvn\njYWmHSJdnkhAAjlyfw0YB0wuZ/95QCffV1/gBd93kapl0SR+rdGYRz7bxtj9SwCIdwe8fefcq2CX\nKqXCcHfOfWFm7Q8xZCgw2TnngG/NrJGZtXLObQ1SjSKhl3cAZt1GY2BsyX337tJpGKlygnHOvQ2w\n0W99k2+bwl2qhswt8OTxxbeddpf32LtG7RTsUiWFtaFqZqOB0QDJycnhfGuRMjnn2PrSFbT2re89\n7e/U6zoYWnSJaF0iRyoYD+vYDPhPrNHWt60U59wE51yKcy4lKSkpCG8tcvj25+Txj9fepfWeZQDk\nnTiaeufcrWCXmBCMI/eZwK1m9iZeIzVD59slamVsghVvU/DZI9TJ3ce9vs2u7YnUHPRIREsTCaZA\nLoWcApwJNDOzTcB9QDyAc248MAfvMsh1eJdCjgpVsSKHzTn44nGY9zBQ4p+sHQdgAx6EON32IbEj\nkKtlRlSw3wG/C1pFIsFSkO8dqW9aCDOuL7V784DxtDlluKYOkJikQxWJXV88Dp+Vfaolr3lX2vQ/\n5HGLSJWmcJfYUlAAuftg0WtlBvs7LW9n8A33kVBTlzdKbFO4S+zYvhJeOKXU5gfr38u0Hcn8/rze\n3HjaMZhOw0g1oHCX2PHDh6U2XVnzXyzNaMuz1/TinONbRKAokchQuEvVt3UpfPYorJ1zcNPP7S/n\nonWDqVenITNuSKFzywYRLFAk/BTuUvXs2wUrZkDXS2HJG/Dfv5cacsaaizixfWPGj+xD08SECBQp\nElkKd6lasjNg7NHe8py7Su3+tNEw3ktryWV92vLQxV3VOJVqS+EuVcO+XZC+Bj59sPS+pM7sOu1B\n7p6bxdzttfnLeZ3VOJVqT+EuVcOrgyF9dfFtfcfAghf4od9YRs7KZW9OPSaqcSoCBGfiMJHQ2boU\nHmhSOtibdoLzHmX20KVc+PY+atWswdu39Fewi/joyF2iT1YafPIAFOTCsqlF2y+eAN2GwYd/pqD3\nKJ7++Aee/fRHNU5FyqBwl+ixdRlsWwbvlTFVUfMu0OMKAPaf+yh3TlvCnOXb1DgVKYfCXSLrwD5I\nfQWOORNePK30/iHjoFUPaNkNgG0Z2dw4OZUVWzL42+DjueG0o9U4FSmDwl0iJysdvhgL300oe/9Z\nf4PeVx9cXbpxNzdOTmVvTh4Tr0nR+XWRQ1C4S/g5B3t3wBMdyx/zl01QK/Hg6sylW7h72lKS6ifw\n+vX9Oa5l/TAUKlJ1KdwlPHL3w44foVV3mHUbLJ5cesxtS2Djd5B0HCR44V1Q4Hj60x959tMfOal9\nE14Y2VuNU5EAKNwlPKZfD2vfh7hakH+gaPvV78L+XdDoKGhytPfls/9AfrHG6cMXd6NWTV29KxII\nhbuETn4urJ8LDdt5wQ7Fg73nVdDhrDJ/dGvGfm6cnMrKLZlqnIocBoW7hM4Hf/KuhCmpTR+4fDI0\nbFvmjy3ZuJvRk1PZdyCfl69N4ezOapyKVJbCXYJv53r48klYNq1o2xX/gc4XeEfzNWuV+6OFjdPm\nDRL4zw19ObaFGqcihyOgcDezQcAzQBww0Tn3aIn91wGPA5t9m8Y55yYGsU6JZs7BOzfB8unQ/HjY\nvqJoX+9rYcizRevlBHtBgePpT37g2bnr1DgVCYIKw93M4oDngQHAJmChmc10zq0qMXSqc+7WENQo\n0erAXnj9YrA4+OVrb5t/sLc/DXqNrPBl9h3I4863lvLBim1cntKWhy5S41TkSAVy5H4SsM45twHA\nzN4EhgIlw12qk/XzYOrVcGBP6X09roSL/g0BNED9G6d/P/94rj9VjVORYAgk3NsAG/3WNwF9yxh3\nqZmdDvwA/ME5t7GMMVKVHdgLWdth0lDI+KXsMaf8Hs65L6BgV+NUJHSC1VCdBUxxzuWY2U3AJODs\nkoPMbDQwGiA5OTlIby1hsXQqvDO69PaBD3uzN3a+EJod4o7TEtQ4FQmtQMJ9M9DOb70tRY1TAJxz\nO/1WJwJjy3oh59wEYAJASkqKq1SlEl5pq2H7Sm/el47nwryHS48Z8w20OKFSL1uycTr+6j40qVf+\n1TMicngCCfeFQCczOxov1IcDV/oPMLNWzrmtvtUhQIknK0iVMvch+OLxovWNC7zvDdt516ivehfq\nt650sKtxKhI+FYa7cy7PzG4FPsK7FPIV59xKM3sQSHXOzQRuM7MhQB6wC7guhDVLqGSlw/RR8L/5\nZe+/fSnUiIO8nEq/9NaM/dwwKZVVW9U4FQmHgM65O+fmAHNKbLvXb/kvwF+CW5qEXE4WZG6GTQu9\nibwKj9AB6jaFbpd5c6kv+T/Ys9ULdoCalbv+fIlvqt79B/J55doTOatz8yD+EiJSFt2hWp3kZMHm\nRXDMGbB/Nzx2VNnj+t0Kp/4R6jX11nte6d2odBj8G6dvqHEqEjYK9+pkzl2wdAoMnwJvjii9v9dI\n77z6mX8uva8Sp1D2H8hnw44s3v1+My/N/0mNU5EIULjHsoICSF8DP3wIxw7ygh2KB7vVgA7nwGWv\nQUJimS9TFucc6Vk5rE/by/r0LN/XXtanZbF59/6D467sm8z9F3ZR41QkzBTuscg5+PkrWDIFlvzH\n2/bpA6XH9RoJQ58/5Evl5hfwy659rE/zhXdhkKdlkZmdd3Bcnfg4OjSvR0r7xlyR1I4OSYkc17I+\nHZsH/heGiASPwj2WrJ4F+3ZB5hb4/NHS+1v3hhFTvAdm5GVD/VYHd2Vm57LBd+S9Pj2Ldb7vP+/c\nR15B0fn25vUT6JCUyJCeremQlOh9NU+kVYPa1Kihq19EooXCvarZu9N7BJ3/7IqrZ8Oq92D5W6XH\nn/8knHg95B3AAVuz8lm/LYt1aTmsT19x8LRK2p6iyxtr1jCOalqXDkmJDOzSko6+AD8mqR4NaseH\n/ncUkSOmcK9KMjbDUyd458gvHg9r53hH6mWdcgE+P3c2SzNasP7N71mfnsWG9L3sO5B/cH/92jXp\n2DyR049N8h2F16ND80SSm9QlPk7nyEWqMoV7VeEcPNfHW17/KTzR6ZDD22f/H8zOBDJp06gOHZon\ncmL7Jn6nUuqRlJigG4lEYpTCPdqkrfaeO9rxXMjcTH6DZPakvkmjBY8f8sduyb+TGg3bMi7rD3zT\n7gae6dOTDkneqZS6tfTHLFLdmDvMm1OOVEpKiktNTY3Ie0ejvTl5bEjfS7eJgc+WubVRH9YOnEyH\nFo1o3bgecTUMcrO9O0h1RC7Yq4U2AAAJF0lEQVQSk8xskXMupaJxOqQLI+ccaXtyDl6Rsj59L9lb\nVrB6F6Rl5nBW3BK6ldGv3Fe7BXWzt5N14QQSe1wEufvgg3todcY9tGpa4iHT8bXD88uISFRTuIfA\ngbwCftm1l3UlbvDZkJbFnpw8EjhAHXIYk/AhN9k73g+VlcknjYa2J1G32zDYt4vEwukAaibAJRPC\n9vuISNWjcD8CGftyWb/Du6FnXXoW69P2siE9i7Rdu2judrLBtQYguX4N+jfexR2tUjlr2ysVv/Co\nD6FdX6jhd8VKYbCLiARA4V6BggLHloz9vpt69h68O3N9+l52ZBVdGx4fZ7RvWo9jW9RnYs1HOWb3\nN6y4ZiXHLfkn8cvegLRy3qBBG2jZHVp0gc6DveU4XUsuIkdG4e6TnZvv3aFZYp6UDTuyyM4tODiu\nYZ14OjZP5OzOScXu0GzXuA4101dBTia8+g0AXSd3OfSbXjwBelwRyl9LRKqpahXuzjl27j1Qap6U\ndb7JrgovHDKDto3r0CEpkX4dmtIhKZGOTWpyTMsmNC28Nvyn+UAm/Pw1rNsMv/4EP31R9htfMhHm\nPQR9rgOL86bUraGbhEQkdGIy3PPyC9j4636/c+FFR+MZ+3MPjqsdX4NjmiXSK7kxw/q09UK8eSJH\nN6tH7fg4WDMHljwDfe+D50+E3zwCB/bC0v+DXRsCK6bLxdD9Mu9LRCRMqnS4Z+Xk+QV31sF5Uv63\ncy+5+UXX7zdLTKBDUj3O797q4DwpHZLq0bphndKTXc19CJqfAO1PK5oad81s7/tHFTxsatQH8Op5\n3vKwVyCps3cuXUQkzKpcuH+7YSfPzf2R9Wl72ZaZfXB7nN9kV+cc3+LgPCkdmiXSsK5fg3LNHKhZ\nFxqcCnMfgJ5XQb0k+PYFaH9q8QdDH8ppd3rft6/05ksHaHcyXPc+tOgKdRoF6TcWEam8KhfuAFk5\n+ZzSsenBhmbH5vVIblKv6IEQ+3d7z/tM8D3SLX0tbEqF7N3w0V+Lv9iXTxUtfx5gAaf/CU6/25uZ\nMT8X/tEMmhzjnUdvf+oR/34iIkcqoHA3s0HAM0AcMNE592iJ/QnAZKAPsBO4wjn3v+CW6jm5wS7e\n67EQUkZBfF1YPROaXeQFq3Pw+Vj47J/eA57/sNIL9UkXVP6NjhsMA/4BTTtA/gFvDvScPTD/X3Dq\nHUVT7sbFwx/XFD08WkQkClQ4t4yZxQE/AAOATcBCYIRzbpXfmFuA7s65m81sOHCxc+6Q1/gd9twy\nq2fB1JFQpzFkZ4LzTWE75DlY+qb3BKLDdcHTMPsOGDnDm7hLRCTKBHNumZOAdc65Db4XfhMYCqzy\nGzMUuN+3PB0YZ2bmQjErWUPfXCr7fy2+febvD/1zJ93kHWV/+wL0GA4X/ds70k9fCy+dDTd87DU/\nU0YFvWQRkXALJNzbABv91jcBfcsb45zLM7MMoCmwIxhFFtOwXfn7elzp3URUeHULeJcvNmwLJwzx\nrT9ctM8MmneGv20JepkiIpEU1oaqmY0GRgMkJwc+tW0x9ZrBgAfh2PNgw2eQdJzXxCw85+0cLJ3i\nnVaJq6WrVkSkWgok3DcD/ofLbX3byhqzycxqAg3xGqvFOOcmABPAO+d+OAUD0P9273vSsaX3mUHP\nKw/7pUVEYkEg98AvBDqZ2dFmVgsYDswsMWYmcK1veRgwNyTn20VEJCAVHrn7zqHfCnyEdynkK865\nlWb2IJDqnJsJvAy8bmbrgF14fwGIiEiEBHTO3Tk3B5hTYtu9fsvZgCZPERGJEpqaUEQkBincRURi\nkMJdRCQGKdxFRGKQwl1EJAZVOHFYyN7YLB34+TB/vBmhmNogdFRvaKne0FK9oVXZeo9yziVVNChi\n4X4kzCw1kFnRooXqDS3VG1qqN7RCVa9Oy4iIxCCFu4hIDKqq4T4h0gVUkuoNLdUbWqo3tEJSb5U8\n5y4iIodWVY/cRUTkEKI63M1skJmtNbN1ZvbnMvYnmNlU3/4FZtY+/FUWq6eieq8zs3QzW+L7uiES\ndfrV84qZpZnZinL2m5k96/t9lplZ73DX6FdLRbWeaWYZfp/tvWWNCxcza2dm88xslZmtNLPbyxgT\nTZ9vIPVGzWdsZrXN7DszW+qr94EyxkRNPgRYb3DzwTkXlV940wuvB44BagFLgRNKjLkFGO9bHg5M\njfJ6rwPGRfqz9avndKA3sKKc/YOBDwADTgYWRHGtZwKzI/2Z+tXTCujtW66P95D5kv89RNPnG0i9\nUfMZ+z6zRN9yPLAAOLnEmGjKh0DqDWo+RPOR+8EHczvnDgCFD+b2NxSY5FueDpxjZhbGGv0FUm9U\ncc59gTf/fnmGApOd51ugkZm1Ck91xQVQa1Rxzm11zi32Le8BVuM9a9hfNH2+gdQbNXyfWZZvNd73\nVbKBGDX5EGC9QRXN4V7Wg7lL/sdW7MHcQOGDuSMhkHoBLvX9E3y6mR3iad9RIdDfKVr08/2z9wMz\n6xLpYgr5Tgf0wjta8xeVn+8h6oUo+ozNLM7MlgBpwMfOuXI/3yjIh0DqhSDmQzSHeyyaBbR3znUH\nPqboqEKO3GK827J7AM8B70a4HgDMLBGYAdzhnMuMdD0VqaDeqPqMnXP5zrmeeM91PsnMukaynooE\nUG9Q8yGaw70yD+bmUA/mDpMK63XO7XTO5fhWJwJ9wlTb4QrkzyAqOOcyC//Z67wnh8WbWbNI1mRm\n8XhB+YZz7u0yhkTV51tRvdH4Gftq2Q3MAwaV2BVN+XBQefUGOx+iOdyr2oO5K6y3xPnUIXjnNaPZ\nTOAa31UdJwMZzrmtkS6qLGbWsvB8qpmdhPffdsT+R/bV8jKw2jn3ZDnDoubzDaTeaPqMzSzJzBr5\nlusAA4A1JYZFTT4EUm+w8yGgZ6hGgqtiD+YOsN7bzGwIkOer97pI1QtgZlPwroBoZmabgPvwGj04\n58bjPTd3MLAO2AeMikylAdU6DBhjZnnAfmB4BP+iB+gPXA0s951nBfgrkAzR9/kSWL3R9Bm3AiaZ\nWRzeXzJvOedmR2s+EFi9Qc0H3aEqIhKDovm0jIiIHCaFu4hIDFK4i4jEIIW7iEgMUriLiMQghbuI\nSAxSuIuIxCCFu4hIDPr/SHTUgJU/i70AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 70000\n",
"Loss: tensor(0.0031, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 80000\n",
"Loss: tensor(0.0024, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 90000\n",
"Loss: tensor(0.0018, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xd4VFX+x/H3NwUCgqD03gXpkEi1\nYEGBRUAFBQUFC6KyqGtd19/a3V1dO2tBpFkARXFBURcURVFKQEILvbfQS4CQdn5/zEgKgQwwLcnn\n9TzzcO85ZybfDPDJzbln7jXnHCIiUrhEhLoAERHxP4W7iEghpHAXESmEFO4iIoWQwl1EpBBSuIuI\nFEIKdxGRQkjhLiJSCCncRUQKoaj8BphZDDALKO4dP8k591SuMQOBl4Gt3qbhzrmRp3rd8uXLu9q1\na59BySIiRdeCBQt2O+cq5Dcu33AHjgFXOOeSzSwa+MXMvnHOzck1bqJzbqivBdauXZv4+Hhfh4uI\nCGBmG30Zl2+4O8/FZ5K9u9Hehy5IIyISxnyaczezSDNbBOwEpjvn5uYx7AYzW2xmk8yshl+rFBGR\n0+JTuDvnMpxzLYHqQBsza5pryFSgtnOuOTAdGJvX65jZYDOLN7P4Xbt2nU3dIiJyCqe1WsY5tx+Y\nCXTJ1b7HOXfMuzsSiD3J80c45+Kcc3EVKuR7PkBERM5QvuFuZhXMrKx3uwTQGViRa0yVbLs9gER/\nFikiIqfHl9UyVYCxZhaJ54fBp865r8zsWSDeOTcFGGZmPYB0YC8wMFAFi4hI/ixUd2KKi4tzWgop\nInJ6zGyBcy4uv3H6hKqISLCsmAajusLm+QH/Ur5My4iIyNnaEg8T+nm2l38JNS4K6JfTkbuISDBs\nyvah/vY+f5j/jOnIXUQkkHavganDYONsKN8Q7psLZgH/sjpyFxEJFOcgcYon2AE6PR6UYAcduYuI\nBM4Pz8HPr3i2hy6A8vWD9qV15C4iEggZafDrW57tC3sENdhBR+4iIv6VlgKLPoYVX0FGKnR/DVr0\nC3oZCncREX/6/hmY83bWfot+EF0i6GVoWkZExJ92LMnaHhp/PNgzMh3/mJZI3PMzePP71QEvQ0fu\nIiJna91PsHctxJSBDT972rr8C8o3ACAlLYP7J/zOd8uSuLxhBS6oVDrgJSncRUTO1rgeOff7jodG\n3QDYeziVO8fO5/fN+/m/7o254+I6QSlJ4S4i4m/eYN+05wi3jZ7H1v1Hefvm1nRtViWfJ/qPwl1E\n5EwdS4a13+ds6zsegITN+7lj7HzSMx2f3NmWuNrnB7U0nVAVETlT3z4Gn97q2W52o2fOve5l/LAi\nib4j5hATHcnn93QIerCDjtxFRM5MRjpsT8jav34EmPHJ3E08+eUSmlQtwwcD46hYOiYk5SncRURO\nV0YavNMRdq+E4ufC45twwCvfrWT4zDVc3rACw29uzTnFQxexCncRkdORmQGju3qCHaDTX0nNcDz+\n+WK++H0r/drU4LmeTYmKDO2st8JdRMQXmRnwZivYv9Gz36g7dH+Ng1Hncc+Yecxes4eHOl/A0Cvq\nY0G68uOpKNxFRHyxZ21WsANc9x47UqIYOPI31uxM5t99WtA7tnro6stF4S4i4osdi7O2S1dh5T7H\nwNGzOZSSzuhBF3FJgwqhqy0P+Ya7mcUAs4Di3vGTnHNP5RpTHBgHxAJ7gJuccxv8Xq2ISCg4B/NH\nQkQ03PIZi/YVY8C7v1IiOpKJd7ejSdUyoa7wBL4cuR8DrnDOJZtZNPCLmX3jnMt2Q0DuAPY55+qb\nWV/gX8BNAahXRCR4Ns+D8X2hxHmwZw3UaMt/D13Aw5MTqF3uHMbc3oZqZYN/xUdf5Hs613kke3ej\nvQ+Xa1hPYKx3exJwpYXDGQURkbPxQWc4sscT7MComv/g/gmLaF3zPCYN6RC2wQ4+zrmbWSSwAKgP\n/Mc5NzfXkGrAZgDnXLqZHQDKAbtzvc5gYDBAzZo1z65yEZFA2fgbbPr1+K6LiGZijSd59vsdXNui\nKv/u05ziUZEhLDB/PoW7cy4DaGlmZYHJZtbUObf0dL+Yc24EMAIgLi4u99G/iEh4GN3l+GZqt9e5\nN7EZMxKTuPuyujx2TSMiIsJ/YuK0Vss45/ab2UygC5A93LcCNYAtZhYFlMFzYlVEpGA5svf4Zmr9\nLtw4rwEJW5N4tmcTbm1fO3R1naZ859zNrIL3iB0zKwF0BlbkGjYFuM273Rv4wTmnI3MRKVi2J8BL\nWddb77/1BhJ3HOLd/rEFKtjBtyP3KsBY77x7BPCpc+4rM3sWiHfOTQE+AD40szXAXqBvwCoWEQmE\nlAPw3qUAbLzkZa77tQ7umOOTuy4ittZ5IS7u9OUb7s65xUCrPNr/nm07Bejj39JERILk8B6YNOj4\n7jU/1qDSuVGMGdSGOuXPCWFhZ06fUBWRoithAiwcBxtnH2/6U+qLNKx2Lh/cFkf5UsVDWNzZUbiL\nSNE1+e4cu/1S/0aVhm14s18rShYr2PFYsKsXEfGjuhd15ZkeTUJ+uV5/ULiLSNG0YtrxzdWZ1UiI\ne4Hnr20aFpfr9QeFu4gUPZvnw4R+APRMe5GBvXvSu1X4XK7XHxTuIlI0pB2FdT/CjGdgVyIAd7r/\n47FBN9GhfvnQ1hYACncRKRr+ex8s/TxH08P3DKZR5XNDVFBgFfyzBiIivlgzI8duRolyhTbYQeEu\nIoWdc7ifX/N8AtUrtUlvIh887WsfFiialhGRwss50nevJer7pwE4HFGa6AcTKFbyXIiMDm1tAaZw\nF5HCacFYmDoMyLrueslbJ2Kly4WupiDStIyIFD6ZGd5ghygyPG3dX8NqdwxdTUGmcBeRQmffV3/P\n2dDt3xB3e2iKCRGFu4gUKgvW7+S8hcMBcBYFV78ArfqHuKrg05y7iBQaS776D7HxTxzftyE/Q6XG\nIawodHTkLiKFwujZ64mc915WQ+zAIhvsoCN3ESngMjMdr02dy4MLuxAR4cgs35CIjsOgRb9QlxZS\nCncRKbBS0jIYOeZ9btj8KhERnts2R1zyF2ihO30q3EWkQNp/JJWXPviYF/c8ljXBfG51aNgtpHWF\nC4W7iBQ4W/Yd4bX3P6Bv8kdZwX7jh9C4R0jrCif5hruZ1QDGAZUAB4xwzr2Ra0wn4L/Aem/TF865\nZ/1bqogILN16gCGjf+GX9Cezgr3VAAV7Lr4cuacDDznnFppZaWCBmU13zi3PNe5n51x3/5coIuLx\n06pd3PvRAn6NGJzVeMMH0Kx36IoKU/mGu3NuO7Ddu33IzBKBakDucBcRCZhP4zfz7eQPWRb9r6zG\ni+5SsJ/Eaa1zN7PaQCtgbh7d7c0swcy+MbMmJ3n+YDOLN7P4Xbt2nXaxIlL0OOd4fcYqHp20mF7n\nb8zquOpp+NO/Q1VW2PP5hKqZlQI+Bx5wzh3M1b0QqOWcSzazbsCXQIPcr+GcGwGMAIiLi3NnXLWI\nFAlpGZn8bfISpsavYek5D1LqkPea7B2GQccHQltcmPPpyN3MovEE+8fOuS9y9zvnDjrnkr3b04Bo\nMyt8NyUUkaBJPpbOnWPjmRq/hl/Oe5ZSGd5gjz4Hrn4OzEJbYJjzZbWMAR8Aic65V08ypjKQ5Jxz\nZtYGzw+NPX6tVESKjJ0HU7h/1Ax67RnJizUyKLdrQ1bn4B9DVFXB4su0TEdgALDEzBZ5254AagI4\n594FegP3mFk6cBTo65zTtIuInLY1Ow9x26j53Hp0EjdFzoQ/Ts+1vhW2LYIKF4S0voLCl9UyvwCn\n/P3HOTccGO6vokSkaJq3fi93jYunWcR67rbJWR2DvoVa7UNXWAGkq0KKSFj4evF2+n8wl6rnOD7K\neDSr48YPFexnQJcfEJGQG/nzOp7/OpGLaxRndMyrkOztuHcOVLwwpLUVVAp3EQmZjEzH818vZ/Ts\nDXRtWpm3t1yH7fKuiun8nIL9LCjcRSQkUtIyeHDiIr5ZuoPbO9Tmyarx2BpvsNe6GDoOC22BBZzC\nXUSCbt/hVO4aF8+CTft48cpy3LzuXljoXYxXqyPc8lloCywEFO4iElSb9x7httHz2LLvKO/2voBr\nfuwBh7ZBTBm4bx6UrhzqEgsFhbuIBM3iLfu5fcx80jIc429rSuzHTbM6m/VRsPuRlkKKSFDMXLGT\nviPmUDwqkp+aTssZ7B2GeU6git/oyF1EAm78vE08+eVSLqxSmlG3NKXsm9dldT68BkpVCF1xhZTC\nXUQCxjnHa9NX8d4Py5lS5g0aVqxN1JveT57WuxKiS8A5usZgICjcRSQgUtMz+esXS/h84RaeaLSP\nJht+h8TfswbcOA6KlwpdgYWc5txFxO8OpaRxx9j5fL5wC491qspdR97POWDoAgV7gOnIXUT8aseB\nFAaNmc/qpEO83Ls5feZcD7tXZQ14aKVWxQSBwl1E/GZV0iEGjprHgaNpjBp4EZduHJ4V7Dd/BnvW\nQKlKoS2yiFC4i4hf/LZ2D4M/jKdEdCSfDmlPkxL74JPXPZ1XPAkXXA1cHdIaixLNuYvIWZuSsI3b\nRs2j0rkxfHFvB5q4tfBGC2+vQcNuIa2vKNKRu4icMeccI2at4x/frKBNnfN5v38sZY5uhLHXegbE\nDoJrXw9tkUWUwl1EzkhGpuOZqcsY99tGujevwit9mlH8rZZwcEvWIAV7yCjcReS0HU3NYNiE35m+\nPInBl9bl8asbEPFiJchMD3Vp4qU5dxE5LXuSj3HzyDnMSEzi6Wsb80S3C4mY/WpWsF/9PMSUhSv+\nL7SFFnH5HrmbWQ1gHFAJcMAI59wbucYY8AbQDTgCDHTOLfR/uSISShv3HOa2UfPYfiCFd26Jpcue\ncfD0C1kD+oyFJr2gw59DV6QAvk3LpAMPOecWmllpYIGZTXfOLc82pivQwPtoC7zj/VNEColFm/dz\nx5j5ZDrH+EEtab1vGsx8IeegJr1CU5ycIN9wd85tB7Z7tw+ZWSJQDcge7j2Bcc45B8wxs7JmVsX7\nXBEp4GYsT2Lo+IVULB3Dh72rUmtco5wDGlwDN08MTXGSp9Oaczez2kArYG6urmrA5mz7W7xtuZ8/\n2MzizSx+165dp1epiITER3M2MvjDeBpWKs0X93ag1rZpJw669BEwC35xclI+r5Yxs1LA58ADzrmD\nZ/LFnHMjgBEAcXFx7kxeQ0SCIzPT8fL/VvLOj2u5slFF3rq5FSUtHWY87RnQrA9kpHrm2RXsYcen\ncDezaDzB/rFz7os8hmwFamTbr+5tE5ECKDU9k0cnJfDlom3c3LYmz17bmKit82B0F8+AtvdA13+G\ntkg5JV9WyxjwAZDonHv1JMOmAEPNbAKeE6kHNN8uUjAdTEljyIcLSFs3m48bH6BDj2uwrx+EhWOz\nBjW/MXQFik98OXLvCAwAlpjZIm/bE0BNAOfcu8A0PMsg1+BZCjnI/6WKSKBt23+UQaPns3ZXMmuK\nPwvrgPdnwo7FngEXdIWYc6FS01O+joSeL6tlfgFOOaHmXSVzn7+KEpHgW7HjIANHzefwsXQm3FgV\nvvR2/BHsAD2H67Z4BYQ+oSoizF6zmz7v/AbAp0PaEzfvgRMHNequYC9AdG0ZkSJu8u9beHTSYuqW\nL8WY2y+iCntgW7Z7nTbvC91egqiY0BUpp03hLlJEOed4+8e1vPzdStrXLce7/VtTZu+SnNMw/T+H\n+leFrkg5Ywp3kSIoPSOTp6Ys4+O5m+jVsiov9W5BscUfwZRc14RRsBdYCneRIuZIajp//uR3vl+x\nk3s61eORzhcQ8VEvWP9TzoF9xub9AlIgKNxFipDdyce4Y8x8lmw9wHO9mjIgrgokLT4x2O9PgPNq\nh6RG8Q+Fu0gRsX6353K9Ow+l8N4trei8YwS8Ow12r/QMuGUS7FgCNdoq2AsBhbtIEbBg4z7uHDuf\nCDPG39WOVov+DgvH5RxU7wpo0Dk0BYrfaZ27SCH33bId3Pz+HMqUiObzIe1plfxzzmAvWwvuXwwR\nkaErUvxOR+4ihdjYXzfw9NRltKxRlpG3xlEuaTZ8OsDTeU5FGDofSpQNbZESEAp3kUIoM9Pxr29X\n8N6sdXRuXIk3+7aiRLFImPlfz4Dur0HsIF2qtxBTuIsUMsfSM3j4s8VMTdjGgHa1eLrpbiLXfQff\nPgb7N0Gr/hB3e6jLlABTuIsUIgeOpDH4w3jmrt/L410bcXf9g9j7PbMGxJSFdrrGX1GgcBcpJLbu\nP8rAUfPYsOcwb/RtSc8KO+D9K7IGNLkern8fIvXfvijQ37JIIbBs2wEGjZ7P0bQMvri2GM1+6AwH\nvTdDq9EOGnaFdvco2IsQ/U2LFHCzVu3ino8WcF5MBJOuK0bNyb2yOgd+DbUvDl1xEjJa5y5SgH0W\nv5nbx8ynxvkl+SZuQc5gr3Wxgr0IU7iLFEDOOd78fjWPTFrMxXVK89ldsZTePDNrQI12nmkYKbI0\nLSNSwKRnZPLkl0uZMH8z17euxis7bsde3w4ZqVDvSuj+qq4NIwp3kYLk8LF07vtkIT+u3MWfL6/L\nXxZejR07mDVAwS5e+U7LmNkoM9tpZktP0t/JzA6Y2SLv4+/+L1NEdh5K4aYRv/Hz6t181fRHHvqt\nXc5gr3Opgl2O8+XIfQwwHBh3ijE/O+e6+6UiETnBmp3JDBw9jz3JqSyq9Byl1yzPOaBMDeg3MTTF\nSVjKN9ydc7PMrHbgSxGRvMzfsJc7x8YTHWnM6JhI6TnZgr3tPVDxQmjSC4qVDF2REnb8Nefe3swS\ngG3Aw865ZX56XZEibdqS7TwwcRHVy5ZgzMA4qg3vndX59IHQFSZhzx/hvhCo5ZxLNrNuwJdAg7wG\nmtlgYDBAzZo1/fClRQqvD35ZT6XvhrAqag7H6g6g+PBs14hpfWvoCpMCwZxz+Q/yTMt85Zxr6sPY\nDUCcc273qcbFxcW5+Ph436oUKUIyMx0vTEtk9C9rWRfTP2dnmZrQ8y2o3kbTMEWUmS1wzsXlN+6s\nj9zNrDKQ5JxzZtYGzwqcPWf7uiJFUUpaBg99msDXS7bzdPMDsCpb55DZUKEhREaHrD4pOPINdzMb\nD3QCypvZFuApIBrAOfcu0Bu4x8zSgaNAX+fLrwMiksP+I6kMHjuPI5t+5/2LStB5yUNZnY17QeV8\nf3EWOc6X1TL98ukfjmeppIicoc17jzB01A9MODSIEsVTYYm3o0IjaHkLtNc12OX06BOqIiGWuGoN\nMyf8m7czZ1DCUj2N59eDmz7yLHPUrfDkDCjcRUJo5ookLp8Qy4XZG8+vB39eoFCXs6KrQoqESPyk\nl2k0vl3Oxm7/hmELFexy1hTuIkHmnOODqT8Qt/R5qtjenJ26cbX4iaZlRIIoLSOTJ75YwhWLX4TI\nbB3Xj4R6V0BE5EmfK3I6FO4iQZKcksZDH84ief18uhab72m89k04dgia9wltcVLoKNxFAu1QEkf+\n9xxRSz7lPY5BMW/7BV08lxHQ/LoEgMJdJJC2LYIRl3HChQJu/gwuuDoUFUkRoROqIoGStAxGXHZi\ne8f7oUHn4NcjRYqO3EUCIf0Ya6e/T73sbbU6Qr/xEFMmVFVJEaIjdxE/c/s3wfMVqbdmNOui6pN8\n/cdQ/SLPJ04V7BIkOnIX8Ze0FNybrbBD24431S5fiojm3aG57kIpwaUjdxF/2J5Axvi+OYIdIKLn\nmyEqSIo6HbmL+MN7l+b4TBJ/2wHRJUJVjYjCXeSMzXsfvnuCjOhSx4N97mUf0faybvqkqYScwl3k\ndGRmAAbz3oNvHwcgMmMvq6lBSu+Padu0RWjrE/FSuIucjslDYMmnOZpSKEbEvb/RrGLpEBUlciKF\nu0h+nIPFn8LulTmC/dfMxlhMGS7s+Qj1FOwSZhTuIvmZ/TrMePr47p6YWnyUHMum2r157tZrKFlM\n/40k/OhfpUh+ln5+fHNdiWZcte8xbmpTi3/1bEpUpFYTS3jKN9zNbBTQHdjpnDvh9utmZsAbQDfg\nCDDQObfQ34WKBE1mJozrARt+hqgYSE8hve6VPHrkFr7YEMPDV1/AfZfXx3Q1Rwljvhy5jwGGA+NO\n0t8VaOB9tAXe8f4pUrAsGAulKkGJ8zzBDpCeAsD9O6/lu70leKVPc26IrR7CIkV8k2+4O+dmmVnt\nUwzpCYxzzjlgjpmVNbMqzrntfqpRJPDSU2HqsDy7Ohb7jAOHHKMHteaSBhWCXJjImfHHnHs1YHO2\n/S3eNoW7FAwHt8GrF+Zsu+RhlsbE8pf/7SWdCD69uw2Nq54bmvpEzkBQT6ia2WBgMEDNmjWD+aVF\nTu6zgVnbVz0NDa7mv9vL8vBnCdQpX4PJg9pQtawuJSAFiz9O9W8FamTbr+5tO4FzboRzLs45F1eh\ngn69lRBzDnathM1zPftth+A6PsDbicW5f8IiYmudx2dDOijYpUDyx5H7FGComU3AcyL1gObbJWwd\n2AJLv4Af/wlph7Paq19ERufneeq/S/loziZ6tKjKy32aUzxK14iRgsmXpZDjgU5AeTPbAjwFRAM4\n594FpuFZBrkGz1LIQYEqVuSMOQezXoaZL5zYV78zKZ2eYujHCcxITGLIZfV49JqGRERoqaMUXL6s\nlumXT78D7vNbRSL+kpnhOVLfMh8+v+PE/j5joXFPdh9O5Y6x8SzZsp/nejZhQPvaQS9VxN/0CVUp\nvGa9DD/+I+++ys2gSS/W7z7MwNHzSDqYwrv9Y7m6SeXg1igSIAp3KVwyMyHtCCwYk3ewd30Z2g4G\nYOGmfdw5Nh6AT+5qR+ua5wWxUJHAUrhL4ZG0DN7pcGJ7vwlQqyPEZK1T/9+yHQyb8DuVzo1h7KA2\n1C5/ThALFQk8hbsUHqu+PbFtyGyonPOSSON+28DTU5bRrHpZRt0WR7lSxYNTn0gQKdyl4Nue4Fna\nuHJaVlvsQLj6BShe6nhTZqbjpe9W8u5Pa7nqwoq81a81JYppqaMUTgp3KXiO7PVchrfpDbDoY/jf\nkyeOufaNHLvH0jN45LPFTEnYRv92NXmmR1MitdRRCjGFuxQsKQfgpTqe7WkPn9jf7j6o1jpH04Gj\nadz9YTxz1u3lsS6NGHJZXV2uVwo9hbsUDEf2wq4V8P2zJ/ZVaARd/gHn14PzauXo2rb/KANHz2P9\n7sO80bclPVtWC1LBIqGlcJeCYXQ32JWYs63tPTD3Hej1NlSLPeEpy7cdZNCYeRw5lsHY29vQoV75\nIBUrEnoKdwlv2xNgxOXgMnK2l2sAXf8JnZ+FqGInPO2X1bsZ8tECSsdEMemeDjSsrBtYS9GicJfw\nk7wTZjwDmWmweGJW+3UjoFlv+PZxiLvd05ZHsH++YAuPfb6Y+hVLMWZQGyqXiQlS4SLhQ+Eu4WP7\nYtixGP6bx6WKKjaBFjd5tru9nOfTnXMM/2ENr0xfRcf65XinfyznxkQHsGCR8KVwl9BKPQLxo6Bu\nJ3jvkhP7ewyHKi0814I5hbSMTP42eQmfxm/h+lbV+OcNzSkW5Y/bFYgUTAp3CZ3kXTDrJZg3Iu/+\ny/8GrQec9OkpaRn8unY305cnMSNxJ7sOHWPYlQ148KoGWuooRZ7CXYLPOTi8G/5d/+Rj/roFipU6\noXnv4VR+WLGT6ct3MGvVbo6mZVCqeBSXXVCBG2KrcUWjSgEsXKTgULhLcKQdhd2roUpzmDoMFo47\nccywRbB5HlRoCMWzVrds2H2Y6cuTmJ6YRPyGvWQ6qHxuDDfEVqNz48q0q3u+7pgkkovCXYJj0h2w\n8muILAYZqVntA76Eo3uhbC04vw6cX4fMTMeiTfuYsTyJ6cuTWL0zGYBGlUsz9PL6dG5cmabVztXU\ni8gpKNwlcDLSYO0PUKaGJ9ghZ7C3vAXqXQ545s9nJyYxIzFr/jwywmhb53xubluTqy6sRI3zS4bg\nmxApmBTuEjjfPOpZCZNbtVi4cRx7oyryw4ItJ86fN6xA5wsrcXnDipQpqaWMImdC4S7+t2ct/PIq\nLP4sq+2mj6BRdzbs3M/0lfuYPn4z8RsTNH8uEiA+hbuZdQHeACKBkc65f+bqHwi8DGz1Ng13zo30\nY50SzpyDyXfDkklQ8UJIWprV1fo2fm/5jGe54jezNH8uEiT5hruZRQL/AToDW4D5ZjbFObc819CJ\nzrmhAahRwlXqYfjwOrBI2PSrpy1bsK89pxUvJDTkh19/1fy5SJD5cuTeBljjnFsHYGYTgJ5A7nCX\nomTtTJg4AFIPndA1OfMyHkwdTCkXzWUNK/BG40p0ukDz5yLB5Eu4VwM2Z9vfArTNY9wNZnYpsAp4\n0Dm3OY8xUpClHobkJBjbEw5synPIRxE9Wd3iL4xtUk3z5yIh5K8TqlOB8c65Y2Z2NzAWuCL3IDMb\nDAwGqFmzpp++tARFwkSYPPiE5ufSbqHaudHQ6E9cFNuWWzR/LhIWfAn3rUCNbPvVyTpxCoBzbk+2\n3ZHAS3m9kHNuBDACIC4uzp1WpRJcOxMhaRmZc99jfdn21Fv6xglDJrefxMCLOmr+XCQM+RLu84EG\nZlYHT6j3BW7OPsDMqjjntnt3ewC5bpkjBcnR756hxG+vAhAB1NsyD4C9UZU4WrEl1bZ9B6Wrct01\nnUNYpYicSr7h7pxLN7OhwHd4lkKOcs4tM7NngXjn3BRgmJn1ANKBvcDAANYsAbB+92F+XrSc1vMe\nomlqQp5jzn8iESIiIf1YkKsTkdPl05y7c24aMC1X29+zbf8V+Kt/S5NAysx0JKzbyoIlS9i38lcu\nP/Itt0asOt6fHnM+kc37YFVbwqJP4NB2T7ADRBUPUdUi4it9QrUISTl8gGXzZvLZ3rrMWb6eHzNu\npdUfndnva9F+KFEX/wXOKefZb3mz54NKIlJgKNwLub2HU/k+0XN1xW5rnqFXxCxGu0f50fI4592q\nv+ciX50eP7FPK2BEChSFeyG0fvdhpi/fwYxl2zm4eSmX2+8cLtmWXhGzABiePdgtAupdCX3GQPET\nb44hIgWTwr0QyMx0/L55v+eGFst3sHZXMm1tBXeW/o2ri83wDEqbcOITW/WHnv8JbrEiEhQK9wIq\nJS2DX1Z77h/6/Yokdien0jUynr4VM7mo8VFarnsPUnM9qWpr6Dfec8OM9BQoXSUktYtI4CncC5A9\nycf4efFKvlt9mB/XHOBoWgbvrZj+AAAJQ0lEQVSli0fx52or6Vp5LjW2fAX78Dz+8KdX4aI7ID3V\nM28eqeu7iBQFCvcwt25XMjO8J0S3blzDr8X/TGVrSa3mz3H9OQnUPSeVqJnP5v3ke+d67kcKEFUs\neEWLSMgp3MPMifPnhwG4sHJpfirxMGRCO7eIdsuuPfULPX0gCNWKSLhSuIeB7PPn6xPjaZaygF9c\nS66qmsq9VzThqsxfKDPn5VO/yE0fQ5nqMOIyuOyx4BQuImFL4R4ie5KP8f2KnUxfnsTPq3eRkpZJ\n6eJRLLEHIRrgI9iN53EytS6GAZMhIgoivJ9C+luSPkEqIgr3YFq3K9k73ZLEgk37cA46lN7Jnc1r\ncUn9csSmxsM3eTyxdFU4tA16j4JG3SHtCHzzmOcIPfdcenRMUL4XEQlvCvcAysh0LNq8j/8tT2LG\n8qTj8+ctKsfwyCUV6J06hYqL3oJleB65tRkM1dtAs95wZG/W5QCiisP1I4L2fYhIwaNw97OUtAx+\nTdzEgiXLmLi+OLuTUykZkUbP6od5pXGCZ/35fmDeKV5k0LdQo23WVAtkBbuIiA8U7n6wO/kYP2Sb\nP3+Xf/BIZAI76n/NsNRPqLXpC9iJ55HbudWgcnOo1AQadfNsay26iJwlhfsZymv+/OLSO3ikUXE6\nrfZcD/2VNX869YtcNwJa3BSEakWkqFG4+ygj9SiLth3hf4meI/SKe+YD0PPc9TxV8zB1IndSatuv\nsDqPJ18/EmY+D7EDwSKh/dCcUy4iIn6mcD+FY0u/4sBvoxlb8jYeWT2Ar9MGUMpS+CRmNpWLbfMM\nSvE+TqbJddC8j+chIhIk5kJ0E4a4uDgXHx8fkq99Kke+fYZFx6ry2Z7avLap9+k9edA3MLqrZ7v3\nKKjQyDOXLiLiJ2a2wDkXl9+4onfkvmIaFCvp+QDQzOeh5S2sTynJnhmvM/VAPZ7Z9yodgA75vc4l\nD3n+TFoGq771bNdoBwO/hkpNoUTZAH4TIiKnVjjD/eh+z/0+i5f27O9aCVviIWU/fPdEzrG/vEYd\noA6Q74/CP1z6KFz6iOcDRBlp8Fx5OL+uZx699sX++z5ERM6QT+FuZl2AN4BIYKRz7p+5+osD44BY\nYA9wk3Nug39L9dq9GlZ8DXGDILokJE6Bxr08Ye4c/PQS/PgilCwHDy7zhPrY7qf/dRp2g87PQbl6\nkJHquQb6sUPw8ytw8QNZnwyNjIa/rMi6ebSISBjId87dzCKBVUBnYAswH+jnnFuebcy9QHPn3BAz\n6wtc55w75Rq/M55zT5wKE/tDifMg5SC4DE97j7cgYQJsnH36r/mH7q/DVw9A/8+h/lVn/joiIgHi\nzzn3NsAa59w67wtPAHoCy7ON6Qk87d2eBAw3M3OBOFtbprrnz6P7crZP+fMpnzanQm+qly9DtRVj\nsBZ9odfbniP9XSvh/Svgzumek59xg/xesohIsPkS7tWAzdn2twBtTzbGOZduZgeAcpz6moZnZPau\nGDqepG+KdaJY+mG6RM4/3ra93d+pXLM+7Rr39La8mvUEM6jYCP62zd9lioiEVFBPqJrZYGAwQM2a\nNc/oNWLKVuaL8oNZVqojFx5dwM7idVhfqiUWEUlkhNGoUmn22U+c17wbRBajilatiEgR5Eu4bwVq\nZNuv7m3La8wWM4sCyuA5sZqDc24EMAI8c+5nUnBsrfOIHfoy1wPQ6ySj6pzJS4uIFBq+fAZ+PtDA\nzOqYWTGgLzAl15gpwG3e7d7ADwGZbxcREZ/ke+TunUMfCnyHZynkKOfcMjN7Foh3zk0BPgA+NLM1\nwF48PwBERCREfJpzd85NA6blavt7tu0UQBdPEREJE7o0oYhIIaRwFxEphBTuIiKFkMJdRKQQUriL\niBRCIbtZh5ntAjae4dPLE4BLGwSQ6g0s1RtYqjewTrfeWs65CvkNClm4nw0zi/flqmjhQvUGluoN\nLNUbWIGqV9MyIiKFkMJdRKQQKqjhPiLUBZwm1RtYqjewVG9gBaTeAjnnLiIip1ZQj9xFROQUwjrc\nzayLma00szVm9nge/cXNbKK3f66Z1Q5+lTnqya/egWa2y8wWeR93hqLObPWMMrOdZrb0JP1mZm96\nv5/FZtY62DVmqyW/WjuZ2YFs7+3f8xoXLGZWw8xmmtlyM1tmZvfnMSac3l9f6g2b99jMYsxsnpkl\neOt9Jo8xYZMPPtbr33xwzoXlA8/lhdcCdYFiQALQONeYe4F3vdt9gYlhXu9AYHio39ts9VwKtAaW\nnqS/G/ANYEA7YG4Y19oJ+CrU72m2eqoArb3bpfHcZD73v4dwen99qTds3mPve1bKux0NzAXa5RoT\nTvngS71+zYdwPnI/fmNu51wq8MeNubPrCYz1bk8CrjQzC2KN2flSb1hxzs3Cc/39k+kJjHMec4Cy\nZlYlONXl5EOtYcU5t905t9C7fQhIxHOv4ezC6f31pd6w4X3Pkr270d5H7hOIYZMPPtbrV+Ec7nnd\nmDv3P7YcN+YG/rgxdyj4Ui/ADd5fwSeZWY08+sOJr99TuGjv/bX3GzNrEupi/uCdDmiF52gtu7B8\nf09RL4TRe2xmkWa2CNgJTHfOnfT9DYN88KVe8GM+hHO4F0ZTgdrOuebAdLKOKuTsLcTzsewWwFvA\nlyGuBwAzKwV8DjzgnDsY6nryk0+9YfUeO+cynHMt8dzXuY2ZNQ1lPfnxoV6/5kM4h/vp3JibU92Y\nO0jyrdc5t8c5d8y7OxKIDVJtZ8qXv4Ow4Jw7+Mevvc5z57BoMysfyprMLBpPUH7snPsijyFh9f7m\nV284vsfeWvYDM4EuubrCKR+OO1m9/s6HcA73gnZj7nzrzTWf2gPPvGY4mwLc6l3V0Q444JzbHuqi\n8mJmlf+YTzWzNnj+bYfsP7K3lg+AROfcqycZFjbvry/1htN7bGYVzKysd7sE0BlYkWtY2OSDL/X6\nOx98uodqKLgCdmNuH+sdZmY9gHRvvQNDVS+AmY3HswKivJltAZ7Cc6IH59y7eO6b2w1YAxwBBoWm\nUp9q7Q3cY2bpwFGgbwh/0AN0BAYAS7zzrABPADUh/N5ffKs3nN7jKsBYM4vE80PmU+fcV+GaD/hW\nr1/zQZ9QFREphMJ5WkZERM6Qwl1EpBBSuIuIFEIKdxGRQkjhLiJSCCncRUQKIYW7iEghpHAXESmE\n/h9HI82PucUtyAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 100000\n",
"Loss: tensor(0.0014, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"tensor(-0.5217, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.8035, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.1516, dtype=torch.float64, requires_grad=True)\n",
"tensor(0.0377, dtype=torch.float64, requires_grad=True)\n",
"tensor(-1.9780, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.8813, dtype=torch.float64, requires_grad=True)\n",
"tensor(-0.8934, dtype=torch.float64, requires_grad=True)\n",
"tensor(0.7951, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.8052, dtype=torch.float64, requires_grad=True)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Aao3_uDROnYn",
"colab_type": "code",
"outputId": "7b47b953-fe2b-4a65-d984-b8aa9ca011b1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"import torch\n",
"from torchviz import make_dot, make_dot_from_trace\n",
"\n",
"x = np.array([_/100 for _ in range(1000)])\n",
"y = 4.5*x + 3 + 2.8 * np.sin( 0.5 * pi * x + pi/3) - 5.2 * np.sin(0.25 * pi * x + pi/5) + np.random.normal(size=1000)\n",
"\n",
"x = Variable(torch.tensor(x,dtype=torch.double))\n",
"y= Variable(torch.tensor(y,dtype=torch.double))\n",
"\n",
"params = [0]*9\n",
"params[0] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[1] = Variable(torch.tensor(2,dtype=torch.double),requires_grad=True)\n",
"params[2] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[3] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[4] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[5] = Variable(torch.tensor(3,dtype=torch.double),requires_grad=True)\n",
"params[6] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"params[7] = Variable(torch.tensor(3,dtype=torch.double),requires_grad=True)\n",
"params[8] = Variable(torch.tensor(1,dtype=torch.double),requires_grad=True)\n",
"\n",
"lr = 1e-2\n",
"\n",
"# Compute the function\n",
"Y = params[0]*x + params[1]\n",
"Y = torch.max(Y,torch.tensor([0.0],dtype = torch.double))\n",
"Y1 = params[2]*Y + params[3]\n",
"Y1 = torch.max(Y1,torch.tensor([0.0],dtype = torch.double))\n",
"Y2 = params[4]*Y + params[5]\n",
"Y2 = torch.max(Y2,torch.tensor([0.0],dtype = torch.double))\n",
"Y3 = params[6]*Y1 + params[7]*Y2 + params[8]\n",
"Y3 = torch.max(Y3,torch.tensor([0.0],dtype = torch.double))\n",
"Y = Y3\n",
" \n",
"# Compute the loss\n",
"loss = ((Y-y)*(Y-y))/2\n",
"loss = loss.sum() # Computing the error\n",
"\n",
"make_dot(loss)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<graphviz.dot.Digraph at 0x7f03918ea940>"
],
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n -->\n<!-- Title: %3 Pages: 1 -->\n<svg width=\"375pt\" height=\"864pt\"\n viewBox=\"0.00 0.00 375.10 864.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(.9484 .9484) rotate(0) translate(4 907)\">\n<title>%3</title>\n<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-907 391.5,-907 391.5,4 -4,4\"/>\n<!-- 139653303676656 -->\n<g id=\"node1\" class=\"node\">\n<title>139653303676656</title>\n<polygon fill=\"#caff70\" stroke=\"#000000\" points=\"259.5,-21 166.5,-21 166.5,0 259.5,0 259.5,-21\"/>\n<text text-anchor=\"middle\" x=\"213\" y=\"-7.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SumBackward0</text>\n</g>\n<!-- 139653303673856 -->\n<g id=\"node2\" class=\"node\">\n<title>139653303673856</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"257.5,-78 168.5,-78 168.5,-57 257.5,-57 257.5,-78\"/>\n<text text-anchor=\"middle\" x=\"213\" y=\"-64.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">DivBackward0</text>\n</g>\n<!-- 139653303673856&#45;&gt;139653303676656 -->\n<g id=\"edge1\" class=\"edge\">\n<title>139653303673856&#45;&gt;139653303676656</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M213,-56.7787C213,-49.6134 213,-39.9517 213,-31.3097\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"216.5001,-31.1732 213,-21.1732 209.5001,-31.1732 216.5001,-31.1732\"/>\n</g>\n<!-- 139653303675256 -->\n<g id=\"node3\" class=\"node\">\n<title>139653303675256</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"258.5,-135 167.5,-135 167.5,-114 258.5,-114 258.5,-135\"/>\n<text text-anchor=\"middle\" x=\"213\" y=\"-121.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 139653303675256&#45;&gt;139653303673856 -->\n<g id=\"edge2\" class=\"edge\">\n<title>139653303675256&#45;&gt;139653303673856</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M213,-113.7787C213,-106.6134 213,-96.9517 213,-88.3097\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"216.5001,-88.1732 213,-78.1732 209.5001,-88.1732 216.5001,-88.1732\"/>\n</g>\n<!-- 139653303672904 -->\n<g id=\"node4\" class=\"node\">\n<title>139653303672904</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"204,-192 114,-192 114,-171 204,-171 204,-192\"/>\n<text text-anchor=\"middle\" x=\"159\" y=\"-178.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SubBackward0</text>\n</g>\n<!-- 139653303672904&#45;&gt;139653303675256 -->\n<g id=\"edge3\" class=\"edge\">\n<title>139653303672904&#45;&gt;139653303675256</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M169.157,-170.7787C176.6994,-162.8173 187.1616,-151.7739 195.9742,-142.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"198.5519,-144.8399 202.8886,-135.1732 193.4702,-140.0256 198.5519,-144.8399\"/>\n</g>\n<!-- 139653303673968 -->\n<g id=\"node5\" class=\"node\">\n<title>139653303673968</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"259.5,-249 166.5,-249 166.5,-228 259.5,-228 259.5,-249\"/>\n<text text-anchor=\"middle\" x=\"213\" y=\"-235.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MaxBackward2</text>\n</g>\n<!-- 139653303673968&#45;&gt;139653303672904 -->\n<g id=\"edge4\" class=\"edge\">\n<title>139653303673968&#45;&gt;139653303672904</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M202.843,-227.7787C195.3006,-219.8173 184.8384,-208.7739 176.0258,-199.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"178.5298,-197.0256 169.1114,-192.1732 173.4481,-201.8399 178.5298,-197.0256\"/>\n</g>\n<!-- 139653303675424 -->\n<g id=\"node28\" class=\"node\">\n<title>139653303675424</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"312,-192 222,-192 222,-171 312,-171 312,-192\"/>\n<text text-anchor=\"middle\" x=\"267\" y=\"-178.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SubBackward0</text>\n</g>\n<!-- 139653303673968&#45;&gt;139653303675424 -->\n<g id=\"edge29\" class=\"edge\">\n<title>139653303673968&#45;&gt;139653303675424</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M223.157,-227.7787C230.6994,-219.8173 241.1616,-208.7739 249.9742,-199.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"252.5519,-201.8399 256.8886,-192.1732 247.4702,-197.0256 252.5519,-201.8399\"/>\n</g>\n<!-- 139653303675984 -->\n<g id=\"node6\" class=\"node\">\n<title>139653303675984</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"259,-306 167,-306 167,-285 259,-285 259,-306\"/>\n<text text-anchor=\"middle\" x=\"213\" y=\"-292.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 139653303675984&#45;&gt;139653303673968 -->\n<g id=\"edge5\" class=\"edge\">\n<title>139653303675984&#45;&gt;139653303673968</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M213,-284.7787C213,-277.6134 213,-267.9517 213,-259.3097\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"216.5001,-259.1732 213,-249.1732 209.5001,-259.1732 216.5001,-259.1732\"/>\n</g>\n<!-- 139653303673576 -->\n<g id=\"node7\" class=\"node\">\n<title>139653303673576</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"214,-370 122,-370 122,-349 214,-349 214,-370\"/>\n<text text-anchor=\"middle\" x=\"168\" y=\"-356.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 139653303673576&#45;&gt;139653303675984 -->\n<g id=\"edge6\" class=\"edge\">\n<title>139653303673576&#45;&gt;139653303675984</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M175.4308,-348.9317C181.9705,-339.6309 191.6534,-325.8597 199.5509,-314.6276\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"202.519,-316.4914 205.4077,-306.2979 196.7928,-312.4651 202.519,-316.4914\"/>\n</g>\n<!-- 139653303674696 -->\n<g id=\"node8\" class=\"node\">\n<title>139653303674696</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"159.5,-434 68.5,-434 68.5,-413 159.5,-413 159.5,-434\"/>\n<text text-anchor=\"middle\" x=\"114\" y=\"-420.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 139653303674696&#45;&gt;139653303673576 -->\n<g id=\"edge7\" class=\"edge\">\n<title>139653303674696&#45;&gt;139653303673576</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M122.917,-412.9317C130.92,-403.4467 142.8457,-389.3125 152.4215,-377.9634\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"155.1155,-380.1979 158.8893,-370.2979 149.7655,-375.6838 155.1155,-380.1979\"/>\n</g>\n<!-- 139653303673072 -->\n<g id=\"node9\" class=\"node\">\n<title>139653303673072</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"54,-505 0,-505 0,-470 54,-470 54,-505\"/>\n<text text-anchor=\"middle\" x=\"27\" y=\"-477.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653303673072&#45;&gt;139653303674696 -->\n<g id=\"edge8\" class=\"edge\">\n<title>139653303673072&#45;&gt;139653303674696</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M51.2344,-469.6724C63.7765,-460.446 78.9963,-449.2498 91.3074,-440.1934\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"93.6967,-442.7808 99.6779,-434.0358 89.5487,-437.1422 93.6967,-442.7808\"/>\n</g>\n<!-- 139653303674472 -->\n<g id=\"node10\" class=\"node\">\n<title>139653303674472</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"165.5,-498 72.5,-498 72.5,-477 165.5,-477 165.5,-498\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-484.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MaxBackward2</text>\n</g>\n<!-- 139653303674472&#45;&gt;139653303674696 -->\n<g id=\"edge9\" class=\"edge\">\n<title>139653303674472&#45;&gt;139653303674696</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M118.1744,-476.9317C117.4837,-468.0913 116.4775,-455.2122 115.6261,-444.3135\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"119.1119,-443.9949 114.8436,-434.2979 112.1332,-444.5402 119.1119,-443.9949\"/>\n</g>\n<!-- 139653303676712 -->\n<g id=\"node11\" class=\"node\">\n<title>139653303676712</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"165,-562 73,-562 73,-541 165,-541 165,-562\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-548.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 139653303676712&#45;&gt;139653303674472 -->\n<g id=\"edge10\" class=\"edge\">\n<title>139653303676712&#45;&gt;139653303674472</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-540.9317C119,-532.0913 119,-519.2122 119,-508.3135\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-508.2979 119,-498.2979 115.5001,-508.2979 122.5001,-508.2979\"/>\n</g>\n<!-- 139653303674808 -->\n<g id=\"node12\" class=\"node\">\n<title>139653303674808</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"133.5,-626 42.5,-626 42.5,-605 133.5,-605 133.5,-626\"/>\n<text text-anchor=\"middle\" x=\"88\" y=\"-612.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 139653303674808&#45;&gt;139653303676712 -->\n<g id=\"edge11\" class=\"edge\">\n<title>139653303674808&#45;&gt;139653303676712</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M93.119,-604.9317C97.5349,-595.8151 104.0312,-582.4033 109.4105,-571.2977\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"112.5604,-572.8235 113.7698,-562.2979 106.2605,-569.772 112.5604,-572.8235\"/>\n</g>\n<!-- 139653303673184 -->\n<g id=\"node13\" class=\"node\">\n<title>139653303673184</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"115,-704 61,-704 61,-669 115,-669 115,-704\"/>\n<text text-anchor=\"middle\" x=\"88\" y=\"-676.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653303673184&#45;&gt;139653303674808 -->\n<g id=\"edge12\" class=\"edge\">\n<title>139653303673184&#45;&gt;139653303674808</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M88,-668.9494C88,-659.058 88,-646.6435 88,-636.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"91.5001,-636.0288 88,-626.0288 84.5001,-636.0289 91.5001,-636.0288\"/>\n</g>\n<!-- 139653303673128 -->\n<g id=\"node14\" class=\"node\">\n<title>139653303673128</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"261.5,-697 168.5,-697 168.5,-676 261.5,-676 261.5,-697\"/>\n<text text-anchor=\"middle\" x=\"215\" y=\"-683.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MaxBackward2</text>\n</g>\n<!-- 139653303673128&#45;&gt;139653303674808 -->\n<g id=\"edge13\" class=\"edge\">\n<title>139653303673128&#45;&gt;139653303674808</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M195.9868,-675.8706C174.7569,-664.0019 140.1949,-644.6798 115.9017,-631.0986\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"117.5797,-628.0269 107.1432,-626.2021 114.1638,-634.1369 117.5797,-628.0269\"/>\n</g>\n<!-- 139653303676376 -->\n<g id=\"node24\" class=\"node\">\n<title>139653303676376</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"387.5,-626 296.5,-626 296.5,-605 387.5,-605 387.5,-626\"/>\n<text text-anchor=\"middle\" x=\"342\" y=\"-612.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 139653303673128&#45;&gt;139653303676376 -->\n<g id=\"edge25\" class=\"edge\">\n<title>139653303673128&#45;&gt;139653303676376</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M234.0132,-675.8706C255.2431,-664.0019 289.8051,-644.6798 314.0983,-631.0986\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"315.8362,-634.1369 322.8568,-626.2021 312.4203,-628.0269 315.8362,-634.1369\"/>\n</g>\n<!-- 139653303674080 -->\n<g id=\"node15\" class=\"node\">\n<title>139653303674080</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"261,-761 169,-761 169,-740 261,-740 261,-761\"/>\n<text text-anchor=\"middle\" x=\"215\" y=\"-747.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 139653303674080&#45;&gt;139653303673128 -->\n<g id=\"edge14\" class=\"edge\">\n<title>139653303674080&#45;&gt;139653303673128</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M215,-739.9317C215,-731.0913 215,-718.2122 215,-707.3135\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"218.5001,-707.2979 215,-697.2979 211.5001,-707.2979 218.5001,-707.2979\"/>\n</g>\n<!-- 139653303675816 -->\n<g id=\"node16\" class=\"node\">\n<title>139653303675816</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"215.5,-825 124.5,-825 124.5,-804 215.5,-804 215.5,-825\"/>\n<text text-anchor=\"middle\" x=\"170\" y=\"-811.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 139653303675816&#45;&gt;139653303674080 -->\n<g id=\"edge15\" class=\"edge\">\n<title>139653303675816&#45;&gt;139653303674080</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M177.4308,-803.9317C183.9705,-794.6309 193.6534,-780.8597 201.5509,-769.6276\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"204.519,-771.4914 207.4077,-761.2979 198.7928,-767.4651 204.519,-771.4914\"/>\n</g>\n<!-- 139653303676040 -->\n<g id=\"node17\" class=\"node\">\n<title>139653303676040</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"197,-903 143,-903 143,-868 197,-868 197,-903\"/>\n<text text-anchor=\"middle\" x=\"170\" y=\"-875.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653303676040&#45;&gt;139653303675816 -->\n<g id=\"edge16\" class=\"edge\">\n<title>139653303676040&#45;&gt;139653303675816</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M170,-867.9494C170,-858.058 170,-845.6435 170,-835.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"173.5001,-835.0288 170,-825.0288 166.5001,-835.0289 173.5001,-835.0288\"/>\n</g>\n<!-- 139653303676824 -->\n<g id=\"node18\" class=\"node\">\n<title>139653303676824</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"288,-832 234,-832 234,-797 288,-797 288,-832\"/>\n<text text-anchor=\"middle\" x=\"261\" y=\"-804.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653303676824&#45;&gt;139653303674080 -->\n<g id=\"edge17\" class=\"edge\">\n<title>139653303676824&#45;&gt;139653303674080</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M248.1864,-796.6724C242.1095,-788.2176 234.8436,-778.1085 228.6618,-769.5078\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"231.3859,-767.3009 222.7075,-761.2234 225.7018,-771.3863 231.3859,-767.3009\"/>\n</g>\n<!-- 139653303674584 -->\n<g id=\"node19\" class=\"node\">\n<title>139653303674584</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"206,-633 152,-633 152,-598 206,-598 206,-633\"/>\n<text text-anchor=\"middle\" x=\"179\" y=\"-605.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653303674584&#45;&gt;139653303676712 -->\n<g id=\"edge18\" class=\"edge\">\n<title>139653303674584&#45;&gt;139653303676712</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M162.2867,-597.6724C154.1099,-588.9506 144.2829,-578.4684 136.0602,-569.6976\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"138.446,-567.125 129.0532,-562.2234 133.3393,-571.9126 138.446,-567.125\"/>\n</g>\n<!-- 139653303675648 -->\n<g id=\"node20\" class=\"node\">\n<title>139653303675648</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"268.5,-434 177.5,-434 177.5,-413 268.5,-413 268.5,-434\"/>\n<text text-anchor=\"middle\" x=\"223\" y=\"-420.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 139653303675648&#45;&gt;139653303673576 -->\n<g id=\"edge19\" class=\"edge\">\n<title>139653303675648&#45;&gt;139653303673576</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M213.9179,-412.9317C205.7667,-403.4467 193.6201,-389.3125 183.8669,-377.9634\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"186.4516,-375.6009 177.2795,-370.2979 181.1427,-380.1633 186.4516,-375.6009\"/>\n</g>\n<!-- 139653303672960 -->\n<g id=\"node21\" class=\"node\">\n<title>139653303672960</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"246,-505 192,-505 192,-470 246,-470 246,-505\"/>\n<text text-anchor=\"middle\" x=\"219\" y=\"-477.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653303672960&#45;&gt;139653303675648 -->\n<g id=\"edge20\" class=\"edge\">\n<title>139653303672960&#45;&gt;139653303675648</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M220.1142,-469.6724C220.6037,-461.8405 221.1819,-452.5893 221.6917,-444.4323\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"225.1991,-444.4223 222.3298,-434.2234 218.2127,-443.9856 225.1991,-444.4223\"/>\n</g>\n<!-- 139653303676768 -->\n<g id=\"node22\" class=\"node\">\n<title>139653303676768</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"357.5,-498 264.5,-498 264.5,-477 357.5,-477 357.5,-498\"/>\n<text text-anchor=\"middle\" x=\"311\" y=\"-484.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MaxBackward2</text>\n</g>\n<!-- 139653303676768&#45;&gt;139653303675648 -->\n<g id=\"edge21\" class=\"edge\">\n<title>139653303676768&#45;&gt;139653303675648</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M296.4686,-476.9317C282.7113,-466.9264 261.8406,-451.7477 245.8551,-440.1219\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"247.699,-437.1352 237.553,-434.084 243.5818,-442.7963 247.699,-437.1352\"/>\n</g>\n<!-- 139653303673744 -->\n<g id=\"node23\" class=\"node\">\n<title>139653303673744</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"357,-562 265,-562 265,-541 357,-541 357,-562\"/>\n<text text-anchor=\"middle\" x=\"311\" y=\"-548.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 139653303673744&#45;&gt;139653303676768 -->\n<g id=\"edge22\" class=\"edge\">\n<title>139653303673744&#45;&gt;139653303676768</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M311,-540.9317C311,-532.0913 311,-519.2122 311,-508.3135\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"314.5001,-508.2979 311,-498.2979 307.5001,-508.2979 314.5001,-508.2979\"/>\n</g>\n<!-- 139653303676376&#45;&gt;139653303673744 -->\n<g id=\"edge23\" class=\"edge\">\n<title>139653303676376&#45;&gt;139653303673744</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M336.881,-604.9317C332.4651,-595.8151 325.9688,-582.4033 320.5895,-571.2977\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.7395,-569.772 316.2302,-562.2979 317.4396,-572.8235 323.7395,-569.772\"/>\n</g>\n<!-- 139653289366360 -->\n<g id=\"node25\" class=\"node\">\n<title>139653289366360</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"369,-704 315,-704 315,-669 369,-669 369,-704\"/>\n<text text-anchor=\"middle\" x=\"342\" y=\"-676.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653289366360&#45;&gt;139653303676376 -->\n<g id=\"edge24\" class=\"edge\">\n<title>139653289366360&#45;&gt;139653303676376</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M342,-668.9494C342,-659.058 342,-646.6435 342,-636.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"345.5001,-636.0288 342,-626.0288 338.5001,-636.0289 345.5001,-636.0288\"/>\n</g>\n<!-- 139653289369440 -->\n<g id=\"node26\" class=\"node\">\n<title>139653289369440</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"278,-633 224,-633 224,-598 278,-598 278,-633\"/>\n<text text-anchor=\"middle\" x=\"251\" y=\"-605.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653289369440&#45;&gt;139653303673744 -->\n<g id=\"edge26\" class=\"edge\">\n<title>139653289369440&#45;&gt;139653303673744</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M267.7133,-597.6724C275.8901,-588.9506 285.7171,-578.4684 293.9398,-569.6976\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"296.6607,-571.9126 300.9468,-562.2234 291.554,-567.125 296.6607,-571.9126\"/>\n</g>\n<!-- 139653303675592 -->\n<g id=\"node27\" class=\"node\">\n<title>139653303675592</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"286,-377 232,-377 232,-342 286,-342 286,-377\"/>\n<text text-anchor=\"middle\" x=\"259\" y=\"-349.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 139653303675592&#45;&gt;139653303675984 -->\n<g id=\"edge27\" class=\"edge\">\n<title>139653303675592&#45;&gt;139653303675984</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M246.1864,-341.6724C240.1095,-333.2176 232.8436,-323.1085 226.6618,-314.5078\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"229.3859,-312.3009 220.7075,-306.2234 223.7018,-316.3863 229.3859,-312.3009\"/>\n</g>\n<!-- 139653303675424&#45;&gt;139653303675256 -->\n<g id=\"edge28\" class=\"edge\">\n<title>139653303675424&#45;&gt;139653303675256</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M256.843,-170.7787C249.3006,-162.8173 238.8384,-151.7739 230.0258,-142.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"232.5298,-140.0256 223.1114,-135.1732 227.4481,-144.8399 232.5298,-140.0256\"/>\n</g>\n</g>\n</svg>\n"
},
"metadata": {
"tags": []
},
"execution_count": 37
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "IWshmJYSHoqY",
"colab_type": "text"
},
"source": [
"#Working with MNIST\n",
"<a href=\"https://www.google.com/imgres?imgurl=https%3A%2F%2Fmiro.medium.com%2Fproxy%2F0*At0wJRULTXvyA3EK.png&imgrefurl=https%3A%2F%2Fmedium.com%2F%40ashok.tankala%2Fbuild-the-mnist-model-with-your-own-handwritten-digits-using-tensorflow-keras-and-python-f8ec9f871fd3&docid=AyST2t5JJTBqhM&tbnid=iBYwoLeH0wrdOM%3A&vet=10ahUKEwjOu9ie1LfkAhUb8HMBHX8iDoUQMwhnKAYwBg..i&w=495&h=494&bih=625&biw=1366&q=mnist%20images&ved=0ahUKEwjOu9ie1LfkAhUb8HMBHX8iDoUQMwhnKAYwBg&iact=mrc&uact=8\">What is MNIST?</a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VCu0_ZXsINOC",
"colab_type": "text"
},
"source": [
"##Building the model"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5A2uOstaIicJ",
"colab_type": "text"
},
"source": [
"### Adding PyTorch to this notebook"
]
},
{
"cell_type": "code",
"metadata": {
"id": "L0xRQwfRIk0h",
"colab_type": "code",
"colab": {}
},
"source": [
"# make sure to enable GPU acceleration! == Done\n",
"device = 'cuda'"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "mxK5rACHIo8g",
"colab_type": "code",
"outputId": "8d1ee2bf-380d-422d-858b-5a7fd1fdddd0",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 119
}
},
"source": [
"!pip3 install torch torchvision"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Requirement already satisfied: torch in /usr/local/lib/python3.6/dist-packages (1.1.0)\n",
"Requirement already satisfied: torchvision in /usr/local/lib/python3.6/dist-packages (0.3.0)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from torch) (1.16.4)\n",
"Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from torchvision) (1.12.0)\n",
"Requirement already satisfied: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision) (4.3.0)\n",
"Requirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow>=4.1.1->torchvision) (0.46)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "MmY41oc0Ivmq",
"colab_type": "text"
},
"source": [
"###Importing All Needed Files"
]
},
{
"cell_type": "code",
"metadata": {
"id": "pCtVzZVDIyTw",
"colab_type": "code",
"colab": {}
},
"source": [
"#Import Libraries\n",
"\n",
"from __future__ import print_function\n",
"import argparse\n",
"import torch\n",
"import torch.nn as nn\n",
"import torch.nn.functional as F\n",
"import torch.optim as optim\n",
"from torchvision import datasets, transforms\n",
"from torch.autograd import Variable"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "D5j8vq-JI2Cy",
"colab_type": "text"
},
"source": [
"###All Paramteres for training the model"
]
},
{
"cell_type": "code",
"metadata": {
"id": "D22GMTsrI4bJ",
"colab_type": "code",
"colab": {}
},
"source": [
"args={}\n",
"kwargs={}\n",
"args['batch_size']=1000\n",
"args['test_batch_size']=1000\n",
"args['epochs']=10 #The number of Epochs is the number of times you go through the full dataset. \n",
"args['lr']=0.01 #Learning rate is how fast it will decend. \n",
"args['momentum']=0.5 #SGD momentum (default: 0.5) Momentum is a moving average of our gradients (helps to keep direction).\n",
"\n",
"args['seed']=1 #random seed\n",
"args['log_interval']=10\n",
"args['cuda']=True"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "JwZa4vnII-uJ",
"colab_type": "text"
},
"source": [
"###Downloading and pre-processing data"
]
},
{
"cell_type": "code",
"metadata": {
"id": "M5BAi-imJBvh",
"colab_type": "code",
"colab": {}
},
"source": [
"#load the data\n",
"train_loader = torch.utils.data.DataLoader(\n",
" datasets.MNIST('../data', train=True, download=True,\n",
" transform=transforms.Compose([\n",
" transforms.ToTensor(),\n",
" transforms.Normalize((0.1307,), (0.3081,))\n",
" ])),\n",
" batch_size=args['batch_size'], shuffle=True, **kwargs)\n",
"test_loader = torch.utils.data.DataLoader(\n",
" datasets.MNIST('../data', train=False, transform=transforms.Compose([\n",
" transforms.ToTensor(),\n",
" transforms.Normalize((0.1307,), (0.3081,))\n",
" ])),\n",
" batch_size=args['test_batch_size'], shuffle=True, **kwargs)\n",
"\n",
"data = datasets.MNIST('../data', train=False, transform=transforms.Compose([\n",
" transforms.ToTensor(),\n",
" transforms.Normalize((0.1307,), (0.3081,))\n",
" ]))"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "7du6h5AOJpMi",
"colab_type": "text"
},
"source": [
"###Defining the model\n",
"<a href=\"https://www.google.com/imgres?imgurl=https%3A%2F%2Fmiro.medium.com%2Fmax%2F1632%2F1*EoxGktMmCkZXy37ydosBwQ.png&imgrefurl=https%3A%2F%2Fmedium.com%2F%40ZhengLungWu%2Fsoftmax-v-s-logsoftmax-7ce2323d32d3&docid=XhmlZfvPvHW9xM&tbnid=lgA7x9epgsz5oM%3A&vet=10ahUKEwjX3eSg1bfkAhXqILcAHepXCJIQMwhVKAwwDA..i&w=816&h=1030&bih=625&biw=1366&q=log%20softmax&ved=0ahUKEwjX3eSg1bfkAhXqILcAHepXCJIQMwhVKAwwDA&iact=mrc&uact=8\">What is log-softmax</a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "EI-w5opDJtyg",
"colab_type": "code",
"colab": {}
},
"source": [
"class Net(nn.Module):\n",
" #This defines the structure of the NN.\n",
" def __init__(self):\n",
" super(Net, self).__init__()\n",
" self.fc1 = nn.Linear(784, 289)\n",
" self.fc2 = nn.Linear(289, 49)\n",
" self.fc3 = nn.Linear(49, 10)\n",
"\n",
" def forward(self, x):\n",
" self.x = x.view(-1,784)\n",
" #Fully Connected Layer/Activation\n",
" self.after_fc1 = self.fc1(self.x)\n",
" self.after_relu1 = F.relu(self.after_fc1)\n",
" self.after_dropout1 = F.dropout(self.after_relu1, training=self.training)\n",
" #Fully Connected Layer/Activation\n",
" self.after_fc2 = self.fc2(self.after_dropout1)\n",
" self.after_relu2 = F.relu(self.after_fc2)\n",
" self.after_dropout2 = F.dropout(self.after_relu2, training=self.training)\n",
" self.after_fc3 = self.fc3(self.after_dropout2)\n",
" #Softmax gets probabilities. \n",
" return F.log_softmax(self.after_fc3, dim=1)\n"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "JTkb7oaqJH_Y",
"colab_type": "text"
},
"source": [
"###Training and Testing the Model\n",
"<a href=\"https://discuss.pytorch.org/t/pytorch-formula-for-nll-loss/38121\">What is NLL_Loss?</a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "dQMxtNW1JHGo",
"colab_type": "code",
"outputId": "93781f7d-ce45-4fe4-ffc1-4ac09d61dc52",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"def train(epoch):\n",
" model.train()\n",
" for batch_idx, (data, target) in enumerate(train_loader):\n",
" if args['cuda']:\n",
" data, target = data.cuda(), target.cuda()\n",
" #Variables in Pytorch are differenciable. \n",
" data, target = Variable(data), Variable(target)\n",
" #This will zero out the gradients for this batch. \n",
" optimizer.zero_grad()\n",
" output = model(data)\n",
" # Calculate the loss The negative log likelihood loss. It is useful to train a classification problem with C classes.\n",
" loss = F.nll_loss(output, target)\n",
" # print(loss)\n",
" #dloss/dx for every Variable \n",
" loss.backward()\n",
" #to do a one-step update on our parameter.\n",
" optimizer.step()\n",
" #Print out the loss periodically. \n",
" if batch_idx % args['log_interval'] == 0:\n",
" print('Train Epoch: {} [{}/{} ({:.0f}%)]\\tLoss: {:.6f}'.format(\n",
" epoch, batch_idx * len(data), len(train_loader.dataset),\n",
" 100. * batch_idx / len(train_loader), loss.data))\n",
"\n",
"def test():\n",
" model.eval()\n",
" test_loss = 0\n",
" correct = 0\n",
" for data, target in test_loader:\n",
" if args['cuda']:\n",
" data, target = data.cuda(), target.cuda()\n",
" data, target = Variable(data, volatile=True), Variable(target)\n",
" output = model(data)\n",
" test_loss += F.nll_loss(output, target, size_average=False).data # sum up batch loss\n",
" pred = output.data.max(1, keepdim=True)[1] # get the index of the max log-probability\n",
" correct += pred.eq(target.data.view_as(pred)).long().cpu().sum()\n",
"\n",
" test_loss /= len(test_loader.dataset)\n",
" print('\\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\\n'.format(\n",
" test_loss, correct, len(test_loader.dataset),\n",
" 100. * correct / len(test_loader.dataset)))\n",
" \n",
"model = Net()\n",
"if args['cuda']:\n",
" model.cuda()\n",
"\n",
"optimizer = optim.SGD(model.parameters(), lr=args['lr'], momentum=args['momentum'])\n",
"\n",
"for epoch in range(1, args['epochs'] + 1):\n",
" train(epoch)\n",
" test()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Train Epoch: 1 [0/60000 (0%)]\tLoss: 2.314882\n",
"Train Epoch: 1 [10000/60000 (17%)]\tLoss: 2.281423\n",
"Train Epoch: 1 [20000/60000 (33%)]\tLoss: 2.219229\n",
"Train Epoch: 1 [30000/60000 (50%)]\tLoss: 2.168628\n",
"Train Epoch: 1 [40000/60000 (67%)]\tLoss: 2.089503\n",
"Train Epoch: 1 [50000/60000 (83%)]\tLoss: 2.023945\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:31: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.\n",
"/usr/local/lib/python3.6/dist-packages/torch/nn/_reduction.py:46: UserWarning: size_average and reduce args will be deprecated, please use reduction='sum' instead.\n",
" warnings.warn(warning.format(ret))\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"\n",
"Test set: Average loss: 1.8378, Accuracy: 6124/10000 (61%)\n",
"\n",
"Train Epoch: 2 [0/60000 (0%)]\tLoss: 1.930157\n",
"Train Epoch: 2 [10000/60000 (17%)]\tLoss: 1.838171\n",
"Train Epoch: 2 [20000/60000 (33%)]\tLoss: 1.748784\n",
"Train Epoch: 2 [30000/60000 (50%)]\tLoss: 1.666298\n",
"Train Epoch: 2 [40000/60000 (67%)]\tLoss: 1.553689\n",
"Train Epoch: 2 [50000/60000 (83%)]\tLoss: 1.463202\n",
"\n",
"Test set: Average loss: 1.1853, Accuracy: 7541/10000 (75%)\n",
"\n",
"Train Epoch: 3 [0/60000 (0%)]\tLoss: 1.376420\n",
"Train Epoch: 3 [10000/60000 (17%)]\tLoss: 1.321849\n",
"Train Epoch: 3 [20000/60000 (33%)]\tLoss: 1.287505\n",
"Train Epoch: 3 [30000/60000 (50%)]\tLoss: 1.233682\n",
"Train Epoch: 3 [40000/60000 (67%)]\tLoss: 1.217606\n",
"Train Epoch: 3 [50000/60000 (83%)]\tLoss: 1.185513\n",
"\n",
"Test set: Average loss: 0.8309, Accuracy: 8165/10000 (81%)\n",
"\n",
"Train Epoch: 4 [0/60000 (0%)]\tLoss: 1.166522\n",
"Train Epoch: 4 [10000/60000 (17%)]\tLoss: 1.078370\n",
"Train Epoch: 4 [20000/60000 (33%)]\tLoss: 1.049931\n",
"Train Epoch: 4 [30000/60000 (50%)]\tLoss: 1.055303\n",
"Train Epoch: 4 [40000/60000 (67%)]\tLoss: 0.980762\n",
"Train Epoch: 4 [50000/60000 (83%)]\tLoss: 0.968709\n",
"\n",
"Test set: Average loss: 0.6595, Accuracy: 8435/10000 (84%)\n",
"\n",
"Train Epoch: 5 [0/60000 (0%)]\tLoss: 0.973197\n",
"Train Epoch: 5 [10000/60000 (17%)]\tLoss: 0.936406\n",
"Train Epoch: 5 [20000/60000 (33%)]\tLoss: 0.935387\n",
"Train Epoch: 5 [30000/60000 (50%)]\tLoss: 0.912432\n",
"Train Epoch: 5 [40000/60000 (67%)]\tLoss: 0.906008\n",
"Train Epoch: 5 [50000/60000 (83%)]\tLoss: 0.866346\n",
"\n",
"Test set: Average loss: 0.5625, Accuracy: 8622/10000 (86%)\n",
"\n",
"Train Epoch: 6 [0/60000 (0%)]\tLoss: 0.861802\n",
"Train Epoch: 6 [10000/60000 (17%)]\tLoss: 0.849266\n",
"Train Epoch: 6 [20000/60000 (33%)]\tLoss: 0.839803\n",
"Train Epoch: 6 [30000/60000 (50%)]\tLoss: 0.816650\n",
"Train Epoch: 6 [40000/60000 (67%)]\tLoss: 0.829828\n",
"Train Epoch: 6 [50000/60000 (83%)]\tLoss: 0.756070\n",
"\n",
"Test set: Average loss: 0.4990, Accuracy: 8742/10000 (87%)\n",
"\n",
"Train Epoch: 7 [0/60000 (0%)]\tLoss: 0.741160\n",
"Train Epoch: 7 [10000/60000 (17%)]\tLoss: 0.828327\n",
"Train Epoch: 7 [20000/60000 (33%)]\tLoss: 0.736788\n",
"Train Epoch: 7 [30000/60000 (50%)]\tLoss: 0.695436\n",
"Train Epoch: 7 [40000/60000 (67%)]\tLoss: 0.739649\n",
"Train Epoch: 7 [50000/60000 (83%)]\tLoss: 0.765690\n",
"\n",
"Test set: Average loss: 0.4544, Accuracy: 8824/10000 (88%)\n",
"\n",
"Train Epoch: 8 [0/60000 (0%)]\tLoss: 0.754651\n",
"Train Epoch: 8 [10000/60000 (17%)]\tLoss: 0.709727\n",
"Train Epoch: 8 [20000/60000 (33%)]\tLoss: 0.715423\n",
"Train Epoch: 8 [30000/60000 (50%)]\tLoss: 0.713376\n",
"Train Epoch: 8 [40000/60000 (67%)]\tLoss: 0.729383\n",
"Train Epoch: 8 [50000/60000 (83%)]\tLoss: 0.690215\n",
"\n",
"Test set: Average loss: 0.4226, Accuracy: 8897/10000 (88%)\n",
"\n",
"Train Epoch: 9 [0/60000 (0%)]\tLoss: 0.647634\n",
"Train Epoch: 9 [10000/60000 (17%)]\tLoss: 0.674041\n",
"Train Epoch: 9 [20000/60000 (33%)]\tLoss: 0.679112\n",
"Train Epoch: 9 [30000/60000 (50%)]\tLoss: 0.636687\n",
"Train Epoch: 9 [40000/60000 (67%)]\tLoss: 0.729225\n",
"Train Epoch: 9 [50000/60000 (83%)]\tLoss: 0.607037\n",
"\n",
"Test set: Average loss: 0.3952, Accuracy: 8958/10000 (89%)\n",
"\n",
"Train Epoch: 10 [0/60000 (0%)]\tLoss: 0.702054\n",
"Train Epoch: 10 [10000/60000 (17%)]\tLoss: 0.637306\n",
"Train Epoch: 10 [20000/60000 (33%)]\tLoss: 0.666458\n",
"Train Epoch: 10 [30000/60000 (50%)]\tLoss: 0.703831\n",
"Train Epoch: 10 [40000/60000 (67%)]\tLoss: 0.613293\n",
"Train Epoch: 10 [50000/60000 (83%)]\tLoss: 0.622987\n",
"\n",
"Test set: Average loss: 0.3744, Accuracy: 8993/10000 (89%)\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "80DQfhLcJbxR",
"colab_type": "text"
},
"source": [
"###Testing Using Custom Examples"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Q45XrdPdJeOB",
"colab_type": "code",
"outputId": "067b4285-4ff5-45b9-f953-d2d5891fb267",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 349
}
},
"source": [
"%matplotlib inline\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"model.eval()\n",
"example = data.data[25]\n",
"\n",
"if args['cuda']:\n",
" model.cuda()\n",
" example = example.cuda()\n",
"\n",
"example = Variable(example,volatile=True).float()\n",
"print(model(example).data)\n",
"\n",
"plt.matshow(data.data[25])\n",
"plt.colorbar()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"tensor([[ 0.0000, -1277.6233, -598.4047, -851.6285, -993.5545, -534.4352,\n",
" -711.6905, -767.9265, -700.6095, -986.3105]], device='cuda:0')\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:12: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.\n",
" if sys.path[0] == '':\n"
],
"name": "stderr"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f0390b455c0>"
]
},
"metadata": {
"tags": []
},
"execution_count": 45
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "6vW8ppMX_Cjy",
"colab_type": "code",
"outputId": "9917c063-752a-4459-e7d5-0380d54b3292",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 704
}
},
"source": [
"import torch\n",
"from torchviz import make_dot, make_dot_from_trace\n",
"\n",
"make_dot(model(example))"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<graphviz.dot.Digraph at 0x7f0395207898>"
],
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n -->\n<!-- Title: %3 Pages: 1 -->\n<svg width=\"266pt\" height=\"512pt\"\n viewBox=\"0.00 0.00 265.50 512.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 508)\">\n<title>%3</title>\n<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-508 261.5,-508 261.5,4 -4,4\"/>\n<!-- 139653363562704 -->\n<g id=\"node1\" class=\"node\">\n<title>139653363562704</title>\n<polygon fill=\"#caff70\" stroke=\"#000000\" points=\"181.5,-21 56.5,-21 56.5,0 181.5,0 181.5,-21\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-7.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">LogSoftmaxBackward</text>\n</g>\n<!-- 139653363561248 -->\n<g id=\"node2\" class=\"node\">\n<title>139653363561248</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"171,-78 67,-78 67,-57 171,-57 171,-78\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-64.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddmmBackward</text>\n</g>\n<!-- 139653363561248&#45;&gt;139653363562704 -->\n<g id=\"edge1\" class=\"edge\">\n<title>139653363561248&#45;&gt;139653363562704</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-56.7787C119,-49.6134 119,-39.9517 119,-31.3097\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-31.1732 119,-21.1732 115.5001,-31.1732 122.5001,-31.1732\"/>\n</g>\n<!-- 139653289367704 -->\n<g id=\"node3\" class=\"node\">\n<title>139653289367704</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"54,-149 0,-149 0,-114 54,-114 54,-149\"/>\n<text text-anchor=\"middle\" x=\"27\" y=\"-121.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (10)</text>\n</g>\n<!-- 139653289367704&#45;&gt;139653363561248 -->\n<g id=\"edge2\" class=\"edge\">\n<title>139653289367704&#45;&gt;139653363561248</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M52.6271,-113.6724C66.0188,-104.3565 82.2974,-93.0322 95.3816,-83.9302\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"97.6445,-86.6197 103.8548,-78.0358 93.647,-80.8733 97.6445,-86.6197\"/>\n</g>\n<!-- 139653289368992 -->\n<g id=\"node4\" class=\"node\">\n<title>139653289368992</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"166,-142 72,-142 72,-121 166,-121 166,-142\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-128.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">ReluBackward0</text>\n</g>\n<!-- 139653289368992&#45;&gt;139653363561248 -->\n<g id=\"edge3\" class=\"edge\">\n<title>139653289368992&#45;&gt;139653363561248</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-120.9317C119,-112.0913 119,-99.2122 119,-88.3135\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-88.2979 119,-78.2979 115.5001,-88.2979 122.5001,-88.2979\"/>\n</g>\n<!-- 139653289368768 -->\n<g id=\"node5\" class=\"node\">\n<title>139653289368768</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"171,-213 67,-213 67,-192 171,-192 171,-213\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-199.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddmmBackward</text>\n</g>\n<!-- 139653289368768&#45;&gt;139653289368992 -->\n<g id=\"edge4\" class=\"edge\">\n<title>139653289368768&#45;&gt;139653289368992</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-191.7166C119,-181.3953 119,-165.5401 119,-152.6896\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-152.3848 119,-142.3849 115.5001,-152.3849 122.5001,-152.3848\"/>\n</g>\n<!-- 139653289367200 -->\n<g id=\"node6\" class=\"node\">\n<title>139653289367200</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"54,-291 0,-291 0,-256 54,-256 54,-291\"/>\n<text text-anchor=\"middle\" x=\"27\" y=\"-263.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (49)</text>\n</g>\n<!-- 139653289367200&#45;&gt;139653289368768 -->\n<g id=\"edge5\" class=\"edge\">\n<title>139653289367200&#45;&gt;139653289368768</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M49.7416,-255.9494C64.1949,-244.7952 82.8055,-230.4327 97.0944,-219.4054\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"99.5787,-221.9093 105.357,-213.0288 95.302,-216.3676 99.5787,-221.9093\"/>\n</g>\n<!-- 139653289366024 -->\n<g id=\"node7\" class=\"node\">\n<title>139653289366024</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"166,-284 72,-284 72,-263 166,-263 166,-284\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-270.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">ReluBackward0</text>\n</g>\n<!-- 139653289366024&#45;&gt;139653289368768 -->\n<g id=\"edge6\" class=\"edge\">\n<title>139653289366024&#45;&gt;139653289368768</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-262.7166C119,-252.3953 119,-236.5401 119,-223.6896\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-223.3848 119,-213.3849 115.5001,-223.3849 122.5001,-223.3848\"/>\n</g>\n<!-- 139653289367816 -->\n<g id=\"node8\" class=\"node\">\n<title>139653289367816</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"171,-355 67,-355 67,-334 171,-334 171,-355\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-341.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddmmBackward</text>\n</g>\n<!-- 139653289367816&#45;&gt;139653289366024 -->\n<g id=\"edge7\" class=\"edge\">\n<title>139653289367816&#45;&gt;139653289366024</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-333.7166C119,-323.3953 119,-307.5401 119,-294.6896\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-294.3848 119,-284.3849 115.5001,-294.3849 122.5001,-294.3848\"/>\n</g>\n<!-- 139653289365744 -->\n<g id=\"node9\" class=\"node\">\n<title>139653289365744</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"105,-433 51,-433 51,-398 105,-398 105,-433\"/>\n<text text-anchor=\"middle\" x=\"78\" y=\"-405.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (289)</text>\n</g>\n<!-- 139653289365744&#45;&gt;139653289367816 -->\n<g id=\"edge8\" class=\"edge\">\n<title>139653289365744&#45;&gt;139653289367816</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M88.1348,-397.9494C94.0899,-387.6371 101.6285,-374.5824 107.7646,-363.9563\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"110.9501,-365.439 112.92,-355.0288 104.8882,-361.9384 110.9501,-365.439\"/>\n</g>\n<!-- 139653289369496 -->\n<g id=\"node10\" class=\"node\">\n<title>139653289369496</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"196.5,-426 123.5,-426 123.5,-405 196.5,-405 196.5,-426\"/>\n<text text-anchor=\"middle\" x=\"160\" y=\"-412.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">TBackward</text>\n</g>\n<!-- 139653289369496&#45;&gt;139653289367816 -->\n<g id=\"edge9\" class=\"edge\">\n<title>139653289369496&#45;&gt;139653289367816</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M153.773,-404.7166C147.5719,-393.9782 137.9119,-377.2498 130.3456,-364.1472\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"133.3174,-362.2944 125.2856,-355.3849 127.2555,-365.795 133.3174,-362.2944\"/>\n</g>\n<!-- 139653289368656 -->\n<g id=\"node11\" class=\"node\">\n<title>139653289368656</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"194.5,-504 125.5,-504 125.5,-469 194.5,-469 194.5,-504\"/>\n<text text-anchor=\"middle\" x=\"160\" y=\"-476.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (289, 784)</text>\n</g>\n<!-- 139653289368656&#45;&gt;139653289369496 -->\n<g id=\"edge10\" class=\"edge\">\n<title>139653289368656&#45;&gt;139653289369496</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M160,-468.9494C160,-459.058 160,-446.6435 160,-436.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"163.5001,-436.0288 160,-426.0288 156.5001,-436.0289 163.5001,-436.0288\"/>\n</g>\n<!-- 139653289368152 -->\n<g id=\"node12\" class=\"node\">\n<title>139653289368152</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"257.5,-284 184.5,-284 184.5,-263 257.5,-263 257.5,-284\"/>\n<text text-anchor=\"middle\" x=\"221\" y=\"-270.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">TBackward</text>\n</g>\n<!-- 139653289368152&#45;&gt;139653289368768 -->\n<g id=\"edge11\" class=\"edge\">\n<title>139653289368152&#45;&gt;139653289368768</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M205.5084,-262.7166C188.7865,-251.0769 161.9541,-232.3994 142.604,-218.9303\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"144.5102,-215.9927 134.3032,-213.1522 140.511,-221.7379 144.5102,-215.9927\"/>\n</g>\n<!-- 139653289368376 -->\n<g id=\"node13\" class=\"node\">\n<title>139653289368376</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"252.5,-362 189.5,-362 189.5,-327 252.5,-327 252.5,-362\"/>\n<text text-anchor=\"middle\" x=\"221\" y=\"-334.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (49, 289)</text>\n</g>\n<!-- 139653289368376&#45;&gt;139653289368152 -->\n<g id=\"edge12\" class=\"edge\">\n<title>139653289368376&#45;&gt;139653289368152</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M221,-326.9494C221,-317.058 221,-304.6435 221,-294.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"224.5001,-294.0288 221,-284.0288 217.5001,-294.0289 224.5001,-294.0288\"/>\n</g>\n<!-- 139653289369048 -->\n<g id=\"node14\" class=\"node\">\n<title>139653289369048</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"257.5,-142 184.5,-142 184.5,-121 257.5,-121 257.5,-142\"/>\n<text text-anchor=\"middle\" x=\"221\" y=\"-128.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">TBackward</text>\n</g>\n<!-- 139653289369048&#45;&gt;139653363561248 -->\n<g id=\"edge13\" class=\"edge\">\n<title>139653289369048&#45;&gt;139653363561248</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M204.1568,-120.9317C187.9155,-110.7411 163.121,-95.1838 144.4676,-83.4797\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.1991,-80.4342 135.8682,-78.084 142.4787,-86.3637 146.1991,-80.4342\"/>\n</g>\n<!-- 139653289369104 -->\n<g id=\"node15\" class=\"node\">\n<title>139653289369104</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"249.5,-220 192.5,-220 192.5,-185 249.5,-185 249.5,-220\"/>\n<text text-anchor=\"middle\" x=\"221\" y=\"-192.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (10, 49)</text>\n</g>\n<!-- 139653289369104&#45;&gt;139653289369048 -->\n<g id=\"edge14\" class=\"edge\">\n<title>139653289369104&#45;&gt;139653289369048</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M221,-184.9494C221,-175.058 221,-162.6435 221,-152.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"224.5001,-152.0288 221,-142.0288 217.5001,-152.0289 224.5001,-152.0288\"/>\n</g>\n</g>\n</svg>\n"
},
"metadata": {
"tags": []
},
"execution_count": 46
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hqXFYdehJ7wY",
"colab_type": "text"
},
"source": [
"##Visualizing all layers"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "66WtTD5DKAT5",
"colab_type": "text"
},
"source": [
"###Extracting Layers"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Zsmd9uv1J_fY",
"colab_type": "code",
"colab": {}
},
"source": [
"import numpy as np\n",
"from copy import deepcopy\n",
"all_parameters=np.array(deepcopy(list(model.parameters())))"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "m0IvhEwCKNJp",
"colab_type": "code",
"outputId": "defbc468-35f0-4f45-89a1-18f1e9ed1721",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 119
}
},
"source": [
"# Printing Paramter Names\n",
"for i in model.named_parameters():\n",
" print(i[0])"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"fc1.weight\n",
"fc1.bias\n",
"fc2.weight\n",
"fc2.bias\n",
"fc3.weight\n",
"fc3.bias\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "1SxbfX8RKSCa",
"colab_type": "code",
"colab": {}
},
"source": [
"for i in range(len(all_parameters)):\n",
" all_parameters[i] = all_parameters[i].cpu().detach().numpy()"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "IoCt4fxKKVTq",
"colab_type": "code",
"outputId": "715bd0ca-5438-4044-c01d-ef927e4dda1f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 255
}
},
"source": [
"layer = 0\n",
"print(all_parameters[layer].shape,all_parameters[layer].size)\n",
"all_parameters[layer]"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"(289, 784) 226576\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[-2.77031474e-02, -2.07259576e-03, -3.44184488e-02, ...,\n",
" 4.01188014e-03, -3.14220935e-02, -2.62372009e-02],\n",
" [-1.81675870e-02, -2.13899836e-02, 1.62153356e-02, ...,\n",
" 2.51770876e-02, -2.68904455e-02, -2.86921542e-02],\n",
" [ 3.42478193e-02, 2.78714951e-02, -1.48212407e-02, ...,\n",
" 3.32591049e-02, 3.12971696e-02, -4.96198470e-03],\n",
" ...,\n",
" [ 1.52573045e-02, 2.74359733e-02, 1.28074428e-02, ...,\n",
" -6.87234849e-03, -1.58237107e-02, 2.15470456e-02],\n",
" [-1.22925490e-02, -3.48301120e-02, -9.37303586e-04, ...,\n",
" -2.23511644e-03, 1.23187024e-02, -2.91162506e-02],\n",
" [ 1.81825238e-03, -5.27930133e-05, 1.50682461e-02, ...,\n",
" 1.92822656e-03, 3.09269819e-02, 3.51569289e-03]], dtype=float32)"
]
},
"metadata": {
"tags": []
},
"execution_count": 50
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "djMhd7mcKeuo",
"colab_type": "text"
},
"source": [
"###Plotting the weights"
]
},
{
"cell_type": "code",
"metadata": {
"id": "-CBwh-9FKiMg",
"colab_type": "code",
"outputId": "537b5b4f-5da0-4cb4-d67b-5a33136ed9f1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 799
}
},
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"layer =int(input('Enter the Layer: '))*2\n",
"Neuron_number = int(input('Enter the neuron number: '))\n",
"\n",
"length = int(all_parameters[layer][Neuron_number].size**0.5)\n",
"plt.matshow(all_parameters[layer][Neuron_number].reshape(length,length))\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"binwidth = 0.01\n",
"\n",
"plt.hist(all_parameters[layer+1])\n",
"plt.show()\n",
"\n",
"plt.hist(all_parameters[layer][Neuron_number])\n",
"plt.show()\n",
"\n"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Enter the Layer: 1\n",
"Enter the neuron number: 1\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAARAAAAD0CAYAAABTqHk1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHk5JREFUeJzt3XmcHXWV9/HPl+7se8hCSAJhSYKs\ngmHYFNknCoLPM8wYVGQd1FFE0VEY5iU+gD6IDKAPAxohIssDIosyooSIAo5iICwBwhKWhNCQkIRA\nIIRs3Wf+qOp40+u5VXVvcm+f9+tVr6Rv/3Kqbnf6dNWvfnWOzIwQQshiq819ACGE2hUJJISQWSSQ\nEEJmkUBCCJlFAgkhZBYJJISQWSSQEEJmkUBCCJlFAgkhZNa4uQ8ghHr394cOsDdXNLvGPvrk2plm\nNrXCh1SYSCAhVNjyFc3MnjnONbbXmJdGVPhwChUJJISKM5qtZXMfREVEAgmhwgxooT4fWo0EEkIV\ntBBnICGEDAyjuU7LZmzW27iSpkp6XtKLks4pIN54SX+U9IykeZLOKuI409gNkh6X9JuC4g2VdJuk\n5yQ9K+mAAmJ+LX3fT0u6WVLfDDFmSFoq6emS14ZLmiXphfTPYQXE/EH63p+UdKekoXljlnzu65JM\nUlkTkp3FlHRmeqzzJF1STsxWLZhrqzWbLYFIagD+E/gYsCtwgqRdc4bdAHzdzHYF9ge+VEDMVmcB\nzxYUC+CHwD1mtguwV97YksYCXwGmmNnuQAMwLUOo64C2txHPAe4zs4nAfenHeWPOAnY3sz2B+cC5\nBcRE0njgKGBRmfE6jCnpUOA4YC8z2w24tNygBjRjrq3WbM4zkL8DXjSzl81sHXALyTcqMzNbbGaP\npX9/l+SHcmzeA5U0DjgauCZvrDTeEOBg4FoAM1tnZm8XELoR6CepEegPvF5uADN7EFjR5uXjgJ+n\nf/858Mm8Mc3sXjPbkH74V8B3n7Pr4wS4HPgmlP/T2EnMLwIXm9nadMzSsuMC663FtdWazZlAxgKv\nlnzcRAE/7K0kTQD2BmYXEO4Kkv+URX2HdwCWAT9LL4uukTQgT0Aze43kt+MiYDGw0szuzX+oAIw2\ns8Xp35cAowuK2+pU4Hd5g0g6DnjNzObmP6SNJgEfkTRb0gOS9s0SpMW51Zq6XMouaSBwO/BVM3sn\nZ6xjgKVm9mghB5doBPYBrjazvYH3KP+yYBPpvMRxJMlpW2CApM/mPdC2LCmiW9i5tqTzSC49b8oZ\npz/wb8C3iziuEo3AcJJL4n8FbpWkcgKY8/IlLmHK8xowvuTjcelruUjqRZI8bjKzO/LGAw4CjpW0\nkOQy6zBJN+aM2QQ0mVnr2dFtJAkljyOABWa2zMzWA3cAB+aM2eoNSWMA0j/LPo3viKSTgWOAz1j+\n6t47kSTPuen3ahzwmKRtcsZtAu6wxMMkJwrlrRY1aHZutWZzJpBHgImSdpDUm2TC7648AdPfDNcC\nz5rZZQUcI2Z2rpmNM7MJJMf4BzPL9ZvdzJYAr0qanL50OPBMviNlEbC/pP7p1+Fwipv0vQs4Kf37\nScCv8waUNJXksvBYM1udN56ZPWVmo8xsQvq9agL2Sb/WefwKOBRA0iSgN7C8rGMjLmEKl06gfRmY\nSfIf/VYzm5cz7EHAiSRnCU+k28dzxqyUM4GbJD0JfBD4Xp5g6dnMbcBjwFMk39vp5caRdDPwEDBZ\nUpOk04CLgSMlvUBypnNxATGvBAYBs9Lv048LiJlLJzFnADumt3ZvAU4q/2xJNDs3xzF2ufRBUh9J\nv0g/PzudC0RSL0k/l/RUumyg3LteHR9P9IUJobJ237O33X6376pnl+0WP2pmUzr6XLr0YT5wJMkZ\n1iPACWb2TMmYfwH2NLMvSJoG/C8z+5SkT5Oc7U1L54ueAQ4xs4V53ltdTqKGsCUxYB1bubZueJY+\nlN5yvw04PL2kNZKJ9UagH7AOyHWDASKBhFAVLSbXBoyQNKdkO6MkjGfpw8Yx6TTBSmBrkmTyHskt\n/kXApWbW0TqassSzMCFUWLIS1X3nd3lnlzA5/R3QTHKLfxjwJ0m/N7OX8wSNM5AQKswQzWzl2rrh\nWfqwcUx6uTIEeBP4NMmjE+vT1bR/BnInqs2eQNqcokXMiFmXMcu4hOmKZ+lD6S3340mWHRjJZcth\n6XsaQLIw7rm872uzJxCg8G96xIyYW1LM1kuYvLdxO1v6IOkCScemw64Ftpb0InA2f1vh/J/AQEnz\nSBLRz8zsybzvLeZAQqg40WzF/K42s98Cv23z2rdL/r4G+McO/t2qjl7Pq6oJZPDwRhs1tvcmr43Y\nthc779G/3WKUpS87y0N08FhC395DGDxwbOYFLmpp/0/79hrCkP7btvvE2jHOybE17f8DNQ4ZRt+x\n49vFtAZfyL5L17d/rXEwQ/pu0z5mL1/QljHtq4f3HjWYgZPax2xY6PsSt/Tr1e61Pn2HMmjIuHYB\nhox71xVzdUvvdq/1Hz2Q4R8Y2S5m8wLfe99qQvv33m/0QIbt0j7m288vX25mIz1xDViP85taY6qa\nQEaN7c0lv5rc/UDgxyf4nhhvcf5glKNh9Tr32AXn+b6ENn+gO+b6Qb4fzF2u9D+Ssn6bIa5xq89b\n6Y459PS1vpi7jXHHnHrpA65xc9/xP/3/9sm++kcDZ/jf++0H/eQV71iz4s5AtjS53lV3y2pDCIkW\n5NpqTeYzkJKKYhuX1Uq6q3RZbQihdRK1Ps9A8lzCbFxWCyCpdVltJJAQNlG/lzB5EkhHy2r3y3c4\nIdSf5HH+SCCZpAtxzoDkjksIPY0h1nlvrdWYPGnRVVHMzKab2RQzmzJkeCw7CT1Ti23l2mpNnp/o\njctqSRLHNJL19iGEEjGJ2gEz2yCpdVltAzCjgIpiIdQdQzR3/5xLTcp1TdHRstoQQnsxiVqANxYN\n50df8jVLe+PI9kuVO7LTVH85g8XvDnaNO377x90xX59xpGvcuzu0XybdmT5jfDWGbYC/c+WKXX1j\n+1zXxx1z0Qm+H4py5g9v/48jfDHL+IXe8MNlrnHLfzrJH7QMZsRt3BBCVrW5ytQjEkgIFWbAOqvP\nH7X6fFchbEEMV7GgmhQJJIQqiNu4IYRMDGpykZhHfb6rELYom78zXfq5PSU9JGle2qHOfxuvE3EG\nEkKFFXUG4iyhcRrwlpntnHam+z7wqbRC+43AiWY2V9LWQPuSdmWKM5AQqqCgM5A8nemOAp40s7kA\nZvammfkXJ3UizkBCqDAzsb7F/aM2QtKcko+nm1lrk3RPCY1NOtNJau1MNwkwSTOBkcAtZnZJee+k\nvaomkA0jW1j6hfddY1c7m+5NGPCme/9LVg1yjbvrwsPdMdfu7qzdXMa53qz9rnaN+/ybvlW9AOuG\n+IpUv3WAvx7ssId8q4XfPfQ9d8yBv+nvGrfXV+a6Y/7pv/Z2jVuzT4s7Jtf5hyb1QDZ7Z7pG4MPA\nvsBq4D5Jj5rZfXmCxiVMCBWXVCTzbN3I05muCXjQzJab2WqSZ9j2yfvOMicQSeMl/VHSM+ms7ll5\nDyaEepRMom72znQzgT0k9U8Ty0cpoPxonkuYDcDXzewxSYOARyXNiqLKIbRXxEKyzkpoSLoAmGNm\nd5F0prsh7Uy3giTJYGZvSbqMJAkZ8FszuzvvMeWpB7IYWJz+/V1Jz5JM4EQCCaFEkUvZs3amSz93\nI8mt3MIUMomaLlbZG5hdRLwQ6k3UA+mEpIHA7cBXzeydDj6/sahy40hfd7QQ6okZrG+JBNKOpF4k\nyeMmM7ujozHpPezpAP12bt9bNoR6l1zCRALZRLq67VrgWTO7rLhDCqH+eJ5zqUV50uJBwInAYZKe\nSLePF3RcIdSNAm/jbnHy3IX5b6jTtBpCoeISphC9XzO2O8+3VHrN+H6ucfcO3sW9/169fM8OvX9C\nu7ngTg37pa9Q84e/8bA75ukvfso1bv6Fo90xvzhlpmvcVbMPdcdcc5Tv67TPNovdMV9dO9E17rXV\nvqX5AKMPbtfvrEOLlgx3xyxX1EQNIWSSVGWPBBJCyMAQG1rqszduJJAQqiAuYUIImbTehalHkUBC\nqIK4CxNCyKZG13h4RAIJocLKrEhWUyKBhFAFcQYSQsjEgA3xNG5+GwY2suyAEa6xLb18MXc8f6V7\n/0s/7Nv3pef8xB3zgqtPdY278w9ti2d3btx9vhWzI0b5v32/3mYv17hR9zu/8MDgk99wjTtk2PPu\nmFeN960s3nfQMnfMJ/7dV1R5uzKeFV/oH1rXvXHrMy2GsIVpQa6tO3k606Wf307SKknfKOJ95U4g\nkhokPS7pN0UcUAh1x4p5GrekM93HgF2BEyTt2mbYxs50wOUknelKXQb8rpD3RTFnIGcBzxYQJ4S6\nVODj/Hk60yHpk8ACYF5R7y1XApE0DjgauKaYwwmhPpWRQEZImlOynVESpqPOdGPb7GqTznTASmDr\ntPTot4D/U+T7yjuJegXwTcDX8i2EHsgQzf67MJXqTPcd4HIzW5WekBQiT0nDY4ClZvaopEO6GLex\nqHLvAcOy7i6EmlbQQrJyOtM1telMtx9wvKRLgKFAi6Q1ZnZlngPKcwZyEHBsWsawLzBY0o1m9tnS\nQaVFlQeMHB9FlUOPY1bYQrKNnelIEsU04NNtxrR2pnuITTvTfaR1gKTvAKvyJg/IMQdiZuea2Tgz\nm0DyRv7QNnmEEBJmcm1dx7ANQGtnumeBW1s700k6Nh12Lcmcx4vA2UC7W71FipWoIVTcltGZrmTM\ndwo5GApKIGZ2P3B/EbFCqEfdnV3UqqqegTT3gvfG+r6Qaye97wt6jP8bs+YvvrGn3HeaO2bjyetd\n427c3788/tN9/sU1bmgZXYiXLfQt49/xJF8BYoB9h7/iGndL077umIMX+ZbxP7fSX1B61ba+/+aj\nf7vAHbMcUVAohJBdFFUOIWRlxCVMCCGz+n0aNxJICFVgdboCKhJICFUQlzAhhEzMIoGEEHKIOZAQ\nQmYtLZFAQggZGN0/51KrqppArAHWDW1xjR32QF/XuG1PXOze/9JFw13j9j/OX2Dtom3vcY37yK3+\nEpTjH/B9jXq9u9Ydc8zMFa5xa6a7Q7K2xfffZ3CfNe6YCyb4mlAPb/CtWAUYedPjvoGjR7pjlqtO\nb8LEGUgIFVfHk6h5SxoOlXSbpOckPSvpgKIOLIS6Ys6txuQ9A/khcI+ZHS+pN9C/gGMKoe7U6xlI\nnpKGQ4CDgZMB0irR64o5rBDqS72uRM1zCbMDsAz4WdoX5hpJAwo6rhDqhhlYy1aurdbkOeJGYB/g\najPbG3iPDsqnSTqjtUR983vv5dhdCLUrWY3a/dadrJ3pJB0p6VFJT6V/HlbE+8qTQJqAJjObnX58\nG0lC2YSZTTezKWY2pWFAnKCEHqqASdScnemWA58wsz1Iii7fkPs9ka+o8hLgVUmT05cOB8qokRVC\nT+ErqOyYaM3cmc7MHjez19PX5wH9JPXJ+87y3oU5E7gpvQPzMnBK3gMKoS4VM4naUWe6/TobY2Yb\nJK0EtiY5A2n1D8BjZuZfidiJXAnEzJ4AKtFFK4T6Ud5CshGS5pR8PD3trVQISbuRXNYcVUS8qq5E\n7b3S2P5uXxHiN77sW/78zlrfkneAAUt8+/7v3+/hjnnZx30Tw8Pm+dcBvLGvbzn3ugkb3DEnjfO9\n97VXjXPHnLW9b2zfw5a5Y0489gXXuJdun+iOueqnvgLdR3/gaXdMPuQfCpRzBtJVa8s8nelae1nf\nCXzOzF5yH1EXau++UQi1yOTburaxM106bTCNpBNdqdbOdFDSmU7SUOBu4Bwz+3NRbysSSAjVUMBd\nmJyd6b4M7Ax8W9IT6TYq79uKh+lCqDTDc3bhC5WxM52ZXQRcVMhBlIgEEkIV1OtS9kggIVRDJJAQ\nQmbxNG4IIRMD+YrM1ZxIICFUnOsWbU2KBBJCNcQcSH4b+otlH/Q9v7Pz1k2ucRMHLXXv/7YTRrjG\nDRrxtjvmevOtGn1nqr+Ugb3se2q5scn/LNSSOdv7Bo5xh2TbB95xjXtplO/rDrBynW/sn77xA3fM\ng27yFbT+y/3lPJVxcxljiQQSQsihThNI3qLKX5M0T9LTkm6W5H8wJYSeonUhWf6l7FuczAlE0ljg\nK8AUM9sdaCBZmx9CaEPm22pN3kuYRpLCJOtJKrK/3s34EHqmGkwOHnkqkr0GXAosAhYDK83s3qIO\nLIR6Uq9nIHkuYYaRlE/bAdgWGCDpsx2M+1tR5dVRVDn0UDEH0s4RwAIzW2Zm64E7gAPbDtqkqHL/\nKKoceiDvo/w96QyE5NJlf0n9JYmkqLK/K3UIPUmdJpDMk6hmNlvSbcBjwAbgcaCw2o0h1JNanN/w\nyFtU+Xzg/IKOJYT6FQmkgJ2tNkbO9VWSf/v57VzjZu6yk3v/Oz3mK9Ssf1/ljjnz5Q+4x3qt39pX\nLHnHX/gf8XxvTC/XuPdH+q9qX/qnQa5xox/2H+drR/h+0vabdZY75lZ9fTHfbtuiqSAq8GlcSVNJ\nmto3ANeY2cVtPt8HuJ6k7PObwKfMbGH6uXNJGk81A18xs5l5jydqooZQDQXchcnTmS4dNw3YDZgK\nXJXGyyUSSAjVUMwkaubOdOnrt5jZWjNbALyYxsslEkgIVVDQQrKOOtON7WxMWsW9tTOd59+WLZ7G\nDaEa/JOoFe1MV7RIICFUWnnL1CvVmc7zb8sWlzAhVEMxcyCZO9Olr0+T1EfSDsBE4OGc7yrOQEKo\nhiJu45rZBkmtnekagBmtnemAOWZ2F0lnuhvSznQrSEtspONuBZ4hWfj5JTNrzntMkUBCqCFZO9Ol\nn/su8N0ijycSSAjVECtR81s/0mg6Y71r7M5nL3eNW/vlfu79vzR5uGvcpMNf7X5QasA/j3ONe+tg\n3ypYAL3vW99z3w0/dcc87OTTXePeP95fcqFh7jDXuO2+Nt8d860l27rGjft+OdN3vtXPW1/uK+QN\nsKCMvZc5iVpT4gwkhGqo0wTSbRqXNEPSUklPl7w2XNIsSS+kf/p+FYXQU9Xp4/ye88DrSNbOlzoH\nuM/MJgL3pR+HEDogenBJQzN7kOR2UKnS9fY/Bz5Z8HGFUD/Sp3E9W63JOgcy2swWp39fAowu6HhC\nqE81eHbhkXsS1cxM6vzkS9IZwBkAjSOG5N1dCLWpThNI1qXsb0gaA5D+2WmD2k2KKg+OosqhZ+qx\ncyCdKF1vfxLw62IOJ4Q61VPvwki6GXgImCypSdJpwMXAkZJeIGnvcHFXMULo0eq4rUO3cyBmdkIn\nnzq84GMJoW7V4h0Wj6quRDWDDet8y7SfOc+3RHyb6/1XYZPnv+saN+avvmLBACtXLHON09sD3TEH\nvOJ7T4ee4lueDtB0mK+o8tC7hrpjrj5itWvc69/b2R1zzeG+/x9fuul6d8xzrjvZNW73vivdMctV\ni/MbHrGUPYRqiAQSQsikRuc3PCKBhFBhSrd6FAkkhGqIM5AQQlb1OokaRZVDqIYW55aDt8yGpJPS\nMS9IOil9rb+kuyU9J2meJNfarkggIVSacxl7AWcp3ZbZkDQcOB/Yj6Qz3fklieZSM9sF2Bs4SNLH\nutthJJAQqqE6K1E9ZTb+HphlZivM7C1gFjDVzFab2R8B0raZj5H0julSJJAQqqCMM5ARkuaUbGeU\nsRtPmY1uW1xKGgp8guQspktVnUTts+B9dj7pSdfYhRf4+v7aVv60/coxvnICr/9yD3fMD/3jU65x\n7w1+yx3zkfd3cI0bc/QSd8yW10f6xi3o6445foZv1ah9q9OHtdsZfKevXeufV01yx9wwwPd/5M6n\nP+iOCbeWMZZyzi666kyHpN8D23TwqfM22V03ZTa6iN8I3Az8yMxe7m583IUJoQqKugtjZkd0ug/p\nDUljzGxxF2U2XgMOKfl4HHB/ycfTgRfM7ArP8WQtqvyDdLb2SUl3pqc8IYSOVO9pXE+ZjZnAUZKG\npZOnR6WvIekikl66X/XuMGtR5VnA7ma2JzAfONe7wxB6GlG1mqgdltmQNEXSNQBmtgK4kKTP7iPA\nBWa2QtI4ksugXYHHJD0hqdunNT2P8z8oaUKb1+4t+fCvJE18QwidqcJCMjN7kw7KbJjZHOD0ko9n\nADPajGkiw4r7IuZATgV+UUCcEOqWrD6XouZKIJLOI+n0fVMXYzYWVe5L/zy7C6E2xdO47Uk6GTgG\nONys8/RqZtNJZnYZrOF1+mUMoWv1+ixMpgQiaSrwTeCjZuYrSxVCT1anCSRrUeUrgUHArHS29scV\nPs4Qalq9tnXIWlT52gocSwj1yaKociHU0EDDYF9x4Rs+8yPXuM9df5Z7/0Ne8qX4rTb4fxUsuGAX\n17g3d/cVNQY4ftpDrnF/vci33B/ggG887xr3xjW+ZfQArx/YzzVu5BWj3DGHrV3rGjd72QR3zN4r\nfXcn+3xgjTtm2Wrw7MIjlrKHUGGiNi9PPCKBhFANsQ4khJBVnIGEELKJhWQhhDziLkwIIbNIICGE\nbIyYRA0hZBeTqCGE7CKB5Gd9etGyU7eV4gG4+o3DXOOOOvoR9/5ff99XVHmrMn5dPLuso8LX7Q3+\n/4PcMX936wGucdvPXuiOufxMX7Hilu+/6Y65/hFfzOHfWuiO2TRjZ9e4fv/Pv7p1w76+7+ewvr5V\nsOWq54Vk0dYhhEoz82855OlM1+bzd5XWQO5KpqLKJZ/7uiSTNMKzsxB6qirVRM3bmQ5J/xtY5d1h\n1qLKSBpPUtF5kXdnIfRUVXqcP3NnOgBJA4GzgYu8O+w2gZjZg8CKDj51OUlRoTq9uguhIAa0mG/b\nvJ3pLgT+A3AXCctakew44DUzmyuVXcg5hJ5nC+9MJ+mDwE5m9rW2XRi6UnYCkdQf+DeSyxfP+L8V\nVe7tuwsSQr2pgc50BwBTJC0kyQujJN1vZofQhSx3YXYCdgDmpjsbR9KIpqOsiJlNN7MpZjalV2NU\nZQ89VBXuwpCjM52ZXW1m25rZBODDwPzukgdkOAMxs6eAjTfh0yQyxcyWlxsrhJ6iSutALgZuTesW\nvwL8EySd6YAvmNnpaRe61s50kHamy7rDbhNIWlT5EJLJnSbgfDOLmqghOMlALZXPIHk607UZvxDY\n3bPPrEWVSz8/wbOjEHq0eBo3v+a+Dayc5FvSvejuPVzj3h+zwb3/wc/73u66MuZ6e+3zlmvc2xMb\n3DE/M+0+17g7lvmW+wPseMp817inZk12x7TJvrt9i3+8kzvmsNNe7X4Q0Hiq/+7fa9N86xzf+ZPv\nsYQsorVlCCGbqEgWQsiukDssW6RIICFUQb0+jRsJJIRqiDOQEEImBmqOBBJCyKo+80ckkBCqIW7j\nhhCyiwQSQsjEiJWoRTHn87+9nEXVPnHAw+59f+iIBa5xP1n0UXfMV5YOd42b9Cv/s4a3vtvucYYO\nDVrR7I7ZdOVE17gdHl3ijqlVvpWoL39+R3fMJQs6fKi7nZFXrXTH3PoXfV3jxv+zb7UuwHPfdQ9F\nWFzChBByqNMEkrmosqQzJT0naZ6kSyp3iCHUOAOazbfVGM8ZyHXAlcD1rS9IOpSkgOteZrZWkr9J\nRwg9UI+9hDGzBzuokfhF4GIzW5uO6ah0WgihVZ0mkKyNpSYBH5E0W9IDkvYt8qBCqC/VaSy1OWRN\nII3AcGB/4F9Jyqh1WKBB0hmtJeo3rH0v4+5CqGFGTXSmk9Rb0nRJ89P5zX/obp9ZE0gTcIclHia5\ny91h1ZbSosqNfQZk3F0INa7FueWTtzPdecBSM5sE7Ao80N0OsyaQXwGHpgc0CegNRFHlEDohM9eW\nU67OdMCpwP8FMLMWT6F0z23cm4GHgMmSmtKKzzOAHdNbu7cAJ5nV4AVcCNVgQHOLb8snc2c6SUPT\njy+U9JikX0rqtsZjnqLKn+3u34YQoMyKZCMkzSn5eLqZTW/9oFKd6UhywTjgL2Z2tqSzgUuBE7v6\nR6rmiYOkZST9KkqNoPjLn4gZMSsdc3szG+kJMKTvNnbg+M+5dnbPiz94tKvWll2R9DxwSElnuvvN\nbHKbMSekYz6ffvwTks50twCrgEFm1iJpPHCPme3W1T6rupS9oy+4pDlZv2CdiZgRc4uLWZ1f1K2d\n6S6m68503yuZOD0KODc9Y/kvkh5QfyDpL/NMdzuMZ2FCqDQDqtBYivyd6b4F3CDpCmAZcEp3O4wE\nEkLFGVjln+fP25nOzF4BDi5nn1tCApne/ZCIGTFrOGbrXZg6VNVJ1BB6oiG9R9uBo6e5xt7T9KPM\nk6ibw5ZwBhJC/avTX9SRQEKouNp8UM4jEkgIlWZAS33OgUQCCaEa4gwkhJBZJJAQQiZmWLO/gn4t\niQQSQjVUZyVq1UUCCaEa4hImhJCJWdyFCSHkEGcgIYSsLM5AQgjZxErUEEJWBsRt3BBCFgZY3MYN\nIWRi1SkotDlEAgmhCur1DCQKCoVQYZLuoZPOjR1YbmZTux+2ZYgEEkLILGtryxBCiAQSQsguEkgI\nIbNIICGEzCKBhBAyiwQSQsgsEkgIIbNIICGEzCKBhBAy+x/Ow6jSBV3GtQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nSUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8fxfF1OWKo0R",
"colab_type": "text"
},
"source": [
"###Visualizing Values as they pass through the model"
]
},
{
"cell_type": "code",
"metadata": {
"id": "nrL3ToRHKrlh",
"colab_type": "code",
"colab": {}
},
"source": [
"# Loading the test data\n",
"data = datasets.MNIST('../data', train=False, download=True,\n",
" transform=transforms.Compose([\n",
" transforms.ToTensor(),\n",
" transforms.Normalize((0.1307,), (0.3081,))\n",
" ]))"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "Vw0uNsDhKu2S",
"colab_type": "code",
"outputId": "a7ebe3c7-07fa-4bb2-abad-14fc1faf7566",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 366
}
},
"source": [
"# Evaluating an Example\n",
"e = 15\n",
"model.train()\n",
"example = data.data[e]\n",
"\n",
"if args['cuda']:\n",
" model.cuda()\n",
" example = example.cuda()\n",
"\n",
"example = Variable(example,volatile=True).float()\n",
"print(model(example).data)\n",
"\n",
"plt.matshow(data.data[e])\n",
"plt.colorbar()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"tensor([[-1.5326e+02, -1.4762e+02, -4.5865e+01, -1.0944e-01, -1.6150e+02,\n",
" -6.8651e+01, -1.9930e+02, -1.7074e+02, -2.2666e+00, -9.3587e+01]],\n",
" device='cuda:0')\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:9: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.\n",
" if __name__ == '__main__':\n"
],
"name": "stderr"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f03915c8668>"
]
},
"metadata": {
"tags": []
},
"execution_count": 53
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nrkJggg==\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "8Sgg36TUKwno",
"colab_type": "code",
"outputId": "e1e686b8-2927-4979-b0cc-e4bf60a28d61",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"import numpy as np\n",
"img = plt.matshow(model.x.cpu().detach().numpy().reshape(28,28))\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"plt.matshow(model.after_fc1.cpu().detach().numpy().reshape(17,17))\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"plt.matshow(model.after_relu1.cpu().detach().numpy().reshape(17,17))\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"plt.matshow(model.after_dropout1.cpu().detach().numpy().reshape(17,17))\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"plt.matshow(model.after_fc2.cpu().detach().numpy().reshape(7,7))\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"plt.matshow(model.after_relu2.cpu().detach().numpy().reshape(7,7))\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"plt.matshow(model.after_dropout2.cpu().detach().numpy().reshape(7,7))\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"plt.matshow(model.after_fc3.cpu().detach().numpy().reshape(5,2))\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"plt.matshow(F.log_softmax(model.after_fc3, dim=1).cpu().detach().numpy().reshape(5,2))\n",
"plt.colorbar()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\nrkJggg==\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQ0AAAD0CAYAAACB+HNtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHKdJREFUeJzt3XuUXWWZ5/HvrypJVSr3IiF3TYAA\ncg10RC6NgoAg0AadkYERAXXJYIOCg9rQrml7rW5sBmnvDG1aUZxmRBbXDIRLQGkcW5AQMCSEQAgk\nqVxIAiTcklSq6pk/zi48pKpSzz57n5OcXc9nrb1S55wnz35Pnaqn9uXdz5aZEUIIXg27ewAhhPoS\nRSOEkEoUjRBCKlE0QgipRNEIIaQSRSOEkEoUjRBCKlE0QgipRNEIIaQyaHcPIISiO/XEYfbqa52u\n2CcXbX/AzE6r8pAyiaIRQpVteq2Txx+Y4oodPPHFsVUeTmZRNEKoOqPTunb3IHITRSOEKjOgi+Jc\nGBpFI4Qa6CK2NEIITobRWaAWFLv1lKuk0yQtk7Rc0pU55Jsq6beSnpW0RNJleYwzyd0o6SlJ9+SU\nb7Sk2yQ9J2mppGNyyPnV5H0vlvQrSc0V5LhR0gZJi8uea5U0X9ILyb9jcsj5neS9L5J0p6TRWXOW\nvXaFJJOU6qBiXzklfTkZ6xJJ16bJ2a0Lcy31YLcVDUmNwPXAx4GDgHMlHZQxbQdwhZkdBBwNXJJD\nzm6XAUtzygXwA+B+MzsQODxrbkmTga8As8zsEKAROKeCVL8Adj7ldyXwsJnNAB5OHmfNOR84xMwO\nA54HrsohJ5KmAh8DVqXM12tOSScCs4HDzexg4Lq0SQ3oxFxLPdidWxpHAcvNbIWZtQO3UPpwKmZm\n68xsYfL1m5R+ESdnHaikKcAZwE+z5kryjQI+DPwMwMzazWxzDqkHAUMlDQJagLVpE5jZo8BrOz09\nG7gp+fom4KysOc3sQTPrSB4+BvjOSe56nADfA74B6X8D+8j5JeAaM9uexGxInRfYYV2upR7szqIx\nGVhd9riNHH7Bu0maBhwBPJ5Duu9T+kHM61OdDmwEfp7s8vxU0rAsCc1sDaW/gquAdcAWM3sw+1AB\nGG9m65Kv1wPjc8rb7fPAfVmTSJoNrDGzP2Uf0rv2B46X9Likf5f0wUqSdDmXelDIaeSShgO3A5eb\n2RsZc50JbDCzJ3MZXMkg4EjgBjM7Anib9Jv875EcZ5hNqSBNAoZJOi/rQHdmpaayuW1HS/ompd3K\nmzPmaQH+Fvi7PMZVZhDQSml39+vArZKUJoE5d01i96R/a4CpZY+nJM9lImkwpYJxs5ndkTUfcBzw\nCUkvU9qF+qikf8uYsw1oM7PuraDbKBWRLE4GXjKzjWa2A7gDODZjzm6vSJoIkPybehO9N5IuBM4E\nPmPZO1zvS6lg/in5rKYACyVNyJi3DbjDSv5IaYMg3axNg07nUg92Z9F4ApghabqkIZQO2s3NkjD5\nC/AzYKmZfTeHMWJmV5nZFDObRmmMvzGzTH/BzWw9sFrSAclTJwHPZhspq4CjJbUk34eTyO/A7Vzg\nguTrC4C7syaUdBqlXb5PmNk7WfOZ2TNmtreZTUs+qzbgyOR7ncVdwIkAkvYHhgCbUo2N2D3JRXIQ\n7FLgAUo/3Lea2ZKMaY8DPktpa+DpZDk9Y85q+TJws6RFwEzg21mSJVsttwELgWcofbZz0uaR9Cvg\nD8ABktokfQG4BjhF0guUtmiuySHnj4ERwPzkc/qXHHJm0kfOG4F9ktOwtwAXpN8qEp3OpR4o7nsS\nQnUdctgQu/1e3x7Nge9b96SZzarykDKJGaEhVJkB7QU65xBFI4Qa6LL62PXwiKIRQpWVZoRG0Qgh\nOBmis0C7J7v9nUi6KHJGzqLn7DK5lnqw24sGkPsHHTkj556Us3v3pCinXGP3JISqE522J/x9zkdN\ni8ag5mHWNKz1Pc8NGTaGYXtN7TFZRHvt8OVs6DmPbuj44Yw+cO8eObduHeLKOWrY1h7PDZ/Qwt4H\n7dUz59qhrpztvXSLaGwdTdO0KT0nyjinzgxp7ujxXNPeIxhxwIQeGdrbnR91R8+/do1jxtA0tedn\n1DryLVfKrZ2DezzX12e0/fUmV86uXj7KvsYp5/dTzT07hg8eN4qh+03qkWHbi+s2mdk4T14DdtDo\nG0QdqGnRaBrWysGnX+6KHXL+K6640c09f8H78szS97nizvgL/0WSi791mCtuZZqL/p37tvvs558h\nvWLV3q64hs3+H4lzP/p7V9yzb/gv/3jx9hmuuLen+iddN/RSCHvTfKC/O8GS2f+w0htrVqwtjUzv\nJO/OWyEUVRdyLfWg4i2Nss5bp1C6OOgJSXPNLOuFVyEUSulAaHG2NLLsnrzbeQtAUnfnrSgaIbxH\nsXZPshSN3jpvfSjbcEIontKl8VE03JLJMRdB6UxJCAONIdqtOGdPspQ/V+ctM5tjZrPMbNagpkxt\nMEOoW13W4Fr6k+YWEyr5YXKiYpGkrN3hgGxFI/fOWyEUUfeBUM/i8Av8t5j4ODAjWS4Cbsjj/VRc\nNKrUeSuEwjFEp/mWfnOlu8XEbOCXSX/Tx4DR3b1es8h0TMPM5gHzsg4ihKJLcSB0rKQFZY/nmFl/\nbRv7usVEX7cJWUcGNZ0R2jEUXj3UN4Gl8wXnDMb9fTNHAUY/43u787Yf4c65z9Z2V1xDi7+tYtNQ\n3xT6L079nTvn6gmt/QcBv/20f7f33n0PdsUdNdE9eZLnjvfdceLsfRe5c972nO/zvPYQf/P6M9yR\nYEaaU66bsrT7MzOTvBPnK1Oc80Ah7LF8s0EzzAjt6xYTVblNSBSNEKrMgHYb5Foq1NctJuYC5ydn\nUY6mdNe9TLsmEJfGh1B1Rn4NdpLbLJxA6dhHG/AtSreUuDW55cJK4OwkfB5wOrAceAf4XB5jiKIR\nQg3kde2JmZ3bx0sn9RJrwCW5rLhMFI0QqszANXGrXkTRCKHq6qeVn0cUjRCqLLY0QgipxZZGCMHN\nTOzoKs6vWm3fSSN0Dvf1dvzSCQ+54v518XHu1Y/7K19Pze1vtbhznn/D/a645gbfLE+Ab//4M664\nv3v+HHfOwQf4Zlq2f26kO+epkxa64u577iB3zlGj3nHFPbT2AH/O+b7Pc8HB0905wX+ZVamfRmxp\nhBDcitW5q+J3ImmqpN9KelbSEkmX5TmwEIqidCC0OHdYy7Kl0QFcYWYLJY0AnpQ0PxoLh9BTNBYG\nkjns65Kv35S0lNJlt1E0QiiT5zTyPUEuxzQkTQOOAB7PI18IRRONhctIGg7cDlxuZj0O0Zc3Fm5s\n7eXehCEUnBns6IqiAYCkwZQKxs1m1msHk6Tr0ByApvf3vM9mCEVX2j2JooEkAT8DlprZd/MbUgjF\nU6QZoVnK33HAZ4GPSno6WU7PaVwhFEacck2Y2f+DApXPEKomdk8q1jJ0G7NmLnfF3nf5Ca64va7Y\n7F7/9tvH9x8EDD7Dn/Mf7/q0K+7oj/inHU++Z60r7oVv+6d8T7i+2RW3auc7auzCsq/5pocPubTD\nnfP19b73NHbSFn/OD/jifv1imnsJ3ZMiNqaRhxBSKHUjj6IRQnAyREdXce7lGkUjhBqI3ZMQglv3\n2ZOiiKIRQg3E2ZMQgl8dzcHwiKIRQpXl3blL0svAm0An0GFmsyS1Ar8GpgEvA2eb2eu5rbRMcbaZ\nQtiDVWFG6IlmNrPsZtFXAg+b2Qzg4eRxVUTRCKHKDOjoanAtGcwGbkq+vgk4K+u4+1LT3ZNOa2DL\n9qGuWDmvh/2/h/zSvf4PrvyqK+7QMf6tupdeHeOKe+KBQ9w5H3v0n11xJy680J1z1anDXHH7zlrl\nzrmsdaIrbsJwX1NjAIb7GgvPGL3RnXKpc0boB8f733uaTlMpm/CMlbSg7PGc5Erx96aEByUZ8JPk\n9fFlN3deD/imP1cgjmmEUAMpjmlsKtvl6MtfmtkaSXsD8yU9V/6imVlSUKoi8+6JpEZJT0lKNxk/\nhIHC8j2mYWZrkn83AHcCRwGvSJoIkPy7oUrvJpdjGpcBS3PIE0Ih5XlpvKRhSSNvJA0DPgYsBuYC\nFyRhFwB3V+fdZO/cNQU4A7ga+O+5jCiEAspxnsZ44M5SDywGAf/HzO6X9ARwq6QvACuBs/Na4c6y\nHtP4PvANYEQOYwmhkAzRmVOPUDNbARzey/OvAiflspJ+ZLlZ0pnABjN7sp+4iyQtkLRgx5atla4u\nhLrWhVxLPcja7u8Tyey0Wyi1/fu3nYPMbI6ZzTKzWYNH+U63hlAklvOB0N2t4qJhZleZ2RQzmwac\nA/zGzM7LbWQhFIiZXEs9iHkaIVRd/WxFeORSNMzsEeCRPHKFUET1shXhUdMtje07BrF87ThX7OU/\nfMgVd9J1X3evv6nVF/eMprpzNkzscsVN+IN/gt4xj33RFXfWvovcOe8zXxPgFa+Mdeds3OL78Xl1\nuG8KO0Bz8w5X3O+W7u/OObL1bVfc+CEpprunEE14QgjpRGPhEEIaRuyehBBSiQOhIYSUrEC3Po+i\nEUINxO5JCMHNLIpGCCGlOKYRQkilqyuKRgjByaif60o8alo0hje1c8y+L7lif7HiQ664HSP96z/u\nVN8Mykf+w98EeNwuGwP82cYj/dcGDh3U6Yqbd+NfunNuO/5NV1yaH+4R+212xW3eNNydE+f6G5yz\nUQFY5Gv+fGvnEf6czE0RW5qrURSxpRFCtRXsQGimdkKSRku6TdJzkpZKOiavgYVQKOZc6kDWLY0f\nAPeb2X+WNARoyWFMIRROkbY0Ki4akkYBHwYuBDCzdqA9n2GFUCxFmhGaZfdkOrAR+Hly35OfJi3V\nQwhlzMC6GlxLPcgyykHAkcANZnYE8Da93HS2vLHwts3bMqwuhPpVmhXa/1IPshSNNqDNzB5PHt9G\nqYi8R3lj4ebRzRlWF0IdK9CB0CyNhdcDqyUdkDx1EunuixvCAOFrKuw5WCrpNEnLJC2X1GPLvhay\nnj35MnBzcuZkBfC57EMKoYBy2IqQ1AhcD5xCaUv/CUlzzaymf6wzFQ0zexro7w7XIQxs+U3uOgpY\nntxlDUm3ALOp8RZ+TWeEvrW1id8vmeGKbdzS6Irba6W/hP+hbZorzlp9zW0BNs4a7Io7YOZKd87t\nnb6PpW3CaHdOLfXdObPhwLfcOe1hX6fmkSl2gkd9/FVXXFu77+cD4M29fHEz/tMSd87n3JGJfI5X\nTAZWlz1uA3zXW+QoppGHUAv+LY2xkhaUPZ5jZnOqMKKKRdEIoRb8WxqbzKyvXf41QPn9NaYkz9VU\nfcwmCaGeGaUtDc+ya08AMyRNT04+nEPay21zEFsaIdRAHhO3zKxD0qXAA0AjcKOZ+Q/E5CSKRgi1\nkNPELTObB8zLJ1tlomiEUAtxlWsIwc1Avlv+1oUoGiFUnesgZ92IohFCLdTJxWgeNS0ag98Qk+b7\nZvLtGOqrzG/NfsO9/u2rfLMiW9b7z0Rf9flfu+Ief3Mfd85jRyx3xf3Dw+e6c3bM9M30bGjw/3Q/\nfeX/csV9YZW/AfJTGya74ibe45uJCzD18hdccQtvOcydk/9ymz8WomiEEFIqUNHI2lj4q5KWSFos\n6VeSomFGCDvLb3LXHqHioiFpMvAVYJaZHUJpssk5eQ0shCKR+ZZ6kHX3ZBAwVNIOSp3I12YfUggF\nVCcFwSNL5641wHXAKmAdsMXMHsxrYCEUSZG2NLLsnoyh1ABkOjAJGCbpvF7i3m0svGP725WPNIR6\nFsc0ADgZeMnMNprZDuAO4Nidg8obCw9uijschAHI21S46FsalHZLjpbUIkmUGgsvzWdYIRRMgYpG\nxQdCzexxSbcBC4EO4Clgj+owFMKeol6OV3hkbSz8LeBbOY0lhOKKolGZHcNhvfO+8q2LfHGDHxnl\nXv+2o7a64t4e7d9ru+nzf+WKe+F8/7TnRXNnuuLaP/OOO2fH20Ocgf6DcdPvusgVN3Xfje6cW5aP\nccWNu7jNnXNIQ4crruH56hxzU1zlGkJIrU7OjHhE0QihFmL3JISQRhwIDSGkE0UjhOBWR1PEPaJo\nhFALUTRCCGkU6ZRr3GEthJBKFI0QaqEG155I+ntJayQ9nSynl712laTlkpZJOjXLemq6e9K4FcYs\n8U1yGX2eb8bfd/bxN3i98VVfg9snN03tPygx6B+3ueIOTnEk7CP/83lX3B2rfTNHATq7fH8fXts8\n3J+z3Zdz9dpWd87G8dtdcevmvc+d8xt//RNX3MxP+WeZfv1/uENrfSD0e2Z2XfkTkg6i1FXvYEpt\nLB6StL+ZdVaygtjSCKEWdu9VrrOBW8xsu5m9BCwHjqo0Wb9FQ9KNkjZIWlz2XKuk+ZJeSP71XTAQ\nwkDlLxpju5tWJYvvAp8/u1TSouT3tvv3cjKwuiymLXmuIp4tjV8Ap+303JXAw2Y2A3g4eRxC6IVI\n1e5vU3fTqmR5T7sJSQ8l3f93XmYDNwD7AjMpteD852q8n36PaZjZo5Km7fT0bOCE5OubgEeAv8lx\nXCEUR45XuZrZyZ44Sf8K3JM8XAOUH6ibkjxXkUqPaYw3s3XJ1+uB8ZUOIIQBoTZnTyaWPfwk0H1I\nYS5wjqQmSdOBGcAfK11P5rMnZmZS38eGk32yiwAGD49DH2GAqs3Zk2slzUzW9jLw3wDMbImkW4Fn\nKXXZu6TSMydQedF4RdJEM1uXVLcNfQUm+2RzAFrGTS3QZNoQ/GpxytXMPruL164Grs5jPZXunswF\nLki+vgC4O4/BhFBYBWos7Dnl+ivgD8ABktokfQG4BjhF0guUbmVwTXWHGUIdK9gtDDxnT87t46WT\nch5LCIVVpAvWanuVawN0tPimka/+/RRX3EX/+3L36jfN8n1yza80unO+MtL352HoflvcOeesPd4V\n1zy03Z3z4gN+54r70eIT3Dmbh/q+n++s8U9Nb5r0liuu81j/e/9B2ymuuBX37ePOCenuQBr9NEII\n6UTRCCG41dHxCo8oGiFUmZKlKKJohFALsaURQkgjDoSGENKJU64hBLe4hUEIIbUoGiGENGJLo0Lq\nhKbNvu/eXkt8M/5e6vO6vp6sw3fiq31UihNkk3yNhTueGu1O2TGpwxW3bdVQd86f33Omb90f8P90\nj37aF9d1lm+WJ8DeI32xL7/ob+Hy/OJRrrjrv+hrQAzwsX9yh5ZE0QghpFGkLY1KGwt/R9JzSQPT\nOyX5/4yGMNAU7CrXShsLzwcOMbPDgOeBq3IeVwiFIUpXuXqWetBv0TCzR4HXdnruQTPr3vF+jFKj\n0hBCXwq0pZHHMY3PA7/OIU8IhSWrk4rgkKloSPompUalN+8i5t3GwkOGRWPhMADV0VaER8VFQ9KF\nwJnASWZ9l9HyxsLDxkZj4TAwFensSUVFQ9JpwDeAj5jZO/kOKYQCKlDRqLSx8I+BEcD85Jb2/1Ll\ncYZQ11LclnGP5zl7cq6ZTTSzwWY2xcx+Zmb7mdlUM5uZLBfXYrAh1CWrzSlXSZ+WtERSl6RZO712\nlaTlkpZJOrXs+dOS55ZLct2TuaYzQjtGGBtP2u6KfX1NkyvuE4c+4V7/Pb/5oCuu0TczHABb6Z/K\n7SXndPfxM19x51zf6Jt2bRN8nw/ApsObXXGdr/u/RyvXD3PFHXfkMnfOp+8+yBX3N9ekuUH7FSli\nqdXuyWLgU8B75sNLOgg4BzgYmAQ8JGn/5OXrgVMo3Un+CUlzzezZXa0kppGHUGXdd42vNjNbCiD1\n+KMzG7jFzLYDL0laDhyVvLbczFYk/++WJHaXRaPSO6yFENIw8y0wVtKCsiXN5k9fJgOryx63Jc/1\n9fwuxZZGCDWQYktjk5nN6utFSQ8BE3p56ZtmVpPbo0bRCKHacpzcZWYnV/Df1gBTyx5PSZ5jF8/3\nKXZPQqiB3XzB2lzgHElNkqYDM4A/Ak8AMyRNlzSE0sHSuf0liy2NEGqgFlewSvok8CNgHHCvpKfN\n7FQzWyLpVkoHODuAS8ysM/k/lwIPAI3AjWa2pL/1RNEIodqM7oOc1V2N2Z3AnX28djVwdS/PzwPm\npVlPFI0QaqBeZnt6RNEIoRaiaFSmteVt/uvhvhmcN2872hX32db/cK///vd/wBU36p7h7pxbP7XZ\nFdexwN8WYMTyRlfc2uH+nKefsNAV9/u10905R4zzvffVK8a5c57+IV+34hcu2b//oETD8b64HS3V\nueNqrSZ31UpsaYRQbX+euFUIFTUWLnvtCkkmaWx1hhdCMQyoHqH03lgYSVOBjwGrch5TCIUz0C6N\n79FYOPE9So146uSthrCbGNBlvqUOVNq5azawxsz+1MsVdSGEndVHPXBJXTQktQB/S2nXxBP/bmPh\nkRPz7z0RQj2ol10Pj0quPdkXmA78SdLLlC5yWSiptyvvMLM5ZjbLzGa1jPE11gmhcPyXxu/xUm9p\nmNkzwN7dj5PCMcvMNuU4rhAKZUBtafTRWDiE4CQDdZlrqQf9bmmY2bn9vD4tt9GEUFR1MgfDo6Yz\nQre0NzNvla/Ja+MbvqGdfddX3OufduhaV9zKU/3fls7XW1xxH5/tm8YN8OSPjnDFtU727xE+de1M\nV9zgC3s7u967TW/6mgA3jtzhzrng+773vvlrb7tzdr7k+wvemaKpclpxW8YQgl/cljGEkE79nBnx\niKIRQg0U6exJFI0QaiG2NEIIbgbqjKIRQkijODUjikYItRCnXEMI6UTRCCG4GTEjtFKdnQ1secM3\ng3LQNl/OlvX+C3VfGjzRFWdN/k946r2+fiL3v+GbkQlw7MVLXXGb2/2tBtYf5GtWvG39KHfOluVD\nXHGd0/0zQg/9yjOuuCXfPdSdc92Jna64lmXN7pxpCKvJ7omkTwN/D3wAOMrMFiTPTwOWAsuS0MfM\n7OLktb+g1J1vKKX7n1xmtuvBxpZGCLVQm92TxcCngJ/08tqLZtbbX64bgC8Cj1MqGqcB9+1qJRU3\nFpb0ZUnPSVoi6dr+8oQwYBnQab4ly2rMlprZsv4jSyRNBEaa2WPJ1sUvgbP6+38VNRaWdCIwGzjc\nzA4GrvMONISBSGaupYqmS3pK0r9L6r4TzGSgrSymLXlulzyXxj+a7BOV+xJwjZltT2I2eEYdwoDl\nLwhjJS0oezzHzOZ0P5D0ENBbl7xvmtndfeRcB7zPzF5NjmHcJelg74B2Vukxjf2B4yVdDWwDvmZm\nvlunhTDgpLpgbZOZzeozk9nJqdde+uPe/Qf+SUkvUvodXkOpXWe3Kclzu1RJj1AoFZtW4Gjg68Ct\n6qMtuaSLJC2QtKDzTX8PhBAKo/uu8bupR6ikcZIak6/3AWYAK8xsHfCGpKOT39/zgb62Vt5VadFo\nA+6wkj9SOgvd613WyhsLN47wNW0JoXC6nEsGkj4pqQ04BrhX0gPJSx8GFkl6GrgNuNjMurst/TXw\nU2A58CL9nDmByndP7gJOBH4raX9gCBCNhUPoQy3maZjZncCdvTx/O3B7H/9nAXBImvX0WzSSxsIn\nUDpA0wZ8C7gRuDE5DdsOXNDfhJAQBiwDOoszJTRLY+Hzch5LCAVVrM5dquUGgqSNwMqdnh5L/rs2\nkTNyVjvn+81snCfBqOYJduzU810ru3/5d57c1dmTPUFNp5H39k2WtCDvb1LkjJx7XM4CbWnEtSch\nVFv3XeMLIopGCFVnYAPoQGgNzOk/JHJGzjrOWbCzJzU9EBrCQDRqyHg7dvw5rtj7234YB0JDCMSB\n0BBCGsWapxFFI4RqM6CrOMc0omiEUAuxpRFCSCWKRgjBzQzr9HVErwdRNEKohZgRGkJIJXZPQghu\nZnH2JISQUmxphBDSsNjSCCH4xYzQEEIaBsQp1xCClwEWp1xDCG4WTXhCCCkVaUsjmvCEUGWS7qeP\nOxD2YpOZnVbN8WQVRSOEkEql93INIQxQUTRCCKlE0QghpBJFI4SQShSNEEIqUTRCCKlE0QghpBJF\nI4SQShSNEEIq/x9AZJr/l7NDzAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nRU5ErkJggg==\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 288x720 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nZHZq7aGDcY0AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 288x720 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tpkaPG5JLBUB",
"colab_type": "text"
},
"source": [
"##Attributing Result to neurons and Data Points"
]
},
{
"cell_type": "code",
"metadata": {
"id": "MuTY3YP_LDYR",
"colab_type": "code",
"colab": {}
},
"source": [
"# Loading the test data\n",
"data = datasets.MNIST('../data', train=False, download=True,\n",
" transform=transforms.Compose([\n",
" transforms.ToTensor(),\n",
" transforms.Normalize((0.1307,), (0.3081,))\n",
" ]))"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "iOMTITi7LFaa",
"colab_type": "code",
"outputId": "9c709119-948f-4726-8577-8806d1e8dc3b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 298
}
},
"source": [
"# Evaluating an Example\n",
"e = 10\n",
"model.eval()\n",
"example = []\n",
"example = deepcopy(data.data[e])\n",
"\n",
"if args['cuda']:\n",
" model.cuda()\n",
" example = example.cuda()\n",
"\n",
"example = Variable(example).float()\n",
"example.requires_grad=True\n",
"print(model(example).data)\n",
"\n",
"plt.matshow(data.data[e])\n",
"plt.colorbar()\n",
"\n",
"model.after_fc3[0][8].backward()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"tensor([[ 0.0000, -891.3044, -390.5630, -438.9474, -720.7228, -318.8155,\n",
" -617.7379, -547.4162, -415.3566, -690.9390]], device='cuda:0')\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\na/D/eWJsL2b6U9kAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "glYsZtxkakTK",
"colab_type": "code",
"outputId": "d3201094-7b39-4027-c731-867f99763c77",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 780
}
},
"source": [
"make_dot(model.after_fc3[0][4])"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<graphviz.dot.Digraph at 0x7f0390ae2080>"
],
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n -->\n<!-- Title: %3 Pages: 1 -->\n<svg width=\"266pt\" height=\"569pt\"\n viewBox=\"0.00 0.00 265.50 569.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 565)\">\n<title>%3</title>\n<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-565 261.5,-565 261.5,4 -4,4\"/>\n<!-- 139653288962872 -->\n<g id=\"node1\" class=\"node\">\n<title>139653288962872</title>\n<polygon fill=\"#caff70\" stroke=\"#000000\" points=\"166,-21 72,-21 72,0 166,0 166,-21\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-7.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SelectBackward</text>\n</g>\n<!-- 139653288961528 -->\n<g id=\"node2\" class=\"node\">\n<title>139653288961528</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"166,-78 72,-78 72,-57 166,-57 166,-78\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-64.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SelectBackward</text>\n</g>\n<!-- 139653288961528&#45;&gt;139653288962872 -->\n<g id=\"edge1\" class=\"edge\">\n<title>139653288961528&#45;&gt;139653288962872</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-56.7787C119,-49.6134 119,-39.9517 119,-31.3097\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-31.1732 119,-21.1732 115.5001,-31.1732 122.5001,-31.1732\"/>\n</g>\n<!-- 139652971834000 -->\n<g id=\"node3\" class=\"node\">\n<title>139652971834000</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"171,-135 67,-135 67,-114 171,-114 171,-135\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-121.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddmmBackward</text>\n</g>\n<!-- 139652971834000&#45;&gt;139653288961528 -->\n<g id=\"edge2\" class=\"edge\">\n<title>139652971834000&#45;&gt;139653288961528</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-113.7787C119,-106.6134 119,-96.9517 119,-88.3097\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-88.1732 119,-78.1732 115.5001,-88.1732 122.5001,-88.1732\"/>\n</g>\n<!-- 139653306222856 -->\n<g id=\"node4\" class=\"node\">\n<title>139653306222856</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"54,-206 0,-206 0,-171 54,-171 54,-206\"/>\n<text text-anchor=\"middle\" x=\"27\" y=\"-178.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (10)</text>\n</g>\n<!-- 139653306222856&#45;&gt;139652971834000 -->\n<g id=\"edge3\" class=\"edge\">\n<title>139653306222856&#45;&gt;139652971834000</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M52.6271,-170.6724C66.0188,-161.3565 82.2974,-150.0322 95.3816,-140.9302\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"97.6445,-143.6197 103.8548,-135.0358 93.647,-137.8733 97.6445,-143.6197\"/>\n</g>\n<!-- 139653306224144 -->\n<g id=\"node5\" class=\"node\">\n<title>139653306224144</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"166,-199 72,-199 72,-178 166,-178 166,-199\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-185.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">ReluBackward0</text>\n</g>\n<!-- 139653306224144&#45;&gt;139652971834000 -->\n<g id=\"edge4\" class=\"edge\">\n<title>139653306224144&#45;&gt;139652971834000</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-177.9317C119,-169.0913 119,-156.2122 119,-145.3135\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-145.2979 119,-135.2979 115.5001,-145.2979 122.5001,-145.2979\"/>\n</g>\n<!-- 139653306221400 -->\n<g id=\"node6\" class=\"node\">\n<title>139653306221400</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"171,-270 67,-270 67,-249 171,-249 171,-270\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-256.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddmmBackward</text>\n</g>\n<!-- 139653306221400&#45;&gt;139653306224144 -->\n<g id=\"edge5\" class=\"edge\">\n<title>139653306221400&#45;&gt;139653306224144</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-248.7166C119,-238.3953 119,-222.5401 119,-209.6896\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-209.3848 119,-199.3849 115.5001,-209.3849 122.5001,-209.3848\"/>\n</g>\n<!-- 139653306222072 -->\n<g id=\"node7\" class=\"node\">\n<title>139653306222072</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"54,-348 0,-348 0,-313 54,-313 54,-348\"/>\n<text text-anchor=\"middle\" x=\"27\" y=\"-320.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (49)</text>\n</g>\n<!-- 139653306222072&#45;&gt;139653306221400 -->\n<g id=\"edge6\" class=\"edge\">\n<title>139653306222072&#45;&gt;139653306221400</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M49.7416,-312.9494C64.1949,-301.7952 82.8055,-287.4327 97.0944,-276.4054\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"99.5787,-278.9093 105.357,-270.0288 95.302,-273.3676 99.5787,-278.9093\"/>\n</g>\n<!-- 139653306221120 -->\n<g id=\"node8\" class=\"node\">\n<title>139653306221120</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"166,-341 72,-341 72,-320 166,-320 166,-341\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-327.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">ReluBackward0</text>\n</g>\n<!-- 139653306221120&#45;&gt;139653306221400 -->\n<g id=\"edge7\" class=\"edge\">\n<title>139653306221120&#45;&gt;139653306221400</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-319.7166C119,-309.3953 119,-293.5401 119,-280.6896\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-280.3848 119,-270.3849 115.5001,-280.3849 122.5001,-280.3848\"/>\n</g>\n<!-- 139653306222968 -->\n<g id=\"node9\" class=\"node\">\n<title>139653306222968</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"171,-412 67,-412 67,-391 171,-391 171,-412\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-398.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddmmBackward</text>\n</g>\n<!-- 139653306222968&#45;&gt;139653306221120 -->\n<g id=\"edge8\" class=\"edge\">\n<title>139653306222968&#45;&gt;139653306221120</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-390.7166C119,-380.3953 119,-364.5401 119,-351.6896\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-351.3848 119,-341.3849 115.5001,-351.3849 122.5001,-351.3848\"/>\n</g>\n<!-- 139653306223080 -->\n<g id=\"node10\" class=\"node\">\n<title>139653306223080</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"55,-490 1,-490 1,-455 55,-455 55,-490\"/>\n<text text-anchor=\"middle\" x=\"28\" y=\"-462.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (289)</text>\n</g>\n<!-- 139653306223080&#45;&gt;139653306222968 -->\n<g id=\"edge9\" class=\"edge\">\n<title>139653306223080&#45;&gt;139653306222968</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M50.4944,-454.9494C64.7906,-443.7952 83.1989,-429.4327 97.3325,-418.4054\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"99.7741,-420.9397 105.5053,-412.0288 95.4681,-415.4208 99.7741,-420.9397\"/>\n</g>\n<!-- 139653306222240 -->\n<g id=\"node11\" class=\"node\">\n<title>139653306222240</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"164.5,-483 73.5,-483 73.5,-462 164.5,-462 164.5,-483\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-469.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">ViewBackward</text>\n</g>\n<!-- 139653306222240&#45;&gt;139653306222968 -->\n<g id=\"edge10\" class=\"edge\">\n<title>139653306222240&#45;&gt;139653306222968</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-461.7166C119,-451.3953 119,-435.5401 119,-422.6896\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-422.3848 119,-412.3849 115.5001,-422.3849 122.5001,-422.3848\"/>\n</g>\n<!-- 139653306221848 -->\n<g id=\"node12\" class=\"node\">\n<title>139653306221848</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"147.5,-561 90.5,-561 90.5,-526 147.5,-526 147.5,-561\"/>\n<text text-anchor=\"middle\" x=\"119\" y=\"-533.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (28, 28)</text>\n</g>\n<!-- 139653306221848&#45;&gt;139653306222240 -->\n<g id=\"edge11\" class=\"edge\">\n<title>139653306221848&#45;&gt;139653306222240</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M119,-525.9494C119,-516.058 119,-503.6435 119,-493.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.5001,-493.0288 119,-483.0288 115.5001,-493.0289 122.5001,-493.0288\"/>\n</g>\n<!-- 139653306224032 -->\n<g id=\"node13\" class=\"node\">\n<title>139653306224032</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"255.5,-483 182.5,-483 182.5,-462 255.5,-462 255.5,-483\"/>\n<text text-anchor=\"middle\" x=\"219\" y=\"-469.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">TBackward</text>\n</g>\n<!-- 139653306224032&#45;&gt;139653306222968 -->\n<g id=\"edge12\" class=\"edge\">\n<title>139653306224032&#45;&gt;139653306222968</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M203.8122,-461.7166C187.492,-450.1293 161.3486,-431.5675 142.398,-418.1126\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"144.1832,-415.0876 134.0031,-412.1522 140.1307,-420.7953 144.1832,-415.0876\"/>\n</g>\n<!-- 139653306221008 -->\n<g id=\"node14\" class=\"node\">\n<title>139653306221008</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"253.5,-561 184.5,-561 184.5,-526 253.5,-526 253.5,-561\"/>\n<text text-anchor=\"middle\" x=\"219\" y=\"-533.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (289, 784)</text>\n</g>\n<!-- 139653306221008&#45;&gt;139653306224032 -->\n<g id=\"edge13\" class=\"edge\">\n<title>139653306221008&#45;&gt;139653306224032</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M219,-525.9494C219,-516.058 219,-503.6435 219,-493.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"222.5001,-493.0288 219,-483.0288 215.5001,-493.0289 222.5001,-493.0288\"/>\n</g>\n<!-- 139653306222464 -->\n<g id=\"node15\" class=\"node\">\n<title>139653306222464</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"257.5,-341 184.5,-341 184.5,-320 257.5,-320 257.5,-341\"/>\n<text text-anchor=\"middle\" x=\"221\" y=\"-327.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">TBackward</text>\n</g>\n<!-- 139653306222464&#45;&gt;139653306221400 -->\n<g id=\"edge14\" class=\"edge\">\n<title>139653306222464&#45;&gt;139653306221400</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M205.5084,-319.7166C188.7865,-308.0769 161.9541,-289.3994 142.604,-275.9303\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"144.5102,-272.9927 134.3032,-270.1522 140.511,-278.7379 144.5102,-272.9927\"/>\n</g>\n<!-- 139653306221904 -->\n<g id=\"node16\" class=\"node\">\n<title>139653306221904</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"252.5,-419 189.5,-419 189.5,-384 252.5,-384 252.5,-419\"/>\n<text text-anchor=\"middle\" x=\"221\" y=\"-391.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (49, 289)</text>\n</g>\n<!-- 139653306221904&#45;&gt;139653306222464 -->\n<g id=\"edge15\" class=\"edge\">\n<title>139653306221904&#45;&gt;139653306222464</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M221,-383.9494C221,-374.058 221,-361.6435 221,-351.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"224.5001,-351.0288 221,-341.0288 217.5001,-351.0289 224.5001,-351.0288\"/>\n</g>\n<!-- 139653306223024 -->\n<g id=\"node17\" class=\"node\">\n<title>139653306223024</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"257.5,-199 184.5,-199 184.5,-178 257.5,-178 257.5,-199\"/>\n<text text-anchor=\"middle\" x=\"221\" y=\"-185.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">TBackward</text>\n</g>\n<!-- 139653306223024&#45;&gt;139652971834000 -->\n<g id=\"edge16\" class=\"edge\">\n<title>139653306223024&#45;&gt;139652971834000</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M204.1568,-177.9317C187.9155,-167.7411 163.121,-152.1838 144.4676,-140.4797\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.1991,-137.4342 135.8682,-135.084 142.4787,-143.3637 146.1991,-137.4342\"/>\n</g>\n<!-- 139653306223752 -->\n<g id=\"node18\" class=\"node\">\n<title>139653306223752</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"249.5,-277 192.5,-277 192.5,-242 249.5,-242 249.5,-277\"/>\n<text text-anchor=\"middle\" x=\"221\" y=\"-249.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> (10, 49)</text>\n</g>\n<!-- 139653306223752&#45;&gt;139653306223024 -->\n<g id=\"edge17\" class=\"edge\">\n<title>139653306223752&#45;&gt;139653306223024</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M221,-241.9494C221,-232.058 221,-219.6435 221,-209.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"224.5001,-209.0288 221,-199.0288 217.5001,-209.0289 224.5001,-209.0288\"/>\n</g>\n</g>\n</svg>\n"
},
"metadata": {
"tags": []
},
"execution_count": 115
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "4o7y0Oz6LJKS",
"colab_type": "code",
"outputId": "3548755e-f872-4aac-b234-353dac5d3b0c",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 817
}
},
"source": [
"gradients = example.grad.cpu().detach().numpy()\n",
"\n",
"plt.matshow(gradients)\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"example1 = Variable(example+example.grad*200,requires_grad=True)\n",
"print(model(example1).data)\n",
"\n",
"example_np1 = example1.cpu().detach().numpy()\n",
"\n",
"plt.matshow(example_np1)\n",
"plt.colorbar()\n",
"plt.show()\n",
"\n",
"example2 = Variable(example+example.grad*5000,requires_grad=True)\n",
"print(model(example2).data)\n",
"\n",
"example_np2 = example2.cpu().detach().numpy()\n",
"\n",
"plt.matshow(example_np2)\n",
"plt.colorbar()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"tensor([[ 0.0000, -860.7466, -358.4597, -408.6072, -697.7310, -295.5039,\n",
" -605.1486, -545.5812, -369.0107, -674.1175]], device='cuda:0')\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"tensor([[ -728.2175, -878.4034, -374.4341, -447.9939, -1018.1005, -434.4885,\n",
" -970.6201, -1209.8951, 0.0000, -944.4207]], device='cuda:0')\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nRK5CYII=\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "_mcKiPTkLLBg",
"colab_type": "code",
"outputId": "0a8335f5-a69a-445a-c353-c0549a7bd5c3",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"# performing a FGSM attack\n",
"\n",
"# Evaluating an Example\n",
"e = 10\n",
"model.eval()\n",
"example = []\n",
"example = deepcopy(data.data[e])\n",
"\n",
"if args['cuda']:\n",
" model.cuda()\n",
" example = example.cuda()\n",
"\n",
"example = Variable(example).float()\n",
"example.requires_grad=True\n",
"print(model(example).data)\n",
"\n",
"pi = torch.argmax(model(example).data)\n",
"print(pi)\n",
"\n",
"while True: \n",
" example = Variable(example).float()\n",
" example.requires_grad=True\n",
" p = torch.argmax(model(example).data)\n",
" print(p)\n",
" if pi != p:\n",
" break\n",
" \n",
" p = p.data.cpu().detach().numpy().tolist()\n",
" #print(p)\n",
" \n",
" #plt.matshow(data.data[e])\n",
" #plt.colorbar()\n",
"\n",
" model.after_fc3[0][5].backward()\n",
"\n",
" #gradients = example.grad.cpu().detach().numpy()\n",
"\n",
" #plt.matshow(gradients)\n",
" #plt.colorbar()\n",
" #plt.show()\n",
"\n",
" example = Variable(example-example.grad*10,requires_grad=True)\n",
" #print(model(example).data)\n",
"\n",
"example_np1 = example.cpu().detach().numpy()\n",
"\n",
"\n",
"plt.matshow(example_np1)\n",
"plt.colorbar()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"tensor([[ 0.0000, -891.3044, -390.5630, -438.9474, -720.7228, -318.8155,\n",
" -617.7379, -547.4162, -415.3566, -690.9390]], device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(0, device='cuda:0')\n",
"tensor(2, device='cuda:0')\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Jrt3xd53LQ-b",
"colab_type": "code",
"outputId": "80e51fa3-0b39-4578-a6c6-1c281a55bf9b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 335
}
},
"source": [
"# moving white patch over the image\n",
"sizex = 5\n",
"sizey = 5\n",
"result = []\n",
"example = []\n",
"for x in range(28-sizex-1):\n",
" result.append([])\n",
" for y in range(28-sizey-1):\n",
" # Evaluating an Example\n",
" e = 89\n",
" model.eval()\n",
" example = deepcopy(data.data[e])\n",
"\n",
" for i in range(x,x+sizex):\n",
" for j in range(y,y+sizey):\n",
" example[i][j] = torch.max(example)\n",
"\n",
" if args['cuda']:\n",
" model.cuda()\n",
" example = example.cuda()\n",
"\n",
" example = Variable(example,volatile=True).float()\n",
" prediction = model(example).data.cpu().detach().numpy().tolist()[0]\n",
" p = prediction.index(max(prediction))\n",
" result[-1].append(p)\n",
" \n",
" #plt.matshow(example.cpu())\n",
" #plt.colorbar()\n",
" #plt.show()\n",
"print(result)\n",
"\n",
"plt.matshow(np.array(result))\n",
"plt.colorbar()\n",
"plt.show"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:21: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8], [1, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8], [1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8], [1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 8, 8, 8, 8, 8, 8], [1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 4, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 4, 4, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 6, 6, 8, 8, 8, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1], [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 8, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1], [1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2], [1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2], [1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2], [1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2], [1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 8, 2, 2, 2, 2, 2, 2], [1, 1, 1, 1, 1, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 8, 2, 2, 2, 2, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 8, 1, 1, 1]]\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<function matplotlib.pyplot.show>"
]
},
"metadata": {
"tags": []
},
"execution_count": 71
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nH+N3It9dIeiTAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "kaXc32ThLTry",
"colab_type": "code",
"outputId": "5e69fb50-0992-4b06-c817-5d1b38064912",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 315
}
},
"source": [
"# moving black patch over the image\n",
"sizex = 5\n",
"sizey = 5\n",
"result = []\n",
"example = []\n",
"for x in range(28-sizex-1):\n",
" result.append([])\n",
" for y in range(28-sizey-1):\n",
" # Evaluating an Example\n",
" e = 15\n",
" model.eval()\n",
" example = deepcopy(data.data[e])\n",
"\n",
" for i in range(x,x+sizex):\n",
" for j in range(y,y+sizey):\n",
" example[i][j] = torch.min(example)\n",
"\n",
" if args['cuda']:\n",
" model.cuda()\n",
" example = example.cuda()\n",
"\n",
" example = Variable(example,volatile=True).float()\n",
" prediction = model(example).data.cpu().detach().numpy().tolist()[0]\n",
" p = prediction.index(max(prediction))\n",
" result[-1].append(p)\n",
" \n",
" #plt.matshow(example.cpu())\n",
" #plt.colorbar()\n",
" #plt.show()\n",
"print(p)\n",
"\n",
"plt.matshow(np.array(result))\n",
"plt.colorbar()\n",
"plt.show"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:21: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"3\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<function matplotlib.pyplot.show>"
]
},
"metadata": {
"tags": []
},
"execution_count": 72
},
{
"output_type": "display_data",
"data": {
"image/png": "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\njyhYEjyiYP8PmECI2qjj/zcAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment