diff --git a/TD2 Deep Learning.ipynb b/TD2 Deep Learning.ipynb index 2ecfce959ae6b947b633a758433f9bea0bf6992e..756e29ac94064bca2b1692338293a691fc8f8238 100644 --- a/TD2 Deep Learning.ipynb +++ b/TD2 Deep Learning.ipynb @@ -33,12 +33,60 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, + "id": "99b1e942", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: typing_extensions==4.4.0 in c:\\users\\coren\\anaconda3\\lib\\site-packages (4.4.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install typing_extensions==4.4.0" + ] + }, + { + "cell_type": "code", + "execution_count": 2, "id": "330a42f5", - "metadata": {}, - "outputs": [], + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: torch in c:\\users\\coren\\anaconda3\\lib\\site-packages (2.1.1)\n", + "Requirement already satisfied: torchvision in c:\\users\\coren\\anaconda3\\lib\\site-packages (0.16.1)\n", + "Requirement already satisfied: filelock in c:\\users\\coren\\anaconda3\\lib\\site-packages (from torch) (3.3.1)\n", + "Requirement already satisfied: typing-extensions in c:\\users\\coren\\anaconda3\\lib\\site-packages (from torch) (4.4.0)\n", + "Requirement already satisfied: sympy in c:\\users\\coren\\anaconda3\\lib\\site-packages (from torch) (1.9)\n", + "Requirement already satisfied: networkx in c:\\users\\coren\\anaconda3\\lib\\site-packages (from torch) (2.6.3)\n", + "Requirement already satisfied: jinja2 in c:\\users\\coren\\anaconda3\\lib\\site-packages (from torch) (2.11.3)\n", + "Requirement already satisfied: fsspec in c:\\users\\coren\\anaconda3\\lib\\site-packages (from torch) (2021.10.1)\n", + "Requirement already satisfied: requests in c:\\users\\coren\\anaconda3\\lib\\site-packages (from torchvision) (2.26.0)\n", + "Requirement already satisfied: numpy in c:\\users\\coren\\anaconda3\\lib\\site-packages (from torchvision) (1.20.0)\n", + "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in c:\\users\\coren\\anaconda3\\lib\\site-packages (from torchvision) (8.4.0)\n", + "Requirement already satisfied: MarkupSafe>=0.23 in c:\\users\\coren\\anaconda3\\lib\\site-packages (from jinja2->torch) (1.1.1)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in c:\\users\\coren\\anaconda3\\lib\\site-packages (from requests->torchvision) (2.0.4)\n", + "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\coren\\anaconda3\\lib\\site-packages (from requests->torchvision) (2021.10.8)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\coren\\anaconda3\\lib\\site-packages (from requests->torchvision) (1.26.7)\n", + "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\coren\\anaconda3\\lib\\site-packages (from requests->torchvision) (3.2)\n", + "Requirement already satisfied: mpmath>=0.19 in c:\\users\\coren\\anaconda3\\lib\\site-packages (from sympy->torch) (1.2.1)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ - "%pip install torch torchvision" + "pip install torch torchvision" ] }, { @@ -52,10 +100,74 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "b1950f0a", - "metadata": {}, - "outputs": [], + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor([[ 1.0115e+00, 7.5052e-01, -9.6181e-01, -5.3664e-01, 6.2618e-01,\n", + " 8.2216e-02, 3.1291e-01, 1.4351e+00, -8.2410e-01, 2.7672e-01],\n", + " [-1.5828e+00, 5.5392e-02, -5.5042e-01, 4.7429e-02, 7.8166e-02,\n", + " 1.1759e+00, 1.4650e+00, 1.6960e+00, -1.0824e-01, -3.4594e-01],\n", + " [-7.4771e-01, -6.0997e-01, -6.8109e-01, 6.8328e-01, -3.8176e-01,\n", + " 7.6232e-01, 8.1604e-01, 2.0818e-01, -7.3394e-02, -5.2250e-01],\n", + " [-1.7716e+00, -1.0911e+00, 2.2576e-01, -1.2185e+00, -3.7038e-03,\n", + " 1.1821e+00, 2.5461e-01, -4.2157e-01, 2.0483e+00, 1.2364e+00],\n", + " [-7.4386e-01, 3.2961e-01, -8.8317e-01, -2.3706e-01, -1.9256e+00,\n", + " 4.6707e-01, -7.7208e-01, 2.9651e-01, -7.1114e-01, 1.0362e+00],\n", + " [-3.8031e-01, 9.7487e-01, -1.7483e+00, -7.8826e-01, -1.5775e+00,\n", + " 2.1961e+00, 5.9160e-02, 7.1586e-01, -6.1349e-01, 7.4267e-01],\n", + " [ 9.9782e-01, -1.5334e-01, -5.5865e-01, 6.5693e-01, -3.2332e-01,\n", + " -1.4322e+00, -8.1908e-01, -1.2710e-01, 1.3186e-01, -1.6393e+00],\n", + " [-4.0597e-02, 1.3658e+00, 1.9238e+00, 1.9569e-01, -1.8682e-01,\n", + " -6.1063e-01, 4.2110e-01, -1.2380e-03, -9.2360e-01, 5.4487e-01],\n", + " [ 7.2833e-01, -1.2176e+00, -1.5841e+00, 1.7379e+00, -9.7716e-02,\n", + " 2.0459e-01, 2.8835e-01, 8.7665e-01, -2.3257e-01, -3.3978e-01],\n", + " [-1.1549e+00, 6.8274e-01, -1.0528e+00, 1.1817e+00, -1.9774e-01,\n", + " 1.5366e+00, 6.9489e-02, 2.1251e+00, 2.3726e-01, -5.1181e-01],\n", + " [-1.2941e-01, -3.0628e-01, 4.0324e-01, -8.2020e-01, 1.6405e-01,\n", + " -1.0891e+00, 1.4310e+00, 5.3406e-02, 2.8280e-01, -2.1925e-01],\n", + " [-1.4284e+00, 1.4183e+00, -1.5540e+00, -4.5420e-01, 5.9777e-01,\n", + " 1.9282e-01, -9.9353e-01, 3.0140e-01, 9.4746e-01, 8.6128e-01],\n", + " [-1.0323e+00, 2.5075e-01, -1.3700e+00, -1.5144e+00, 6.2467e-01,\n", + " 1.2930e-02, -1.6241e+00, -2.0167e-01, -3.0167e-01, -1.0129e-01],\n", + " [-8.3213e-01, 7.9662e-01, -1.5024e+00, 4.4560e-02, -5.1827e-01,\n", + " 2.2969e-01, 2.4363e-01, -6.7305e-01, -1.0173e+00, -1.7711e-01]])\n", + "AlexNet(\n", + " (features): Sequential(\n", + " (0): Conv2d(3, 64, kernel_size=(11, 11), stride=(4, 4), padding=(2, 2))\n", + " (1): ReLU(inplace=True)\n", + " (2): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n", + " (3): Conv2d(64, 192, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n", + " (4): ReLU(inplace=True)\n", + " (5): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n", + " (6): Conv2d(192, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (7): ReLU(inplace=True)\n", + " (8): Conv2d(384, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (9): ReLU(inplace=True)\n", + " (10): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (11): ReLU(inplace=True)\n", + " (12): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n", + " )\n", + " (avgpool): AdaptiveAvgPool2d(output_size=(6, 6))\n", + " (classifier): Sequential(\n", + " (0): Dropout(p=0.5, inplace=False)\n", + " (1): Linear(in_features=9216, out_features=4096, bias=True)\n", + " (2): ReLU(inplace=True)\n", + " (3): Dropout(p=0.5, inplace=False)\n", + " (4): Linear(in_features=4096, out_features=4096, bias=True)\n", + " (5): ReLU(inplace=True)\n", + " (6): Linear(in_features=4096, out_features=1000, bias=True)\n", + " )\n", + ")\n" + ] + } + ], "source": [ "import torch\n", "\n", @@ -95,10 +207,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "6e18f2fd", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CUDA is not available. Training on CPU ...\n" + ] + } + ], "source": [ "import torch\n", "\n", @@ -121,10 +241,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "462666a2", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Files already downloaded and verified\n", + "Files already downloaded and verified\n" + ] + } + ], "source": [ "import numpy as np\n", "from torchvision import datasets, transforms\n", @@ -193,10 +322,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "317bf070", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Net(\n", + " (conv1): Conv2d(3, 6, kernel_size=(5, 5), stride=(1, 1))\n", + " (pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n", + " (conv2): Conv2d(6, 16, kernel_size=(5, 5), stride=(1, 1))\n", + " (fc1): Linear(in_features=400, out_features=120, bias=True)\n", + " (fc2): Linear(in_features=120, out_features=84, bias=True)\n", + " (fc3): Linear(in_features=84, out_features=10, bias=True)\n", + ")\n" + ] + } + ], "source": [ "import torch.nn as nn\n", "import torch.nn.functional as F\n", @@ -242,10 +386,60 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "4b53f229", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch: 0 \tTraining Loss: 42.928791 \tValidation Loss: 36.932351\n", + "Validation loss decreased (inf --> 36.932351). Saving model ...\n", + "Epoch: 1 \tTraining Loss: 34.049266 \tValidation Loss: 32.087680\n", + "Validation loss decreased (36.932351 --> 32.087680). Saving model ...\n", + "Epoch: 2 \tTraining Loss: 30.519255 \tValidation Loss: 28.870653\n", + "Validation loss decreased (32.087680 --> 28.870653). Saving model ...\n", + "Epoch: 3 \tTraining Loss: 28.320895 \tValidation Loss: 27.957180\n", + "Validation loss decreased (28.870653 --> 27.957180). Saving model ...\n", + "Epoch: 4 \tTraining Loss: 26.634677 \tValidation Loss: 26.199909\n", + "Validation loss decreased (27.957180 --> 26.199909). Saving model ...\n", + "Epoch: 5 \tTraining Loss: 25.293965 \tValidation Loss: 25.021064\n", + "Validation loss decreased (26.199909 --> 25.021064). Saving model ...\n", + "Epoch: 6 \tTraining Loss: 24.171148 \tValidation Loss: 25.386303\n", + "Epoch: 7 \tTraining Loss: 23.196312 \tValidation Loss: 23.193623\n", + "Validation loss decreased (25.021064 --> 23.193623). Saving model ...\n", + "Epoch: 8 \tTraining Loss: 22.339510 \tValidation Loss: 22.872461\n", + "Validation loss decreased (23.193623 --> 22.872461). Saving model ...\n", + "Epoch: 9 \tTraining Loss: 21.447712 \tValidation Loss: 22.718253\n", + "Validation loss decreased (22.872461 --> 22.718253). Saving model ...\n", + "Epoch: 10 \tTraining Loss: 20.652754 \tValidation Loss: 22.601681\n", + "Validation loss decreased (22.718253 --> 22.601681). Saving model ...\n", + "Epoch: 11 \tTraining Loss: 19.850115 \tValidation Loss: 21.685125\n", + "Validation loss decreased (22.601681 --> 21.685125). Saving model ...\n", + "Epoch: 12 \tTraining Loss: 19.133761 \tValidation Loss: 21.991981\n", + "Epoch: 13 \tTraining Loss: 18.447467 \tValidation Loss: 21.740375\n", + "Epoch: 14 \tTraining Loss: 17.776176 \tValidation Loss: 21.839471\n", + "Epoch: 15 \tTraining Loss: 17.183594 \tValidation Loss: 20.982303\n", + "Validation loss decreased (21.685125 --> 20.982303). Saving model ...\n", + "Epoch: 16 \tTraining Loss: 16.579526 \tValidation Loss: 22.690393\n", + "Epoch: 17 \tTraining Loss: 16.045150 \tValidation Loss: 20.792627\n", + "Validation loss decreased (20.982303 --> 20.792627). Saving model ...\n", + "Epoch: 18 \tTraining Loss: 15.450707 \tValidation Loss: 22.595789\n", + "Epoch: 19 \tTraining Loss: 15.016575 \tValidation Loss: 21.504963\n", + "Epoch: 20 \tTraining Loss: 14.444923 \tValidation Loss: 22.116652\n", + "Epoch: 21 \tTraining Loss: 13.986546 \tValidation Loss: 22.718196\n", + "Epoch: 22 \tTraining Loss: 13.447561 \tValidation Loss: 23.326885\n", + "Epoch: 23 \tTraining Loss: 13.048955 \tValidation Loss: 22.461203\n", + "Epoch: 24 \tTraining Loss: 12.578532 \tValidation Loss: 23.226456\n", + "Epoch: 25 \tTraining Loss: 12.122553 \tValidation Loss: 23.340114\n", + "Epoch: 26 \tTraining Loss: 11.692346 \tValidation Loss: 23.154074\n", + "Epoch: 27 \tTraining Loss: 11.272735 \tValidation Loss: 23.928571\n", + "Epoch: 28 \tTraining Loss: 10.944228 \tValidation Loss: 24.593334\n", + "Epoch: 29 \tTraining Loss: 10.515208 \tValidation Loss: 26.198156\n" + ] + } + ], "source": [ "import torch.optim as optim\n", "\n", @@ -321,15 +515,30 @@ "id": "13e1df74", "metadata": {}, "source": [ - "Does overfit occur? If so, do an early stopping." + "Does overfit occur? If so, do an early stopping.\n", + "\n", + "Oui on observe qu'il y a de l'overfitting à partir de la 13ème époque car la training loss ne fait que décroître et que la validation loss elle commence à remonter. Alors, on apprend \"trop\" et le résultat du modèle sur de la donnée test extérieure à la donnée d'entraînement se dégrade : c'est l'overfitting." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "d39df818", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAEWCAYAAABv+EDhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAoqklEQVR4nO3dd3hc5Zn38e+t4m7JapYl2ZaQG+4Gy8amONhgQoc0yhJCCKFkaXnDpu6+Cdk32ZRNSAgJBBJI6CULhB66MQbbYIx7701WsS3LcpFV7vePOWKFItmSrNFoZn6f65pLM2fmnLkfja3fPOc55znm7oiISPxJiHQBIiISGQoAEZE4pQAQEYlTCgARkTilABARiVMKABGROKUAkE5nZtlmNtvM9pnZryNdT6SZWU8ze8HM9prZ3zrxfWeZ2ddb+Vo3s6Hhrkk6lwJAWsXMNpnZQTOrMrMSM/uLmfVp5+auA8qBFHe/rQPLjFZfBLKBDHf/UtMnzez24A/wLU2WfzNYfnsn1dksM7vEzN43swNmNiuStUjbKACkLS5w9z7AicAk4D/asrKFJAD5wApvx1mIZpbU1nWiQD6wxt1rj/CaNcBVTZZ9JVgeabuB3wI/j3Ad0kYKAGkzd98OvAKMATCzKcE3wAozW2xmpze8NtjN8FMzew84ADxE6A/Zd4LexJlm1t3MfmtmO4Lbb82se7D+6Wa2zcy+a2Y7gb8E34j/ZmaPBLuRlprZcDP7vpmVmtlWMzurUQ1Xm9nK4LUbzOz6Rs81bP+2YN1iM7u60fM9zezXZrY52EUzx8x6Hq3dTZnZyOB3UWFmy83swmD5j4EfApcGv49rWtjEh0AvMxsdrDca6Bksb/w+15rZOjPbbWbPm1luo+dmmtmqoB2/B6zJul8Lfk97zOxVM8tvqT2Nufsb7v4UsKM1r5euQwEgbWZmg4BzgY/NLA94CfgJkA78G/C0mWU1WuVKQrt9+gJXA48Cv3T3Pu7+BvDvwBRgAjAemMynexcDgm3nB9sBuAB4GEgDPgZeJfTvOQ/4T+DeRuuXAucDKcH7/8bMTmyy/dRg3WuAP5hZWvDcr4CJwMlBDd8B6lvZ7obfVzLwAvAa0B+4GXjUzEa4+4+A/wKeDH4f9zddv5GHCX3rh1CIPtTkfWYAPwMuAXKAzcATwXOZwNOEfq+ZwHrglEbrXgz8APg8kAW8Czx+hFokFri7brod9QZsAqqACkJ/WO4m9A30u8DDTV77KnBVcH8W8J9Nnv8r8JNGj9cD5zZ6/FlgU3D/dOAw0KPR87cDrzd6fEFQW2LwuC/gQL8W2vJ34NZG2z8IJDV6vpRQICUEz41vZhtHbHeT5acBO4GERsseB25v1J5HjvC7vx14BBgMbAGSg5+DguUN27mfULA2rNcHqAEKCAXHvEbPGbAN+Hrw+BXgmkbPJxDqseUHjx0YepR/I18HZkX636purb+pByBtcbG793P3fHf/V3c/SOhb+ZeCXRsVZlYBnEroG2iDrUfZbi6hUGmwOVjWoMzdDzVZp6TR/YNAubvXNXoMoT+AmNk5ZjYv2C1SQaj3ktlo/V3+6f3vB4J1M4EehAKqqda0u3H7trp7fZM25jXz2ha5+xZgHaEew1p3b/p7/dTv0d2rgF3B++TS6HPw0F/sxuvnA3c2astuQiHRpholusTigJp0rq2Evglfe4TXHG2wdwehP0DLg8eD+fT+5HZPWRuMJTxN6Bvwc+5eY2Z/p8n+7xaUA4eAIcDiJs+1pt0NdgCDzCyhUQgMpn0DuA8BDxDaldXc+3yy397MegMZwHagmFCPoeE5a/yYUHt+6u6PtqMmiVLqAcixegS4wMw+a2aJZtYjGFgd2IZtPA78h5llBfuqfxhstyN0A7oDZUCtmZ0DnHXkVUKCP9YPAHeYWW7QvqlBqLSl3fOB/YQGvpODweILCPbPt9GTQf1PNfPcY8DVZjYhqPG/gPnuvonQeMVoM/u8hY6kuoXQ2EeDPwLfbzTInGpm/3RIanMa2k/oC2VC8LtIbkfbpJMpAOSYBLshLiI0gFhG6Jvkt2nbv62fAAuAJcBSYGGwrCPq20foj91TwB7gX4Dn27CJfwtq+pDQbpFfENqX3+p2u/th4ELgHEK9iruBr7j7qna056CHjro52MxzbwL/l1CPp5hQz+Wy4Lly4EuEDtXcBQwD3mu07rNB254ws0pgWVBva1xJaLfbPYTGOw4Cf2pr26TzWWhXoIiIxBv1AERE4pQCQEQkTikARETilAJARCRORcV5AJmZmV5QUBDpMkREospHH31U7u7/ND1Jg6gIgIKCAhYsWBDpMkREooqZbT7S89oFJCISpxQAIiJxSgEgIhKnFAAiInFKASAiEqcUACIicUoBICISp2I6AN5eVcrds9ZFugwRkS4ppgPg/fXl/PaNtdTU1R/9xSIicSamA2B0biqHa+tZX1YV6VJERLqcmA6AMXkpACzfXhnhSkREup6YDoDjMvvQMzmRZTv2RroUEZEuJ6YDIDHBGJnTVz0AEZFmxHQAAIzJS2VFcSX19br2sYhIYzEfAKNzU6iqrmXz7gORLkVEpEuJgwBIBWC5xgFERD4l5gNgeHZfkhONZRoHEBH5lJgPgG5JCQzP7qsegIhIEzEfAABjclNZvqMSdw0Ei4g0iIsAGJ2Xwu79hyneeyjSpYiIdBnxEQDBQPCy7doNJCLSIC4CYGROX8xg+Q4NBIuINIiLAOjVLYkhWX00ECwi0kjYA8DMEs3sYzN7MXicbmavm9na4GdauGsAGJOboh6AiEgjndEDuBVY2ejx94A33X0Y8GbwOOxG56ZSvPcQ5VXVnfF2IiJdXlgDwMwGAucBf260+CLgweD+g8DF4ayhweiGqaHVCxARAcLfA/gt8B2g8SW5st29GCD42b+5Fc3sOjNbYGYLysrKjrmQ0TmaEkJEpLGwBYCZnQ+UuvtH7Vnf3e9z9yJ3L8rKyjrmelJ7JTMovaemhhYRCSSFcdunABea2blADyDFzB4BSswsx92LzSwHKA1jDZ8yJjdVF4cREQmErQfg7t9394HuXgBcBrzl7l8GngeuCl52FfBcuGpoanRuCpt3HaDyUE1nvaWISJcVifMAfg7MNLO1wMzgcacYnRcaB1ihgWARkbDuAvqEu88CZgX3dwFndMb7NjXmk2sDVDKlMCMSJYiIdBlxcSZwg6y+3enftzvLNSeQiEh8BQCErhGsgWARkTgMgNG5KawrreLg4bpIlyIiElFxGACp1Dus2qmBYBGJb3EXAGOCKSGW6UggEYlzcRcAef16ktozmRUaBxCROBd3AWBmjMlLYZmmhBCROBd3AQChcYDVO/dRU1d/9BeLiMSoOA2AFA7X1bO2pCrSpYiIRExcBsCYYEoInQ8gIvEsLgPguIze9OqWqDmBRCSuxWUAJCQYo3JSWKYpIUQkjsVlAEBoHGBFcSV19R7pUkREIiJ+AyAvlQOH69i0a3+kSxERiYi4DYCGqaG1G0hE4lXcBsCw7D50S0zQQLCIxK24DYDkxARGDOirQ0FFJG7FbQBAaCB42fZK3DUQLCLxJ74DIC+VvQdr2F5xMNKliIh0urgOgDG5wdTQmhhOROJQXAfA8QNSSDBYrnEAEYlDYQsAM+thZh+Y2WIzW25mPw6W325m281sUXA7N1w1HE3PbokM7d+H5ToSSETiUFIYt10NzHD3KjNLBuaY2SvBc79x91+F8b1bbUxuKnPWlUe6DBGRThe2HoCHNMy3nBzcutzhNqNyUyjdV03pvkORLkVEpFOFdQzAzBLNbBFQCrzu7vODp24ysyVm9oCZpYWzhqNpmBpau4FEJN6ENQDcvc7dJwADgclmNga4BxgCTACKgV83t66ZXWdmC8xsQVlZWdhqHBUcCbRcU0KISJzplKOA3L0CmAWc7e4lQTDUA38CJrewzn3uXuTuRVlZWWGrLaVHMvkZvdQDEJG4E86jgLLMrF9wvydwJrDKzHIavexzwLJw1dBaY3JTNSWEiMSdcB4FlAM8aGaJhILmKXd/0cweNrMJhAaENwHXh7GGVhmVm8JLS4vZe6CG1F7JkS5HRKRThC0A3H0JcEIzy68M13u21ycDwcV7OXlIZoSrERHpHHF9JnCDsXmpJBi8ubI00qWIiHQaBQCQ3rsbF03I47H5W9hVVR3pckREOoUCIHDj9KEcqq3j/jkbI12KiEinUAAEhvbvw7ljc3ho7mYqDhyOdDkiImGnAGjkpulDqaqu5S/vbYp0KSIiYacAaGRkTgozR2Xzl/c2su9QTaTLEREJKwVAE7fMGEbloVoemrs50qWIiISVAqCJsQNTOX1EFvfP2ciBw7WRLkdEJGwUAM24ecYwdu8/zKPztkS6FBGRsFEANGNifhqnDM3g3tkbOFRTF+lyRETCQgHQgpumD6O8qponP9wa6VJERMJCAdCCKYXpTCpI44/vrKe6Vr0AEYk9CoAWmBk3zxhG8d5DPP3R9kiXIyLS4RQAR3DasEzGD+rH3bPWUVNXH+lyREQ6lALgCMyMW2YMZdueg/z9Y/UCRCS2KACOYsbx/RmVk8Lds9ZTV++RLkdEpMMoAI4iNBYwlI3l+3lxyY5IlyMi0mEUAK3w2dEDGJ7dhz+8vY569QJEJEYoAFohIcG4cfpQ1pRU8erynZEuR0SkQygAWun8cbkUZvbmrrfW4a5egIhEPwVAKyUmGP86fSgriit5a5WuHSwi0U8B0AYXTchlYFpPfvPGGp0XICJRL2wBYGY9zOwDM1tsZsvN7MfB8nQze93M1gY/08JVQ0dLTkzg++eMZNn2Sn728qpIlyMickzC2QOoBma4+3hgAnC2mU0Bvge86e7DgDeDx1HjvHE5fPXkAh54byPPLdLJYSISvcIWAB5SFTxMDm4OXAQ8GCx/ELg4XDWEy7+fN5Ki/DS+9/RSVu/cF+lyRETaJaxjAGaWaGaLgFLgdXefD2S7ezFA8LN/C+teZ2YLzGxBWVlZOMtss+TEBO6+4kT69Ejihkc+olLXDxaRKBTWAHD3OnefAAwEJpvZmDase5+7F7l7UVZWVthqbK/+KT24+4oT2br7ALc9tVgniIlI1OmUo4DcvQKYBZwNlJhZDkDwM2qPqZxUkM4Pzh3J6ytKuOed9ZEuR0SkTcJ5FFCWmfUL7vcEzgRWAc8DVwUvuwp4Llw1dIarTyngwvG5/Oq11cxe07V2VYmIHEk4ewA5wNtmtgT4kNAYwIvAz4GZZrYWmBk8jlpmxs+/MJbh/fty6xMfs23PgUiXJCLSKhYN0xoUFRX5ggULIl3GEW0s38+Fd82hILM3f7thKj2SEyNdkojEOTP7yN2LWnpeZwJ3kOMye/PrS8azdPtefvTc8kiXIyJyVAqADnTW6AHcOH0ITy7YyhMfbIl0OSIiR6QA6GDfmjmC04Zl8sPnlrN4a0WkyxERaZECoIMlJhh3XnYCWX2786+PLmRXVXWkSxIRaZYCIAzSe3fjj1+eSHlVNVf8eT7lCgER6YIUAGEydmAq9181iU279nP5ffMo3Xco0iWJiHxKqwLAzHqbWUJwf7iZXWhmyeEtLfqdOiyTv3x1MtsrDnLZffMoqVQIiEjX0doewGygh5nlEZrC+Wrgr+EqKpZMHZLBg1+bTMneQ1x671x2VByMdEkiIkDrA8Dc/QDweeAud/8cMCp8ZcWWSQXpPHTNSeyqOsyl983V2cIi0iW0OgDMbCpwBfBSsCwpPCXFpon5aTz89ZPYe6CGS++dx5ZdCgERiazWBsA3ge8Dz7r7cjMrBN4OW1UxasKgfjx27RT2H67l0vvmsql8f6RLEpE41qoAcPd33P1Cd/9FMBhc7u63hLm2mDQmL5XHvj6F6tp6Lr1vLuvLqo6+kohIGLT2KKDHzCzFzHoDK4DVZvbt8JYWu0blpvD4tVOoq3cuvXcea0t0WUkR6Xyt3QU0yt0rCV2/92VgMHBluIqKByMG9OWJ66ZgBpfdN49VOysjXZKIxJnWBkBycNz/xcBz7l5D6ALvcgyG9u/Lk9dNITkxgUv+OJc3V5ZEuiQRiSOtDYB7gU1Ab2C2meUD+sraAQqz+vC3G6YyKL0X1zy4gDteW02dri8sIp2g3ReEMbMkd6/t4HqaFQ0XhDlWh2rq+L9/X8bfPtrGacMy+d1lJ5DWu1ukyxKRKNYhF4Qxs1Qzu8PMFgS3XxPqDUgH6ZGcyC+/OI6ffX4s8zfs5vy75rBkW0WkyxKRGNbaXUAPAPuAS4JbJfCXcBUVr8yMyycP5m83TAXgi/fM1YVlRCRsWhsAQ9z9R+6+Ibj9GCgMZ2HxbPygfrxw86mcVJjO955Zynf+ZzGHauoiXZaIxJjWBsBBMzu14YGZnQJoVrMwSu/djb9ePZmbZwzlqQXb+OIf32frbk0fISIdp7UBcAPwBzPbZGabgN8D1x9pBTMbZGZvm9lKM1tuZrcGy283s+1mtii4nXtMLYhhiQnGbWeN4M9fKWLzrgOcf9cc3l5dGumyRCRGtHYqiMXuPh4YB4xz9xOAGUdZrRa4zd1HAlOAG82sYQbR37j7hOD2cnuLjxdnjsrmxZtPJbdfT7721w/5yYsrOHhYu4RE5Ni06Ypg7l4ZnBEM8K2jvLbY3RcG9/cBK4G8dlUp5Gf05plvnMwVJw3mz3M2cvads5m7flekyxKRKHYsl4S0Vr/QrAA4AZgfLLrJzJaY2QNmlnYMNcSVnt0S+cnFY3n82ikAXP6nefzg2aXsO1QT4cpEJBodSwC06gwyM+sDPA18M+g93AMMASYAxcCvW1jvuobzDsrKyo6hzNgzdUgG/7h1GteedhxPfLCFs34zm7dXaWxARNrmiGcCm9k+mv9Db0BPdz/iRWGC+YNeBF519zuaeb4AeNHdxxxpO/FwJnB7fbxlD999eglrSqr43Al5/PD8UTqDWESAYzwT2N37untKM7e+rfjjb8D9wMrGf/zNLKfRyz4HLGtdU6Q5JwxO44WbT+WWM4bxwuIdzPzNO7y0pJj2TvEhIvHjWHYBHc0phKaMntHkkM9fmtlSM1sCTAf+TxhriAvdkxL51szhPH/TqeSk9uTGxxZywyMfUVp5KNKliUgX1u7J4DqTdgG1Xm1dPX+es5E7Xl9D98QEbpoxlK+eUkD3pMRIlyYinaxDJoOT6JGUmMANnxnCP249jUnHpfOzV1Yx847ZvLJUu4VE5NMUADGqMKsPD3x1Eg9fM5meyYl849GFXHrfPJZu2xvp0kSki1AAxLjThmXx0i2n8tPPjWF9aRUX/mEOtz21mBKND4jEPQVAHEhKTOCKk/J5+9unc920Ql5YvIPT/3sWd76xVlNKiMQxBUAcSemRzPfPGckb3/oM04/P4jdvrGH6r2bxzMJt1OsylCJxRwEQhwZn9OLuKyby1PVTyerbnW89tZhz7nyXl5YUKwhE4ogCII5NPi6d5248hTsvm0BtfT03PraQs++czYtLdigIROKAzgMQAOrqnReX7OCut9axrrSK4dl9uHnGMM4dm0NiQqvn/RORLuRo5wEoAORT6uqdl5YW87s317KutIph/ftw8xnDOE9BIBJ1FADSLnX1zstBEKwtrWJo/z7cPGMo54/LVRCIRAmdCSztkphgXDA+l1e/OY3f/8sJJBjc+sQiPvvb2RosFokRCgA5ooQE4/xxufzj1lAQANz42ELOv2sOb60q0fQSIlFMASCt0hAEr35zGndcMp6q6lq+9tcFfOGe93l/XXmkyxORdtAYgLRLTV09f1uwjbveWkvx3kOcPCSD284awcR8XeFTpKvQILCE1aGaOh6bv4W7Z62jvOow00dkcdtZIxiTlxrp0kTingJAOsX+6loenLuJe9/ZwN6DNZw7dgA3TR/GqNyUSJcmErcUANKp9h6s4f45G3lgzkaqqmuZNjyLG6YVMnVIBqGrhIpIZ1EASETsPVDDI/M385f3NlFeVc24galcP20IZ48ZoPMIRDqJAkAi6lBNHc8s3M6f3t3AxvL95Gf04trTCvnixIH0SNZlKkXCSQEgXUJdvfP6ip3c884GFm+tIKN3N756cgFXTs2nX69ukS5PJCYpAKRLcXfmb9zNve+s5+3VZfTqlshlkwbz9dOOI7dfz0iXJxJTFADSZa3aWcl972zg+cU7ALhoQh43fKaQYdl9I1yZSGyIWACY2SDgIWAAUA/c5+53mlk68CRQAGwCLnH3PUfalgIgtm2vOMif393AEx9s5WBNHWeO7M83Th/CxPz0SJcmEtUiGQA5QI67LzSzvsBHwMXAV4Hd7v5zM/sekObu3z3SthQA8WHP/sM8OHcTf31/ExUHaphUkMY3Th/C9BH9dQipSDt0mV1AZvYc8Pvgdrq7FwchMcvdRxxpXQVAfDlwuJYnP9zKn2ZvYMfeQ4zI7sv1nynkgvG5JCdq+iqR1uoSAWBmBcBsYAywxd37NXpuj7v/0wQyZnYdcB3A4MGDJ27evDnsdUrXUlNXzwuLd/DHd9azpqSKvH49uXJqPpcUDSK9t44cEjmaiAeAmfUB3gF+6u7PmFlFawKgMfUA4lt9vfP26lLunb2BDzbupltSAuePy+ErUwuYMKhfpMsT6bKOFgBJYX7zZOBp4FF3fyZYXGJmOY12AZWGswaJfgkJxhkjszljZDard+7j4XmbeHbhdp5ZuJ1xA1P58pR8LhyfqxPLRNoonIPABjxIaMD3m42W/zewq9EgcLq7f+dI21IPQJrad6iGZz/ezsNzN7O2tIrUnslcUjSQL0/JJz+jd6TLE+kSInkU0KnAu8BSQoeBAvwAmA88BQwGtgBfcvfdR9qWAkBa4u7M27CbR+Zt5h/Ld1JX73xmeBZXTsnn9BFZJGnQWOJYxMcAOoICQFqjpPIQj83fwuMfbKF0XzU5qT24pGgQl04apLOMJS4pACTu1NTV8+bKUh7/YAuz15ZhwOkj+nP55MFMV69A4ogCQOLa1t0HePLDrTy1YCul+6rJTunOpUWDuGTSIAam9Yp0eSJhpQAQIdQreGtVqFfwzpoyAD4zPIvLJw9mxvH9dYKZxCQFgEgT2/Yc4KkPt/Lkgq2UVFaT1bc7X5w4kEuLBlGQqSOIJHYoAERaUFtXz9ury3jyw628vbqUunpnSmE6l00azNljBui8Aol6CgCRViipPMT/fLSNJz/cypbdB0jpkcTFJ+Rx6aRBjM5NjXR5Iu2iABBpg/p6Z97GXTz54VZeWbaTw7X1jM1L5dJJg7hwQi4pPZIjXaJIqykARNqp4sBh/v7xdp74cCurdu6jW1IC00dkccH4XM44Ppue3bSLSLo2BYDIMXJ3lmzby7Mfb+elpcWU7aumV7dEZo7K5oJxuUwbnkW3JB1FJF2PAkCkA9XVO/M37uKFxcW8sqyYigM1pPRI4pwxOVwwPpcphek60Uy6DAWASJjU1NUzZ105LyzewWvLS6iqriWzTzfOHZvDRRNyOXFwmq5kJhGlABDpBIdq6pi1uowXFu/gjZUlVNfWk9evJxdOyOWiCbkcPyAl0iVKHFIAiHSyqupaXl+xk+cW7eDdteXU1Tsjsvty4YRcLhyfy6B0TUEhnUMBIBJBu6qqeXlpMc8v3sGHm/YAcOLgflw0IY/zxuWQ2ad7hCuUWKYAEOkitu05wAuLi3lu0XZW7dxHYoIxtTCDz47O5sxR2eSkaspq6VgKAJEuaE3JPp5btJ1Xlu1kQ9l+AMYNTGXmyGxmjs5mRHZfDSDLMVMAiHRx60qreH1FCa+t2MnHWyoAGJzei7NGZTNzVDZFBekkJigMpO0UACJRpLTyEG+sLOX1FTt5b90uDtfVk9YrmTNGZnPe2BxOHZapqaul1RQAIlGqqrqW2WvKeG35Tt5cVcq+Q7X065XMOWNyuHB8LpOPU89AjkwBIBIDqmvreHdNOS8s2cHrK0o4cLiO/n27c/64XC4Yn8OEQf00ZiD/RAEgEmMOHK7lrVWlPL9oB7NWl3G4rp5B6T25YFwuF4zP5fgBGkCWkIgFgJk9AJwPlLr7mGDZ7cC1QFnwsh+4+8tH25YCQKR5lYdqeG15Cc8v3sF760InneVn9OLkIRlMKcxgamEG/VN6RLpMiZBIBsA0oAp4qEkAVLn7r9qyLQWAyNHtqqrm5WU7eWd1KfM37mbfoVoACrN6fxIGUwozyOqrk8/ixdECIClcb+zus82sIFzbF5FPy+jTnSun5HPllHzq6p0VOyqZu6GceRt28/yiHTw2fwsAQ/v3YWphBlOHZDBteBZ9uoftz4B0cZH45G8ys68AC4Db3H1PBGoQiWmJCcbYgamMHZjKddOGUFtXz/IdlczdsIt5G3bxzMJtPDxvM92SEvjM8CzOG5vDGSP701dXPIsrYR0EDnoALzbaBZQNlAMO/D8gx92/1sK61wHXAQwePHji5s2bw1anSLypqatn0dYKXlm6k5eXFrOz8hDdEhOYNjyTc8fmcOaobF3+MgZE9CigpgHQ2uea0hiASPjU1zsfb93DS0t28sqyYor3hsLgtGH/GwapPRUG0ShiYwAtFJPj7sXBw88Byzrz/UXknyUkGBPz05mYn85/nDeSj7dW8PLSYl5ZWsybq0pJTjSmDsnktKGZnDI0k+MH9CVBJ6DFhHAeBfQ4cDqQCZQAPwoeTyC0C2gTcH2jQGiRegAina++3lm0rYKXlxTz9upS1geT1mX26cbJQzI5dWgmpwzLJK+fZjHtqnQimIh0iB0VB3lvXTnvrStnzrpdlFdVA1CY2ZtTgt7B1CEZ2l3UhSgARKTDuTtrSqp4d20Z760rZ/7G3Rw4XEeCwaSCdD47egAzR2Xr6mcRpgAQkbA7XBs6qmj2mjJeX1HC6pJ9AIzKSeGs0dmcNWoAI3M0RUVnUwCISKfbVL7/k2scLNi8B3cYmNaTs0YN4KzR2RTlp5Gkaa3DTgEgIhFVtq+aN1eW8NqKEuasK+dwbT3pvbsxbVgmRQXpFBWkMby/jiwKBwWAiHQZDdc4eHX5Tt5fv4uyfaGB5L49kpiYn0ZRfhpFBemMH9iPnt0SI1xt9OtS5wGISHzr0z2Jc8fmcO7YHNydLbsPsGDTHhZs3sOCTbuZtTo0UXBSgjE6L5Wi/DQmFaQxpTCDfr26Rbj62KMegIh0GRUHDrNwy55QKGzaw+JtFVTX1pNgMHZgP6YNy+S0YVmcMLifLo3ZCtoFJCJR63BtPUu2VTBnXTmz15SxaGsF9R7qSUwpzGDa8FAgFGT00hFGzVAAiEjM2Huwhrnrd/Hu2jJmry1j6+6DQOgIo9OGZXHasEymFmaQ1lu7i0ABICIxbPOu/cxeW867a8p4f/0uqqprMYMxuamcMjQ0XUVRQRo9kuNzQFkBICJxoaYu2F20dhfvrSvn4617qKlzuiUlUJSf9kkgjMlLJTFODjlVAIhIXNpfXcsHm3bz3tpy5qwrZ9XO0NnJKT2SmDokuETmkIyYPgdBh4GKSFzq3T2J6SP6M31EfwDKq6p5f/2uTwLh1eUlAKT1Suak4zKYUpge84HQlHoAIhKXtu4+wPyNu5kXXCZz257QgHIsBYJ6ACIizRiU3otB6b344sSBwD8Hwj+W7wRCgTCpIJ3Jx6UzpTCDkTkpMTOGoAAQEaH5QJi3YRcfbNzN/I27eW1FaJdR3+5JFBWkMfm4DE4qTGdsXmrUnpSmABARaUZDIHypaBAAxXsPfhIG8zfs4u1g2oqeyYlMzE9jUkE64wamMjo3hf4pPSJZeqtpDEBEpB3Kq6r5YONuPgh2G60u2UfDn9PMPt0ZnZsS3FIZlZtCfnqvTh9L0BiAiEgYZPbp/snEdgCVh2pYuaOS5Z/c9vLeunJq60Op0Kd7EiNz+jI6N5Xxg1I56bgMciN8PWX1AEREwqS6to61JVUs37H3k2BYWVzJgcN1AORn9OKkYHB5SmHHB4J6ACIiEdI9KZExeamMyUv9ZFldvbN6575PjjZ6dXkJTy3YBsDg9F6hw08LMzipMIO8MPcQ1AMQEYmg+npnVaNA+GDTbioO1AAwKL0nv/jCOE4ektmubUesB2BmDwDnA6XuPiZYlg48CRQAm4BL3H1PuGoQEenqEhKMUbkpjMpN4WunHkd9vbO65H8DYUAYjygKWw/AzKYBVcBDjQLgl8Bud/+5mX0PSHP37x5tW+oBiIi03dF6AGE7e8HdZwO7myy+CHgwuP8gcHG43l9ERI6ss09fy3b3YoDgZ/+WXmhm15nZAjNbUFZW1mkFiojEiy57/rK73+fuRe5elJWVFelyRERiTmcHQImZ5QAEP0s7+f1FRCTQ2QHwPHBVcP8q4LlOfn8REQmELQDM7HFgLjDCzLaZ2TXAz4GZZrYWmBk8FhGRCAjbeQDufnkLT50RrvcUEZHW67KDwCIiEl5RMRWEmZUBm9u5eiZQ3oHldAWx1qZYaw/EXptirT0Qe21qrj357t7iYZRREQDHwswWHOlMuGgUa22KtfZA7LUp1toDsdem9rRHu4BEROKUAkBEJE7FQwDcF+kCwiDW2hRr7YHYa1OstQdir01tbk/MjwGIiEjz4qEHICIizVAAiIjEqZgOADM728xWm9m64AI0Uc3MNpnZUjNbZGZReYUcM3vAzErNbFmjZelm9rqZrQ1+pkWyxrZooT23m9n24HNaZGbnRrLGtjCzQWb2tpmtNLPlZnZrsDyaP6OW2hSVn5OZ9TCzD8xscdCeHwfL2/wZxewYgJklAmsIzTm0DfgQuNzdV0S0sGNgZpuAIneP2pNXOvJKcV1BC+25Hahy919Fsrb2CGbpzXH3hWbWF/iI0IWbvkr0fkYttekSovBzMjMDert7lZklA3OAW4HP08bPKJZ7AJOBde6+wd0PA08QuiKZRFCsXSmuhfZELXcvdveFwf19wEogj+j+jFpqU1TykKrgYXJwc9rxGcVyAOQBWxs93kYUf+gBB14zs4/M7LpIF9OBWn2luChyk5ktCXYRRc3uksbMrAA4AZhPjHxGTdoEUfo5mVmimS0idE2V1929XZ9RLAeANbMs2vd3neLuJwLnADcGux+k67kHGAJMAIqBX0e0mnYwsz7A08A33b0y0vV0hGbaFLWfk7vXufsEYCAw2czGtGc7sRwA24BBjR4PBHZEqJYO4e47gp+lwLOEdnPFgpi6Upy7lwT/QeuBPxFln1OwX/lp4FF3fyZYHNWfUXNtivbPCcDdK4BZwNm04zOK5QD4EBhmZseZWTfgMkJXJItKZtY7GMDCzHoDZwHLjrxW1IipK8U1/CcMfI4o+pyCAcb7gZXufkejp6L2M2qpTdH6OZlZlpn1C+73BM4EVtGOzyhmjwICCA7r+i2QCDzg7j+NbEXtZ2aFhL71Q+hCPo9FY3uCK8WdTmjq2hLgR8DfgaeAwcAW4EvuHhUDqy2053RCuxUc2ARc37Bvtqszs1OBd4GlQH2w+AeE9plH62fUUpsuJwo/JzMbR2iQN5HQl/in3P0/zSyDNn5GMR0AIiLSsljeBSQiIkegABARiVMKABGROKUAEBGJUwoAEZE4pQAQAcysrtGskIs6cvZYMytoPFuoSFeRFOkCRLqIg8Gp9SJxQz0AkSMIrsHwi2D+9Q/MbGiwPN/M3gwmEnvTzAYHy7PN7NlgrvbFZnZysKlEM/tTMH/7a8EZnCIRpQAQCenZZBfQpY2eq3T3ycDvCZ1ZTnD/IXcfBzwK/C5Y/jvgHXcfD5wILA+WDwP+4O6jgQrgC2FtjUgr6ExgEcDMqty9TzPLNwEz3H1DMKHYTnfPMLNyQhcZqQmWF7t7ppmVAQPdvbrRNgoITdk7LHj8XSDZ3X/SCU0TaZF6ACJH5y3cb+k1zaludL8Ojb9JF6AAEDm6Sxv9nBvcf5/QDLMAVxC6LB/Am8A34JOLdqR0VpEibaVvISIhPYMrLDX4h7s3HAra3czmE/rCdHmw7BbgATP7NlAGXB0svxW4z8yuIfRN/xuELjYi0uVoDEDkCIIxgCJ3L490LSIdTbuARETilHoAIiJxSj0AEZE4pQAQEYlTCgARkTilABARiVMKABGROPX/Ac67MmTh/7j7AAAAAElFTkSuQmCC\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "import matplotlib.pyplot as plt\n", "\n", @@ -350,10 +559,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "e93efdfc", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test Loss: 21.125983\n", + "\n", + "Test Accuracy of airplane: 69% (696/1000)\n", + "Test Accuracy of automobile: 74% (745/1000)\n", + "Test Accuracy of bird: 51% (510/1000)\n", + "Test Accuracy of cat: 41% (415/1000)\n", + "Test Accuracy of deer: 60% (603/1000)\n", + "Test Accuracy of dog: 49% (499/1000)\n", + "Test Accuracy of frog: 69% (693/1000)\n", + "Test Accuracy of horse: 68% (683/1000)\n", + "Test Accuracy of ship: 75% (754/1000)\n", + "Test Accuracy of truck: 75% (751/1000)\n", + "\n", + "Test Accuracy (Overall): 63% (6349/10000)\n" + ] + } + ], "source": [ "model.load_state_dict(torch.load(\"./model_cifar.pt\"))\n", "\n", @@ -434,6 +664,359 @@ "Compare the results obtained with this new network to those obtained previously." ] }, + { + "cell_type": "code", + "execution_count": 10, + "id": "a294c08a", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Net_2(\n", + " (conv1): Conv2d(3, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (pool1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n", + " (conv2): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (pool2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n", + " (conv3): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", + " (pool3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n", + " (fc1): Linear(in_features=1024, out_features=512, bias=True)\n", + " (dropout1): Dropout(p=0.5, inplace=False)\n", + " (fc2): Linear(in_features=512, out_features=64, bias=True)\n", + " (dropout2): Dropout(p=0.6, inplace=False)\n", + " (fc3): Linear(in_features=64, out_features=10, bias=True)\n", + ")\n" + ] + } + ], + "source": [ + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "\n", + "# define the CNN architecture\n", + "# we modify 1st code to meet specifications\n", + "\n", + "class Net_2(nn.Module):\n", + " def __init__(self):\n", + " super(Net_2, self).__init__()\n", + " # convolutional layers\n", + " self.conv1 = nn.Conv2d(in_channels=3, out_channels = 16, kernel_size=3, padding=1)\n", + " self.pool1 = nn.MaxPool2d(2, 2)\n", + " self.conv2 = nn.Conv2d(in_channels=16, out_channels = 32, kernel_size=3, padding=1)\n", + " self.pool2 = nn.MaxPool2d(2, 2)\n", + " self.conv3 = nn.Conv2d(in_channels=32, out_channels = 64, kernel_size=3, padding=1)\n", + " self.pool3 = nn.MaxPool2d(2, 2)\n", + "\n", + " # fully connected Layers\n", + " self.fc1 = nn.Linear(in_features=64 * 4 * 4, out_features=512)\n", + " self.dropout1 = nn.Dropout(p = 0.5)\n", + " self.fc2 = nn.Linear(in_features=512, out_features=64)\n", + " self.dropout2 = nn.Dropout(p = 0.6)\n", + " self.fc3 = nn.Linear(64, 10)\n", + "\n", + " def forward(self, x):\n", + " x = self.pool1(F.relu(self.conv1(x)))\n", + " x = self.pool2(F.relu(self.conv2(x)))\n", + " x = self.pool3(F.relu(self.conv3(x)))\n", + " x = x.view(-1, 64 * 4 * 4) # view --> linearize convNN layer\n", + " x = self.dropout1(F.relu(self.fc1(x)))\n", + " x = self.dropout2(F.relu(self.fc2(x)))\n", + " x = self.fc3(x)\n", + " return x\n", + "\n", + "\n", + "# create a complete CNN\n", + "model_2 = Net_2()\n", + "print(model_2)\n", + "# move tensors to GPU if CUDA is available\n", + "if train_on_gpu:\n", + " model.cuda()" + ] + }, + { + "cell_type": "markdown", + "id": "1efab63b", + "metadata": {}, + "source": [ + "Loss function and training using SGD (Stochastic Gradient Descent) optimizer" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "6afb008a", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch: 0 \tTraining Loss: 45.392094 \tValidation Loss: 41.901431\n", + "Validation loss decreased (inf --> 41.901431). Saving model ...\n", + "Epoch: 1 \tTraining Loss: 39.753306 \tValidation Loss: 35.451074\n", + "Validation loss decreased (41.901431 --> 35.451074). Saving model ...\n", + "Epoch: 2 \tTraining Loss: 35.429712 \tValidation Loss: 32.303173\n", + "Validation loss decreased (35.451074 --> 32.303173). Saving model ...\n", + "Epoch: 3 \tTraining Loss: 33.582055 \tValidation Loss: 31.114064\n", + "Validation loss decreased (32.303173 --> 31.114064). Saving model ...\n", + "Epoch: 4 \tTraining Loss: 31.864031 \tValidation Loss: 29.558014\n", + "Validation loss decreased (31.114064 --> 29.558014). Saving model ...\n", + "Epoch: 5 \tTraining Loss: 30.087391 \tValidation Loss: 27.718633\n", + "Validation loss decreased (29.558014 --> 27.718633). Saving model ...\n", + "Epoch: 6 \tTraining Loss: 28.558827 \tValidation Loss: 25.318664\n", + "Validation loss decreased (27.718633 --> 25.318664). Saving model ...\n", + "Epoch: 7 \tTraining Loss: 27.211502 \tValidation Loss: 24.618835\n", + "Validation loss decreased (25.318664 --> 24.618835). Saving model ...\n", + "Epoch: 8 \tTraining Loss: 25.967189 \tValidation Loss: 23.332559\n", + "Validation loss decreased (24.618835 --> 23.332559). Saving model ...\n", + "Epoch: 9 \tTraining Loss: 24.870614 \tValidation Loss: 21.743314\n", + "Validation loss decreased (23.332559 --> 21.743314). Saving model ...\n", + "Epoch: 10 \tTraining Loss: 23.822388 \tValidation Loss: 21.324996\n", + "Validation loss decreased (21.743314 --> 21.324996). Saving model ...\n", + "Epoch: 11 \tTraining Loss: 22.783161 \tValidation Loss: 21.354530\n", + "Epoch: 12 \tTraining Loss: 21.915342 \tValidation Loss: 20.055886\n", + "Validation loss decreased (21.324996 --> 20.055886). Saving model ...\n", + "Epoch: 13 \tTraining Loss: 20.983781 \tValidation Loss: 19.141925\n", + "Validation loss decreased (20.055886 --> 19.141925). Saving model ...\n", + "Epoch: 14 \tTraining Loss: 20.113833 \tValidation Loss: 18.647781\n", + "Validation loss decreased (19.141925 --> 18.647781). Saving model ...\n", + "Epoch: 15 \tTraining Loss: 19.382546 \tValidation Loss: 17.971753\n", + "Validation loss decreased (18.647781 --> 17.971753). Saving model ...\n", + "Epoch: 16 \tTraining Loss: 18.544738 \tValidation Loss: 17.625521\n", + "Validation loss decreased (17.971753 --> 17.625521). Saving model ...\n", + "Epoch: 17 \tTraining Loss: 17.937891 \tValidation Loss: 17.274701\n", + "Validation loss decreased (17.625521 --> 17.274701). Saving model ...\n", + "Epoch: 18 \tTraining Loss: 17.164468 \tValidation Loss: 17.348362\n", + "Epoch: 19 \tTraining Loss: 16.511785 \tValidation Loss: 17.223126\n", + "Validation loss decreased (17.274701 --> 17.223126). Saving model ...\n", + "Epoch: 20 \tTraining Loss: 15.951320 \tValidation Loss: 16.223049\n", + "Validation loss decreased (17.223126 --> 16.223049). Saving model ...\n", + "Epoch: 21 \tTraining Loss: 15.420090 \tValidation Loss: 16.689493\n", + "Epoch: 22 \tTraining Loss: 14.890705 \tValidation Loss: 16.137759\n", + "Validation loss decreased (16.223049 --> 16.137759). Saving model ...\n", + "Epoch: 23 \tTraining Loss: 14.366991 \tValidation Loss: 15.865278\n", + "Validation loss decreased (16.137759 --> 15.865278). Saving model ...\n", + "Epoch: 24 \tTraining Loss: 13.810171 \tValidation Loss: 15.769119\n", + "Validation loss decreased (15.865278 --> 15.769119). Saving model ...\n", + "Epoch: 25 \tTraining Loss: 13.378710 \tValidation Loss: 15.886714\n", + "Epoch: 26 \tTraining Loss: 12.722372 \tValidation Loss: 16.302257\n", + "Epoch: 27 \tTraining Loss: 12.367881 \tValidation Loss: 15.625312\n", + "Validation loss decreased (15.769119 --> 15.625312). Saving model ...\n", + "Epoch: 28 \tTraining Loss: 11.889945 \tValidation Loss: 16.395736\n", + "Epoch: 29 \tTraining Loss: 11.432471 \tValidation Loss: 16.245343\n" + ] + } + ], + "source": [ + "import torch.optim as optim\n", + "\n", + "criterion = nn.CrossEntropyLoss() # specify loss function\n", + "optimizer = optim.SGD(model_2.parameters(), lr=0.01) # specify optimizer\n", + "\n", + "n_epochs_2 = 30 # number of epochs to train the model\n", + "train_loss_list_2 = [] # list to store loss to visualize\n", + "valid_loss_min_2 = np.Inf # track change in validation loss\n", + "\n", + "for epoch in range(n_epochs_2):\n", + " # Keep track of training and validation loss\n", + " train_loss = 0.0\n", + " valid_loss = 0.0\n", + "\n", + " # Train the model\n", + " model_2.train()\n", + " for data, target in train_loader:\n", + " # Move tensors to GPU if CUDA is available\n", + " if train_on_gpu:\n", + " data, target = data.cuda(), target.cuda()\n", + " # Clear the gradients of all optimized variables\n", + " optimizer.zero_grad()\n", + " # Forward pass: compute predicted outputs by passing inputs to the model\n", + " output = model_2(data)\n", + " # Calculate the batch loss\n", + " loss = criterion(output, target)\n", + " # Backward pass: compute gradient of the loss with respect to model parameters\n", + " loss.backward()\n", + " # Perform a single optimization step (parameter update)\n", + " optimizer.step()\n", + " # Update training loss\n", + " train_loss += loss.item() * data.size(0)\n", + "\n", + " # Validate the model\n", + " model_2.eval()\n", + " for data, target in valid_loader:\n", + " # Move tensors to GPU if CUDA is available\n", + " if train_on_gpu:\n", + " data, target = data.cuda(), target.cuda()\n", + " # Forward pass: compute predicted outputs by passing inputs to the model\n", + " output = model_2(data)\n", + " # Calculate the batch loss\n", + " loss = criterion(output, target)\n", + " # Update average validation loss\n", + " valid_loss += loss.item() * data.size(0)\n", + "\n", + " # Calculate average losses\n", + " train_loss = train_loss / len(train_loader)\n", + " valid_loss = valid_loss / len(valid_loader)\n", + " train_loss_list_2.append(train_loss)\n", + "\n", + " # Print training/validation statistics\n", + " print(\n", + " \"Epoch: {} \\tTraining Loss: {:.6f} \\tValidation Loss: {:.6f}\".format(\n", + " epoch, train_loss, valid_loss\n", + " )\n", + " )\n", + "\n", + " # Save model if validation loss has decreased\n", + " if valid_loss <= valid_loss_min_2:\n", + " print(\n", + " \"Validation loss decreased ({:.6f} --> {:.6f}). Saving model ...\".format(\n", + " valid_loss_min_2, valid_loss\n", + " )\n", + " )\n", + " torch.save(model_2.state_dict(), \"model_cifar_2.pt\")\n", + " valid_loss_min_2 = valid_loss" + ] + }, + { + "cell_type": "markdown", + "id": "84b42672", + "metadata": {}, + "source": [ + "Does overfit occur? If so, do an early stopping." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "2595408b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.plot(range(n_epochs), train_loss_list_2)\n", + "plt.xlabel(\"Epoch\")\n", + "plt.ylabel(\"Loss\")\n", + "plt.title(\"Performance of Model 1\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "7e93e0f4", + "metadata": {}, + "source": [ + "Now loading the model with the lowest validation loss value\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "b81c74b8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test Loss: 15.943923\n", + "\n", + "Test Accuracy of airplane: 81% (813/1000)\n", + "Test Accuracy of automobile: 90% (904/1000)\n", + "Test Accuracy of bird: 60% (603/1000)\n", + "Test Accuracy of cat: 53% (539/1000)\n", + "Test Accuracy of deer: 76% (766/1000)\n", + "Test Accuracy of dog: 56% (567/1000)\n", + "Test Accuracy of frog: 82% (822/1000)\n", + "Test Accuracy of horse: 79% (797/1000)\n", + "Test Accuracy of ship: 82% (826/1000)\n", + "Test Accuracy of truck: 76% (769/1000)\n", + "\n", + "Test Accuracy (Overall): 74% (7406/10000)\n" + ] + } + ], + "source": [ + "model_2.load_state_dict(torch.load(\"./model_cifar_2.pt\"))\n", + "\n", + "# track test loss\n", + "test_loss = 0.0\n", + "class_correct = list(0.0 for i in range(10))\n", + "class_total = list(0.0 for i in range(10))\n", + "\n", + "model_2.eval()\n", + "# iterate over test data\n", + "for data, target in test_loader:\n", + " # move tensors to GPU if CUDA is available\n", + " if train_on_gpu:\n", + " data, target = data.cuda(), target.cuda()\n", + " # forward pass: compute predicted outputs by passing inputs to the model\n", + " output = model_2(data)\n", + " # calculate the batch loss\n", + " loss = criterion(output, target)\n", + " # update test loss\n", + " test_loss += loss.item() * data.size(0)\n", + " # convert output probabilities to predicted class\n", + " _, pred = torch.max(output, 1)\n", + " # compare predictions to true label\n", + " correct_tensor = pred.eq(target.data.view_as(pred))\n", + " correct = (\n", + " np.squeeze(correct_tensor.numpy())\n", + " if not train_on_gpu\n", + " else np.squeeze(correct_tensor.cpu().numpy())\n", + " )\n", + " # calculate test accuracy for each object class\n", + " for i in range(batch_size):\n", + " label = target.data[i]\n", + " class_correct[label] += correct[i].item()\n", + " class_total[label] += 1\n", + "\n", + "# average test loss\n", + "test_loss = test_loss / len(test_loader)\n", + "print(\"Test Loss: {:.6f}\\n\".format(test_loss))\n", + "\n", + "for i in range(10):\n", + " if class_total[i] > 0:\n", + " print(\n", + " \"Test Accuracy of %5s: %2d%% (%2d/%2d)\"\n", + " % (\n", + " classes[i],\n", + " 100 * class_correct[i] / class_total[i],\n", + " np.sum(class_correct[i]),\n", + " np.sum(class_total[i]),\n", + " )\n", + " )\n", + " else:\n", + " print(\"Test Accuracy of %5s: N/A (no training examples)\" % (classes[i]))\n", + "\n", + "print(\n", + " \"\\nTest Accuracy (Overall): %2d%% (%2d/%2d)\"\n", + " % (\n", + " 100.0 * np.sum(class_correct) / np.sum(class_total),\n", + " np.sum(class_correct),\n", + " np.sum(class_total),\n", + " )\n", + ")" + ] + }, { "cell_type": "markdown", "id": "bc381cf4", @@ -451,10 +1034,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "ef623c26", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "model: fp32 \t Size (KB): 251.278\n" + ] + }, + { + "data": { + "text/plain": [ + "251278" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import os\n", "\n", @@ -480,10 +1081,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "c4c65d4b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "model: int8 \t Size (KB): 76.522\n" + ] + }, + { + "data": { + "text/plain": [ + "76522" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import torch.quantization\n", "\n", @@ -508,53 +1127,1280 @@ "Try training aware quantization to mitigate the impact on the accuracy (doc available here https://pytorch.org/docs/stable/quantization.html#torch.quantization.quantize_dynamic)" ] }, - { - "cell_type": "markdown", - "id": "201470f9", - "metadata": {}, - "source": [ - "## Exercise 3: working with pre-trained models.\n", - "\n", - "PyTorch offers several pre-trained models https://pytorch.org/vision/0.8/models.html \n", - "We will use ResNet50 trained on ImageNet dataset (https://www.image-net.org/index.php). Use the following code with the files `imagenet-simple-labels.json` that contains the imagenet labels and the image dog.png that we will use as test.\n" - ] - }, { "cell_type": "code", - "execution_count": null, - "id": "b4d13080", - "metadata": {}, - "outputs": [], + "execution_count": 16, + "id": "d9dac079", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "__________Results for the actual model__________\n", + "Test Loss: 21.125983\n", + "\n", + "Test Accuracy of airplane: 69% (696/1000)\n", + "Test Accuracy of automobile: 74% (745/1000)\n", + "Test Accuracy of bird: 51% (510/1000)\n", + "Test Accuracy of cat: 41% (415/1000)\n", + "Test Accuracy of deer: 60% (603/1000)\n", + "Test Accuracy of dog: 49% (499/1000)\n", + "Test Accuracy of frog: 69% (693/1000)\n", + "Test Accuracy of horse: 68% (683/1000)\n", + "Test Accuracy of ship: 75% (754/1000)\n", + "Test Accuracy of truck: 75% (751/1000)\n", + "\n", + "Test Accuracy (Overall): 63% (6349/10000)\n", + "/n /n\n", + "__________Results for the quantized model__________\n", + "Test Loss: 21.138908\n", + "\n", + "Test Accuracy of airplane: 69% (697/1000)\n", + "Test Accuracy of automobile: 74% (746/1000)\n", + "Test Accuracy of bird: 51% (510/1000)\n", + "Test Accuracy of cat: 41% (417/1000)\n", + "Test Accuracy of deer: 60% (604/1000)\n", + "Test Accuracy of dog: 50% (500/1000)\n", + "Test Accuracy of frog: 69% (697/1000)\n", + "Test Accuracy of horse: 68% (683/1000)\n", + "Test Accuracy of ship: 75% (755/1000)\n", + "Test Accuracy of truck: 75% (750/1000)\n", + "\n", + "Test Accuracy (Overall): 63% (6359/10000)\n" + ] + } + ], "source": [ - "import json\n", - "from PIL import Image\n", - "\n", - "# Choose an image to pass through the model\n", - "test_image = \"dog.png\"\n", - "\n", - "# Configure matplotlib for pretty inline plots\n", - "#%matplotlib inline\n", - "#%config InlineBackend.figure_format = 'retina'\n", - "\n", - "# Prepare the labels\n", - "with open(\"imagenet-simple-labels.json\") as f:\n", - " labels = json.load(f)\n", + "# for benchnchmarking purposes, we load and test our 1st model on the different classes\n", "\n", - "# First prepare the transformations: resize the image to what the model was trained on and convert it to a tensor\n", - "data_transform = transforms.Compose(\n", - " [\n", - " transforms.Resize((224, 224)),\n", - " transforms.ToTensor(),\n", - " transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),\n", - " ]\n", - ")\n", - "# Load the image\n", + "model.load_state_dict(torch.load(\"./model_cifar.pt\"))\n", "\n", - "image = Image.open(test_image)\n", - "plt.imshow(image), plt.xticks([]), plt.yticks([])\n", + "# track test loss\n", + "test_loss = 0.0\n", + "class_correct = list(0.0 for i in range(10))\n", + "class_total = list(0.0 for i in range(10))\n", "\n", - "# Now apply the transformation, expand the batch dimension, and send the image to the GPU\n", - "# image = data_transform(image).unsqueeze(0).cuda()\n", + "model.eval()\n", + "# iterate over test data\n", + "for data, target in test_loader:\n", + " # move tensors to GPU if CUDA is available\n", + " if train_on_gpu:\n", + " data, target = data.cuda(), target.cuda()\n", + " # forward pass: compute predicted outputs by passing inputs to the model\n", + " output = model(data)\n", + " # calculate the batch loss\n", + " loss = criterion(output, target)\n", + " # update test loss\n", + " test_loss += loss.item() * data.size(0)\n", + " # convert output probabilities to predicted class\n", + " _, pred = torch.max(output, 1)\n", + " # compare predictions to true label\n", + " correct_tensor = pred.eq(target.data.view_as(pred))\n", + " correct = (\n", + " np.squeeze(correct_tensor.numpy())\n", + " if not train_on_gpu\n", + " else np.squeeze(correct_tensor.cpu().numpy())\n", + " )\n", + " # calculate test accuracy for each object class\n", + " for i in range(batch_size):\n", + " label = target.data[i]\n", + " class_correct[label] += correct[i].item()\n", + " class_total[label] += 1\n", + "\n", + " \n", + "print(\"__________Results for the actual model__________\")\n", + "# average test loss\n", + "test_loss = test_loss / len(test_loader)\n", + "print(\"Test Loss: {:.6f}\\n\".format(test_loss))\n", + "\n", + "for i in range(10):\n", + " if class_total[i] > 0:\n", + " print(\n", + " \"Test Accuracy of %5s: %2d%% (%2d/%2d)\"\n", + " % (\n", + " classes[i],\n", + " 100 * class_correct[i] / class_total[i],\n", + " np.sum(class_correct[i]),\n", + " np.sum(class_total[i]),\n", + " )\n", + " )\n", + " else:\n", + " print(\"Test Accuracy of %5s: N/A (no training examples)\" % (classes[i]))\n", + "\n", + "print(\n", + " \"\\nTest Accuracy (Overall): %2d%% (%2d/%2d)\"\n", + " % (\n", + " 100.0 * np.sum(class_correct) / np.sum(class_total),\n", + " np.sum(class_correct),\n", + " np.sum(class_total),\n", + " )\n", + ")\n", + "\n", + "\n", + "# same for the quantized model\n", + "\n", + "# track test loss\n", + "test_loss = 0.0\n", + "class_correct = list(0.0 for i in range(10))\n", + "class_total = list(0.0 for i in range(10))\n", + "\n", + "quantized_model.eval()\n", + "# iterate over test data\n", + "for data, target in test_loader:\n", + " # move tensors to GPU if CUDA is available\n", + " if train_on_gpu:\n", + " data, target = data.cuda(), target.cuda()\n", + " # forward pass: compute predicted outputs by passing inputs to the model\n", + " output = quantized_model(data)\n", + " # calculate the batch loss\n", + " loss = criterion(output, target)\n", + " # update test loss\n", + " test_loss += loss.item() * data.size(0)\n", + " # convert output probabilities to predicted class\n", + " _, pred = torch.max(output, 1)\n", + " # compare predictions to true label\n", + " correct_tensor = pred.eq(target.data.view_as(pred))\n", + " correct = (\n", + " np.squeeze(correct_tensor.numpy())\n", + " if not train_on_gpu\n", + " else np.squeeze(correct_tensor.cpu().numpy())\n", + " )\n", + " # calculate test accuracy for each object class\n", + " for i in range(batch_size):\n", + " label = target.data[i]\n", + " class_correct[label] += correct[i].item()\n", + " class_total[label] += 1\n", + "\n", + "print(\"\\n \\n\")\n", + "print(\"__________Results for the quantized model__________\")\n", + "# average test loss\n", + "test_loss = test_loss / len(test_loader)\n", + "print(\"Test Loss: {:.6f}\\n\".format(test_loss))\n", + "\n", + "for i in range(10):\n", + " if class_total[i] > 0:\n", + " print(\n", + " \"Test Accuracy of %5s: %2d%% (%2d/%2d)\"\n", + " % (\n", + " classes[i],\n", + " 100 * class_correct[i] / class_total[i],\n", + " np.sum(class_correct[i]),\n", + " np.sum(class_total[i]),\n", + " )\n", + " )\n", + " else:\n", + " print(\"Test Accuracy of %5s: N/A (no training examples)\" % (classes[i]))\n", + "\n", + "print(\n", + " \"\\nTest Accuracy (Overall): %2d%% (%2d/%2d)\"\n", + " % (\n", + " 100.0 * np.sum(class_correct) / np.sum(class_total),\n", + " np.sum(class_correct),\n", + " np.sum(class_total),\n", + " )\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "201470f9", + "metadata": {}, + "source": [ + "## Exercise 3: working with pre-trained models.\n", + "\n", + "PyTorch offers several pre-trained models https://pytorch.org/vision/0.8/models.html \n", + "We will use ResNet50 trained on ImageNet dataset (https://www.image-net.org/index.php). Use the following code with the files `imagenet-simple-labels.json` that contains the imagenet labels and the image dog.png that we will use as test.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "60598d7d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['tench',\n", + " 'goldfish',\n", + " 'great white shark',\n", + " 'tiger shark',\n", + " 'hammerhead shark',\n", + " 'electric ray',\n", + " 'stingray',\n", + " 'cock',\n", + " 'hen',\n", + " 'ostrich',\n", + " 'brambling',\n", + " 'goldfinch',\n", + " 'house finch',\n", + " 'junco',\n", + " 'indigo bunting',\n", + " 'American robin',\n", + " 'bulbul',\n", + " 'jay',\n", + " 'magpie',\n", + " 'chickadee',\n", + " 'American dipper',\n", + " 'kite',\n", + " 'bald eagle',\n", + " 'vulture',\n", + " 'great grey owl',\n", + " 'fire salamander',\n", + " 'smooth newt',\n", + " 'newt',\n", + " 'spotted salamander',\n", + " 'axolotl',\n", + " 'American bullfrog',\n", + " 'tree frog',\n", + " 'tailed frog',\n", + " 'loggerhead sea turtle',\n", + " 'leatherback sea turtle',\n", + " 'mud turtle',\n", + " 'terrapin',\n", + " 'box turtle',\n", + " 'banded gecko',\n", + " 'green iguana',\n", + " 'Carolina anole',\n", + " 'desert grassland whiptail lizard',\n", + " 'agama',\n", + " 'frilled-necked lizard',\n", + " 'alligator lizard',\n", + " 'Gila monster',\n", + " 'European green lizard',\n", + " 'chameleon',\n", + " 'Komodo dragon',\n", + " 'Nile crocodile',\n", + " 'American alligator',\n", + " 'triceratops',\n", + " 'worm snake',\n", + " 'ring-necked snake',\n", + " 'eastern hog-nosed snake',\n", + " 'smooth green snake',\n", + " 'kingsnake',\n", + " 'garter snake',\n", + " 'water snake',\n", + " 'vine snake',\n", + " 'night snake',\n", + " 'boa constrictor',\n", + " 'African rock python',\n", + " 'Indian cobra',\n", + " 'green mamba',\n", + " 'sea snake',\n", + " 'Saharan horned viper',\n", + " 'eastern diamondback rattlesnake',\n", + " 'sidewinder',\n", + " 'trilobite',\n", + " 'harvestman',\n", + " 'scorpion',\n", + " 'yellow garden spider',\n", + " 'barn spider',\n", + " 'European garden spider',\n", + " 'southern black widow',\n", + " 'tarantula',\n", + " 'wolf spider',\n", + " 'tick',\n", + " 'centipede',\n", + " 'black grouse',\n", + " 'ptarmigan',\n", + " 'ruffed grouse',\n", + " 'prairie grouse',\n", + " 'peacock',\n", + " 'quail',\n", + " 'partridge',\n", + " 'grey parrot',\n", + " 'macaw',\n", + " 'sulphur-crested cockatoo',\n", + " 'lorikeet',\n", + " 'coucal',\n", + " 'bee eater',\n", + " 'hornbill',\n", + " 'hummingbird',\n", + " 'jacamar',\n", + " 'toucan',\n", + " 'duck',\n", + " 'red-breasted merganser',\n", + " 'goose',\n", + " 'black swan',\n", + " 'tusker',\n", + " 'echidna',\n", + " 'platypus',\n", + " 'wallaby',\n", + " 'koala',\n", + " 'wombat',\n", + " 'jellyfish',\n", + " 'sea anemone',\n", + " 'brain coral',\n", + " 'flatworm',\n", + " 'nematode',\n", + " 'conch',\n", + " 'snail',\n", + " 'slug',\n", + " 'sea slug',\n", + " 'chiton',\n", + " 'chambered nautilus',\n", + " 'Dungeness crab',\n", + " 'rock crab',\n", + " 'fiddler crab',\n", + " 'red king crab',\n", + " 'American lobster',\n", + " 'spiny lobster',\n", + " 'crayfish',\n", + " 'hermit crab',\n", + " 'isopod',\n", + " 'white stork',\n", + " 'black stork',\n", + " 'spoonbill',\n", + " 'flamingo',\n", + " 'little blue heron',\n", + " 'great egret',\n", + " 'bittern',\n", + " 'crane',\n", + " 'limpkin',\n", + " 'common gallinule',\n", + " 'American coot',\n", + " 'bustard',\n", + " 'ruddy turnstone',\n", + " 'dunlin',\n", + " 'common redshank',\n", + " 'dowitcher',\n", + " 'oystercatcher',\n", + " 'pelican',\n", + " 'king penguin',\n", + " 'albatross',\n", + " 'grey whale',\n", + " 'killer whale',\n", + " 'dugong',\n", + " 'sea lion',\n", + " 'Chihuahua',\n", + " 'Japanese Chin',\n", + " 'Maltese',\n", + " 'Pekingese',\n", + " 'Shih Tzu',\n", + " 'King Charles Spaniel',\n", + " 'Papillon',\n", + " 'toy terrier',\n", + " 'Rhodesian Ridgeback',\n", + " 'Afghan Hound',\n", + " 'Basset Hound',\n", + " 'Beagle',\n", + " 'Bloodhound',\n", + " 'Bluetick Coonhound',\n", + " 'Black and Tan Coonhound',\n", + " 'Treeing Walker Coonhound',\n", + " 'English foxhound',\n", + " 'Redbone Coonhound',\n", + " 'borzoi',\n", + " 'Irish Wolfhound',\n", + " 'Italian Greyhound',\n", + " 'Whippet',\n", + " 'Ibizan Hound',\n", + " 'Norwegian Elkhound',\n", + " 'Otterhound',\n", + " 'Saluki',\n", + " 'Scottish Deerhound',\n", + " 'Weimaraner',\n", + " 'Staffordshire Bull Terrier',\n", + " 'American Staffordshire Terrier',\n", + " 'Bedlington Terrier',\n", + " 'Border Terrier',\n", + " 'Kerry Blue Terrier',\n", + " 'Irish Terrier',\n", + " 'Norfolk Terrier',\n", + " 'Norwich Terrier',\n", + " 'Yorkshire Terrier',\n", + " 'Wire Fox Terrier',\n", + " 'Lakeland Terrier',\n", + " 'Sealyham Terrier',\n", + " 'Airedale Terrier',\n", + " 'Cairn Terrier',\n", + " 'Australian Terrier',\n", + " 'Dandie Dinmont Terrier',\n", + " 'Boston Terrier',\n", + " 'Miniature Schnauzer',\n", + " 'Giant Schnauzer',\n", + " 'Standard Schnauzer',\n", + " 'Scottish Terrier',\n", + " 'Tibetan Terrier',\n", + " 'Australian Silky Terrier',\n", + " 'Soft-coated Wheaten Terrier',\n", + " 'West Highland White Terrier',\n", + " 'Lhasa Apso',\n", + " 'Flat-Coated Retriever',\n", + " 'Curly-coated Retriever',\n", + " 'Golden Retriever',\n", + " 'Labrador Retriever',\n", + " 'Chesapeake Bay Retriever',\n", + " 'German Shorthaired Pointer',\n", + " 'Vizsla',\n", + " 'English Setter',\n", + " 'Irish Setter',\n", + " 'Gordon Setter',\n", + " 'Brittany',\n", + " 'Clumber Spaniel',\n", + " 'English Springer Spaniel',\n", + " 'Welsh Springer Spaniel',\n", + " 'Cocker Spaniels',\n", + " 'Sussex Spaniel',\n", + " 'Irish Water Spaniel',\n", + " 'Kuvasz',\n", + " 'Schipperke',\n", + " 'Groenendael',\n", + " 'Malinois',\n", + " 'Briard',\n", + " 'Australian Kelpie',\n", + " 'Komondor',\n", + " 'Old English Sheepdog',\n", + " 'Shetland Sheepdog',\n", + " 'collie',\n", + " 'Border Collie',\n", + " 'Bouvier des Flandres',\n", + " 'Rottweiler',\n", + " 'German Shepherd Dog',\n", + " 'Dobermann',\n", + " 'Miniature Pinscher',\n", + " 'Greater Swiss Mountain Dog',\n", + " 'Bernese Mountain Dog',\n", + " 'Appenzeller Sennenhund',\n", + " 'Entlebucher Sennenhund',\n", + " 'Boxer',\n", + " 'Bullmastiff',\n", + " 'Tibetan Mastiff',\n", + " 'French Bulldog',\n", + " 'Great Dane',\n", + " 'St. Bernard',\n", + " 'husky',\n", + " 'Alaskan Malamute',\n", + " 'Siberian Husky',\n", + " 'Dalmatian',\n", + " 'Affenpinscher',\n", + " 'Basenji',\n", + " 'pug',\n", + " 'Leonberger',\n", + " 'Newfoundland',\n", + " 'Pyrenean Mountain Dog',\n", + " 'Samoyed',\n", + " 'Pomeranian',\n", + " 'Chow Chow',\n", + " 'Keeshond',\n", + " 'Griffon Bruxellois',\n", + " 'Pembroke Welsh Corgi',\n", + " 'Cardigan Welsh Corgi',\n", + " 'Toy Poodle',\n", + " 'Miniature Poodle',\n", + " 'Standard Poodle',\n", + " 'Mexican hairless dog',\n", + " 'grey wolf',\n", + " 'Alaskan tundra wolf',\n", + " 'red wolf',\n", + " 'coyote',\n", + " 'dingo',\n", + " 'dhole',\n", + " 'African wild dog',\n", + " 'hyena',\n", + " 'red fox',\n", + " 'kit fox',\n", + " 'Arctic fox',\n", + " 'grey fox',\n", + " 'tabby cat',\n", + " 'tiger cat',\n", + " 'Persian cat',\n", + " 'Siamese cat',\n", + " 'Egyptian Mau',\n", + " 'cougar',\n", + " 'lynx',\n", + " 'leopard',\n", + " 'snow leopard',\n", + " 'jaguar',\n", + " 'lion',\n", + " 'tiger',\n", + " 'cheetah',\n", + " 'brown bear',\n", + " 'American black bear',\n", + " 'polar bear',\n", + " 'sloth bear',\n", + " 'mongoose',\n", + " 'meerkat',\n", + " 'tiger beetle',\n", + " 'ladybug',\n", + " 'ground beetle',\n", + " 'longhorn beetle',\n", + " 'leaf beetle',\n", + " 'dung beetle',\n", + " 'rhinoceros beetle',\n", + " 'weevil',\n", + " 'fly',\n", + " 'bee',\n", + " 'ant',\n", + " 'grasshopper',\n", + " 'cricket',\n", + " 'stick insect',\n", + " 'cockroach',\n", + " 'mantis',\n", + " 'cicada',\n", + " 'leafhopper',\n", + " 'lacewing',\n", + " 'dragonfly',\n", + " 'damselfly',\n", + " 'red admiral',\n", + " 'ringlet',\n", + " 'monarch butterfly',\n", + " 'small white',\n", + " 'sulphur butterfly',\n", + " 'gossamer-winged butterfly',\n", + " 'starfish',\n", + " 'sea urchin',\n", + " 'sea cucumber',\n", + " 'cottontail rabbit',\n", + " 'hare',\n", + " 'Angora rabbit',\n", + " 'hamster',\n", + " 'porcupine',\n", + " 'fox squirrel',\n", + " 'marmot',\n", + " 'beaver',\n", + " 'guinea pig',\n", + " 'common sorrel',\n", + " 'zebra',\n", + " 'pig',\n", + " 'wild boar',\n", + " 'warthog',\n", + " 'hippopotamus',\n", + " 'ox',\n", + " 'water buffalo',\n", + " 'bison',\n", + " 'ram',\n", + " 'bighorn sheep',\n", + " 'Alpine ibex',\n", + " 'hartebeest',\n", + " 'impala',\n", + " 'gazelle',\n", + " 'dromedary',\n", + " 'llama',\n", + " 'weasel',\n", + " 'mink',\n", + " 'European polecat',\n", + " 'black-footed ferret',\n", + " 'otter',\n", + " 'skunk',\n", + " 'badger',\n", + " 'armadillo',\n", + " 'three-toed sloth',\n", + " 'orangutan',\n", + " 'gorilla',\n", + " 'chimpanzee',\n", + " 'gibbon',\n", + " 'siamang',\n", + " 'guenon',\n", + " 'patas monkey',\n", + " 'baboon',\n", + " 'macaque',\n", + " 'langur',\n", + " 'black-and-white colobus',\n", + " 'proboscis monkey',\n", + " 'marmoset',\n", + " 'white-headed capuchin',\n", + " 'howler monkey',\n", + " 'titi',\n", + " \"Geoffroy's spider monkey\",\n", + " 'common squirrel monkey',\n", + " 'ring-tailed lemur',\n", + " 'indri',\n", + " 'Asian elephant',\n", + " 'African bush elephant',\n", + " 'red panda',\n", + " 'giant panda',\n", + " 'snoek',\n", + " 'eel',\n", + " 'coho salmon',\n", + " 'rock beauty',\n", + " 'clownfish',\n", + " 'sturgeon',\n", + " 'garfish',\n", + " 'lionfish',\n", + " 'pufferfish',\n", + " 'abacus',\n", + " 'abaya',\n", + " 'academic gown',\n", + " 'accordion',\n", + " 'acoustic guitar',\n", + " 'aircraft carrier',\n", + " 'airliner',\n", + " 'airship',\n", + " 'altar',\n", + " 'ambulance',\n", + " 'amphibious vehicle',\n", + " 'analog clock',\n", + " 'apiary',\n", + " 'apron',\n", + " 'waste container',\n", + " 'assault rifle',\n", + " 'backpack',\n", + " 'bakery',\n", + " 'balance beam',\n", + " 'balloon',\n", + " 'ballpoint pen',\n", + " 'Band-Aid',\n", + " 'banjo',\n", + " 'baluster',\n", + " 'barbell',\n", + " 'barber chair',\n", + " 'barbershop',\n", + " 'barn',\n", + " 'barometer',\n", + " 'barrel',\n", + " 'wheelbarrow',\n", + " 'baseball',\n", + " 'basketball',\n", + " 'bassinet',\n", + " 'bassoon',\n", + " 'swimming cap',\n", + " 'bath towel',\n", + " 'bathtub',\n", + " 'station wagon',\n", + " 'lighthouse',\n", + " 'beaker',\n", + " 'military cap',\n", + " 'beer bottle',\n", + " 'beer glass',\n", + " 'bell-cot',\n", + " 'bib',\n", + " 'tandem bicycle',\n", + " 'bikini',\n", + " 'ring binder',\n", + " 'binoculars',\n", + " 'birdhouse',\n", + " 'boathouse',\n", + " 'bobsleigh',\n", + " 'bolo tie',\n", + " 'poke bonnet',\n", + " 'bookcase',\n", + " 'bookstore',\n", + " 'bottle cap',\n", + " 'bow',\n", + " 'bow tie',\n", + " 'brass',\n", + " 'bra',\n", + " 'breakwater',\n", + " 'breastplate',\n", + " 'broom',\n", + " 'bucket',\n", + " 'buckle',\n", + " 'bulletproof vest',\n", + " 'high-speed train',\n", + " 'butcher shop',\n", + " 'taxicab',\n", + " 'cauldron',\n", + " 'candle',\n", + " 'cannon',\n", + " 'canoe',\n", + " 'can opener',\n", + " 'cardigan',\n", + " 'car mirror',\n", + " 'carousel',\n", + " 'tool kit',\n", + " 'carton',\n", + " 'car wheel',\n", + " 'automated teller machine',\n", + " 'cassette',\n", + " 'cassette player',\n", + " 'castle',\n", + " 'catamaran',\n", + " 'CD player',\n", + " 'cello',\n", + " 'mobile phone',\n", + " 'chain',\n", + " 'chain-link fence',\n", + " 'chain mail',\n", + " 'chainsaw',\n", + " 'chest',\n", + " 'chiffonier',\n", + " 'chime',\n", + " 'china cabinet',\n", + " 'Christmas stocking',\n", + " 'church',\n", + " 'movie theater',\n", + " 'cleaver',\n", + " 'cliff dwelling',\n", + " 'cloak',\n", + " 'clogs',\n", + " 'cocktail shaker',\n", + " 'coffee mug',\n", + " 'coffeemaker',\n", + " 'coil',\n", + " 'combination lock',\n", + " 'computer keyboard',\n", + " 'confectionery store',\n", + " 'container ship',\n", + " 'convertible',\n", + " 'corkscrew',\n", + " 'cornet',\n", + " 'cowboy boot',\n", + " 'cowboy hat',\n", + " 'cradle',\n", + " 'crane',\n", + " 'crash helmet',\n", + " 'crate',\n", + " 'infant bed',\n", + " 'Crock Pot',\n", + " 'croquet ball',\n", + " 'crutch',\n", + " 'cuirass',\n", + " 'dam',\n", + " 'desk',\n", + " 'desktop computer',\n", + " 'rotary dial telephone',\n", + " 'diaper',\n", + " 'digital clock',\n", + " 'digital watch',\n", + " 'dining table',\n", + " 'dishcloth',\n", + " 'dishwasher',\n", + " 'disc brake',\n", + " 'dock',\n", + " 'dog sled',\n", + " 'dome',\n", + " 'doormat',\n", + " 'drilling rig',\n", + " 'drum',\n", + " 'drumstick',\n", + " 'dumbbell',\n", + " 'Dutch oven',\n", + " 'electric fan',\n", + " 'electric guitar',\n", + " 'electric locomotive',\n", + " 'entertainment center',\n", + " 'envelope',\n", + " 'espresso machine',\n", + " 'face powder',\n", + " 'feather boa',\n", + " 'filing cabinet',\n", + " 'fireboat',\n", + " 'fire engine',\n", + " 'fire screen sheet',\n", + " 'flagpole',\n", + " 'flute',\n", + " 'folding chair',\n", + " 'football helmet',\n", + " 'forklift',\n", + " 'fountain',\n", + " 'fountain pen',\n", + " 'four-poster bed',\n", + " 'freight car',\n", + " 'French horn',\n", + " 'frying pan',\n", + " 'fur coat',\n", + " 'garbage truck',\n", + " 'gas mask',\n", + " 'gas pump',\n", + " 'goblet',\n", + " 'go-kart',\n", + " 'golf ball',\n", + " 'golf cart',\n", + " 'gondola',\n", + " 'gong',\n", + " 'gown',\n", + " 'grand piano',\n", + " 'greenhouse',\n", + " 'grille',\n", + " 'grocery store',\n", + " 'guillotine',\n", + " 'barrette',\n", + " 'hair spray',\n", + " 'half-track',\n", + " 'hammer',\n", + " 'hamper',\n", + " 'hair dryer',\n", + " 'hand-held computer',\n", + " 'handkerchief',\n", + " 'hard disk drive',\n", + " 'harmonica',\n", + " 'harp',\n", + " 'harvester',\n", + " 'hatchet',\n", + " 'holster',\n", + " 'home theater',\n", + " 'honeycomb',\n", + " 'hook',\n", + " 'hoop skirt',\n", + " 'horizontal bar',\n", + " 'horse-drawn vehicle',\n", + " 'hourglass',\n", + " 'iPod',\n", + " 'clothes iron',\n", + " \"jack-o'-lantern\",\n", + " 'jeans',\n", + " 'jeep',\n", + " 'T-shirt',\n", + " 'jigsaw puzzle',\n", + " 'pulled rickshaw',\n", + " 'joystick',\n", + " 'kimono',\n", + " 'knee pad',\n", + " 'knot',\n", + " 'lab coat',\n", + " 'ladle',\n", + " 'lampshade',\n", + " 'laptop computer',\n", + " 'lawn mower',\n", + " 'lens cap',\n", + " 'paper knife',\n", + " 'library',\n", + " 'lifeboat',\n", + " 'lighter',\n", + " 'limousine',\n", + " 'ocean liner',\n", + " 'lipstick',\n", + " 'slip-on shoe',\n", + " 'lotion',\n", + " 'speaker',\n", + " 'loupe',\n", + " 'sawmill',\n", + " 'magnetic compass',\n", + " 'mail bag',\n", + " 'mailbox',\n", + " 'tights',\n", + " 'tank suit',\n", + " 'manhole cover',\n", + " 'maraca',\n", + " 'marimba',\n", + " 'mask',\n", + " 'match',\n", + " 'maypole',\n", + " 'maze',\n", + " 'measuring cup',\n", + " 'medicine chest',\n", + " 'megalith',\n", + " 'microphone',\n", + " 'microwave oven',\n", + " 'military uniform',\n", + " 'milk can',\n", + " 'minibus',\n", + " 'miniskirt',\n", + " 'minivan',\n", + " 'missile',\n", + " 'mitten',\n", + " 'mixing bowl',\n", + " 'mobile home',\n", + " 'Model T',\n", + " 'modem',\n", + " 'monastery',\n", + " 'monitor',\n", + " 'moped',\n", + " 'mortar',\n", + " 'square academic cap',\n", + " 'mosque',\n", + " 'mosquito net',\n", + " 'scooter',\n", + " 'mountain bike',\n", + " 'tent',\n", + " 'computer mouse',\n", + " 'mousetrap',\n", + " 'moving van',\n", + " 'muzzle',\n", + " 'nail',\n", + " 'neck brace',\n", + " 'necklace',\n", + " 'nipple',\n", + " 'notebook computer',\n", + " 'obelisk',\n", + " 'oboe',\n", + " 'ocarina',\n", + " 'odometer',\n", + " 'oil filter',\n", + " 'organ',\n", + " 'oscilloscope',\n", + " 'overskirt',\n", + " 'bullock cart',\n", + " 'oxygen mask',\n", + " 'packet',\n", + " 'paddle',\n", + " 'paddle wheel',\n", + " 'padlock',\n", + " 'paintbrush',\n", + " 'pajamas',\n", + " 'palace',\n", + " 'pan flute',\n", + " 'paper towel',\n", + " 'parachute',\n", + " 'parallel bars',\n", + " 'park bench',\n", + " 'parking meter',\n", + " 'passenger car',\n", + " 'patio',\n", + " 'payphone',\n", + " 'pedestal',\n", + " 'pencil case',\n", + " 'pencil sharpener',\n", + " 'perfume',\n", + " 'Petri dish',\n", + " 'photocopier',\n", + " 'plectrum',\n", + " 'Pickelhaube',\n", + " 'picket fence',\n", + " 'pickup truck',\n", + " 'pier',\n", + " 'piggy bank',\n", + " 'pill bottle',\n", + " 'pillow',\n", + " 'ping-pong ball',\n", + " 'pinwheel',\n", + " 'pirate ship',\n", + " 'pitcher',\n", + " 'hand plane',\n", + " 'planetarium',\n", + " 'plastic bag',\n", + " 'plate rack',\n", + " 'plow',\n", + " 'plunger',\n", + " 'Polaroid camera',\n", + " 'pole',\n", + " 'police van',\n", + " 'poncho',\n", + " 'billiard table',\n", + " 'soda bottle',\n", + " 'pot',\n", + " \"potter's wheel\",\n", + " 'power drill',\n", + " 'prayer rug',\n", + " 'printer',\n", + " 'prison',\n", + " 'projectile',\n", + " 'projector',\n", + " 'hockey puck',\n", + " 'punching bag',\n", + " 'purse',\n", + " 'quill',\n", + " 'quilt',\n", + " 'race car',\n", + " 'racket',\n", + " 'radiator',\n", + " 'radio',\n", + " 'radio telescope',\n", + " 'rain barrel',\n", + " 'recreational vehicle',\n", + " 'reel',\n", + " 'reflex camera',\n", + " 'refrigerator',\n", + " 'remote control',\n", + " 'restaurant',\n", + " 'revolver',\n", + " 'rifle',\n", + " 'rocking chair',\n", + " 'rotisserie',\n", + " 'eraser',\n", + " 'rugby ball',\n", + " 'ruler',\n", + " 'running shoe',\n", + " 'safe',\n", + " 'safety pin',\n", + " 'salt shaker',\n", + " 'sandal',\n", + " 'sarong',\n", + " 'saxophone',\n", + " 'scabbard',\n", + " 'weighing scale',\n", + " 'school bus',\n", + " 'schooner',\n", + " 'scoreboard',\n", + " 'CRT screen',\n", + " 'screw',\n", + " 'screwdriver',\n", + " 'seat belt',\n", + " 'sewing machine',\n", + " 'shield',\n", + " 'shoe store',\n", + " 'shoji',\n", + " 'shopping basket',\n", + " 'shopping cart',\n", + " 'shovel',\n", + " 'shower cap',\n", + " 'shower curtain',\n", + " 'ski',\n", + " 'ski mask',\n", + " 'sleeping bag',\n", + " 'slide rule',\n", + " 'sliding door',\n", + " 'slot machine',\n", + " 'snorkel',\n", + " 'snowmobile',\n", + " 'snowplow',\n", + " 'soap dispenser',\n", + " 'soccer ball',\n", + " 'sock',\n", + " 'solar thermal collector',\n", + " 'sombrero',\n", + " 'soup bowl',\n", + " 'space bar',\n", + " 'space heater',\n", + " 'space shuttle',\n", + " 'spatula',\n", + " 'motorboat',\n", + " 'spider web',\n", + " 'spindle',\n", + " 'sports car',\n", + " 'spotlight',\n", + " 'stage',\n", + " 'steam locomotive',\n", + " 'through arch bridge',\n", + " 'steel drum',\n", + " 'stethoscope',\n", + " 'scarf',\n", + " 'stone wall',\n", + " 'stopwatch',\n", + " 'stove',\n", + " 'strainer',\n", + " 'tram',\n", + " 'stretcher',\n", + " 'couch',\n", + " 'stupa',\n", + " 'submarine',\n", + " 'suit',\n", + " 'sundial',\n", + " 'sunglass',\n", + " 'sunglasses',\n", + " 'sunscreen',\n", + " 'suspension bridge',\n", + " 'mop',\n", + " 'sweatshirt',\n", + " 'swimsuit',\n", + " 'swing',\n", + " 'switch',\n", + " 'syringe',\n", + " 'table lamp',\n", + " 'tank',\n", + " 'tape player',\n", + " 'teapot',\n", + " 'teddy bear',\n", + " 'television',\n", + " 'tennis ball',\n", + " 'thatched roof',\n", + " 'front curtain',\n", + " 'thimble',\n", + " 'threshing machine',\n", + " 'throne',\n", + " 'tile roof',\n", + " 'toaster',\n", + " 'tobacco shop',\n", + " 'toilet seat',\n", + " 'torch',\n", + " 'totem pole',\n", + " 'tow truck',\n", + " 'toy store',\n", + " 'tractor',\n", + " 'semi-trailer truck',\n", + " 'tray',\n", + " 'trench coat',\n", + " 'tricycle',\n", + " 'trimaran',\n", + " 'tripod',\n", + " 'triumphal arch',\n", + " 'trolleybus',\n", + " 'trombone',\n", + " 'tub',\n", + " 'turnstile',\n", + " 'typewriter keyboard',\n", + " 'umbrella',\n", + " 'unicycle',\n", + " 'upright piano',\n", + " 'vacuum cleaner',\n", + " 'vase',\n", + " 'vault',\n", + " 'velvet',\n", + " 'vending machine',\n", + " 'vestment',\n", + " 'viaduct',\n", + " 'violin',\n", + " 'volleyball',\n", + " 'waffle iron',\n", + " 'wall clock',\n", + " 'wallet',\n", + " 'wardrobe',\n", + " 'military aircraft',\n", + " 'sink',\n", + " 'washing machine',\n", + " 'water bottle',\n", + " 'water jug',\n", + " 'water tower',\n", + " 'whiskey jug',\n", + " 'whistle',\n", + " 'wig',\n", + " 'window screen',\n", + " 'window shade',\n", + " 'Windsor tie',\n", + " 'wine bottle',\n", + " 'wing',\n", + " 'wok',\n", + " 'wooden spoon',\n", + " 'wool',\n", + " 'split-rail fence',\n", + " 'shipwreck',\n", + " 'yawl',\n", + " 'yurt',\n", + " 'website',\n", + " 'comic book',\n", + " 'crossword',\n", + " 'traffic sign',\n", + " 'traffic light',\n", + " 'dust jacket',\n", + " 'menu',\n", + " 'plate',\n", + " 'guacamole',\n", + " 'consomme',\n", + " 'hot pot',\n", + " 'trifle',\n", + " 'ice cream',\n", + " 'ice pop',\n", + " 'baguette',\n", + " 'bagel',\n", + " 'pretzel',\n", + " 'cheeseburger',\n", + " 'hot dog',\n", + " 'mashed potato',\n", + " 'cabbage',\n", + " 'broccoli',\n", + " 'cauliflower',\n", + " 'zucchini',\n", + " 'spaghetti squash',\n", + " 'acorn squash',\n", + " 'butternut squash',\n", + " 'cucumber',\n", + " 'artichoke',\n", + " 'bell pepper',\n", + " 'cardoon',\n", + " 'mushroom',\n", + " 'Granny Smith',\n", + " 'strawberry',\n", + " 'orange',\n", + " 'lemon',\n", + " 'fig',\n", + " 'pineapple',\n", + " 'banana',\n", + " 'jackfruit',\n", + " 'custard apple',\n", + " 'pomegranate',\n", + " 'hay',\n", + " 'carbonara',\n", + " 'chocolate syrup',\n", + " 'dough',\n", + " 'meatloaf',\n", + " 'pizza',\n", + " 'pot pie',\n", + " 'burrito',\n", + " 'red wine',\n", + " 'espresso',\n", + " 'cup',\n", + " 'eggnog',\n", + " 'alp',\n", + " 'bubble',\n", + " 'cliff',\n", + " 'coral reef',\n", + " 'geyser',\n", + " 'lakeshore',\n", + " 'promontory',\n", + " 'shoal',\n", + " 'seashore',\n", + " 'valley',\n", + " 'volcano',\n", + " 'baseball player',\n", + " 'bridegroom',\n", + " 'scuba diver',\n", + " 'rapeseed',\n", + " 'daisy',\n", + " \"yellow lady's slipper\",\n", + " 'corn',\n", + " 'acorn',\n", + " 'rose hip',\n", + " 'horse chestnut seed',\n", + " 'coral fungus',\n", + " 'agaric',\n", + " 'gyromitra',\n", + " 'stinkhorn mushroom',\n", + " 'earth star',\n", + " 'hen-of-the-woods',\n", + " 'bolete',\n", + " 'ear',\n", + " 'toilet paper']" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "labels" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "b4d13080", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\coren\\anaconda3\\lib\\site-packages\\torchvision\\models\\_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n", + " warnings.warn(\n", + "C:\\Users\\coren\\anaconda3\\lib\\site-packages\\torchvision\\models\\_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet50_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet50_Weights.DEFAULT` to get the most up-to-date weights.\n", + " warnings.warn(msg)\n", + "Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to C:\\Users\\coren/.cache\\torch\\hub\\checkpoints\\resnet50-0676ba61.pth\n", + "100%|█████████████████████████████████████████████████████████████████████████████| 97.8M/97.8M [00:07<00:00, 14.5MB/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Predicted class is: Golden Retriever\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import json\n", + "from PIL import Image\n", + "\n", + "# Choose an image to pass through the model\n", + "test_image = \"dog.png\"\n", + "\n", + "# Configure matplotlib for pretty inline plots\n", + "#%matplotlib inline\n", + "#%config InlineBackend.figure_format = 'retina'\n", + "\n", + "# Prepare the labels\n", + "with open(\"imagenet-simple-labels.json\") as f:\n", + " labels = json.load(f)\n", + "\n", + "# First prepare the transformations: resize the image to what the model was trained on and convert it to a tensor\n", + "data_transform = transforms.Compose(\n", + " [\n", + " transforms.Resize((224, 224)),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),\n", + " ]\n", + ")\n", + "# Load the image\n", + "\n", + "image = Image.open(test_image)\n", + "plt.imshow(image), plt.xticks([]), plt.yticks([])\n", + "\n", + "# Now apply the transformation, expand the batch dimension, and send the image to the GPU\n", + "# image = data_transform(image).unsqueeze(0).cuda()\n", "image = data_transform(image).unsqueeze(0)\n", "\n", "# Download the model if it's not there already. It will take a bit on the first run, after that it's fast\n", @@ -586,6 +2432,191 @@ " \n" ] }, + { + "cell_type": "code", + "execution_count": 19, + "id": "bf2472e8", + "metadata": {}, + "outputs": [], + "source": [ + "def testing_image(test_image, model):\n", + " # Load the image\n", + " image = Image.open(test_image)\n", + " plt.imshow(image), plt.xticks([]), plt.yticks([])\n", + " \n", + " # Now apply the transformation, expand the batch dimension, and send the image to the GPU\n", + " image = data_transform(image).unsqueeze(0) # first (resize, to tensor, and normalization) \n", + " # adds an extra dimension to the tensor at dimension 0 [224,224,3] becomes [1,224,224,3]\n", + " \n", + " # Set layers such as dropout and batchnorm in evaluation mode\n", + " model.eval()\n", + " # Get the 1000-dimensional model output\n", + " out = model(image)\n", + " # Find the predicted class\n", + " print(\"Predicted class is: {}\".format(labels[out.argmax()]))" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "5027ec9c", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Predicted class is: mousetrap\n", + "Predicted class is: tabby cat\n", + "Predicted class is: koala\n", + "Predicted class is: borzoi\n", + "Predicted class is: flamingo\n", + "Predicted class is: forklift\n", + "Predicted class is: tricycle\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test images from internet\n", + "test_images = [\"mouse.jpeg\", \"cat.jpeg\", \"koala.jpeg\", \"borzoi.jpeg\", \"flamingo.jpeg\", \"forklift.jpeg\", \"tricycle.jpeg\"]\n", + "for test_image in test_images:\n", + " testing_image(test_image, model)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "f54bc564", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "model: fp32 \t Size (KB): 102523.238\n" + ] + }, + { + "data": { + "text/plain": [ + "102523238" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# size of the model\n", + "\n", + "import os\n", + "\n", + "\n", + "def print_size_of_model(model, label=\"\"):\n", + " torch.save(model.state_dict(), \"temp.p\")\n", + " size = os.path.getsize(\"temp.p\")\n", + " print(\"model: \", label, \" \\t\", \"Size (KB):\", size / 1e3)\n", + " os.remove(\"temp.p\")\n", + " return size\n", + "\n", + "\n", + "print_size_of_model(model, \"fp32\")" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "a870519b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "model: int8 \t Size (KB): 96379.996\n" + ] + }, + { + "data": { + "text/plain": [ + "96379996" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# quantize the model\n", + "\n", + "import torch.quantization\n", + "\n", + "\n", + "quantized_model = torch.quantization.quantize_dynamic(model, dtype=torch.qint8)\n", + "print_size_of_model(quantized_model, \"int8\")" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "4ea1a921", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Predicted class is: mousetrap\n", + "Predicted class is: tabby cat\n", + "Predicted class is: koala\n", + "Predicted class is: borzoi\n", + "Predicted class is: flamingo\n", + "Predicted class is: forklift\n", + "Predicted class is: tricycle\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test images from internet\n", + "test_images = [\"mouse.jpeg\", \"cat.jpeg\", \"koala.jpeg\", \"borzoi.jpeg\", \"flamingo.jpeg\", \"forklift.jpeg\", \"tricycle.jpeg\"]\n", + "for test_image in test_images:\n", + " testing_image(test_image,quantized_model)" + ] + }, + { + "cell_type": "markdown", + "id": "9c201141", + "metadata": {}, + "source": [ + "The results are the same between the regular and the quantized version of the model. However, we denote tat the gain in storage is not important: from 103 MB to 96 MB." + ] + }, { "cell_type": "markdown", "id": "5d57da4b", @@ -604,10 +2635,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, "id": "be2d31f5", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "import os\n", "\n", @@ -697,9 +2741,130 @@ { "cell_type": "code", "execution_count": null, - "id": "572d824c", + "id": "b50c3d0f", "metadata": {}, "outputs": [], + "source": [ + "dataset_sizes = {x: len(image_datasets[x]) for x in [\"train\", \"val\"]}" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "602c98c8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'train': Dataset ImageFolder\n", + " Number of datapoints: 244\n", + " Root location: hymenoptera_data\\train\n", + " StandardTransform\n", + " Transform: Compose(\n", + " RandomResizedCrop(size=(224, 224), scale=(0.08, 1.0), ratio=(0.75, 1.3333), interpolation=bilinear, antialias=warn)\n", + " RandomHorizontalFlip(p=0.5)\n", + " ToTensor()\n", + " Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n", + " ),\n", + " 'val': Dataset ImageFolder\n", + " Number of datapoints: 153\n", + " Root location: hymenoptera_data\\val\n", + " StandardTransform\n", + " Transform: Compose(\n", + " Resize(size=256, interpolation=bilinear, max_size=None, antialias=warn)\n", + " CenterCrop(size=(224, 224))\n", + " ToTensor()\n", + " Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n", + " )}" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "image_datasets" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "572d824c", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\coren\\anaconda3\\lib\\site-packages\\torchvision\\models\\_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet18_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet18_Weights.DEFAULT` to get the most up-to-date weights.\n", + " warnings.warn(msg)\n", + "Downloading: \"https://download.pytorch.org/models/resnet18-f37072fd.pth\" to C:\\Users\\coren/.cache\\torch\\hub\\checkpoints\\resnet18-f37072fd.pth\n", + "100%|█████████████████████████████████████████████████████████████████████████████| 44.7M/44.7M [00:03<00:00, 13.0MB/s]\n", + "C:\\Users\\coren\\anaconda3\\lib\\site-packages\\torch\\optim\\lr_scheduler.py:136: UserWarning: Detected call of `lr_scheduler.step()` before `optimizer.step()`. In PyTorch 1.1.0 and later, you should call them in the opposite order: `optimizer.step()` before `lr_scheduler.step()`. Failure to do this will result in PyTorch skipping the first value of the learning rate schedule. See more details at https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate\n", + " warnings.warn(\"Detected call of `lr_scheduler.step()` before `optimizer.step()`. \"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/10\n", + "----------\n", + "train Loss: 0.5703 Acc: 0.6680\n", + "val Loss: 0.2795 Acc: 0.9085\n", + "\n", + "Epoch 2/10\n", + "----------\n", + "train Loss: 0.5627 Acc: 0.7377\n", + "val Loss: 0.1846 Acc: 0.9477\n", + "\n", + "Epoch 3/10\n", + "----------\n", + "train Loss: 0.3172 Acc: 0.8811\n", + "val Loss: 0.1873 Acc: 0.9542\n", + "\n", + "Epoch 4/10\n", + "----------\n", + "train Loss: 0.5073 Acc: 0.7746\n", + "val Loss: 0.2211 Acc: 0.9281\n", + "\n", + "Epoch 5/10\n", + "----------\n", + "train Loss: 0.3700 Acc: 0.8197\n", + "val Loss: 0.1807 Acc: 0.9542\n", + "\n", + "Epoch 6/10\n", + "----------\n", + "train Loss: 0.3563 Acc: 0.8197\n", + "val Loss: 0.2699 Acc: 0.9020\n", + "\n", + "Epoch 7/10\n", + "----------\n", + "train Loss: 0.3491 Acc: 0.8443\n", + "val Loss: 0.1755 Acc: 0.9412\n", + "\n", + "Epoch 8/10\n", + "----------\n", + "train Loss: 0.3357 Acc: 0.8402\n", + "val Loss: 0.1671 Acc: 0.9477\n", + "\n", + "Epoch 9/10\n", + "----------\n", + "train Loss: 0.3321 Acc: 0.8402\n", + "val Loss: 0.1651 Acc: 0.9542\n", + "\n", + "Epoch 10/10\n", + "----------\n", + "train Loss: 0.3439 Acc: 0.8648\n", + "val Loss: 0.2181 Acc: 0.9150\n", + "\n", + "Training complete in 6m 29s\n", + "Best val Acc: 0.954248\n" + ] + } + ], "source": [ "import copy\n", "import os\n", @@ -736,7 +2901,7 @@ " transforms.ToTensor(),\n", " transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),\n", " ]\n", - " ),\n", + " )\n", "}\n", "\n", "data_dir = \"hymenoptera_data\"\n", @@ -883,7 +3048,7 @@ }, { "cell_type": "markdown", - "id": "bbd48800", + "id": "26b1982c", "metadata": {}, "source": [ "Experiments:\n", @@ -897,6 +3062,346 @@ "Apply ther quantization (post and quantization aware) and evaluate impact on model size and accuracy." ] }, + { + "cell_type": "markdown", + "id": "cf2ccc37", + "metadata": {}, + "source": [ + "--> Currently we train on trainset and validate on val set. We want to create a third set based on the two first, called \"test\" on which to test the result afterwards. For this purpose the first part of the code reorganize the data folder." + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "002dce6e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test dataset creation completed.\n" + ] + } + ], + "source": [ + "import os\n", + "import shutil\n", + "import random\n", + "\n", + "data_dir = \"hymenoptera_data\"\n", + "output_dir = \"hymenoptera_data_train_val_test\"\n", + "\n", + "# Step 1: Copy the entire dataset to a new folder\n", + "shutil.copytree(data_dir, output_dir)\n", + "\n", + "# Define the paths\n", + "train_path = os.path.join(output_dir, \"train\")\n", + "val_path = os.path.join(output_dir, \"val\")\n", + "test_path = os.path.join(output_dir, \"test\")\n", + "\n", + "# Create the \"test\" directory if it doesn't exist\n", + "if not os.path.exists(test_path):\n", + " os.makedirs(test_path)\n", + "\n", + "# List of classes\n", + "classes = [\"bees\", \"ants\"]\n", + "\n", + "# Number of samples to select for each class\n", + "num_samples = 10 # Adjust this based on your requirements\n", + "\n", + "# Create \"bees\" and \"ants\" subfolders in the \"test\" directory\n", + "for class_name in classes:\n", + " class_test_path = os.path.join(test_path, class_name)\n", + " if not os.path.exists(class_test_path):\n", + " os.makedirs(class_test_path)\n", + "\n", + " # Get list of images from both train and val folders for each class\n", + " class_train_images = os.listdir(os.path.join(train_path, class_name))\n", + " class_val_images = os.listdir(os.path.join(val_path, class_name))\n", + "\n", + " # Randomly select samples from train and val folders for the \"test\" folder\n", + " selected_train_samples = random.sample(class_train_images, num_samples)\n", + " selected_val_samples = random.sample(class_val_images, num_samples)\n", + "\n", + " # Copy selected samples to the \"test\" folder\n", + " for sample in selected_train_samples:\n", + " src_path = os.path.join(train_path, class_name, sample)\n", + " dst_path = os.path.join(class_test_path, sample)\n", + " shutil.copyfile(src_path, dst_path)\n", + "\n", + " for sample in selected_val_samples:\n", + " src_path = os.path.join(val_path, class_name, sample)\n", + " dst_path = os.path.join(class_test_path, sample)\n", + " shutil.copyfile(src_path, dst_path)\n", + "\n", + "print(\"Test dataset creation completed.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "42f65fa2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/10\n", + "----------\n", + "train Loss: 0.5423 Acc: 0.7008\n", + "val Loss: 0.2162 Acc: 0.9216\n", + "test Loss: 0.2344 Acc: 0.9750\n", + "\n", + "Epoch 2/10\n", + "----------\n", + "train Loss: 0.4271 Acc: 0.7869\n", + "val Loss: 0.1998 Acc: 0.9346\n", + "test Loss: 0.2204 Acc: 0.9000\n", + "\n", + "Epoch 3/10\n", + "----------\n", + "train Loss: 0.4920 Acc: 0.7828\n", + "val Loss: 0.1834 Acc: 0.9216\n", + "test Loss: 0.1859 Acc: 0.9250\n", + "\n", + "Epoch 4/10\n", + "----------\n", + "train Loss: 0.3929 Acc: 0.8279\n", + "val Loss: 0.2050 Acc: 0.9150\n", + "test Loss: 0.2025 Acc: 0.9250\n", + "\n", + "Epoch 5/10\n", + "----------\n", + "train Loss: 0.4900 Acc: 0.7746\n", + "val Loss: 0.1732 Acc: 0.9477\n", + "test Loss: 0.1866 Acc: 0.9500\n", + "\n", + "Epoch 6/10\n", + "----------\n", + "train Loss: 0.4515 Acc: 0.8115\n", + "val Loss: 0.1833 Acc: 0.9346\n", + "test Loss: 0.2026 Acc: 0.9500\n", + "\n", + "Epoch 7/10\n", + "----------\n", + "train Loss: 0.2735 Acc: 0.8648\n", + "val Loss: 0.1891 Acc: 0.9281\n", + "test Loss: 0.2061 Acc: 0.9250\n", + "\n", + "Epoch 8/10\n", + "----------\n", + "train Loss: 0.4195 Acc: 0.8033\n", + "val Loss: 0.2175 Acc: 0.9281\n", + "test Loss: 0.2463 Acc: 0.9500\n", + "\n", + "Epoch 9/10\n", + "----------\n", + "train Loss: 0.3107 Acc: 0.8566\n", + "val Loss: 0.1851 Acc: 0.9346\n", + "test Loss: 0.2102 Acc: 0.9500\n", + "\n", + "Epoch 10/10\n", + "----------\n", + "train Loss: 0.2610 Acc: 0.9057\n", + "val Loss: 0.2066 Acc: 0.9346\n", + "test Loss: 0.2386 Acc: 0.9500\n", + "\n", + "Training complete in 5m 10s\n", + "Best val Acc: 0.947712\n" + ] + } + ], + "source": [ + "import copy\n", + "import os\n", + "import time\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import torch\n", + "import torch.nn as nn\n", + "import torch.optim as optim\n", + "import torchvision\n", + "from torch.optim import lr_scheduler\n", + "from torchvision import datasets, transforms\n", + "\n", + "# Data augmentation and normalization for training\n", + "# Just normalization for validation\n", + "data_transforms = {\n", + " \"train\": transforms.Compose(\n", + " [\n", + " transforms.RandomResizedCrop(\n", + " 224\n", + " ), # ImageNet models were trained on 224x224 images\n", + " transforms.RandomHorizontalFlip(), # flip horizontally 50% of the time - increases train set variability\n", + " transforms.ToTensor(), # convert it to a PyTorch tensor\n", + " transforms.Normalize(\n", + " [0.485, 0.456, 0.406], [0.229, 0.224, 0.225]\n", + " ), # ImageNet models expect this norm\n", + " ]\n", + " ),\n", + " \"val\": transforms.Compose(\n", + " [\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),\n", + " ]\n", + " ),\n", + " \"test\": transforms.Compose(\n", + " [\n", + " transforms.Resize(256),\n", + " transforms.CenterCrop(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),\n", + " ]\n", + " ),\n", + "}\n", + "\n", + "data_dir = \"hymenoptera_data_train_val_test\"\n", + "# Create train and validation datasets and loaders\n", + "image_datasets = {\n", + " x: datasets.ImageFolder(os.path.join(data_dir, x), data_transforms[x])\n", + " for x in [\"train\", \"val\", \"test\"]\n", + "}\n", + "dataloaders = {\n", + " x: torch.utils.data.DataLoader(\n", + " image_datasets[x], batch_size=4, shuffle=True, num_workers=4\n", + " )\n", + " for x in [\"train\", \"val\", \"test\"]\n", + "}\n", + "dataset_sizes = {x: len(image_datasets[x]) for x in [\"train\", \"val\", \"test\"]}\n", + "class_names = image_datasets[\"train\"].classes\n", + "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n", + "\n", + "# Helper function for displaying images\n", + "def imshow(inp, title=None):\n", + " \"\"\"Imshow for Tensor.\"\"\"\n", + " inp = inp.numpy().transpose((1, 2, 0))\n", + " mean = np.array([0.485, 0.456, 0.406])\n", + " std = np.array([0.229, 0.224, 0.225])\n", + "\n", + " # Un-normalize the images\n", + " inp = std * inp + mean\n", + " # Clip just in case\n", + " inp = np.clip(inp, 0, 1)\n", + " plt.imshow(inp)\n", + " if title is not None:\n", + " plt.title(title)\n", + " plt.pause(0.001) # pause a bit so that plots are updated\n", + " plt.show()\n", + "\n", + "\n", + "# Get a batch of training data\n", + "# inputs, classes = next(iter(dataloaders['train']))\n", + "\n", + "# Make a grid from batch\n", + "# out = torchvision.utils.make_grid(inputs)\n", + "\n", + "# imshow(out, title=[class_names[x] for x in classes])\n", + "# training\n", + "\n", + "\n", + "def train_model(model, criterion, optimizer, scheduler, num_epochs=25):\n", + " since = time.time()\n", + "\n", + " best_model_wts = copy.deepcopy(model.state_dict())\n", + " best_acc = 0.0\n", + "\n", + " epoch_time = [] # we'll keep track of the time needed for each epoch\n", + "\n", + " for epoch in range(num_epochs):\n", + " epoch_start = time.time()\n", + " print(\"Epoch {}/{}\".format(epoch + 1, num_epochs))\n", + " print(\"-\" * 10)\n", + "\n", + " # Each epoch has a training and validation phase\n", + " for phase in [\"train\", \"val\", \"test\"]:\n", + " if phase == \"train\":\n", + " scheduler.step()\n", + " model.train() # Set model to training mode\n", + " else:\n", + " model.eval() # Set model to evaluate mode\n", + "\n", + " running_loss = 0.0\n", + " running_corrects = 0\n", + "\n", + " # Iterate over data.\n", + " for inputs, labels in dataloaders[phase]:\n", + " inputs = inputs.to(device)\n", + " labels = labels.to(device)\n", + "\n", + " # zero the parameter gradients\n", + " optimizer.zero_grad()\n", + "\n", + " # Forward\n", + " # Track history if only in training phase\n", + " with torch.set_grad_enabled(phase == \"train\"):\n", + " outputs = model(inputs)\n", + " _, preds = torch.max(outputs, 1)\n", + " loss = criterion(outputs, labels)\n", + "\n", + " # backward + optimize only if in training phase\n", + " if phase == \"train\":\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " # Statistics\n", + " running_loss += loss.item() * inputs.size(0)\n", + " running_corrects += torch.sum(preds == labels.data)\n", + "\n", + " epoch_loss = running_loss / dataset_sizes[phase]\n", + " epoch_acc = running_corrects.double() / dataset_sizes[phase]\n", + "\n", + " print(\"{} Loss: {:.4f} Acc: {:.4f}\".format(phase, epoch_loss, epoch_acc))\n", + "\n", + " # Deep copy the model\n", + " if phase == \"val\" and epoch_acc > best_acc:\n", + " best_acc = epoch_acc\n", + " best_model_wts = copy.deepcopy(model.state_dict())\n", + "\n", + " # Add the epoch time\n", + " t_epoch = time.time() - epoch_start\n", + " epoch_time.append(t_epoch)\n", + " print()\n", + "\n", + " time_elapsed = time.time() - since\n", + " print(\n", + " \"Training complete in {:.0f}m {:.0f}s\".format(\n", + " time_elapsed // 60, time_elapsed % 60\n", + " )\n", + " )\n", + " print(\"Best val Acc: {:4f}\".format(best_acc))\n", + "\n", + " # Load best model weights\n", + " model.load_state_dict(best_model_wts)\n", + " return model, epoch_time\n", + "\n", + "\n", + "# Download a pre-trained ResNet18 model and freeze its weights\n", + "model = torchvision.models.resnet18(pretrained=True)\n", + "for param in model.parameters():\n", + " param.requires_grad = False\n", + "\n", + "# Replace the final fully connected layer\n", + "# Parameters of newly constructed modules have requires_grad=True by default\n", + "num_ftrs = model.fc.in_features\n", + "model.fc = nn.Linear(num_ftrs, 2)\n", + "# Send the model to the GPU\n", + "model = model.to(device)\n", + "# Set the loss function\n", + "criterion = nn.CrossEntropyLoss()\n", + "\n", + "# Observe that only the parameters of the final layer are being optimized\n", + "optimizer_conv = optim.SGD(model.fc.parameters(), lr=0.001, momentum=0.9)\n", + "exp_lr_scheduler = lr_scheduler.StepLR(optimizer_conv, step_size=7, gamma=0.1)\n", + "model, epoch_time = train_model(\n", + " model, criterion, optimizer_conv, exp_lr_scheduler, num_epochs=10\n", + ")\n" + ] + }, { "cell_type": "markdown", "id": "04a263f0", @@ -926,7 +3431,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.8.5 ('base')", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -940,7 +3445,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.9.7" }, "vscode": { "interpreter": { diff --git a/borzoi.jpeg b/borzoi.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..76a88c2aa8122fe5819a42849737a96459efbc2f Binary files /dev/null and b/borzoi.jpeg differ diff --git a/cat.jpeg b/cat.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f9659dbb4870a9d451fcdf0af5f5dd393ed50f2b Binary files /dev/null and b/cat.jpeg differ diff --git a/flamingo.jpeg b/flamingo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b0ca8ec2d79f523f301b0fe62efa7b6e7aa346e0 Binary files /dev/null and b/flamingo.jpeg differ diff --git a/forklift.jpeg b/forklift.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2210186da84bcc9003ef405fa0dd91362137e380 Binary files /dev/null and b/forklift.jpeg differ diff --git a/giraf.jpeg b/giraf.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3eed26ba375c1be3cbbd850171c44896f944ded1 Binary files /dev/null and b/giraf.jpeg differ diff --git a/hymenoptera_data/train/ants/formica.jpeg b/hymenoptera_data/train/ants/formica.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..af83327233be73099c700fce654749842aad4a9d Binary files /dev/null and b/hymenoptera_data/train/ants/formica.jpeg differ diff --git a/hymenoptera_data/train/ants/imageNotFound.gif b/hymenoptera_data/train/ants/imageNotFound.gif new file mode 100644 index 0000000000000000000000000000000000000000..bdeaae94004e06c6a35d147ec58fb35062076b52 Binary files /dev/null and b/hymenoptera_data/train/ants/imageNotFound.gif differ diff --git a/hymenoptera_data_train_val_test/train/ants/formica.jpeg b/hymenoptera_data_train_val_test/train/ants/formica.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..af83327233be73099c700fce654749842aad4a9d Binary files /dev/null and b/hymenoptera_data_train_val_test/train/ants/formica.jpeg differ diff --git a/hymenoptera_data_train_val_test/train/ants/imageNotFound.gif b/hymenoptera_data_train_val_test/train/ants/imageNotFound.gif new file mode 100644 index 0000000000000000000000000000000000000000..bdeaae94004e06c6a35d147ec58fb35062076b52 Binary files /dev/null and b/hymenoptera_data_train_val_test/train/ants/imageNotFound.gif differ diff --git a/koala.jpeg b/koala.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f11571a6724b1e3766cea69768250b0dba5b3b07 Binary files /dev/null and b/koala.jpeg differ diff --git a/mouse.jpeg b/mouse.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fd4aa2b2b59a1a78da7e131c094d4b159378c73b Binary files /dev/null and b/mouse.jpeg differ diff --git a/test1.txt b/test1.txt deleted file mode 100644 index 9f71d140ff7712ec3a6dda42c09078fd290a3a61..0000000000000000000000000000000000000000 --- a/test1.txt +++ /dev/null @@ -1,2 +0,0 @@ -test1 - diff --git a/tricycle.jpeg b/tricycle.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..63ec9fcd2422e1b6b129a7e825deb5e1864b27a0 Binary files /dev/null and b/tricycle.jpeg differ