final notebookk run

This commit is contained in:
KeshavAnandCode committed 2026-03-20 13:18:53 -05:00
1 parent 66e153ff4a
commit f28aa1d53b
2 files changed
+198 -24

No files matched your search

+198 -24
View File
@@ -11,10 +11,26 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"id": "d318d1f0",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Van: 1111 images\n",
"Taxi: 748 images\n",
"Bicycle: 1618 images\n",
"Bus: 2133 images\n",
"Car: 6781 images\n",
"Motorcycle: 2986 images\n",
"Truck: 2033 images\n",
"NonVehicles: 8968 images\n",
"Total Count: 26378 images\n"
]
}
],
"source": [
"import os\n",
"\n",
@@ -42,10 +58,29 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"id": "5604ace3",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Size: (64, 64)\n",
"Mode: RGB\n"
]
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from PIL import Image\n",
"import matplotlib.pyplot as plt\n",
@@ -72,10 +107,19 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 3,
"id": "3cedd586",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Unique sizes: {(64, 64)}\n",
"Unique modes: {'RGB'}\n"
]
}
],
"source": [
"sizes = set()\n",
"modes = set()\n",
@@ -103,10 +147,19 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 4,
"id": "8f556b22",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"GPU: NVIDIA GeForce RTX 5080\n",
"Running on: cuda\n"
]
}
],
"source": [
"import torch\n",
"\n",
@@ -135,10 +188,18 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 5,
"id": "f68c1a25",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train: 21102, Test: 5276\n"
]
}
],
"source": [
"import math \n",
"from torchvision import datasets, transforms\n",
@@ -188,10 +249,20 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 6,
"id": "e1539eaa",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4\n",
"['Bicycle', 'Bus', 'Car', 'Motorcycle', 'NonVehicles', 'Taxi', 'Truck', 'Van']\n",
"8\n"
]
}
],
"source": [
"NUM_WORKERS = min(4, os.cpu_count() or 1)\n",
"PIN_MEMORY = (DEVICE.type == 'cuda') # Pin memory if GPU available for CUDA\n",
@@ -218,10 +289,40 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 7,
"id": "d1b7d9ca",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Net(\n",
" (features): Sequential(\n",
" (0): Conv2d(3, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU()\n",
" (3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
" (4): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (5): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (6): ReLU()\n",
" (7): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
" (8): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (9): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (10): ReLU()\n",
" (11): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
" )\n",
" (classifier): Sequential(\n",
" (0): Flatten(start_dim=1, end_dim=-1)\n",
" (1): Linear(in_features=8192, out_features=512, bias=True)\n",
" (2): ReLU()\n",
" (3): Dropout(p=0.5, inplace=False)\n",
" (4): Linear(in_features=512, out_features=8, bias=True)\n",
" )\n",
")\n"
]
}
],
"source": [
"import torch.nn as nn\n",
"\n",
@@ -285,7 +386,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 8,
"id": "54d11a04",
"metadata": {},
"outputs": [],
@@ -310,10 +411,48 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 9,
"id": "374d0590",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1: Loss=1.137, Accuracy=62.59%\n",
"Epoch 2: Loss=0.866, Accuracy=69.80%\n",
"Epoch 3: Loss=0.796, Accuracy=71.93%\n",
"Epoch 4: Loss=0.752, Accuracy=74.03%\n",
"Epoch 5: Loss=0.712, Accuracy=74.89%\n",
"Epoch 6: Loss=0.683, Accuracy=76.17%\n",
"Epoch 7: Loss=0.659, Accuracy=76.99%\n",
"Epoch 8: Loss=0.635, Accuracy=77.73%\n",
"Epoch 9: Loss=0.615, Accuracy=78.54%\n",
"Epoch 10: Loss=0.597, Accuracy=78.92%\n",
"Epoch 11: Loss=0.575, Accuracy=79.91%\n",
"Epoch 12: Loss=0.567, Accuracy=80.05%\n",
"Epoch 13: Loss=0.554, Accuracy=80.72%\n",
"Epoch 14: Loss=0.542, Accuracy=81.12%\n",
"Epoch 15: Loss=0.532, Accuracy=81.31%\n",
"Epoch 16: Loss=0.522, Accuracy=81.75%\n",
"Epoch 17: Loss=0.505, Accuracy=82.06%\n",
"Epoch 18: Loss=0.489, Accuracy=82.72%\n",
"Epoch 19: Loss=0.487, Accuracy=82.87%\n",
"Epoch 20: Loss=0.488, Accuracy=82.76%\n",
"Epoch 21: Loss=0.471, Accuracy=83.04%\n",
"Epoch 22: Loss=0.455, Accuracy=83.86%\n",
"Epoch 23: Loss=0.449, Accuracy=83.77%\n",
"Epoch 24: Loss=0.444, Accuracy=84.12%\n",
"Epoch 25: Loss=0.448, Accuracy=84.23%\n",
"Epoch 26: Loss=0.431, Accuracy=84.57%\n",
"Epoch 27: Loss=0.425, Accuracy=85.00%\n",
"Epoch 28: Loss=0.414, Accuracy=84.98%\n",
"Epoch 29: Loss=0.412, Accuracy=85.57%\n",
"Epoch 30: Loss=0.399, Accuracy=85.84%\n",
"Finished Training\n"
]
}
],
"source": [
"train_losses, train_accs = [], [] #To store accs for visualization\n",
"\n",
@@ -361,10 +500,21 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 10,
"id": "c71ee0ff",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKQAAAGMCAYAAADk5HosAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmpVJREFUeJzs3Xd8FNX6x/HPbnpCAiE9IaTRe+8ICoiIKOVasNAU/alcrnK9KioooGIHOxZAVLArFhQFFJUmvfeWQCANSK9k9/fHwkJMwBA2mZTv+/XaFzNnzsw++xBx8uw5Z0xWq9WKiIiIiIiIiIhIBTEbHYCIiIiIiIiIiNQsKkiJiIiIiIiIiEiFUkFKREREREREREQqlApSIiIiIiIiIiJSoVSQEhERERERERGRCqWClIiIiIiIiIiIVCgVpEREREREREREpEKpICUiIiIiIiIiIhVKBSkREREREREREalQKkiJiIhIhfvggw8wmUz2lyNERkbar/fUU0855JoiIiIiUj5UkBIREakhzi/YlPa1fPlyo8OutlauXMndd99NixYtqFOnDi4uLvj7+9OzZ0+efPJJDhw4YHSIIiIiIuXG2egAREREpObp2LEjL774okOv+fjjj5OWlgZAt27dHHptRzp16hRjxoxh4cKFxY6dOHGCFStWsGLFCn7//XcVBEVERKTaMlmtVqvRQYiIiEj5e++99+wFG7AVRp599ln7fr9+/bj66quLnHPzzTcTHh5e4vXS09Px8fEpn2CrqaysLHr37s369evtbcHBwQwePJj69euTkZHBxo0bWbZsGd27dy/3glRGRgbe3t7l+h4iIiIiJdGUPRERkRpi7NixPPTQQ/bX2LFjixzv1q1bkeP/+te/qF+/fpHpe7Nnz6Zdu3Z4eHhwxRVXAHDo0CEeeOABevbsSXh4OF5eXri5uREWFsagQYP4/vvvi8VysTWkevfubW8fNWoU+/btY/jw4fj7++Pu7k67du349ttvi13zQmtILV++vMh7HTx4kLfeeotWrVrh7u5OYGAgd911F6dOnSp2zezsbCZOnEj9+vVxd3enefPmzJo1i0OHDpVpauPTTz9dpBh1ww03cODAAd5++20mTpzIs88+y+LFi4mNjWX48OH2fk899ZT9vSIjI4tc8/DhwxeM5e/nnThxgvvvv5969erh5OTEjBkz8PLysvf54IMPisV8880324/369evyLGDBw8yfvx4mjZtipeXFx4eHjRr1oxHH32UlJSUYtdKSUnhoYceonnz5nh5eeHq6kpwcDCdOnVi3LhxrFmzplR5FBERkapPU/ZERESkVCZPnsyff/5ZrH3Hjh28+uqrxdqPHTvGsWPH+OGHH5gyZQqTJ0++5PfctGkT7du3JyMjo0jbkCFDWLJkCX369Lnka44cOZIVK1bY95OTk5k9ezb79u3j999/t7cXFBRwzTXXFPnMO3fu5N5772XQoEGX/L4FBQW8+eab9v3g4GDmz5+Pp6dnsb6hoaHcc889l/weF5OVlUWPHj3YvXu3vc3Hx4dhw4bx0UcfAfDJJ58watQo+/HMzMwiBcUxY8bYt7/99ltuvfVWsrOzi7zPrl272LVrFx9//DFLliyhadOmAOTm5tKjRw/27NlTpH9iYiKJiYmsW7eOWrVq0aVLF4d9ZhEREam8VJASERGRUvnzzz+JiIhg2LBheHp6kpSUBICzszNt2rShQ4cOBAQE4OPjQ1ZWFitXruS3334DYNq0adx5552EhYVd0ntu3boVX19fHnzwQXJycnjvvfcoLCzEarXy4osvlqkgtWLFCvr06UO3bt1YuHAh27ZtA+CPP/5gzZo19oLIq6++WqQY1apVK2644Qa2bNnCd999d8nvu27duiKFtZtvvhkvL69Lvk5ZpaSkkJKSQt++fenevTvJyckEBQUxevRoe0Fq2bJlJCUlERgYCMDChQvJyckBoE6dOgwZMgSwjYobPny4/Vjz5s0ZMmQIFouF+fPnExsbS3x8PMOGDWPbtm04OTnx22+/2YtR7u7u9p+HhIQE9u/fX6QYKCIiItWfClIiIiJSKlFRUWzcuJE6deoUab/mmmu45ppr2Lt3L5s2bSI5ORkXFxeuvfZa/vrrL7Kzszl9+jS//vord9xxxyW9p8lkYtmyZbRt2xawFTJmzpwJ2Ao8ZTFkyBC++uorTCYTDzzwAIGBgRQWFtqvebYg9f7779vPiYyMZM2aNXh4eAAwatQo5s2bd0nvGx8fX2S/SZMmZYr/cjzwwAPMmDGjSJvVaiUqKopDhw5RWFjI559/zrhx4wDbiKmzhg8fjru7OwCvv/66vRjVqFEj1q9fbz82btw4wsPDKSwsZNeuXSxatIjrr7+e3Nxc+7V69erFG2+8USSOvLy8Eqf5iYiISPWkgpSIiIiUyv3331+sGAW2NYxuu+02Vq1addHzjx49esnv2bVrV3sxCqBx48b27ZLWfCqNe++9175uVd26dfH39ycxMbHINTMzM4tMLbvxxhvtxSiA0aNHX3JBqjJ44oknirWdXavrySefBGxFqHHjxnHixAmWLFli7zd69Gj79sqVK+3be/fuLZKbv1u1ahXXX389HTt2xM3Njby8PH7++WeaN29Oq1ataNSoEW3btqVPnz6XPIJOREREqi4tai4iIiKlcqERPYMHD/7HYhTYRsBcqr8v4O3m5mbfLuuDgi92TYvFAkBqamqRPsHBwRfdL42/F1vOX8vpUvz9c5c2r/7+/vj5+ZV4bNSoUZjNttvC1atXc/jwYb744gsKCgoAaNGiBR07drT3P3nyZKnjTU5OBqBevXp88MEH+Pv7A7b1uD799FOmTp3KkCFDCA0N5dNPPy31dUVERKRq0wgpERERKZWS1jvas2cPW7Zsse/feuutvPDCC4SGhmIymQgMDLQXJMrCxcWlyP7fn8hXXtesXbt2kf2z62WdlZCQcMnv27FjR7y9ve3rSH3++ec8++yzJS5q/ndni0WAfarcWfv27SvV+19svar69etz1VVXsXTpUqxWK59++ik//fST/fj5o6PANrLsrObNmxdZCP3vWrRoYd++5ZZbGDZsGGvXrmXbtm3s27eP3377jU2bNpGZmcmdd97JddddR61atUr1mURERKTqUkFKREREyuzEiRNF9v/1r3/ZRwItX778sopRRvL29qZx48b2aXtff/01U6dOxdXVFYC5c+de8jVdXFy47777eP755wE4fvw4d9xxBx9//HGxKW9nn0549913AxSZKpmcnMyBAweIiYkhLy+Pl156qSwfsZgxY8awdOlSAGbNmkVcXJw97r+v/dWtWzfWrl1r/xzDhw8vNgLs9OnTfP/993Tu3BmwjarKyMggIiKC7t270717d8A2TfJsgSs7O5s9e/bQvn17h3wmERERqbxUkBIREZEya9CgAWaz2T7V7T//+Q+bN2/mxIkTZSraVCZjx47loYceAmyjkLp27cp1113Hli1b+Pbbb8t0zSeeeIIlS5awceNGwFboiomJYciQIdSrV4+MjAw2btzIsmXL6N69u70gdf50OYDu3bvTq1cvNm7cyP79+y/jU54zZMgQ6tSpQ2pqKrGxsfb2gQMHEhAQUKTvv//9b2bNmkVubi4nT56kTZs23HjjjYSHh5OZmcnOnTtZvnw5qampHDp0CF9fX/bu3UvXrl3p2LEjrVu3JjQ0FGdnZxYvXlzk2iWtUyYiIiLVjwpSIiIiUmaBgYHcfffdzJo1C4AjR44wdepUAPr06cPu3buLPV2uqhg/fjzffvstf/75JwAbN260F5IGDBhQZErb+VPqLqZWrVr88ssvjBo1ih9++AGwjTB66623Lnpe165d6dmzpz2WxMREPv/8cwCuvfZafvzxx0v7cCVwd3dn+PDhvP3220Xax4wZU6xvdHQ0n3zyCbfffjtZWVmkpKQUO+9C1q1bd8EnJA4dOpSYmJhLD15ERESqHC1qLiIiIpfl9ddfZ+rUqURERODi4kL9+vX53//+x/fff4+zc9X97svFxYXFixfzyCOPUK9ePVxdXWncuDEzZswo9rS6SxnV4+fnx/fff8/vv//OnXfeSdOmTfHx8cHJyYm6devSo0cPXnjhBT788MMi53333XfcddddBAQE4ObmRqtWrXj//fd54403HPFxgeJrRQUFBTFgwIAS+w4ePJjt27czYcIEWrZsSa1atXBycsLPz4+uXbvyv//9j5UrV9oXkW/cuDEvv/wyQ4cOpVGjRtSuXRsnJyd8fX3p3r07r776qhY1FxERqUFM1rI+okZERESkmsvJySm2vhPAQw89xMsvvwzYRj2dOHHCvr6UiIiIiPyzqvu1pYiIiEg5u/LKK4mOjqZnz56Eh4dz6tQpFi9ezCeffGLvc88996gYJSIiInKJNEJKRERE5ALatGnDli1bLnh84MCBfPXVV7i5uVVgVCIiIiJVn9aQEhEREbmAcePG0b9/f8LCwnB3d8fNzY169eoxePBgvvzyS3744QcVo0RERETKQCOkRERERERERESkQmmElIiIiIiIiIiIVCgVpEREREREREREpEKpICUiIiIiIiIiIhVKBSkREREREREREalQKkiJiIiIiIiIiEiFUkFKREREREREREQqlApSIiIiIiIiIiJSoVSQEhERERERERGRCqWClIiIiIiIiIiIVCgVpEREREREREREpEKpICUiIiIiIiIiIhVKBSkREREREREREalQKkiJiIiIiIiIiEiFUkFKREREREREREQqlApSIiIiIiIiIiJSoVSQEhERERERERGRCqWClIiIiIiIiIiIVCgVpEREREREREREpEKpICUiIiIiIiIiIhVKBSkREREREREREalQKkiJiIiIiIiIiEiFUkFKRCqtUaNGERkZWaZzn3rqKUwmk2MDEhEREXEg3euISE2mgpSIXDKTyVSq1/Lly40O1RCjRo2iVq1aRocLine truncated
"text/plain": [
"<Figure size 1200x400 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))\n",
"\n",
@@ -401,7 +551,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 11,
"id": "2bf2b9a2",
"metadata": {},
"outputs": [],
@@ -422,10 +572,19 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 12,
"id": "9e54f566",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Final Train Accuracy : 86.68%\n",
"Final Test Accuracy : 84.67%\n"
]
}
],
"source": [
"model.eval() # Switch to eval mode (disabled droupout --> higher acc) (credit: Claude)\n",
"train_correct, train_total = 0, 0\n",
@@ -461,10 +620,25 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 13,
"id": "8cc7ed40",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy for class: Bicycle is 81.3%\n",
"Accuracy for class: Bus is 87.0%\n",
"Accuracy for class: Car is 86.1%\n",
"Accuracy for class: Motorcycle is 89.9%\n",
"Accuracy for class: NonVehicles is 99.8%\n",
"Accuracy for class: Taxi is 50.0%\n",
"Accuracy for class: Truck is 46.4%\n",
"Accuracy for class: Van is 36.7%\n"
]
}
],
"source": [
"correct_pred = {classname: 0 for classname in classes} # Correct predicitions per class\n",
"total_pred = {classname: 0 for classname in classes} # total images seen per class\n",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 59 KiB