{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# overview\n", "- MaxVIT 120M parameters\n", "- runnnig on CPU\n", "- id_2_class mapping stored in id_2_class_89.json\n", "- (Class, confidence) = inference(image_path)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import torch\n", "import torch.nn as nn\n", "from torchvision import transforms, models\n", "from PIL import Image\n", "import torch.nn.functional as F" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "#load id_2_class.json\n", "import json\n", "\n", "with open('id_2_class_89.json') as json_file:\n", " id_2_class = json.load(json_file)\n", "\n", "#make class_2_id dict\n", "\n", "class_2_id = {}\n", "for key, value in id_2_class.items():\n", " class_2_id[value] = key" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\User\\miniconda3\\envs\\textgen\\lib\\site-packages\\torch\\functional.py:504: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ..\\aten\\src\\ATen\\native\\TensorShape.cpp:3484.)\n", " return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]\n" ] } ], "source": [ "test_transform = transforms.Compose([\n", " transforms.Resize((224, 224)),\n", " transforms.ToTensor(),\n", " transforms.Normalize(mean=[0.5,0.5,0.5], std=[0.5,0.5,0.5])\n", "])\n", "\n", "class MaxViT(nn.Module):\n", " def __init__(self):\n", " super(MaxViT, self).__init__()\n", " model = models.maxvit_t(weights=\"DEFAULT\")\n", " num_ftrs = model.classifier[5].in_features\n", " model.classifier[5] = nn.Linear(num_ftrs, len(class_2_id))\n", " self.model = model\n", " def forward(self, x):\n", " return self.model(x)\n", "\n", "# Instantiate the model\n", "model = MaxViT()\n", "model.load_state_dict(torch.load('best_model_89.pth'))\n", "model.eval()\n", "\n", "def inference(image_path, CONFIDENT_THRESHOLD=None):\n", " img = Image.open(image_path).convert(\"L\").convert(\"RGB\")\n", " img = test_transform(img)\n", " img = img.unsqueeze(0)\n", "\n", " with torch.no_grad():\n", " output = F.softmax(model(img), dim=1)\n", " confidence, predicted = torch.max(output.data, 1)\n", "\n", " if CONFIDENT_THRESHOLD is not None and confidence.item() < CONFIDENT_THRESHOLD:\n", " return \"UNKNOWN_CLASS\", confidence.item()\n", " \n", " return id_2_class[str(predicted.item())], confidence.item()\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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", "image/png": "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", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(Image.open(\"images/7820.jpg\"))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('Volume', 0.9951752424240112)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inference(\"images/7820.jpg\")" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('Volume', 0.9951752424240112)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inference(\"images/7820.jpg\", 0.9) #0.9 should be good enough" ] } ], "metadata": { "kernelspec": { "display_name": "textgen", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.9" } }, "nbformat": 4, "nbformat_minor": 2 }