{ "cells": [ { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: torch in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (2.2.0)\n", "Requirement already satisfied: torchvision in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (0.17.0)\n", "Requirement already satisfied: onnx in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (1.15.0)\n", "Requirement already satisfied: filelock in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch) (3.13.1)\n", "Requirement already satisfied: typing-extensions>=4.8.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch) (4.9.0)\n", "Requirement already satisfied: sympy in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch) (1.12)\n", "Requirement already satisfied: networkx in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch) (3.2.1)\n", "Requirement already satisfied: jinja2 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch) (3.1.2)\n", "Requirement already satisfied: fsspec in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch) (2023.10.0)\n", "Requirement already satisfied: numpy in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torchvision) (1.24.3)\n", "Requirement already satisfied: requests in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torchvision) (2.31.0)\n", "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torchvision) (10.1.0)\n", "Requirement already satisfied: protobuf>=3.20.2 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from onnx) (4.24.0)\n", "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from jinja2->torch) (2.1.3)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from requests->torchvision) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from requests->torchvision) (2.10)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from requests->torchvision) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from requests->torchvision) (2023.7.22)\n", "Requirement already satisfied: mpmath>=0.19 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from sympy->torch) (1.3.0)\n" ] } ], "source": [ "# Ensure you have the torch and onnx libraries installed. If not, you can install them via pip:\n", "!pip install torch torchvision onnx torch\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# import torch\n", "import torch\n", "\n", "\n", "#Load your pre-trained PyTorch model (model.pt) into memory\n", "# Load the PyTorch model\n", "model = torch.load('https://github.com/enesagu/Object_detection_fastAPI_docker/blob/2c2e0c3cec0c15d4ddd6d0cd35b1d98930c0deb0/Object_Detection_Yolo_with_FastAPI/yolov8n.pt')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "model: The loaded PyTorch model.\n", "input_example: An example input tensor used to trace the model. Make sure it has the correct shape and data type.\n", "'model.onnx': Output file path where the ONNX model will be saved.\n", "export_params=True: Export model parameters along with the model." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Export the loaded PyTorch model to ONNX format\n", "# Input example\n", "input_example = torch.randn(1, 3, 224, 224) # Adjust the input shape accordingly\n", "\n", "# Export the model to ONNX\n", "torch.onnx.export(model, input_example, 'yolov8n.onnx', export_params=True)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Verify the ONNX Model:\n", "After exporting, you can verify the ONNX model using ONNX tools or libraries. For example:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import onnx\n", "\n", "# Load the ONNX model\n", "onnx_model = onnx.load('yolov8n.onnx')\n", "\n", "# Verify the ONNX model\n", "onnx.checker.check_model(onnx_model)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Convert YOLO model to ONNX" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: ultralytics in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (8.1.9)\n", "Requirement already satisfied: matplotlib>=3.3.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (3.8.1)\n", "Requirement already satisfied: numpy>=1.22.2 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (1.24.3)\n", "Requirement already satisfied: opencv-python>=4.6.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (4.7.0.72)\n", "Requirement already satisfied: pillow>=7.1.2 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (10.1.0)\n", "Requirement already satisfied: pyyaml>=5.3.1 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (6.0.1)\n", "Requirement already satisfied: requests>=2.23.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (2.31.0)\n", "Requirement already satisfied: scipy>=1.4.1 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (1.11.3)\n", "Requirement already satisfied: torch>=1.8.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (2.2.0)\n", "Requirement already satisfied: torchvision>=0.9.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (0.17.0)\n", "Requirement already satisfied: tqdm>=4.64.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (4.66.1)\n", "Requirement already satisfied: psutil in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (5.9.6)\n", "Requirement already satisfied: py-cpuinfo in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (9.0.0)\n", "Requirement already satisfied: thop>=0.1.1 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (0.1.1.post2209072238)\n", "Requirement already satisfied: pandas>=1.1.4 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (2.1.3)\n", "Requirement already satisfied: seaborn>=0.11.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from ultralytics) (0.13.2)\n", "Requirement already satisfied: contourpy>=1.0.1 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from matplotlib>=3.3.0->ultralytics) (1.1.1)\n", "Requirement already satisfied: cycler>=0.10 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from matplotlib>=3.3.0->ultralytics) (0.10.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from matplotlib>=3.3.0->ultralytics) (4.43.1)\n", "Requirement already satisfied: kiwisolver>=1.3.1 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from matplotlib>=3.3.0->ultralytics) (1.4.5)\n", "Requirement already satisfied: packaging>=20.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from matplotlib>=3.3.0->ultralytics) (23.1)\n", "Requirement already satisfied: pyparsing>=2.3.1 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from matplotlib>=3.3.0->ultralytics) (3.1.1)\n", "Requirement already satisfied: python-dateutil>=2.7 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from matplotlib>=3.3.0->ultralytics) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from pandas>=1.1.4->ultralytics) (2023.3.post1)\n", "Requirement already satisfied: tzdata>=2022.1 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from pandas>=1.1.4->ultralytics) (2023.3)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from requests>=2.23.0->ultralytics) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from requests>=2.23.0->ultralytics) (2.10)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from requests>=2.23.0->ultralytics) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from requests>=2.23.0->ultralytics) (2023.7.22)\n", "Requirement already satisfied: filelock in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch>=1.8.0->ultralytics) (3.13.1)\n", "Requirement already satisfied: typing-extensions>=4.8.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch>=1.8.0->ultralytics) (4.9.0)\n", "Requirement already satisfied: sympy in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch>=1.8.0->ultralytics) (1.12)\n", "Requirement already satisfied: networkx in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch>=1.8.0->ultralytics) (3.2.1)\n", "Requirement already satisfied: jinja2 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch>=1.8.0->ultralytics) (3.1.2)\n", "Requirement already satisfied: fsspec in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from torch>=1.8.0->ultralytics) (2023.10.0)\n", "Requirement already satisfied: colorama in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from tqdm>=4.64.0->ultralytics) (0.4.4)\n", "Requirement already satisfied: six in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from cycler>=0.10->matplotlib>=3.3.0->ultralytics) (1.16.0)\n", "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from jinja2->torch>=1.8.0->ultralytics) (2.1.3)\n", "Requirement already satisfied: mpmath>=0.19 in c:\\users\\enes-\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\\localcache\\local-packages\\python311\\site-packages (from sympy->torch>=1.8.0->ultralytics) (1.3.0)\n" ] } ], "source": [ "!pip install ultralytics\n", "from ultralytics import YOLO\n", "\n", "\n", "\n", "model = YOLO('yolov8n.pt') \n", "model.export(format='onnx') \n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.12.0" } }, "nbformat": 4, "nbformat_minor": 2 }