No files matched your search
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 35 KiB |
@@ -282,7 +282,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.12.4"
|
||||
"version": "3.13.1"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<Figure size 1400x1000 with 6 Axes>"
|
||||
]
|
||||
@@ -100,6 +100,134 @@
|
||||
"plt.show()\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 57,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<Figure size 640x480 with 1 Axes>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# Create subplots\n",
|
||||
"fig, ax = plt.subplots()\n",
|
||||
"\n",
|
||||
"# Loop through each measurement type\n",
|
||||
"model = \"P>M>F\"\n",
|
||||
"data = cable_data\n",
|
||||
"imgclass = \"cable\"\n",
|
||||
"\n",
|
||||
"# Plot both bottle and cable data\n",
|
||||
"ax.plot([5,10,15, 30], data[model].get(\"inbalanced - more good shots\", []), marker='o', label=f'Inbalanced (more good shots) - 9 way', linestyle='-')\n",
|
||||
"ax.plot([5,10,15, 30], data[model].get(\"inbalance 2 way\", []), marker='o', label=f'faulty or not - 2 way', linestyle='-')\n",
|
||||
"\n",
|
||||
"ax.set_title(f'{model} - {imgclass}')\n",
|
||||
"ax.set_xlabel(\"Shots per class\")\n",
|
||||
"ax.set_ylabel(\"Accuracy\")\n",
|
||||
"ax.legend()\n",
|
||||
"ax.grid(True)\n",
|
||||
"\n",
|
||||
"ax.set(xlim=(4.5, 30.5), xticks=[5,10,15, 30])\n",
|
||||
"\n",
|
||||
"# Adjust layout\n",
|
||||
"plt.tight_layout()\n",
|
||||
"plt.savefig(f\"{model}-{imgclass}-inbalanced.png\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 55,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<Figure size 640x480 with 1 Axes>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# Create subplots\n",
|
||||
"fig, ax = plt.subplots()\n",
|
||||
"\n",
|
||||
"# Loop through each measurement type\n",
|
||||
"model = \"P>M>F\"\n",
|
||||
"data = bottle_data\n",
|
||||
"imgclass = \"bottle\"\n",
|
||||
"\n",
|
||||
"# Plot both bottle and cable data\n",
|
||||
"ax.plot([1,3,5], data[model].get(\"1,3,5 shots normal\", []), marker='o', label=f'Normal all classes - 4 way', linestyle='-')\n",
|
||||
"ax.plot([1,3,5], data[model].get(\"2 ways only detect if faulty or not\", []), marker='o', label=f'faulty or not - 2 way', linestyle='-')\n",
|
||||
"ax.plot([1,3,5], data[model].get(\"only faulty class detect\", []), marker='o', label=f'faulty classes - 3 way', linestyle='-')\n",
|
||||
"\n",
|
||||
"ax.set_title(f'{model} - {imgclass}')\n",
|
||||
"ax.set_xlabel(\"Shots per class\")\n",
|
||||
"ax.set_ylabel(\"Accuracy\")\n",
|
||||
"ax.legend()\n",
|
||||
"ax.grid(True)\n",
|
||||
"\n",
|
||||
"ax.set(xlim=(0.75, 5.25), xticks=[1,3,5])\n",
|
||||
"\n",
|
||||
"# Adjust layout\n",
|
||||
"plt.tight_layout()\n",
|
||||
"plt.savefig(f\"{model}-{imgclass}.png\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 61,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB0i0lEQVR4nO3dd3xT9f4/8NdJmu5F96BNy4aW2dIBsmSDgFwVFGUJLlTk1gX3ei9DvaD3K4IDfnplFVQQEUUvIlVkeGnLKAWkqMjoTDdtupsm5/dHaGhIRwJp04bX00cfNCefc87nACkvP+fzeR9BFEURRERERNThSSzdASIiIiIyDwY7IiIiIivBYEdERERkJRjsiIiIiKwEgx0RERGRlWCwIyIiIrISDHZEREREVoLBjoiIiMhKMNgRERERWQkGOyIyu61bt0IQBN2XjY0NOnfujPnz5yM7O/uOj3/48GHdsbdu3dpom3vvvReCICAkJOSOzwcAISEhetfU8Ku8vNws56g/z3333We241VWVmLFihU4fPiwwXvHjx/HihUrUFJSYvDeyJEjMXLkSLP1g4jaho2lO0BE1mvLli3o1asXqqqqcPToUaxevRpHjhzB+fPn4eTkdMfHd3FxwaZNmzBv3jy97VevXsXhw4fh6up6x+doaOjQofi///s/g+2Ojo5mPY85VVZWYuXKlQBgENSOHz+OlStXYt68eXB3d2/7zhGR2THYEVGrCQ8PR2RkJABg1KhRUKvVeP311/H111/j0UcfRVVVFQoLCxEUFHRbx585cyY++eQTXLp0Cd27d9dt37x5MwIDA9G3b1+kpaXp7XPp0iV069YNgiCYfD53d3fExMTcVl+JiNoCb8USUZupD0Xp6ekAgLy8PMjlcgwfPhwbN25EYWGhSccbO3YsgoKCsHnzZt02jUaDbdu2Ye7cuZBIDH/EPfHEE5DL5XjllVdw5syZO7ia1rV3717069cP9vb26NKlC9577z2DNhkZGXjsscfg4+MDOzs79O7dG++88w40Gg0A4Nq1a/D29gYArFy5UnfreN68eVixYgVefvllAEBoaKjuvcZu2darra3FG2+8gV69esHOzg7e3t6YP38+CgoKzP8bQES3hcGOiNrMn3/+CQC6sBEUFIS9e/ciMDAQL7/8Mvz9/TFp0iRs374dZWVlLR5PIpFg3rx5iI+Ph1qtBgAcPHgQWVlZmD9/fqP7bNiwAY899hj27NmDQYMGoXfv3li1ahUuXbrU4vlEUURdXZ3eV32IMqfU1FQsWbIEf/3rX7F3714MGTIEL7zwgt5t4IKCAgwZMgQHDx7E66+/jn379mHMmDF46aWX8NxzzwEA/P39ceDAAQDAggULkJiYiMTERPzjH//AwoUL8fzzzwMAvvrqK917gwYNarRPGo0G06ZNw5o1azBr1iz897//xZo1a5CQkICRI0eiqqrK7L8PRHQbRCIiM9uyZYsIQExKShJVKpVYVlYmfvfdd6K3t7fo4uIi5ubmGuxTUVEh7tq1S5w+fbpob28vOjg4iA899JD41VdfidXV1Xptf/75ZxGAuHv3bvHKlSuiIAjid999J4qiKD700EPiyJEjRVEUxcmTJ4tyubzJfp44cUKMi4sTO3fuLAIQIyIixHfeeUfMysoyaCuXy0UABl9///vf7+B3ypBcLhcFQRBTU1P1to8dO1Z0dXUVKyoqRFEUxaVLl4oAxOTkZL12zzzzjCgIgvj777+LoiiKBQUFIgBx+fLlBuf697//LQIQr169avDeiBEjxBEjRuhef/755yIAcc+ePXrtTp48KQIQN2zYcBtXS0TmxhE7Imo1MTExkMlkcHFxwX333Qc/Pz98//338PX1NWjr6OiIGTNm4KuvvkJeXh4++ugjVFRUYMaMGfD19cX//ve/Rs8RGhqKkSNHYvPmzSgqKsI333yDxx9/3Kj+DR48GO+88w4yMjJw9OhRxMTE4K233kJwcDBefPFFg/b33HMPTp48qfe1aNGiZs+hVqtNHuELCwtD//799bbNmjULSqUSKSkpAIBDhw6hT58+iIqK0ms3b948iKKIQ4cOtXgeU3z33Xdwd3fHlClT9K5nwIAB8PPza/YWLhG1HS6eIKJWEx8fj969e8PGxga+vr7w9/c3ar+KigqUlJSgtLQUarUaLi4usLW1bbL9ggULMH/+fKxduxYODg548MEHTeqnSqVCaWkpSkpKUFVVBVtbW7i4uBi0c3Nz0y0GMVbXrl11cwoBYPny5VixYkWz+/j5+TW5raioSPdrY6VcAgIC9NqZS15eHkpKSpr8czB1fiQRtQ4GOyJqNb179zY6CBUWFmLPnj3YuXMnjh49ik6dOuGBBx7Am2++ieHDhze7ivUvf/kLnn32WaxZswZPPPEEHBwcWjxfXV0dfvrpJ+zatQt79+5FWVkZ7r33Xqxfvx4PPPCA2UqlfPvtt6ipqdG9rg9ezcnNzW1ym6enp+5XhUJh0C4nJwcA4OXldVv9bYqXlxc8PT11c/Zu1VgQJqK2x2BHRBZTW1uLHTt2YNeuXTh06BDs7OwwdepUfPPNNxg/fjxkMplRx3FwcMA///lPHD16FM8880yzbRMTE7Ft2zbs2bMHhYWFiImJwcqVKzFz5sxGbxHfqb59+5q8z4ULF3D27Fm927GfffYZXFxcdIsbRo8ejdWrVyMlJUVvwUN8fDwEQcCoUaMAAHZ2dgDQ6OKG5t671X333YedO3dCrVYjOjra5GsiorbBYEdEFpOTk4Onn34a48ePR3x8PKZNm3bbxX7j4uIQFxfXYrtly5ahsLAQS5YswaxZsxAaGnpb52tNAQEBmDp1KlasWAF/f3/s2LEDCQkJeOutt3S/P3/9618RHx+PyZMnY9WqVZDL5fjvf/+LDRs24JlnnkGPHj0AaEfS5HI5vvnmG4wePRoeHh7w8vJCSEiILnSuX78ec+fOhUwmQ8+ePRsdfXv44Yfx6aefYtKkSXjhhRcQFRUFmUyGrKws/Pzzz5g2bRqmT5/edr9JRNQoBjsishh/f3/k5ubCw8Ojzc75+eefGz3Xz1IGDBiA+fPnY/ny5bh06RICAgKwdu1a/PWvf9W18fb2xvHjx7Fs2TIsW7YMSqUSXbp0wdtvv20QcDdt2oSXX34ZU6dORU1NDebOnYutW7di5MiRWLZsGbZt24b//Oc/0Gg0+Pnnnxt9lJhUKsW+ffuwfv16bN++HatXr9Y9Km7EiBG3NTJJROYniKIoWroTRERERHTnWO6EiIiIyEow2BERERFZCQY7IiIiIivBYEdERERkJRjsiIiIiKwEgx0RERGRlbjr6thpNBrk5OTAxcWl2UcUEREREbUHoiiirKwMAQEBkEiaH5O764JdTk4OgoKCLN0NIiIiIpNkZmaic+fOzba564Jd/aNyMjMzzfaQb2OpVCocPHgQ48aNM/oZmETUcfAzTmS9LPn5ViqVCAoKavRxf7e664Jd/e1XV1dXiwQ7R0dHuLq68oc+kRXiZ5zIerWHz7cxU8i4eIKIiIjISjDYEREREVkJiwe7DRs2IDQ0FPb29oiIiMCxY8eabf/pp5+if//+cHR0hL+/P+bPn4+ioqI26i0RERFR+2XROXa7du3CkiVLsGHDBgwdOhQfffQRJk6ciLS0NAQHBxu0/+WXXzBnzhy8++67mDJlCrKzs/H0009j4cKF2Lt3r1n7plaroVKpzHpMlUoFGxsbVFdXQ61Wm/XYZEgmk0EqlVq6G0RERG3GosFu7dq1WLBgARYuXAgAWLduHX744Qds3LgRq1evNmiflJSEkJAQLF68GAAQGhqKp556Cm+//bbZ+iSKInJzc1FSUmK2YzY8tp+fHzIzM1lDr424u7vDz8+Pv99ERHRXsFiwq62txenTp7F06VK97ePGjcPx48cb3WfIkCH4+9//jv3792PixInIz8/Hl19+icmTJ5utX/WhzsfHB46OjmYNBBqNBuXl5XB2dm6xwCDdGVEUUVlZifz8fACAv7+/hXtERETU+iwW7AoLC6FWq+Hr66u33dfXF7m5uY3uM2TIEHz66aeYOXMmqqurUVdXh6lTp+L9999v8jw1NTWoqanRvVYqlQC0t0VvvdWqVqtx/fp1eHt7o1OnTrd7aU0SRRG1tbWws7PjCFIbsLOzg0ajQUFBATp16sTbstTq6n+mmHsaBxFZniU/36ac0+J17G4NOKIoNhl60tLSsHjxYvzzn//E+PHjoVAo8PLLL+Ppp5/Gpk2bGt1n9erVWLlypcH2gwcPwtHRUW+bjY0N/Pz8oNFodAGwNZSVlbXasUmfRqNBVVUVfvrpJ9TV1Vm6O3SXSEhIsHQXiKiVWOLzXVlZaXRbQRRFsRX70qTa2lo4Ojpi9+7dmD59um77Cy+8gNTUVBw5csRgn9mzZ6O6uhq7d+/Wbfvll18wbNgw5OTkNHq7rbERu6CgIBQWFhoUKK6urkZmZiZCQkJgb29vjsvUU/+sNz6ntu1UV1fj2rVrCAoKapU/U6KGVCoVEhISMHbsWBYoJrIylvx8K5VKeHl5obS0tMWHK1hsxM7W1hYRERFISEjQC3YJCQmYNm1ao/tUVlbCxka/y/W315rKp3Z2drCzszPYLpPJDP5g1Go1BEGARCJplTlwGo0GAHTnoNYnkUggCEKjf95ErYV/34islyU+36acz6LpIi4uDp988gk2b96Mixcv4q9//SsyMjLw9NNPAwCWLVuGOXPm6NpPmTIFX331FTZu3IgrV67gf//7HxYvXoyoqCgEBARY6jKIiIjImmnUENJ/QWBxIoT0XwBN+y1ZZtFgN3PmTKxbtw6rVq3CgAEDcPToUezfvx9yuRwAoFAokJGRoWs/b948rF27Fh988AHCw8Px0EMPoWfPnvjqq68sdQlNUmtEJF4uwjep2Ui8XAS1pnXveM+bNw+CIEAQBNjY2CA4OBjPPPMMrl+/bpbjh4SLine truncated
|
||||
"text/plain": [
|
||||
"<Figure size 640x480 with 1 Axes>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# Create subplots\n",
|
||||
"fig, ax = plt.subplots()\n",
|
||||
"\n",
|
||||
"# Loop through each measurement type\n",
|
||||
"model = \"P>M>F\"\n",
|
||||
"data = bottle_data\n",
|
||||
"imgclass = \"bottle\"\n",
|
||||
"\n",
|
||||
"# Plot both bottle and cable data\n",
|
||||
"ax.plot([1,3,5], data[\"ResNet50\"].get(\"1,3,5 shots normal\", []), marker='o', label=f'ResNet50', linestyle='-')\n",
|
||||
"ax.plot([1,3,5], data[\"P>M>F\"].get(\"1,3,5 shots normal\", []), marker='o', label=f'P>M>F', linestyle='-')\n",
|
||||
"ax.plot([1,3,5], data[\"CAML\"].get(\"1,3,5 shots normal\", []), marker='o', label=f'CAML', linestyle='-')\n",
|
||||
"\n",
|
||||
"ax.set_title(f'{model} - {imgclass}')\n",
|
||||
"ax.set_xlabel(\"Shots per class\")\n",
|
||||
"ax.set_ylabel(\"Accuracy\")\n",
|
||||
"ax.legend()\n",
|
||||
"ax.grid(True)\n",
|
||||
"\n",
|
||||
"ax.set(xlim=(0.75, 5.25), xticks=[1,3,5])\n",
|
||||
"\n",
|
||||
"# Adjust layout\n",
|
||||
"plt.tight_layout()\n",
|
||||
"plt.savefig(f\"{model}-{imgclass}.png\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
@@ -146,7 +274,7 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
@@ -160,9 +288,9 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.10.14"
|
||||
"version": "3.13.1"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
"nbformat_minor": 4
|
||||
}
|
||||
@@ -887,7 +887,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.12.4"
|
||||
"version": "3.13.1"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@@ -2,14 +2,18 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"imports imported\n"
|
||||
"ename": "ModuleNotFoundError",
|
||||
"evalue": "No module named 'torchvision'",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
|
||||
"Cell \u001b[0;32mIn[1], line 8\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mmatplotlib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpyplot\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplt\u001b[39;00m\n\u001b[1;32m 7\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtorch\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m optim, nn\n\u001b[0;32m----> 8\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mtorchvision\u001b[39;00m\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtorchvision\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m datasets, models, transforms\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01malbumentations\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mA\u001b[39;00m\n",
|
||||
"\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'torchvision'"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -238,9 +242,9 @@
|
||||
"\n",
|
||||
"print(resnetshotnr0)\n",
|
||||
"# Step 2: Modify the model to output features from the layer before the fully connected layer\n",
|
||||
"class ResNetshotnr0Embeddings(nn.Module):\n",
|
||||
"class ResNet50Embeddings(nn.Module):\n",
|
||||
" def __init__(self, original_model, layernr):\n",
|
||||
" super(ResNetshotnr0Embeddings, self).__init__()\n",
|
||||
" super(ResNet50Embeddings, self).__init__()\n",
|
||||
" #print(list(original_model.children())[4 + layernr])\n",
|
||||
" #print(nn.Sequential(*list(original_model.children())[:4 + shotnr]))\n",
|
||||
" self.features = nn.Sequential(*list(original_model.children())[:4+layernr])\n",
|
||||
@@ -252,7 +256,7 @@
|
||||
" return x\n",
|
||||
"\n",
|
||||
"# Instantiate the modified model\n",
|
||||
"model = ResNetshotnr0Embeddings(resnetshotnr0, shotnr) # 3 = layer before fully connected one\n",
|
||||
"model = ResNet50Embeddings(resnetshotnr0, shotnr) # 3 = layer before fully connected one\n",
|
||||
"model.eval() # Set the model to evaluation mode\n",
|
||||
"print()\n"
|
||||
]
|
||||
@@ -487,9 +491,9 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.10.14"
|
||||
"version": "3.13.1"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
"nbformat_minor": 4
|
||||
}
|
||||