From 72bea02a9d0587ecdb8960bcbd8c19dc250aef1a Mon Sep 17 00:00:00 2001 From: Byeongman Lee Date: Fri, 2 Feb 2024 20:10:33 +0900 Subject: [PATCH] #143 Update jupyter notebook example for v1.3.0 (#148) --- netspresso/trainer/trainer.py | 8 +- notebooks/NetsPresso-Tutorial-v1.3.0.ipynb | 2996 ++++++++++++++++ notebooks/PyNetsPresso Tutorial(YOLOX).ipynb | 3362 ------------------ 3 files changed, 3000 insertions(+), 3366 deletions(-) create mode 100644 notebooks/NetsPresso-Tutorial-v1.3.0.ipynb delete mode 100644 notebooks/PyNetsPresso Tutorial(YOLOX).ipynb diff --git a/netspresso/trainer/trainer.py b/netspresso/trainer/trainer.py index 500208ab..ca1488bb 100644 --- a/netspresso/trainer/trainer.py +++ b/netspresso/trainer/trainer.py @@ -407,9 +407,9 @@ def train(self, gpus: str, project_name: str) -> Dict: hparams_path = destination_folder / "hparams.yaml" if best_fx_paths: - metadata.update_best_fx_model_path(best_fx_model_path=best_fx_paths[0]) + metadata.update_best_fx_model_path(best_fx_model_path=best_fx_paths[0].as_posix()) if best_onnx_paths: - metadata.update_best_onnx_model_path(best_onnx_model_path=best_onnx_paths[0]) + metadata.update_best_onnx_model_path(best_onnx_model_path=best_onnx_paths[0].as_posix()) metadata.update_model_info( task=self.task, model=self.model.name, @@ -418,8 +418,8 @@ def train(self, gpus: str, project_name: str) -> Dict: ) metadata.update_training_info(epoch=self.training.epochs, batch_size=self.training.batch_size) metadata.update_training_result(training_summary=training_summary) - metadata.update_logging_dir(logging_dir=destination_folder) - metadata.update_hparams(hparams=hparams_path) + metadata.update_logging_dir(logging_dir=destination_folder.as_posix()) + metadata.update_hparams(hparams=hparams_path.as_posix()) metadata.update_status(status=status) MetadataHandler.save_json(data=metadata.asdict(), folder_path=destination_folder) diff --git a/notebooks/NetsPresso-Tutorial-v1.3.0.ipynb b/notebooks/NetsPresso-Tutorial-v1.3.0.ipynb new file mode 100644 index 00000000..600683da --- /dev/null +++ b/notebooks/NetsPresso-Tutorial-v1.3.0.ipynb @@ -0,0 +1,2996 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3a32fcde-152c-4dc1-8938-abac253ae116", + "metadata": {}, + "source": [ + "
\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "dfbc4b1f-7c53-495e-98b8-57ef48ec246d", + "metadata": {}, + "source": [ + "# **NetsPresso Tutorial**" + ] + }, + { + "cell_type": "markdown", + "id": "07c33f8d-03f5-4090-8b40-98004a7123dd", + "metadata": {}, + "source": [ + "In this tutorial, we will guide you through the process of optimizing an AI model using NetsPresso.\n", + "\n", + "The tutorial includes the following steps:\n", + "\n", + "1. Training a YOLOX detection model using the Trainer.\n", + "2. Benchmarking the trained model using the Converter and Benchmarker.\n", + "3. Optimizing the trained model to meet a specified target latency with the Compressor.\n", + "4. Retraining the compressed model that meets the target latency using the Trainer.\n", + "5. Comparing the performance between the original model and the compressed model." + ] + }, + { + "cell_type": "markdown", + "id": "fe6b4f6c-5373-40fc-b621-cf35d026807f", + "metadata": {}, + "source": [ + "## 0. Login NetsPresso" + ] + }, + { + "cell_type": "markdown", + "id": "c06081b3-5606-47db-8d5f-f0518492b838", + "metadata": {}, + "source": [ + "To use the NetsPresso, please enter the email and password registered in [NetsPresso](https://www.netspresso.ai/)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "d37e2518-49ed-4126-b443-c23afdd792a3", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m2024-02-02 10:39:31.099\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.clients.config\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m11\u001b[0m - \u001b[1mRead PROD config\u001b[0m\n", + "\u001b[32m2024-02-02 10:39:32.833\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.clients.auth.main\u001b[0m:\u001b[36mlogin\u001b[0m:\u001b[36m38\u001b[0m - \u001b[1mLogin successfully\u001b[0m\n", + "\u001b[32m2024-02-02 10:39:33.526\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.clients.auth.main\u001b[0m:\u001b[36mget_user_info\u001b[0m:\u001b[36m55\u001b[0m - \u001b[1mSuccessfully got user information\u001b[0m\n" + ] + } + ], + "source": [ + "from netspresso import NetsPresso\n", + "\n", + "netspresso = NetsPresso(email=\"YOUR_EMAIL\", password=\"YOUR_PASSWORD\")" + ] + }, + { + "cell_type": "markdown", + "id": "9e18af43-bac8-44c0-8f5d-3cb204dc8365", + "metadata": {}, + "source": [ + "## 1. Train the model(with **YOLOX**)\n", + "--------------------------------------------------" + ] + }, + { + "cell_type": "markdown", + "id": "bd7eaa25-3b7d-4d84-9fa9-d0e470d8de5d", + "metadata": {}, + "source": [ + "We will train an object detection model using YOLOX.\n", + "\n", + "Following the training, we'll measure the latency on the **Raspberry Pi 4B**.\n" + ] + }, + { + "cell_type": "markdown", + "id": "5b131f48-c7df-4e5e-bf64-469b5b6998e1", + "metadata": {}, + "source": [ + "### 1-1. Download Dataset" + ] + }, + { + "cell_type": "markdown", + "id": "9ccc9c5a-55bc-4655-9e86-bc2b70b48560", + "metadata": {}, + "source": [ + "The dataset was sourced from the provided [link](https://www.kaggle.com/code/valentynsichkar/traffic-signs-detection-by-yolo-v3-opencv-keras/input). \n", + "\n", + "We downloaded the Traffic Signs Dataset in YOLO format and utilized it for training.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "637381a6-947d-4b0a-a1fb-8e819162786a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2024-02-02 10:39:33-- https://netspresso-github.s3.ap-northeast-2.amazonaws.com/traffic-sign.zip\n", + "Resolving netspresso-github.s3.ap-northeast-2.amazonaws.com (netspresso-github.s3.ap-northeast-2.amazonaws.com)... 52.219.206.14, 52.219.58.7, 52.219.146.50, ...\n", + "Connecting to netspresso-github.s3.ap-northeast-2.amazonaws.com (netspresso-github.s3.ap-northeast-2.amazonaws.com)|52.219.206.14|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 261469534 (249M) [application/zip]\n", + "Saving to: ‘traffic-sign.zip’\n", + "\n", + "traffic-sign.zip 100%[===================>] 249.36M 77.4MB/s in 3.3s \n", + "\n", + "2024-02-02 10:39:37 (76.0 MB/s) - ‘traffic-sign.zip’ saved [261469534/261469534]\n", + "\n", + "Archive: traffic-sign.zip\n", + " creating: traffic-sign/\n", + " creating: traffic-sign/images/\n", + " creating: traffic-sign/images/train/\n", + " inflating: traffic-sign/images/train/00000.jpg \n", + " inflating: traffic-sign/images/train/00001.jpg \n", + " inflating: traffic-sign/images/train/00003.jpg \n", + " inflating: traffic-sign/images/train/00005.jpg \n", + " inflating: traffic-sign/images/train/00006.jpg \n", + " inflating: traffic-sign/images/train/00007.jpg \n", + " inflating: traffic-sign/images/train/00008.jpg \n", + " inflating: traffic-sign/images/train/00009.jpg \n", + " inflating: traffic-sign/images/train/00010.jpg \n", + " inflating: traffic-sign/images/train/00011.jpg \n", + " inflating: traffic-sign/images/train/00012.jpg \n", + " inflating: traffic-sign/images/train/00013.jpg \n", + " inflating: traffic-sign/images/train/00014.jpg \n", + " inflating: traffic-sign/images/train/00016.jpg \n", + " inflating: traffic-sign/images/train/00017.jpg \n", + " inflating: traffic-sign/images/train/00018.jpg \n", + " inflating: traffic-sign/images/train/00019.jpg \n", + " inflating: traffic-sign/images/train/00020.jpg \n", + " inflating: traffic-sign/images/train/00021.jpg \n", + " inflating: traffic-sign/images/train/00022.jpg \n", + " inflating: traffic-sign/images/train/00024.jpg \n", + " inflating: traffic-sign/images/train/00026.jpg \n", + " inflating: traffic-sign/images/train/00027.jpg \n", + " inflating: traffic-sign/images/train/00028.jpg \n", + " inflating: traffic-sign/images/train/00029.jpg \n", + " inflating: traffic-sign/images/train/00030.jpg \n", + " inflating: traffic-sign/images/train/00031.jpg \n", + " inflating: traffic-sign/images/train/00032.jpg \n", + " inflating: traffic-sign/images/train/00033.jpg \n", + " inflating: traffic-sign/images/train/00034.jpg \n", + " inflating: traffic-sign/images/train/00035.jpg \n", + " inflating: traffic-sign/images/train/00036.jpg \n", + " inflating: traffic-sign/images/train/00037.jpg \n", + " inflating: traffic-sign/images/train/00038.jpg \n", + " inflating: traffic-sign/images/train/00039.jpg \n", + " inflating: traffic-sign/images/train/00040.jpg \n", + " inflating: traffic-sign/images/train/00041.jpg \n", + " inflating: traffic-sign/images/train/00042.jpg \n", + " inflating: traffic-sign/images/train/00043.jpg \n", + " inflating: traffic-sign/images/train/00044.jpg \n", + " inflating: traffic-sign/images/train/00045.jpg \n", + " inflating: traffic-sign/images/train/00046.jpg \n", + " inflating: traffic-sign/images/train/00047.jpg \n", + " inflating: traffic-sign/images/train/00048.jpg \n", + " inflating: traffic-sign/images/train/00049.jpg \n", + " inflating: traffic-sign/images/train/00050.jpg \n", + " inflating: traffic-sign/images/train/00052.jpg \n", + " inflating: traffic-sign/images/train/00053.jpg \n", + " inflating: traffic-sign/images/train/00054.jpg \n", + " inflating: traffic-sign/images/train/00055.jpg \n", + " inflating: traffic-sign/images/train/00056.jpg \n", + " inflating: traffic-sign/images/train/00057.jpg \n", + " inflating: traffic-sign/images/train/00058.jpg \n", + " inflating: traffic-sign/images/train/00059.jpg \n", + " inflating: traffic-sign/images/train/00060.jpg \n", + " inflating: traffic-sign/images/train/00061.jpg \n", + " inflating: traffic-sign/images/train/00062.jpg \n", + " inflating: traffic-sign/images/train/00063.jpg \n", + " inflating: traffic-sign/images/train/00064.jpg \n", + " inflating: traffic-sign/images/train/00065.jpg \n", + " inflating: traffic-sign/images/train/00066.jpg \n", + " inflating: traffic-sign/images/train/00067.jpg \n", + " inflating: traffic-sign/images/train/00068.jpg \n", + " inflating: traffic-sign/images/train/00069.jpg \n", + " inflating: traffic-sign/images/train/00070.jpg \n", + " inflating: traffic-sign/images/train/00071.jpg \n", + " inflating: traffic-sign/images/train/00072.jpg \n", + " inflating: traffic-sign/images/train/00073.jpg \n", + " inflating: traffic-sign/images/train/00074.jpg \n", + " inflating: traffic-sign/images/train/00076.jpg \n", + " inflating: traffic-sign/images/train/00077.jpg \n", + " inflating: traffic-sign/images/train/00079.jpg \n", + " inflating: traffic-sign/images/train/00080.jpg \n", + " inflating: traffic-sign/images/train/00081.jpg \n", + " inflating: traffic-sign/images/train/00083.jpg \n", + " inflating: traffic-sign/images/train/00084.jpg \n", + " inflating: traffic-sign/images/train/00086.jpg \n", + " inflating: traffic-sign/images/train/00088.jpg \n", + " inflating: traffic-sign/images/train/00089.jpg \n", + " inflating: traffic-sign/images/train/00090.jpg \n", + " inflating: traffic-sign/images/train/00091.jpg \n", + " inflating: traffic-sign/images/train/00092.jpg \n", + " inflating: traffic-sign/images/train/00093.jpg \n", + " inflating: traffic-sign/images/train/00094.jpg \n", + " inflating: traffic-sign/images/train/00095.jpg \n", + " inflating: traffic-sign/images/train/00096.jpg \n", + " inflating: traffic-sign/images/train/00097.jpg \n", + " inflating: traffic-sign/images/train/00098.jpg \n", + " inflating: traffic-sign/images/train/00099.jpg \n", + " inflating: traffic-sign/images/train/00101.jpg \n", + " inflating: traffic-sign/images/train/00102.jpg \n", + " inflating: traffic-sign/images/train/00103.jpg \n", + " inflating: traffic-sign/images/train/00105.jpg \n", + " inflating: traffic-sign/images/train/00106.jpg \n", + " inflating: traffic-sign/images/train/00107.jpg \n", + " inflating: traffic-sign/images/train/00109.jpg \n", + " inflating: traffic-sign/images/train/00110.jpg \n", + " inflating: traffic-sign/images/train/00111.jpg \n", + " inflating: traffic-sign/images/train/00112.jpg \n", + " inflating: traffic-sign/images/train/00113.jpg \n", + " inflating: traffic-sign/images/train/00114.jpg \n", + " inflating: traffic-sign/images/train/00115.jpg \n", + " inflating: traffic-sign/images/train/00117.jpg \n", + " inflating: traffic-sign/images/train/00118.jpg \n", + " inflating: traffic-sign/images/train/00119.jpg \n", + " inflating: traffic-sign/images/train/00120.jpg \n", + " inflating: traffic-sign/images/train/00121.jpg \n", + " inflating: traffic-sign/images/train/00122.jpg \n", + " inflating: traffic-sign/images/train/00123.jpg \n", + " inflating: traffic-sign/images/train/00124.jpg \n", + " inflating: traffic-sign/images/train/00125.jpg \n", + " inflating: traffic-sign/images/train/00126.jpg \n", + " inflating: traffic-sign/images/train/00127.jpg \n", + " inflating: traffic-sign/images/train/00128.jpg \n", + " inflating: traffic-sign/images/train/00129.jpg \n", + " inflating: traffic-sign/images/train/00130.jpg \n", + " inflating: traffic-sign/images/train/00131.jpg \n", + " inflating: traffic-sign/images/train/00132.jpg \n", + " inflating: traffic-sign/images/train/00133.jpg \n", + " inflating: traffic-sign/images/train/00135.jpg \n", + " inflating: traffic-sign/images/train/00136.jpg \n", + " inflating: traffic-sign/images/train/00137.jpg \n", + " inflating: traffic-sign/images/train/00138.jpg \n", + " inflating: traffic-sign/images/train/00140.jpg \n", + " inflating: traffic-sign/images/train/00143.jpg \n", + " inflating: traffic-sign/images/train/00144.jpg \n", + " inflating: traffic-sign/images/train/00146.jpg \n", + " inflating: traffic-sign/images/train/00147.jpg \n", + " inflating: traffic-sign/images/train/00148.jpg \n", + " inflating: traffic-sign/images/train/00149.jpg \n", + " inflating: traffic-sign/images/train/00150.jpg \n", + " inflating: traffic-sign/images/train/00151.jpg \n", + " inflating: traffic-sign/images/train/00152.jpg \n", + " inflating: traffic-sign/images/train/00153.jpg \n", + " inflating: traffic-sign/images/train/00154.jpg \n", + " inflating: traffic-sign/images/train/00156.jpg \n", + " inflating: traffic-sign/images/train/00157.jpg \n", + " inflating: traffic-sign/images/train/00158.jpg \n", + " inflating: traffic-sign/images/train/00159.jpg \n", + " inflating: traffic-sign/images/train/00160.jpg \n", + " inflating: traffic-sign/images/train/00162.jpg \n", + " inflating: traffic-sign/images/train/00163.jpg \n", + " inflating: traffic-sign/images/train/00164.jpg \n", + " inflating: traffic-sign/images/train/00165.jpg \n", + " inflating: traffic-sign/images/train/00166.jpg \n", + " inflating: traffic-sign/images/train/00167.jpg \n", + " inflating: traffic-sign/images/train/00168.jpg \n", + " inflating: traffic-sign/images/train/00169.jpg \n", + " inflating: traffic-sign/images/train/00170.jpg \n", + " inflating: traffic-sign/images/train/00171.jpg \n", + " inflating: traffic-sign/images/train/00172.jpg \n", + " inflating: traffic-sign/images/train/00173.jpg \n", + " inflating: traffic-sign/images/train/00174.jpg \n", + " inflating: traffic-sign/images/train/00175.jpg \n", + " inflating: traffic-sign/images/train/00176.jpg \n", + " inflating: traffic-sign/images/train/00177.jpg \n", + " inflating: traffic-sign/images/train/00178.jpg \n", + " inflating: traffic-sign/images/train/00179.jpg \n", + " inflating: traffic-sign/images/train/00180.jpg \n", + " inflating: traffic-sign/images/train/00181.jpg \n", + " inflating: traffic-sign/images/train/00184.jpg \n", + " inflating: traffic-sign/images/train/00186.jpg \n", + " inflating: traffic-sign/images/train/00187.jpg \n", + " inflating: traffic-sign/images/train/00188.jpg \n", + " inflating: traffic-sign/images/train/00191.jpg \n", + " inflating: traffic-sign/images/train/00192.jpg \n", + " inflating: traffic-sign/images/train/00193.jpg \n", + " inflating: traffic-sign/images/train/00194.jpg \n", + " inflating: traffic-sign/images/train/00195.jpg \n", + " inflating: traffic-sign/images/train/00196.jpg \n", + " inflating: traffic-sign/images/train/00197.jpg \n", + " inflating: traffic-sign/images/train/00198.jpg \n", + " inflating: traffic-sign/images/train/00199.jpg \n", + " inflating: traffic-sign/images/train/00200.jpg \n", + " inflating: traffic-sign/images/train/00201.jpg \n", + " inflating: traffic-sign/images/train/00202.jpg \n", + " inflating: traffic-sign/images/train/00203.jpg \n", + " inflating: traffic-sign/images/train/00206.jpg \n", + " inflating: traffic-sign/images/train/00207.jpg \n", + " inflating: traffic-sign/images/train/00208.jpg \n", + " inflating: traffic-sign/images/train/00209.jpg \n", + " inflating: traffic-sign/images/train/00210.jpg \n", + " inflating: traffic-sign/images/train/00211.jpg \n", + " inflating: traffic-sign/images/train/00212.jpg \n", + " inflating: traffic-sign/images/train/00214.jpg \n", + " inflating: traffic-sign/images/train/00215.jpg \n", + " inflating: traffic-sign/images/train/00217.jpg \n", + " inflating: traffic-sign/images/train/00218.jpg \n", + " inflating: traffic-sign/images/train/00219.jpg \n", + " inflating: traffic-sign/images/train/00220.jpg \n", + " inflating: traffic-sign/images/train/00221.jpg \n", + " inflating: traffic-sign/images/train/00222.jpg \n", + " inflating: traffic-sign/images/train/00223.jpg \n", + " inflating: traffic-sign/images/train/00224.jpg \n", + " inflating: traffic-sign/images/train/00225.jpg \n", + " inflating: traffic-sign/images/train/00226.jpg \n", + " inflating: traffic-sign/images/train/00229.jpg \n", + " inflating: traffic-sign/images/train/00230.jpg \n", + " inflating: traffic-sign/images/train/00231.jpg \n", + " inflating: traffic-sign/images/train/00232.jpg \n", + " inflating: traffic-sign/images/train/00234.jpg \n", + " inflating: traffic-sign/images/train/00237.jpg \n", + " inflating: traffic-sign/images/train/00238.jpg \n", + " inflating: traffic-sign/images/train/00239.jpg \n", + " inflating: traffic-sign/images/train/00240.jpg \n", + " inflating: traffic-sign/images/train/00241.jpg \n", + " inflating: traffic-sign/images/train/00242.jpg \n", + " inflating: traffic-sign/images/train/00243.jpg \n", + " inflating: traffic-sign/images/train/00244.jpg \n", + " inflating: traffic-sign/images/train/00245.jpg \n", + " inflating: traffic-sign/images/train/00246.jpg \n", + " inflating: traffic-sign/images/train/00247.jpg \n", + " inflating: traffic-sign/images/train/00248.jpg \n", + " inflating: traffic-sign/images/train/00249.jpg \n", + " inflating: traffic-sign/images/train/00250.jpg \n", + " inflating: traffic-sign/images/train/00251.jpg \n", + " inflating: traffic-sign/images/train/00252.jpg \n", + " inflating: traffic-sign/images/train/00253.jpg \n", + " inflating: traffic-sign/images/train/00254.jpg \n", + " inflating: traffic-sign/images/train/00255.jpg \n", + " inflating: traffic-sign/images/train/00257.jpg \n", + " inflating: traffic-sign/images/train/00259.jpg \n", + " inflating: traffic-sign/images/train/00261.jpg \n", + " inflating: traffic-sign/images/train/00262.jpg \n", + " inflating: traffic-sign/images/train/00263.jpg \n", + " inflating: traffic-sign/images/train/00264.jpg \n", + " inflating: traffic-sign/images/train/00265.jpg \n", + " inflating: traffic-sign/images/train/00266.jpg \n", + " inflating: traffic-sign/images/train/00267.jpg \n", + " inflating: traffic-sign/images/train/00268.jpg \n", + " inflating: traffic-sign/images/train/00269.jpg \n", + " inflating: traffic-sign/images/train/00270.jpg \n", + " inflating: traffic-sign/images/train/00271.jpg \n", + " inflating: traffic-sign/images/train/00272.jpg \n", + " inflating: traffic-sign/images/train/00273.jpg \n", + " inflating: traffic-sign/images/train/00275.jpg \n", + " inflating: traffic-sign/images/train/00276.jpg \n", + " inflating: traffic-sign/images/train/00277.jpg \n", + " inflating: traffic-sign/images/train/00278.jpg \n", + " inflating: traffic-sign/images/train/00279.jpg \n", + " inflating: traffic-sign/images/train/00281.jpg \n", + " inflating: traffic-sign/images/train/00282.jpg \n", + " inflating: traffic-sign/images/train/00283.jpg \n", + " inflating: traffic-sign/images/train/00284.jpg \n", + " inflating: traffic-sign/images/train/00285.jpg \n", + " inflating: traffic-sign/images/train/00286.jpg \n", + " inflating: traffic-sign/images/train/00287.jpg \n", + " inflating: traffic-sign/images/train/00288.jpg \n", + " inflating: traffic-sign/images/train/00289.jpg \n", + " inflating: traffic-sign/images/train/00290.jpg \n", + " inflating: traffic-sign/images/train/00291.jpg \n", + " inflating: traffic-sign/images/train/00292.jpg \n", + " inflating: traffic-sign/images/train/00293.jpg \n", + " inflating: traffic-sign/images/train/00294.jpg \n", + " inflating: traffic-sign/images/train/00295.jpg \n", + " inflating: traffic-sign/images/train/00296.jpg \n", + " inflating: traffic-sign/images/train/00297.jpg \n", + " inflating: traffic-sign/images/train/00298.jpg \n", + " inflating: traffic-sign/images/train/00299.jpg \n", + " inflating: traffic-sign/images/train/00300.jpg \n", + " inflating: traffic-sign/images/train/00301.jpg \n", + " inflating: traffic-sign/images/train/00302.jpg \n", + " inflating: traffic-sign/images/train/00303.jpg \n", + " inflating: traffic-sign/images/train/00304.jpg \n", + " inflating: traffic-sign/images/train/00305.jpg \n", + " inflating: traffic-sign/images/train/00309.jpg \n", + " inflating: traffic-sign/images/train/00311.jpg \n", + " inflating: traffic-sign/images/train/00312.jpg \n", + " inflating: traffic-sign/images/train/00313.jpg \n", + " inflating: traffic-sign/images/train/00314.jpg \n", + " inflating: traffic-sign/images/train/00315.jpg \n", + " inflating: traffic-sign/images/train/00316.jpg \n", + " inflating: traffic-sign/images/train/00317.jpg \n", + " inflating: traffic-sign/images/train/00318.jpg \n", + " inflating: traffic-sign/images/train/00319.jpg \n", + " inflating: traffic-sign/images/train/00322.jpg \n", + " inflating: traffic-sign/images/train/00323.jpg \n", + " inflating: traffic-sign/images/train/00330.jpg \n", + " inflating: traffic-sign/images/train/00333.jpg \n", + " inflating: traffic-sign/images/train/00334.jpg \n", + " inflating: traffic-sign/images/train/00337.jpg \n", + " inflating: traffic-sign/images/train/00338.jpg \n", + " inflating: traffic-sign/images/train/00339.jpg \n", + " inflating: traffic-sign/images/train/00340.jpg \n", + " inflating: traffic-sign/images/train/00343.jpg \n", + " inflating: traffic-sign/images/train/00346.jpg \n", + " inflating: traffic-sign/images/train/00347.jpg \n", + " inflating: traffic-sign/images/train/00348.jpg \n", + " inflating: traffic-sign/images/train/00349.jpg \n", + " inflating: traffic-sign/images/train/00351.jpg \n", + " inflating: traffic-sign/images/train/00353.jpg \n", + " inflating: traffic-sign/images/train/00355.jpg \n", + " inflating: traffic-sign/images/train/00356.jpg \n", + " inflating: traffic-sign/images/train/00357.jpg \n", + " inflating: traffic-sign/images/train/00358.jpg \n", + " inflating: traffic-sign/images/train/00359.jpg \n", + " inflating: traffic-sign/images/train/00360.jpg \n", + " inflating: traffic-sign/images/train/00362.jpg \n", + " inflating: traffic-sign/images/train/00363.jpg \n", + " inflating: traffic-sign/images/train/00366.jpg \n", + " inflating: traffic-sign/images/train/00368.jpg \n", + " inflating: traffic-sign/images/train/00369.jpg \n", + " inflating: traffic-sign/images/train/00370.jpg \n", + " inflating: traffic-sign/images/train/00371.jpg \n", + " inflating: traffic-sign/images/train/00372.jpg \n", + " inflating: traffic-sign/images/train/00373.jpg \n", + " inflating: traffic-sign/images/train/00374.jpg \n", + " inflating: traffic-sign/images/train/00375.jpg \n", + " inflating: traffic-sign/images/train/00376.jpg \n", + " inflating: traffic-sign/images/train/00377.jpg \n", + " inflating: traffic-sign/images/train/00378.jpg \n", + " inflating: traffic-sign/images/train/00379.jpg \n", + " inflating: traffic-sign/images/train/00380.jpg \n", + " inflating: traffic-sign/images/train/00382.jpg \n", + " inflating: traffic-sign/images/train/00383.jpg \n", + " inflating: traffic-sign/images/train/00385.jpg \n", + " inflating: traffic-sign/images/train/00386.jpg \n", + " inflating: traffic-sign/images/train/00387.jpg \n", + " inflating: traffic-sign/images/train/00391.jpg \n", + " inflating: traffic-sign/images/train/00392.jpg \n", + " inflating: traffic-sign/images/train/00393.jpg \n", + " inflating: traffic-sign/images/train/00395.jpg \n", + " inflating: traffic-sign/images/train/00396.jpg \n", + " inflating: traffic-sign/images/train/00398.jpg \n", + " inflating: traffic-sign/images/train/00400.jpg \n", + " inflating: traffic-sign/images/train/00401.jpg \n", + " inflating: traffic-sign/images/train/00403.jpg \n", + " inflating: traffic-sign/images/train/00404.jpg \n", + " inflating: traffic-sign/images/train/00405.jpg \n", + " inflating: traffic-sign/images/train/00406.jpg \n", + " inflating: traffic-sign/images/train/00408.jpg \n", + " inflating: traffic-sign/images/train/00410.jpg \n", + " inflating: traffic-sign/images/train/00411.jpg \n", + " inflating: traffic-sign/images/train/00412.jpg \n", + " inflating: traffic-sign/images/train/00413.jpg \n", + " inflating: traffic-sign/images/train/00414.jpg \n", + " inflating: traffic-sign/images/train/00415.jpg \n", + " inflating: traffic-sign/images/train/00416.jpg \n", + " inflating: traffic-sign/images/train/00417.jpg \n", + " inflating: traffic-sign/images/train/00419.jpg \n", + " inflating: traffic-sign/images/train/00420.jpg \n", + " inflating: traffic-sign/images/train/00421.jpg \n", + " inflating: traffic-sign/images/train/00422.jpg \n", + " inflating: traffic-sign/images/train/00425.jpg \n", + " inflating: traffic-sign/images/train/00427.jpg \n", + " inflating: traffic-sign/images/train/00428.jpg \n", + " inflating: traffic-sign/images/train/00430.jpg \n", + " inflating: traffic-sign/images/train/00431.jpg \n", + " inflating: traffic-sign/images/train/00432.jpg \n", + " inflating: traffic-sign/images/train/00433.jpg \n", + " inflating: traffic-sign/images/train/00434.jpg \n", + " inflating: traffic-sign/images/train/00435.jpg \n", + " inflating: traffic-sign/images/train/00436.jpg \n", + " inflating: traffic-sign/images/train/00439.jpg \n", + " inflating: traffic-sign/images/train/00440.jpg \n", + " inflating: traffic-sign/images/train/00441.jpg \n", + " inflating: traffic-sign/images/train/00443.jpg \n", + " inflating: traffic-sign/images/train/00444.jpg \n", + " inflating: traffic-sign/images/train/00445.jpg \n", + " inflating: traffic-sign/images/train/00447.jpg \n", + " inflating: traffic-sign/images/train/00448.jpg \n", + " inflating: traffic-sign/images/train/00449.jpg \n", + " inflating: traffic-sign/images/train/00450.jpg \n", + " inflating: traffic-sign/images/train/00451.jpg \n", + " inflating: traffic-sign/images/train/00452.jpg \n", + " inflating: traffic-sign/images/train/00453.jpg \n", + " inflating: traffic-sign/images/train/00455.jpg \n", + " inflating: traffic-sign/images/train/00457.jpg \n", + " inflating: traffic-sign/images/train/00458.jpg \n", + " inflating: traffic-sign/images/train/00459.jpg \n", + " inflating: traffic-sign/images/train/00460.jpg \n", + " inflating: traffic-sign/images/train/00465.jpg \n", + " inflating: traffic-sign/images/train/00466.jpg \n", + " inflating: traffic-sign/images/train/00467.jpg \n", + " inflating: traffic-sign/images/train/00468.jpg \n", + " inflating: traffic-sign/images/train/00472.jpg \n", + " inflating: traffic-sign/images/train/00475.jpg \n", + " inflating: traffic-sign/images/train/00476.jpg \n", + " inflating: traffic-sign/images/train/00477.jpg \n", + " inflating: traffic-sign/images/train/00478.jpg \n", + " inflating: traffic-sign/images/train/00479.jpg \n", + " inflating: traffic-sign/images/train/00480.jpg \n", + " inflating: traffic-sign/images/train/00481.jpg \n", + " inflating: traffic-sign/images/train/00482.jpg \n", + " inflating: traffic-sign/images/train/00484.jpg \n", + " inflating: traffic-sign/images/train/00485.jpg \n", + " inflating: traffic-sign/images/train/00486.jpg \n", + " inflating: traffic-sign/images/train/00487.jpg \n", + " inflating: traffic-sign/images/train/00488.jpg \n", + " inflating: traffic-sign/images/train/00490.jpg \n", + " inflating: traffic-sign/images/train/00492.jpg \n", + " inflating: traffic-sign/images/train/00493.jpg \n", + " inflating: traffic-sign/images/train/00496.jpg \n", + " inflating: traffic-sign/images/train/00497.jpg \n", + " inflating: traffic-sign/images/train/00498.jpg \n", + " inflating: traffic-sign/images/train/00499.jpg \n", + " inflating: traffic-sign/images/train/00500.jpg \n", + " inflating: traffic-sign/images/train/00501.jpg \n", + " inflating: traffic-sign/images/train/00503.jpg \n", + " inflating: traffic-sign/images/train/00504.jpg \n", + " inflating: traffic-sign/images/train/00505.jpg \n", + " inflating: traffic-sign/images/train/00508.jpg \n", + " inflating: traffic-sign/images/train/00509.jpg \n", + " inflating: traffic-sign/images/train/00512.jpg \n", + " inflating: traffic-sign/images/train/00515.jpg \n", + " inflating: traffic-sign/images/train/00516.jpg \n", + " inflating: traffic-sign/images/train/00518.jpg \n", + " inflating: traffic-sign/images/train/00519.jpg \n", + " inflating: traffic-sign/images/train/00520.jpg \n", + " inflating: traffic-sign/images/train/00521.jpg \n", + " inflating: traffic-sign/images/train/00523.jpg \n", + " inflating: traffic-sign/images/train/00524.jpg \n", + " inflating: traffic-sign/images/train/00527.jpg \n", + " inflating: traffic-sign/images/train/00528.jpg \n", + " inflating: traffic-sign/images/train/00530.jpg \n", + " inflating: traffic-sign/images/train/00531.jpg \n", + " inflating: traffic-sign/images/train/00536.jpg \n", + " inflating: traffic-sign/images/train/00542.jpg \n", + " inflating: traffic-sign/images/train/00544.jpg \n", + " inflating: traffic-sign/images/train/00545.jpg \n", + " inflating: traffic-sign/images/train/00548.jpg \n", + " inflating: traffic-sign/images/train/00554.jpg \n", + " inflating: traffic-sign/images/train/00556.jpg \n", + " inflating: traffic-sign/images/train/00560.jpg \n", + " inflating: traffic-sign/images/train/00564.jpg \n", + " inflating: traffic-sign/images/train/00565.jpg \n", + " inflating: traffic-sign/images/train/00566.jpg \n", + " inflating: traffic-sign/images/train/00567.jpg \n", + " inflating: traffic-sign/images/train/00570.jpg \n", + " inflating: traffic-sign/images/train/00571.jpg \n", + " inflating: traffic-sign/images/train/00575.jpg \n", + " inflating: traffic-sign/images/train/00593.jpg \n", + " inflating: traffic-sign/images/train/00599.jpg \n", + " inflating: traffic-sign/images/train/00601.jpg \n", + " inflating: traffic-sign/images/train/00602.jpg \n", + " inflating: traffic-sign/images/train/00603.jpg \n", + " inflating: traffic-sign/images/train/00604.jpg \n", + " inflating: traffic-sign/images/train/00605.jpg \n", + " inflating: traffic-sign/images/train/00606.jpg \n", + " inflating: traffic-sign/images/train/00607.jpg \n", + " inflating: traffic-sign/images/train/00608.jpg \n", + " inflating: traffic-sign/images/train/00609.jpg \n", + " inflating: traffic-sign/images/train/00610.jpg \n", + " inflating: traffic-sign/images/train/00611.jpg \n", + " inflating: traffic-sign/images/train/00612.jpg \n", + " inflating: traffic-sign/images/train/00613.jpg \n", + " inflating: traffic-sign/images/train/00615.jpg \n", + " inflating: traffic-sign/images/train/00616.jpg \n", + " inflating: traffic-sign/images/train/00619.jpg \n", + " inflating: traffic-sign/images/train/00620.jpg \n", + " inflating: traffic-sign/images/train/00621.jpg \n", + " inflating: traffic-sign/images/train/00622.jpg \n", + " inflating: traffic-sign/images/train/00623.jpg \n", + " inflating: traffic-sign/images/train/00624.jpg \n", + " inflating: traffic-sign/images/train/00625.jpg \n", + " inflating: traffic-sign/images/train/00628.jpg \n", + " inflating: traffic-sign/images/train/00630.jpg \n", + " inflating: traffic-sign/images/train/00631.jpg \n", + " inflating: traffic-sign/images/train/00632.jpg \n", + " inflating: traffic-sign/images/train/00633.jpg \n", + " inflating: traffic-sign/images/train/00634.jpg \n", + " inflating: traffic-sign/images/train/00635.jpg \n", + " inflating: traffic-sign/images/train/00637.jpg \n", + " inflating: traffic-sign/images/train/00638.jpg \n", + " inflating: traffic-sign/images/train/00639.jpg \n", + " inflating: traffic-sign/images/train/00640.jpg \n", + " inflating: traffic-sign/images/train/00641.jpg \n", + " inflating: traffic-sign/images/train/00645.jpg \n", + " inflating: traffic-sign/images/train/00648.jpg \n", + " inflating: traffic-sign/images/train/00649.jpg \n", + " inflating: traffic-sign/images/train/00650.jpg \n", + " inflating: traffic-sign/images/train/00653.jpg \n", + " inflating: traffic-sign/images/train/00654.jpg \n", + " inflating: traffic-sign/images/train/00655.jpg \n", + " inflating: traffic-sign/images/train/00656.jpg \n", + " inflating: traffic-sign/images/train/00657.jpg \n", + " inflating: traffic-sign/images/train/00658.jpg \n", + " inflating: traffic-sign/images/train/00659.jpg \n", + " inflating: traffic-sign/images/train/00660.jpg \n", + " inflating: traffic-sign/images/train/00661.jpg \n", + " inflating: traffic-sign/images/train/00662.jpg \n", + " inflating: traffic-sign/images/train/00663.jpg \n", + " inflating: traffic-sign/images/train/00664.jpg \n", + " inflating: traffic-sign/images/train/00665.jpg \n", + " inflating: traffic-sign/images/train/00667.jpg \n", + " inflating: traffic-sign/images/train/00668.jpg \n", + " inflating: traffic-sign/images/train/00669.jpg \n", + " inflating: traffic-sign/images/train/00670.jpg \n", + " inflating: traffic-sign/images/train/00673.jpg \n", + " inflating: traffic-sign/images/train/00674.jpg \n", + " inflating: traffic-sign/images/train/00675.jpg \n", + " inflating: traffic-sign/images/train/00678.jpg \n", + " inflating: traffic-sign/images/train/00679.jpg \n", + " inflating: traffic-sign/images/train/00680.jpg \n", + " inflating: traffic-sign/images/train/00681.jpg \n", + " inflating: traffic-sign/images/train/00682.jpg \n", + " inflating: traffic-sign/images/train/00688.jpg \n", + " inflating: traffic-sign/images/train/00689.jpg \n", + " inflating: traffic-sign/images/train/00690.jpg \n", + " inflating: traffic-sign/images/train/00691.jpg \n", + " inflating: traffic-sign/images/train/00692.jpg \n", + " inflating: traffic-sign/images/train/00693.jpg \n", + " inflating: traffic-sign/images/train/00694.jpg \n", + " inflating: traffic-sign/images/train/00696.jpg \n", + " inflating: traffic-sign/images/train/00697.jpg \n", + " inflating: traffic-sign/images/train/00698.jpg \n", + " inflating: traffic-sign/images/train/00699.jpg \n", + " inflating: traffic-sign/images/train/00700.jpg \n", + " inflating: traffic-sign/images/train/00701.jpg \n", + " inflating: traffic-sign/images/train/00705.jpg \n", + " inflating: traffic-sign/images/train/00706.jpg \n", + " inflating: traffic-sign/images/train/00707.jpg \n", + " inflating: traffic-sign/images/train/00712.jpg \n", + " inflating: traffic-sign/images/train/00714.jpg \n", + " inflating: traffic-sign/images/train/00715.jpg \n", + " inflating: traffic-sign/images/train/00716.jpg \n", + " inflating: traffic-sign/images/train/00719.jpg \n", + " inflating: traffic-sign/images/train/00720.jpg \n", + " inflating: traffic-sign/images/train/00721.jpg \n", + " inflating: traffic-sign/images/train/00722.jpg \n", + " inflating: traffic-sign/images/train/00723.jpg \n", + " inflating: traffic-sign/images/train/00725.jpg \n", + " inflating: traffic-sign/images/train/00728.jpg \n", + " inflating: traffic-sign/images/train/00730.jpg \n", + " inflating: traffic-sign/images/train/00732.jpg \n", + " inflating: traffic-sign/images/train/00733.jpg \n", + " inflating: traffic-sign/images/train/00734.jpg \n", + " inflating: traffic-sign/images/train/00736.jpg \n", + " inflating: traffic-sign/images/train/00737.jpg \n", + " inflating: traffic-sign/images/train/00738.jpg \n", + " inflating: traffic-sign/images/train/00741.jpg \n", + " inflating: traffic-sign/images/train/00742.jpg \n", + " inflating: traffic-sign/images/train/00744.jpg \n", + " inflating: traffic-sign/images/train/00746.jpg \n", + " inflating: traffic-sign/images/train/00747.jpg \n", + " inflating: traffic-sign/images/train/00749.jpg \n", + " inflating: traffic-sign/images/train/00751.jpg \n", + " inflating: traffic-sign/images/train/00752.jpg \n", + " inflating: traffic-sign/images/train/00754.jpg \n", + " inflating: traffic-sign/images/train/00755.jpg \n", + " inflating: traffic-sign/images/train/00756.jpg \n", + " inflating: traffic-sign/images/train/00758.jpg \n", + " inflating: traffic-sign/images/train/00760.jpg \n", + " inflating: traffic-sign/images/train/00763.jpg \n", + " inflating: traffic-sign/images/train/00764.jpg \n", + " inflating: traffic-sign/images/train/00766.jpg \n", + " inflating: traffic-sign/images/train/00770.jpg \n", + " inflating: traffic-sign/images/train/00771.jpg \n", + " inflating: traffic-sign/images/train/00772.jpg \n", + " inflating: traffic-sign/images/train/00774.jpg \n", + " inflating: traffic-sign/images/train/00776.jpg \n", + " inflating: traffic-sign/images/train/00777.jpg \n", + " inflating: traffic-sign/images/train/00778.jpg \n", + " inflating: traffic-sign/images/train/00779.jpg \n", + " inflating: traffic-sign/images/train/00782.jpg \n", + " inflating: traffic-sign/images/train/00783.jpg \n", + " inflating: traffic-sign/images/train/00784.jpg \n", + " inflating: traffic-sign/images/train/00785.jpg \n", + " inflating: traffic-sign/images/train/00787.jpg \n", + " inflating: traffic-sign/images/train/00788.jpg \n", + " inflating: traffic-sign/images/train/00789.jpg \n", + " inflating: traffic-sign/images/train/00791.jpg \n", + " inflating: traffic-sign/images/train/00794.jpg \n", + " inflating: traffic-sign/images/train/00797.jpg \n", + " inflating: traffic-sign/images/train/00798.jpg \n", + " inflating: traffic-sign/images/train/00801.jpg \n", + " inflating: traffic-sign/images/train/00803.jpg \n", + " inflating: traffic-sign/images/train/00805.jpg \n", + " inflating: traffic-sign/images/train/00806.jpg \n", + " inflating: traffic-sign/images/train/00807.jpg \n", + " inflating: traffic-sign/images/train/00809.jpg \n", + " inflating: traffic-sign/images/train/00810.jpg \n", + " inflating: traffic-sign/images/train/00811.jpg \n", + " inflating: traffic-sign/images/train/00813.jpg \n", + " inflating: traffic-sign/images/train/00816.jpg \n", + " inflating: traffic-sign/images/train/00817.jpg \n", + " inflating: traffic-sign/images/train/00818.jpg \n", + " inflating: traffic-sign/images/train/00821.jpg \n", + " inflating: traffic-sign/images/train/00822.jpg \n", + " inflating: traffic-sign/images/train/00823.jpg \n", + " inflating: traffic-sign/images/train/00824.jpg \n", + " inflating: traffic-sign/images/train/00827.jpg \n", + " inflating: traffic-sign/images/train/00828.jpg \n", + " inflating: traffic-sign/images/train/00831.jpg \n", + " inflating: traffic-sign/images/train/00833.jpg \n", + " inflating: traffic-sign/images/train/00834.jpg \n", + " inflating: traffic-sign/images/train/00835.jpg \n", + " inflating: traffic-sign/images/train/00836.jpg \n", + " inflating: traffic-sign/images/train/00837.jpg \n", + " inflating: traffic-sign/images/train/00838.jpg \n", + " inflating: traffic-sign/images/train/00839.jpg \n", + " inflating: traffic-sign/images/train/00841.jpg \n", + " inflating: traffic-sign/images/train/00844.jpg \n", + " inflating: traffic-sign/images/train/00845.jpg \n", + " inflating: traffic-sign/images/train/00846.jpg \n", + " inflating: traffic-sign/images/train/00848.jpg \n", + " inflating: traffic-sign/images/train/00849.jpg \n", + " inflating: traffic-sign/images/train/00850.jpg \n", + " inflating: traffic-sign/images/train/00853.jpg \n", + " inflating: traffic-sign/images/train/00854.jpg \n", + " inflating: traffic-sign/images/train/00855.jpg \n", + " inflating: traffic-sign/images/train/00857.jpg \n", + " inflating: traffic-sign/images/train/00858.jpg \n", + " inflating: traffic-sign/images/train/00859.jpg \n", + " inflating: traffic-sign/images/train/00860.jpg \n", + " inflating: traffic-sign/images/train/00862.jpg \n", + " inflating: traffic-sign/images/train/00863.jpg \n", + " inflating: traffic-sign/images/train/00865.jpg \n", + " inflating: traffic-sign/images/train/00866.jpg \n", + " inflating: traffic-sign/images/train/00867.jpg \n", + " inflating: traffic-sign/images/train/00868.jpg \n", + " inflating: traffic-sign/images/train/00869.jpg \n", + " inflating: traffic-sign/images/train/00870.jpg \n", + " inflating: traffic-sign/images/train/00871.jpg \n", + " inflating: traffic-sign/images/train/00872.jpg \n", + " inflating: traffic-sign/images/train/00881.jpg \n", + " inflating: traffic-sign/images/train/00882.jpg \n", + " inflating: traffic-sign/images/train/00884.jpg \n", + " inflating: traffic-sign/images/train/00886.jpg \n", + " inflating: traffic-sign/images/train/00887.jpg \n", + " inflating: traffic-sign/images/train/00888.jpg \n", + " inflating: traffic-sign/images/train/00889.jpg \n", + " inflating: traffic-sign/images/train/00891.jpg \n", + " inflating: traffic-sign/images/train/00893.jpg \n", + " inflating: traffic-sign/images/train/00894.jpg \n", + " inflating: traffic-sign/images/train/00895.jpg \n", + " inflating: traffic-sign/images/train/00896.jpg \n", + " inflating: traffic-sign/images/train/00897.jpg \n", + " inflating: traffic-sign/images/train/00898.jpg \n", + " inflating: traffic-sign/images/train/00899.jpg \n", + " creating: traffic-sign/images/valid/\n", + " inflating: traffic-sign/images/valid/00002.jpg \n", + " inflating: traffic-sign/images/valid/00004.jpg \n", + " inflating: traffic-sign/images/valid/00015.jpg \n", + " inflating: traffic-sign/images/valid/00023.jpg \n", + " inflating: traffic-sign/images/valid/00025.jpg \n", + " inflating: traffic-sign/images/valid/00051.jpg \n", + " inflating: traffic-sign/images/valid/00075.jpg \n", + " inflating: traffic-sign/images/valid/00078.jpg \n", + " inflating: traffic-sign/images/valid/00082.jpg \n", + " inflating: traffic-sign/images/valid/00085.jpg \n", + " inflating: traffic-sign/images/valid/00087.jpg \n", + " inflating: traffic-sign/images/valid/00100.jpg \n", + " inflating: traffic-sign/images/valid/00104.jpg \n", + " inflating: traffic-sign/images/valid/00116.jpg \n", + " inflating: traffic-sign/images/valid/00134.jpg \n", + " inflating: traffic-sign/images/valid/00141.jpg \n", + " inflating: traffic-sign/images/valid/00142.jpg \n", + " inflating: traffic-sign/images/valid/00155.jpg \n", + " inflating: traffic-sign/images/valid/00161.jpg \n", + " inflating: traffic-sign/images/valid/00182.jpg \n", + " inflating: traffic-sign/images/valid/00183.jpg \n", + " inflating: traffic-sign/images/valid/00185.jpg \n", + " inflating: traffic-sign/images/valid/00189.jpg \n", + " inflating: traffic-sign/images/valid/00190.jpg \n", + " inflating: traffic-sign/images/valid/00204.jpg \n", + " inflating: traffic-sign/images/valid/00205.jpg \n", + " inflating: traffic-sign/images/valid/00216.jpg \n", + " inflating: traffic-sign/images/valid/00227.jpg \n", + " inflating: traffic-sign/images/valid/00228.jpg \n", + " inflating: traffic-sign/images/valid/00233.jpg \n", + " inflating: traffic-sign/images/valid/00236.jpg \n", + " inflating: traffic-sign/images/valid/00256.jpg \n", + " inflating: traffic-sign/images/valid/00258.jpg \n", + " inflating: traffic-sign/images/valid/00260.jpg \n", + " inflating: traffic-sign/images/valid/00274.jpg \n", + " inflating: traffic-sign/images/valid/00280.jpg \n", + " inflating: traffic-sign/images/valid/00306.jpg \n", + " inflating: traffic-sign/images/valid/00307.jpg \n", + " inflating: traffic-sign/images/valid/00310.jpg \n", + " inflating: traffic-sign/images/valid/00320.jpg \n", + " inflating: traffic-sign/images/valid/00341.jpg \n", + " inflating: traffic-sign/images/valid/00344.jpg \n", + " inflating: traffic-sign/images/valid/00350.jpg \n", + " inflating: traffic-sign/images/valid/00352.jpg \n", + " inflating: traffic-sign/images/valid/00367.jpg \n", + " inflating: traffic-sign/images/valid/00384.jpg \n", + " inflating: traffic-sign/images/valid/00388.jpg \n", + " inflating: traffic-sign/images/valid/00390.jpg \n", + " inflating: traffic-sign/images/valid/00397.jpg \n", + " inflating: traffic-sign/images/valid/00402.jpg \n", + " inflating: traffic-sign/images/valid/00418.jpg \n", + " inflating: traffic-sign/images/valid/00423.jpg \n", + " inflating: traffic-sign/images/valid/00426.jpg \n", + " inflating: traffic-sign/images/valid/00438.jpg \n", + " inflating: traffic-sign/images/valid/00446.jpg \n", + " inflating: traffic-sign/images/valid/00456.jpg \n", + " inflating: traffic-sign/images/valid/00461.jpg \n", + " inflating: traffic-sign/images/valid/00463.jpg \n", + " inflating: traffic-sign/images/valid/00470.jpg \n", + " inflating: traffic-sign/images/valid/00471.jpg \n", + " inflating: traffic-sign/images/valid/00473.jpg \n", + " inflating: traffic-sign/images/valid/00474.jpg \n", + " inflating: traffic-sign/images/valid/00483.jpg \n", + " inflating: traffic-sign/images/valid/00491.jpg \n", + " inflating: traffic-sign/images/valid/00494.jpg \n", + " inflating: traffic-sign/images/valid/00502.jpg \n", + " inflating: traffic-sign/images/valid/00507.jpg \n", + " inflating: traffic-sign/images/valid/00513.jpg \n", + " inflating: traffic-sign/images/valid/00514.jpg \n", + " inflating: traffic-sign/images/valid/00517.jpg \n", + " inflating: traffic-sign/images/valid/00551.jpg \n", + " inflating: traffic-sign/images/valid/00552.jpg \n", + " inflating: traffic-sign/images/valid/00557.jpg \n", + " inflating: traffic-sign/images/valid/00626.jpg \n", + " inflating: traffic-sign/images/valid/00642.jpg \n", + " inflating: traffic-sign/images/valid/00644.jpg \n", + " inflating: traffic-sign/images/valid/00646.jpg \n", + " inflating: traffic-sign/images/valid/00647.jpg \n", + " inflating: traffic-sign/images/valid/00651.jpg \n", + " inflating: traffic-sign/images/valid/00671.jpg \n", + " inflating: traffic-sign/images/valid/00672.jpg \n", + " inflating: traffic-sign/images/valid/00683.jpg \n", + " inflating: traffic-sign/images/valid/00685.jpg \n", + " inflating: traffic-sign/images/valid/00686.jpg \n", + " inflating: traffic-sign/images/valid/00695.jpg \n", + " inflating: traffic-sign/images/valid/00702.jpg \n", + " inflating: traffic-sign/images/valid/00703.jpg \n", + " inflating: traffic-sign/images/valid/00704.jpg \n", + " inflating: traffic-sign/images/valid/00710.jpg \n", + " inflating: traffic-sign/images/valid/00717.jpg \n", + " inflating: traffic-sign/images/valid/00729.jpg \n", + " inflating: traffic-sign/images/valid/00740.jpg \n", + " inflating: traffic-sign/images/valid/00761.jpg \n", + " inflating: traffic-sign/images/valid/00762.jpg \n", + " inflating: traffic-sign/images/valid/00773.jpg \n", + " inflating: traffic-sign/images/valid/00775.jpg \n", + " inflating: traffic-sign/images/valid/00780.jpg \n", + " inflating: traffic-sign/images/valid/00795.jpg \n", + " inflating: traffic-sign/images/valid/00802.jpg \n", + " inflating: traffic-sign/images/valid/00808.jpg \n", + " inflating: traffic-sign/images/valid/00820.jpg \n", + " inflating: traffic-sign/images/valid/00825.jpg \n", + " inflating: traffic-sign/images/valid/00829.jpg \n", + " inflating: traffic-sign/images/valid/00842.jpg \n", + " inflating: traffic-sign/images/valid/00851.jpg \n", + " inflating: traffic-sign/images/valid/00852.jpg \n", + " inflating: traffic-sign/images/valid/00864.jpg \n", + " inflating: traffic-sign/images/valid/00874.jpg \n", + " inflating: traffic-sign/images/valid/00876.jpg \n", + " inflating: traffic-sign/images/valid/00879.jpg \n", + " inflating: traffic-sign/images/valid/00885.jpg \n", + " creating: traffic-sign/labels/\n", + " creating: traffic-sign/labels/train/\n", + " inflating: traffic-sign/labels/train/00000.txt \n", + " inflating: traffic-sign/labels/train/00001.txt \n", + " inflating: traffic-sign/labels/train/00003.txt \n", + " inflating: traffic-sign/labels/train/00005.txt \n", + " inflating: traffic-sign/labels/train/00006.txt \n", + " inflating: traffic-sign/labels/train/00007.txt \n", + " inflating: traffic-sign/labels/train/00008.txt \n", + " inflating: traffic-sign/labels/train/00009.txt \n", + " inflating: traffic-sign/labels/train/00010.txt \n", + " inflating: traffic-sign/labels/train/00011.txt \n", + " inflating: traffic-sign/labels/train/00012.txt \n", + " inflating: traffic-sign/labels/train/00013.txt \n", + " inflating: traffic-sign/labels/train/00014.txt \n", + " inflating: traffic-sign/labels/train/00016.txt \n", + " inflating: traffic-sign/labels/train/00017.txt \n", + " inflating: traffic-sign/labels/train/00018.txt \n", + " inflating: traffic-sign/labels/train/00019.txt \n", + " inflating: traffic-sign/labels/train/00020.txt \n", + " inflating: traffic-sign/labels/train/00021.txt \n", + " inflating: traffic-sign/labels/train/00022.txt \n", + " inflating: traffic-sign/labels/train/00024.txt \n", + " inflating: traffic-sign/labels/train/00026.txt \n", + " inflating: traffic-sign/labels/train/00027.txt \n", + " inflating: traffic-sign/labels/train/00028.txt \n", + " inflating: traffic-sign/labels/train/00029.txt \n", + " inflating: traffic-sign/labels/train/00030.txt \n", + " inflating: traffic-sign/labels/train/00031.txt \n", + " inflating: traffic-sign/labels/train/00032.txt \n", + " inflating: traffic-sign/labels/train/00033.txt \n", + " inflating: traffic-sign/labels/train/00034.txt \n", + " inflating: traffic-sign/labels/train/00035.txt \n", + " inflating: traffic-sign/labels/train/00036.txt \n", + " inflating: traffic-sign/labels/train/00037.txt \n", + " inflating: traffic-sign/labels/train/00038.txt \n", + " inflating: traffic-sign/labels/train/00039.txt \n", + " inflating: traffic-sign/labels/train/00040.txt \n", + " inflating: traffic-sign/labels/train/00041.txt \n", + " inflating: traffic-sign/labels/train/00042.txt \n", + " inflating: traffic-sign/labels/train/00043.txt \n", + " inflating: traffic-sign/labels/train/00044.txt \n", + " inflating: traffic-sign/labels/train/00045.txt \n", + " inflating: traffic-sign/labels/train/00046.txt \n", + " inflating: traffic-sign/labels/train/00047.txt \n", + " inflating: traffic-sign/labels/train/00048.txt \n", + " inflating: traffic-sign/labels/train/00049.txt \n", + " inflating: traffic-sign/labels/train/00050.txt \n", + " inflating: traffic-sign/labels/train/00052.txt \n", + " inflating: traffic-sign/labels/train/00053.txt \n", + " inflating: traffic-sign/labels/train/00054.txt \n", + " inflating: traffic-sign/labels/train/00055.txt \n", + " inflating: traffic-sign/labels/train/00056.txt \n", + " inflating: traffic-sign/labels/train/00057.txt \n", + " inflating: traffic-sign/labels/train/00058.txt \n", + " inflating: traffic-sign/labels/train/00059.txt \n", + " inflating: traffic-sign/labels/train/00060.txt \n", + " inflating: traffic-sign/labels/train/00061.txt \n", + " inflating: traffic-sign/labels/train/00062.txt \n", + " inflating: traffic-sign/labels/train/00063.txt \n", + " inflating: traffic-sign/labels/train/00064.txt \n", + " inflating: traffic-sign/labels/train/00065.txt \n", + " inflating: traffic-sign/labels/train/00066.txt \n", + " inflating: traffic-sign/labels/train/00067.txt \n", + " inflating: traffic-sign/labels/train/00068.txt \n", + " inflating: traffic-sign/labels/train/00069.txt \n", + " inflating: traffic-sign/labels/train/00070.txt \n", + " inflating: traffic-sign/labels/train/00071.txt \n", + " inflating: traffic-sign/labels/train/00072.txt \n", + " inflating: traffic-sign/labels/train/00073.txt \n", + " inflating: traffic-sign/labels/train/00074.txt \n", + " inflating: traffic-sign/labels/train/00076.txt \n", + " inflating: traffic-sign/labels/train/00077.txt \n", + " inflating: traffic-sign/labels/train/00079.txt \n", + " inflating: traffic-sign/labels/train/00080.txt \n", + " inflating: traffic-sign/labels/train/00081.txt \n", + " inflating: traffic-sign/labels/train/00083.txt \n", + " inflating: traffic-sign/labels/train/00084.txt \n", + " inflating: traffic-sign/labels/train/00086.txt \n", + " inflating: traffic-sign/labels/train/00088.txt \n", + " inflating: traffic-sign/labels/train/00089.txt \n", + " inflating: traffic-sign/labels/train/00090.txt \n", + " inflating: traffic-sign/labels/train/00091.txt \n", + " inflating: traffic-sign/labels/train/00092.txt \n", + " inflating: traffic-sign/labels/train/00093.txt \n", + " inflating: traffic-sign/labels/train/00094.txt \n", + " inflating: traffic-sign/labels/train/00095.txt \n", + " inflating: traffic-sign/labels/train/00096.txt \n", + " inflating: traffic-sign/labels/train/00097.txt \n", + " inflating: traffic-sign/labels/train/00098.txt \n", + " inflating: traffic-sign/labels/train/00099.txt \n", + " inflating: traffic-sign/labels/train/00101.txt \n", + " inflating: traffic-sign/labels/train/00102.txt \n", + " inflating: traffic-sign/labels/train/00103.txt \n", + " inflating: traffic-sign/labels/train/00105.txt \n", + " inflating: traffic-sign/labels/train/00106.txt \n", + " inflating: traffic-sign/labels/train/00107.txt \n", + " inflating: traffic-sign/labels/train/00109.txt \n", + " inflating: traffic-sign/labels/train/00110.txt \n", + " inflating: traffic-sign/labels/train/00111.txt \n", + " inflating: traffic-sign/labels/train/00112.txt \n", + " inflating: traffic-sign/labels/train/00113.txt \n", + " inflating: traffic-sign/labels/train/00114.txt \n", + " inflating: traffic-sign/labels/train/00115.txt \n", + " inflating: traffic-sign/labels/train/00117.txt \n", + " inflating: traffic-sign/labels/train/00118.txt \n", + " inflating: traffic-sign/labels/train/00119.txt \n", + " inflating: traffic-sign/labels/train/00120.txt \n", + " inflating: traffic-sign/labels/train/00121.txt \n", + " inflating: traffic-sign/labels/train/00122.txt \n", + " inflating: traffic-sign/labels/train/00123.txt \n", + " inflating: traffic-sign/labels/train/00124.txt \n", + " inflating: traffic-sign/labels/train/00125.txt \n", + " inflating: traffic-sign/labels/train/00126.txt \n", + " inflating: traffic-sign/labels/train/00127.txt \n", + " inflating: traffic-sign/labels/train/00128.txt \n", + " inflating: traffic-sign/labels/train/00129.txt \n", + " inflating: traffic-sign/labels/train/00130.txt \n", + " inflating: traffic-sign/labels/train/00131.txt \n", + " inflating: traffic-sign/labels/train/00132.txt \n", + " inflating: traffic-sign/labels/train/00133.txt \n", + " inflating: traffic-sign/labels/train/00135.txt \n", + " inflating: traffic-sign/labels/train/00136.txt \n", + " inflating: traffic-sign/labels/train/00137.txt \n", + " inflating: traffic-sign/labels/train/00138.txt \n", + " inflating: traffic-sign/labels/train/00140.txt \n", + " inflating: traffic-sign/labels/train/00143.txt \n", + " inflating: traffic-sign/labels/train/00144.txt \n", + " inflating: traffic-sign/labels/train/00146.txt \n", + " inflating: traffic-sign/labels/train/00147.txt \n", + " inflating: traffic-sign/labels/train/00148.txt \n", + " inflating: traffic-sign/labels/train/00149.txt \n", + " inflating: traffic-sign/labels/train/00150.txt \n", + " inflating: traffic-sign/labels/train/00151.txt \n", + " inflating: traffic-sign/labels/train/00152.txt \n", + " inflating: traffic-sign/labels/train/00153.txt \n", + " inflating: traffic-sign/labels/train/00154.txt \n", + " inflating: traffic-sign/labels/train/00156.txt \n", + " inflating: traffic-sign/labels/train/00157.txt \n", + " inflating: traffic-sign/labels/train/00158.txt \n", + " inflating: traffic-sign/labels/train/00159.txt \n", + " inflating: traffic-sign/labels/train/00160.txt \n", + " inflating: traffic-sign/labels/train/00162.txt \n", + " inflating: traffic-sign/labels/train/00163.txt \n", + " inflating: traffic-sign/labels/train/00164.txt \n", + " inflating: traffic-sign/labels/train/00165.txt \n", + " inflating: traffic-sign/labels/train/00166.txt \n", + " inflating: traffic-sign/labels/train/00167.txt \n", + " inflating: traffic-sign/labels/train/00168.txt \n", + " inflating: traffic-sign/labels/train/00169.txt \n", + " inflating: traffic-sign/labels/train/00170.txt \n", + " inflating: traffic-sign/labels/train/00171.txt \n", + " inflating: traffic-sign/labels/train/00172.txt \n", + " inflating: traffic-sign/labels/train/00173.txt \n", + " inflating: traffic-sign/labels/train/00174.txt \n", + " inflating: traffic-sign/labels/train/00175.txt \n", + " inflating: traffic-sign/labels/train/00176.txt \n", + " inflating: traffic-sign/labels/train/00177.txt \n", + " inflating: traffic-sign/labels/train/00178.txt \n", + " inflating: traffic-sign/labels/train/00179.txt \n", + " inflating: traffic-sign/labels/train/00180.txt \n", + " inflating: traffic-sign/labels/train/00181.txt \n", + " inflating: traffic-sign/labels/train/00184.txt \n", + " inflating: traffic-sign/labels/train/00186.txt \n", + " inflating: traffic-sign/labels/train/00187.txt \n", + " inflating: traffic-sign/labels/train/00188.txt \n", + " inflating: traffic-sign/labels/train/00191.txt \n", + " inflating: traffic-sign/labels/train/00192.txt \n", + " inflating: traffic-sign/labels/train/00193.txt \n", + " inflating: traffic-sign/labels/train/00194.txt \n", + " inflating: traffic-sign/labels/train/00195.txt \n", + " inflating: traffic-sign/labels/train/00196.txt \n", + " inflating: traffic-sign/labels/train/00197.txt \n", + " inflating: traffic-sign/labels/train/00198.txt \n", + " inflating: traffic-sign/labels/train/00199.txt \n", + " inflating: traffic-sign/labels/train/00200.txt \n", + " inflating: traffic-sign/labels/train/00201.txt \n", + " inflating: traffic-sign/labels/train/00202.txt \n", + " inflating: traffic-sign/labels/train/00203.txt \n", + " inflating: traffic-sign/labels/train/00206.txt \n", + " inflating: traffic-sign/labels/train/00207.txt \n", + " inflating: traffic-sign/labels/train/00208.txt \n", + " inflating: traffic-sign/labels/train/00209.txt \n", + " inflating: traffic-sign/labels/train/00210.txt \n", + " inflating: traffic-sign/labels/train/00211.txt \n", + " inflating: traffic-sign/labels/train/00212.txt \n", + " inflating: traffic-sign/labels/train/00214.txt \n", + " inflating: traffic-sign/labels/train/00215.txt \n", + " inflating: traffic-sign/labels/train/00217.txt \n", + " inflating: traffic-sign/labels/train/00218.txt \n", + " inflating: traffic-sign/labels/train/00219.txt \n", + " inflating: traffic-sign/labels/train/00220.txt \n", + " inflating: traffic-sign/labels/train/00221.txt \n", + " inflating: traffic-sign/labels/train/00222.txt \n", + " inflating: traffic-sign/labels/train/00223.txt \n", + " inflating: traffic-sign/labels/train/00224.txt \n", + " inflating: traffic-sign/labels/train/00225.txt \n", + " inflating: traffic-sign/labels/train/00226.txt \n", + " inflating: traffic-sign/labels/train/00229.txt \n", + " inflating: traffic-sign/labels/train/00230.txt \n", + " inflating: traffic-sign/labels/train/00231.txt \n", + " inflating: traffic-sign/labels/train/00232.txt \n", + " inflating: traffic-sign/labels/train/00234.txt \n", + " inflating: traffic-sign/labels/train/00237.txt \n", + " inflating: traffic-sign/labels/train/00238.txt \n", + " inflating: traffic-sign/labels/train/00239.txt \n", + " inflating: traffic-sign/labels/train/00240.txt \n", + " inflating: traffic-sign/labels/train/00241.txt \n", + " inflating: traffic-sign/labels/train/00242.txt \n", + " inflating: traffic-sign/labels/train/00243.txt \n", + " inflating: traffic-sign/labels/train/00244.txt \n", + " inflating: traffic-sign/labels/train/00245.txt \n", + " inflating: traffic-sign/labels/train/00246.txt \n", + " inflating: traffic-sign/labels/train/00247.txt \n", + " inflating: traffic-sign/labels/train/00248.txt \n", + " inflating: traffic-sign/labels/train/00249.txt \n", + " inflating: traffic-sign/labels/train/00250.txt \n", + " inflating: traffic-sign/labels/train/00251.txt \n", + " inflating: traffic-sign/labels/train/00252.txt \n", + " inflating: traffic-sign/labels/train/00253.txt \n", + " inflating: traffic-sign/labels/train/00254.txt \n", + " inflating: traffic-sign/labels/train/00255.txt \n", + " inflating: traffic-sign/labels/train/00257.txt \n", + " inflating: traffic-sign/labels/train/00259.txt \n", + " inflating: traffic-sign/labels/train/00261.txt \n", + " inflating: traffic-sign/labels/train/00262.txt \n", + " inflating: traffic-sign/labels/train/00263.txt \n", + " inflating: traffic-sign/labels/train/00264.txt \n", + " inflating: traffic-sign/labels/train/00265.txt \n", + " inflating: traffic-sign/labels/train/00266.txt \n", + " inflating: traffic-sign/labels/train/00267.txt \n", + " inflating: traffic-sign/labels/train/00268.txt \n", + " inflating: traffic-sign/labels/train/00269.txt \n", + " inflating: traffic-sign/labels/train/00270.txt \n", + " inflating: traffic-sign/labels/train/00271.txt \n", + " inflating: traffic-sign/labels/train/00272.txt \n", + " inflating: traffic-sign/labels/train/00273.txt \n", + " inflating: traffic-sign/labels/train/00275.txt \n", + " inflating: traffic-sign/labels/train/00276.txt \n", + " inflating: traffic-sign/labels/train/00277.txt \n", + " inflating: traffic-sign/labels/train/00278.txt \n", + " inflating: traffic-sign/labels/train/00279.txt \n", + " inflating: traffic-sign/labels/train/00281.txt \n", + " inflating: traffic-sign/labels/train/00282.txt \n", + " inflating: traffic-sign/labels/train/00283.txt \n", + " inflating: traffic-sign/labels/train/00284.txt \n", + " inflating: traffic-sign/labels/train/00285.txt \n", + " inflating: traffic-sign/labels/train/00286.txt \n", + " inflating: traffic-sign/labels/train/00287.txt \n", + " inflating: traffic-sign/labels/train/00288.txt \n", + " inflating: traffic-sign/labels/train/00289.txt \n", + " inflating: traffic-sign/labels/train/00290.txt \n", + " inflating: traffic-sign/labels/train/00291.txt \n", + " inflating: traffic-sign/labels/train/00292.txt \n", + " inflating: traffic-sign/labels/train/00293.txt \n", + " inflating: traffic-sign/labels/train/00294.txt \n", + " inflating: traffic-sign/labels/train/00295.txt \n", + " inflating: traffic-sign/labels/train/00296.txt \n", + " inflating: traffic-sign/labels/train/00297.txt \n", + " inflating: traffic-sign/labels/train/00298.txt \n", + " inflating: traffic-sign/labels/train/00299.txt \n", + " inflating: traffic-sign/labels/train/00300.txt \n", + " inflating: traffic-sign/labels/train/00301.txt \n", + " inflating: traffic-sign/labels/train/00302.txt \n", + " inflating: traffic-sign/labels/train/00303.txt \n", + " inflating: traffic-sign/labels/train/00304.txt \n", + " inflating: traffic-sign/labels/train/00305.txt \n", + " inflating: traffic-sign/labels/train/00309.txt \n", + " inflating: traffic-sign/labels/train/00311.txt \n", + " inflating: traffic-sign/labels/train/00312.txt \n", + " inflating: traffic-sign/labels/train/00313.txt \n", + " inflating: traffic-sign/labels/train/00314.txt \n", + " inflating: traffic-sign/labels/train/00315.txt \n", + " inflating: traffic-sign/labels/train/00316.txt \n", + " inflating: traffic-sign/labels/train/00317.txt \n", + " inflating: traffic-sign/labels/train/00318.txt \n", + " inflating: traffic-sign/labels/train/00319.txt \n", + " inflating: traffic-sign/labels/train/00322.txt \n", + " inflating: traffic-sign/labels/train/00323.txt \n", + " inflating: traffic-sign/labels/train/00330.txt \n", + " inflating: traffic-sign/labels/train/00333.txt \n", + " inflating: traffic-sign/labels/train/00334.txt \n", + " inflating: traffic-sign/labels/train/00337.txt \n", + " inflating: traffic-sign/labels/train/00338.txt \n", + " inflating: traffic-sign/labels/train/00339.txt \n", + " inflating: traffic-sign/labels/train/00340.txt \n", + " inflating: traffic-sign/labels/train/00343.txt \n", + " inflating: traffic-sign/labels/train/00346.txt \n", + " inflating: traffic-sign/labels/train/00347.txt \n", + " inflating: traffic-sign/labels/train/00348.txt \n", + " inflating: traffic-sign/labels/train/00349.txt \n", + " inflating: traffic-sign/labels/train/00351.txt \n", + " inflating: traffic-sign/labels/train/00353.txt \n", + " inflating: traffic-sign/labels/train/00355.txt \n", + " inflating: traffic-sign/labels/train/00356.txt \n", + " inflating: traffic-sign/labels/train/00357.txt \n", + " inflating: traffic-sign/labels/train/00358.txt \n", + " inflating: traffic-sign/labels/train/00359.txt \n", + " inflating: traffic-sign/labels/train/00360.txt \n", + " inflating: traffic-sign/labels/train/00362.txt \n", + " inflating: traffic-sign/labels/train/00363.txt \n", + " inflating: traffic-sign/labels/train/00366.txt \n", + " inflating: traffic-sign/labels/train/00368.txt \n", + " inflating: traffic-sign/labels/train/00369.txt \n", + " inflating: traffic-sign/labels/train/00370.txt \n", + " inflating: traffic-sign/labels/train/00371.txt \n", + " inflating: traffic-sign/labels/train/00372.txt \n", + " inflating: traffic-sign/labels/train/00373.txt \n", + " inflating: traffic-sign/labels/train/00374.txt \n", + " inflating: traffic-sign/labels/train/00375.txt \n", + " inflating: traffic-sign/labels/train/00376.txt \n", + " inflating: traffic-sign/labels/train/00377.txt \n", + " inflating: traffic-sign/labels/train/00378.txt \n", + " inflating: traffic-sign/labels/train/00379.txt \n", + " inflating: traffic-sign/labels/train/00380.txt \n", + " inflating: traffic-sign/labels/train/00382.txt \n", + " inflating: traffic-sign/labels/train/00383.txt \n", + " inflating: traffic-sign/labels/train/00385.txt \n", + " inflating: traffic-sign/labels/train/00386.txt \n", + " inflating: traffic-sign/labels/train/00387.txt \n", + " inflating: traffic-sign/labels/train/00391.txt \n", + " inflating: traffic-sign/labels/train/00392.txt \n", + " inflating: traffic-sign/labels/train/00393.txt \n", + " inflating: traffic-sign/labels/train/00395.txt \n", + " inflating: traffic-sign/labels/train/00396.txt \n", + " inflating: traffic-sign/labels/train/00398.txt \n", + " inflating: traffic-sign/labels/train/00400.txt \n", + " inflating: traffic-sign/labels/train/00401.txt \n", + " inflating: traffic-sign/labels/train/00403.txt \n", + " inflating: traffic-sign/labels/train/00404.txt \n", + " inflating: traffic-sign/labels/train/00405.txt \n", + " inflating: traffic-sign/labels/train/00406.txt \n", + " inflating: traffic-sign/labels/train/00408.txt \n", + " inflating: traffic-sign/labels/train/00410.txt \n", + " inflating: traffic-sign/labels/train/00411.txt \n", + " inflating: traffic-sign/labels/train/00412.txt \n", + " inflating: traffic-sign/labels/train/00413.txt \n", + " inflating: traffic-sign/labels/train/00414.txt \n", + " inflating: traffic-sign/labels/train/00415.txt \n", + " inflating: traffic-sign/labels/train/00416.txt \n", + " inflating: traffic-sign/labels/train/00417.txt \n", + " inflating: traffic-sign/labels/train/00419.txt \n", + " inflating: traffic-sign/labels/train/00420.txt \n", + " inflating: traffic-sign/labels/train/00421.txt \n", + " inflating: traffic-sign/labels/train/00422.txt \n", + " inflating: traffic-sign/labels/train/00425.txt \n", + " inflating: traffic-sign/labels/train/00427.txt \n", + " inflating: traffic-sign/labels/train/00428.txt \n", + " inflating: traffic-sign/labels/train/00430.txt \n", + " inflating: traffic-sign/labels/train/00431.txt \n", + " inflating: traffic-sign/labels/train/00432.txt \n", + " inflating: traffic-sign/labels/train/00433.txt \n", + " inflating: traffic-sign/labels/train/00434.txt \n", + " inflating: traffic-sign/labels/train/00435.txt \n", + " inflating: traffic-sign/labels/train/00436.txt \n", + " inflating: traffic-sign/labels/train/00439.txt \n", + " inflating: traffic-sign/labels/train/00440.txt \n", + " inflating: traffic-sign/labels/train/00441.txt \n", + " inflating: traffic-sign/labels/train/00443.txt \n", + " inflating: traffic-sign/labels/train/00444.txt \n", + " inflating: traffic-sign/labels/train/00445.txt \n", + " inflating: traffic-sign/labels/train/00447.txt \n", + " inflating: traffic-sign/labels/train/00448.txt \n", + " inflating: traffic-sign/labels/train/00449.txt \n", + " inflating: traffic-sign/labels/train/00450.txt \n", + " inflating: traffic-sign/labels/train/00451.txt \n", + " inflating: traffic-sign/labels/train/00452.txt \n", + " inflating: traffic-sign/labels/train/00453.txt \n", + " inflating: traffic-sign/labels/train/00455.txt \n", + " inflating: traffic-sign/labels/train/00457.txt \n", + " inflating: traffic-sign/labels/train/00458.txt \n", + " inflating: traffic-sign/labels/train/00459.txt \n", + " inflating: traffic-sign/labels/train/00460.txt \n", + " inflating: traffic-sign/labels/train/00465.txt \n", + " inflating: traffic-sign/labels/train/00466.txt \n", + " inflating: traffic-sign/labels/train/00467.txt \n", + " inflating: traffic-sign/labels/train/00468.txt \n", + " inflating: traffic-sign/labels/train/00472.txt \n", + " inflating: traffic-sign/labels/train/00475.txt \n", + " inflating: traffic-sign/labels/train/00476.txt \n", + " inflating: traffic-sign/labels/train/00477.txt \n", + " inflating: traffic-sign/labels/train/00478.txt \n", + " inflating: traffic-sign/labels/train/00479.txt \n", + " inflating: traffic-sign/labels/train/00480.txt \n", + " inflating: traffic-sign/labels/train/00481.txt \n", + " inflating: traffic-sign/labels/train/00482.txt \n", + " inflating: traffic-sign/labels/train/00484.txt \n", + " inflating: traffic-sign/labels/train/00485.txt \n", + " inflating: traffic-sign/labels/train/00486.txt \n", + " inflating: traffic-sign/labels/train/00487.txt \n", + " inflating: traffic-sign/labels/train/00488.txt \n", + " inflating: traffic-sign/labels/train/00490.txt \n", + " inflating: traffic-sign/labels/train/00492.txt \n", + " inflating: traffic-sign/labels/train/00493.txt \n", + " inflating: traffic-sign/labels/train/00496.txt \n", + " inflating: traffic-sign/labels/train/00497.txt \n", + " inflating: traffic-sign/labels/train/00498.txt \n", + " inflating: traffic-sign/labels/train/00499.txt \n", + " inflating: traffic-sign/labels/train/00500.txt \n", + " inflating: traffic-sign/labels/train/00501.txt \n", + " inflating: traffic-sign/labels/train/00503.txt \n", + " inflating: traffic-sign/labels/train/00504.txt \n", + " inflating: traffic-sign/labels/train/00505.txt \n", + " inflating: traffic-sign/labels/train/00508.txt \n", + " inflating: traffic-sign/labels/train/00509.txt \n", + " inflating: traffic-sign/labels/train/00512.txt \n", + " inflating: traffic-sign/labels/train/00515.txt \n", + " inflating: traffic-sign/labels/train/00516.txt \n", + " inflating: traffic-sign/labels/train/00518.txt \n", + " inflating: traffic-sign/labels/train/00519.txt \n", + " inflating: traffic-sign/labels/train/00520.txt \n", + " inflating: traffic-sign/labels/train/00521.txt \n", + " inflating: traffic-sign/labels/train/00523.txt \n", + " inflating: traffic-sign/labels/train/00524.txt \n", + " inflating: traffic-sign/labels/train/00527.txt \n", + " inflating: traffic-sign/labels/train/00528.txt \n", + " inflating: traffic-sign/labels/train/00530.txt \n", + " inflating: traffic-sign/labels/train/00531.txt \n", + " inflating: traffic-sign/labels/train/00536.txt \n", + " inflating: traffic-sign/labels/train/00542.txt \n", + " inflating: traffic-sign/labels/train/00544.txt \n", + " inflating: traffic-sign/labels/train/00545.txt \n", + " inflating: traffic-sign/labels/train/00548.txt \n", + " inflating: traffic-sign/labels/train/00554.txt \n", + " inflating: traffic-sign/labels/train/00556.txt \n", + " inflating: traffic-sign/labels/train/00560.txt \n", + " inflating: traffic-sign/labels/train/00564.txt \n", + " inflating: traffic-sign/labels/train/00565.txt \n", + " inflating: traffic-sign/labels/train/00566.txt \n", + " inflating: traffic-sign/labels/train/00567.txt \n", + " inflating: traffic-sign/labels/train/00570.txt \n", + " inflating: traffic-sign/labels/train/00571.txt \n", + " inflating: traffic-sign/labels/train/00575.txt \n", + " inflating: traffic-sign/labels/train/00593.txt \n", + " inflating: traffic-sign/labels/train/00599.txt \n", + " inflating: traffic-sign/labels/train/00601.txt \n", + " inflating: traffic-sign/labels/train/00602.txt \n", + " inflating: traffic-sign/labels/train/00603.txt \n", + " inflating: traffic-sign/labels/train/00604.txt \n", + " inflating: traffic-sign/labels/train/00605.txt \n", + " inflating: traffic-sign/labels/train/00606.txt \n", + " inflating: traffic-sign/labels/train/00607.txt \n", + " inflating: traffic-sign/labels/train/00608.txt \n", + " inflating: traffic-sign/labels/train/00609.txt \n", + " inflating: traffic-sign/labels/train/00610.txt \n", + " inflating: traffic-sign/labels/train/00611.txt \n", + " inflating: traffic-sign/labels/train/00612.txt \n", + " inflating: traffic-sign/labels/train/00613.txt \n", + " inflating: traffic-sign/labels/train/00615.txt \n", + " inflating: traffic-sign/labels/train/00616.txt \n", + " inflating: traffic-sign/labels/train/00619.txt \n", + " inflating: traffic-sign/labels/train/00620.txt \n", + " inflating: traffic-sign/labels/train/00621.txt \n", + " inflating: traffic-sign/labels/train/00622.txt \n", + " inflating: traffic-sign/labels/train/00623.txt \n", + " inflating: traffic-sign/labels/train/00624.txt \n", + " inflating: traffic-sign/labels/train/00625.txt \n", + " inflating: traffic-sign/labels/train/00628.txt \n", + " inflating: traffic-sign/labels/train/00630.txt \n", + " inflating: traffic-sign/labels/train/00631.txt \n", + " inflating: traffic-sign/labels/train/00632.txt \n", + " inflating: traffic-sign/labels/train/00633.txt \n", + " inflating: traffic-sign/labels/train/00634.txt \n", + " inflating: traffic-sign/labels/train/00635.txt \n", + " inflating: traffic-sign/labels/train/00637.txt \n", + " inflating: traffic-sign/labels/train/00638.txt \n", + " inflating: traffic-sign/labels/train/00639.txt \n", + " inflating: traffic-sign/labels/train/00640.txt \n", + " inflating: traffic-sign/labels/train/00641.txt \n", + " inflating: traffic-sign/labels/train/00645.txt \n", + " inflating: traffic-sign/labels/train/00648.txt \n", + " inflating: traffic-sign/labels/train/00649.txt \n", + " inflating: traffic-sign/labels/train/00650.txt \n", + " inflating: traffic-sign/labels/train/00653.txt \n", + " inflating: traffic-sign/labels/train/00654.txt \n", + " inflating: traffic-sign/labels/train/00655.txt \n", + " inflating: traffic-sign/labels/train/00656.txt \n", + " inflating: traffic-sign/labels/train/00657.txt \n", + " inflating: traffic-sign/labels/train/00658.txt \n", + " inflating: traffic-sign/labels/train/00659.txt \n", + " inflating: traffic-sign/labels/train/00660.txt \n", + " inflating: traffic-sign/labels/train/00661.txt \n", + " inflating: traffic-sign/labels/train/00662.txt \n", + " inflating: traffic-sign/labels/train/00663.txt \n", + " inflating: traffic-sign/labels/train/00664.txt \n", + " inflating: traffic-sign/labels/train/00665.txt \n", + " inflating: traffic-sign/labels/train/00667.txt \n", + " inflating: traffic-sign/labels/train/00668.txt \n", + " inflating: traffic-sign/labels/train/00669.txt \n", + " inflating: traffic-sign/labels/train/00670.txt \n", + " inflating: traffic-sign/labels/train/00673.txt \n", + " inflating: traffic-sign/labels/train/00674.txt \n", + " inflating: traffic-sign/labels/train/00675.txt \n", + " inflating: traffic-sign/labels/train/00678.txt \n", + " inflating: traffic-sign/labels/train/00679.txt \n", + " inflating: traffic-sign/labels/train/00680.txt \n", + " inflating: traffic-sign/labels/train/00681.txt \n", + " inflating: traffic-sign/labels/train/00682.txt \n", + " inflating: traffic-sign/labels/train/00688.txt \n", + " inflating: traffic-sign/labels/train/00689.txt \n", + " inflating: traffic-sign/labels/train/00690.txt \n", + " inflating: traffic-sign/labels/train/00691.txt \n", + " inflating: traffic-sign/labels/train/00692.txt \n", + " inflating: traffic-sign/labels/train/00693.txt \n", + " inflating: traffic-sign/labels/train/00694.txt \n", + " inflating: traffic-sign/labels/train/00696.txt \n", + " inflating: traffic-sign/labels/train/00697.txt \n", + " inflating: traffic-sign/labels/train/00698.txt \n", + " inflating: traffic-sign/labels/train/00699.txt \n", + " inflating: traffic-sign/labels/train/00700.txt \n", + " inflating: traffic-sign/labels/train/00701.txt \n", + " inflating: traffic-sign/labels/train/00705.txt \n", + " inflating: traffic-sign/labels/train/00706.txt \n", + " inflating: traffic-sign/labels/train/00707.txt \n", + " inflating: traffic-sign/labels/train/00712.txt \n", + " inflating: traffic-sign/labels/train/00714.txt \n", + " inflating: traffic-sign/labels/train/00715.txt \n", + " inflating: traffic-sign/labels/train/00716.txt \n", + " inflating: traffic-sign/labels/train/00719.txt \n", + " inflating: traffic-sign/labels/train/00720.txt \n", + " inflating: traffic-sign/labels/train/00721.txt \n", + " inflating: traffic-sign/labels/train/00722.txt \n", + " inflating: traffic-sign/labels/train/00723.txt \n", + " inflating: traffic-sign/labels/train/00725.txt \n", + " inflating: traffic-sign/labels/train/00728.txt \n", + " inflating: traffic-sign/labels/train/00730.txt \n", + " inflating: traffic-sign/labels/train/00732.txt \n", + " inflating: traffic-sign/labels/train/00733.txt \n", + " inflating: traffic-sign/labels/train/00734.txt \n", + " inflating: traffic-sign/labels/train/00736.txt \n", + " inflating: traffic-sign/labels/train/00737.txt \n", + " inflating: traffic-sign/labels/train/00738.txt \n", + " inflating: traffic-sign/labels/train/00741.txt \n", + " inflating: traffic-sign/labels/train/00742.txt \n", + " inflating: traffic-sign/labels/train/00744.txt \n", + " inflating: traffic-sign/labels/train/00746.txt \n", + " inflating: traffic-sign/labels/train/00747.txt \n", + " inflating: traffic-sign/labels/train/00749.txt \n", + " inflating: traffic-sign/labels/train/00751.txt \n", + " inflating: traffic-sign/labels/train/00752.txt \n", + " inflating: traffic-sign/labels/train/00754.txt \n", + " inflating: traffic-sign/labels/train/00755.txt \n", + " inflating: traffic-sign/labels/train/00756.txt \n", + " inflating: traffic-sign/labels/train/00758.txt \n", + " inflating: traffic-sign/labels/train/00760.txt \n", + " inflating: traffic-sign/labels/train/00763.txt \n", + " inflating: traffic-sign/labels/train/00764.txt \n", + " inflating: traffic-sign/labels/train/00766.txt \n", + " inflating: traffic-sign/labels/train/00770.txt \n", + " inflating: traffic-sign/labels/train/00771.txt \n", + " inflating: traffic-sign/labels/train/00772.txt \n", + " inflating: traffic-sign/labels/train/00774.txt \n", + " inflating: traffic-sign/labels/train/00776.txt \n", + " inflating: traffic-sign/labels/train/00777.txt \n", + " inflating: traffic-sign/labels/train/00778.txt \n", + " inflating: traffic-sign/labels/train/00779.txt \n", + " inflating: traffic-sign/labels/train/00782.txt \n", + " inflating: traffic-sign/labels/train/00783.txt \n", + " inflating: traffic-sign/labels/train/00784.txt \n", + " inflating: traffic-sign/labels/train/00785.txt \n", + " inflating: traffic-sign/labels/train/00787.txt \n", + " inflating: traffic-sign/labels/train/00788.txt \n", + " inflating: traffic-sign/labels/train/00789.txt \n", + " inflating: traffic-sign/labels/train/00791.txt \n", + " inflating: traffic-sign/labels/train/00794.txt \n", + " inflating: traffic-sign/labels/train/00797.txt \n", + " inflating: traffic-sign/labels/train/00798.txt \n", + " inflating: traffic-sign/labels/train/00801.txt \n", + " inflating: traffic-sign/labels/train/00803.txt \n", + " inflating: traffic-sign/labels/train/00805.txt \n", + " inflating: traffic-sign/labels/train/00806.txt \n", + " inflating: traffic-sign/labels/train/00807.txt \n", + " inflating: traffic-sign/labels/train/00809.txt \n", + " inflating: traffic-sign/labels/train/00810.txt \n", + " inflating: traffic-sign/labels/train/00811.txt \n", + " inflating: traffic-sign/labels/train/00813.txt \n", + " inflating: traffic-sign/labels/train/00816.txt \n", + " inflating: traffic-sign/labels/train/00817.txt \n", + " inflating: traffic-sign/labels/train/00818.txt \n", + " inflating: traffic-sign/labels/train/00821.txt \n", + " inflating: traffic-sign/labels/train/00822.txt \n", + " inflating: traffic-sign/labels/train/00823.txt \n", + " inflating: traffic-sign/labels/train/00824.txt \n", + " inflating: traffic-sign/labels/train/00827.txt \n", + " inflating: traffic-sign/labels/train/00828.txt \n", + " inflating: traffic-sign/labels/train/00831.txt \n", + " inflating: traffic-sign/labels/train/00833.txt \n", + " inflating: traffic-sign/labels/train/00834.txt \n", + " inflating: traffic-sign/labels/train/00835.txt \n", + " inflating: traffic-sign/labels/train/00836.txt \n", + " inflating: traffic-sign/labels/train/00837.txt \n", + " inflating: traffic-sign/labels/train/00838.txt \n", + " inflating: traffic-sign/labels/train/00839.txt \n", + " inflating: traffic-sign/labels/train/00841.txt \n", + " inflating: traffic-sign/labels/train/00844.txt \n", + " inflating: traffic-sign/labels/train/00845.txt \n", + " inflating: traffic-sign/labels/train/00846.txt \n", + " inflating: traffic-sign/labels/train/00848.txt \n", + " inflating: traffic-sign/labels/train/00849.txt \n", + " inflating: traffic-sign/labels/train/00850.txt \n", + " inflating: traffic-sign/labels/train/00853.txt \n", + " inflating: traffic-sign/labels/train/00854.txt \n", + " inflating: traffic-sign/labels/train/00855.txt \n", + " inflating: traffic-sign/labels/train/00857.txt \n", + " inflating: traffic-sign/labels/train/00858.txt \n", + " inflating: traffic-sign/labels/train/00859.txt \n", + " inflating: traffic-sign/labels/train/00860.txt \n", + " inflating: traffic-sign/labels/train/00862.txt \n", + " inflating: traffic-sign/labels/train/00863.txt \n", + " inflating: traffic-sign/labels/train/00865.txt \n", + " inflating: traffic-sign/labels/train/00866.txt \n", + " inflating: traffic-sign/labels/train/00867.txt \n", + " inflating: traffic-sign/labels/train/00868.txt \n", + " inflating: traffic-sign/labels/train/00869.txt \n", + " inflating: traffic-sign/labels/train/00870.txt \n", + " inflating: traffic-sign/labels/train/00871.txt \n", + " inflating: traffic-sign/labels/train/00872.txt \n", + " inflating: traffic-sign/labels/train/00881.txt \n", + " inflating: traffic-sign/labels/train/00882.txt \n", + " inflating: traffic-sign/labels/train/00884.txt \n", + " inflating: traffic-sign/labels/train/00886.txt \n", + " inflating: traffic-sign/labels/train/00887.txt \n", + " inflating: traffic-sign/labels/train/00888.txt \n", + " inflating: traffic-sign/labels/train/00889.txt \n", + " inflating: traffic-sign/labels/train/00891.txt \n", + " inflating: traffic-sign/labels/train/00893.txt \n", + " inflating: traffic-sign/labels/train/00894.txt \n", + " inflating: traffic-sign/labels/train/00895.txt \n", + " inflating: traffic-sign/labels/train/00896.txt \n", + " inflating: traffic-sign/labels/train/00897.txt \n", + " inflating: traffic-sign/labels/train/00898.txt \n", + " inflating: traffic-sign/labels/train/00899.txt \n", + " creating: traffic-sign/labels/valid/\n", + " inflating: traffic-sign/labels/valid/00002.txt \n", + " inflating: traffic-sign/labels/valid/00004.txt \n", + " inflating: traffic-sign/labels/valid/00015.txt \n", + " inflating: traffic-sign/labels/valid/00023.txt \n", + " inflating: traffic-sign/labels/valid/00025.txt \n", + " inflating: traffic-sign/labels/valid/00051.txt \n", + " inflating: traffic-sign/labels/valid/00075.txt \n", + " inflating: traffic-sign/labels/valid/00078.txt \n", + " inflating: traffic-sign/labels/valid/00082.txt \n", + " inflating: traffic-sign/labels/valid/00085.txt \n", + " inflating: traffic-sign/labels/valid/00087.txt \n", + " inflating: traffic-sign/labels/valid/00100.txt \n", + " inflating: traffic-sign/labels/valid/00104.txt \n", + " inflating: traffic-sign/labels/valid/00116.txt \n", + " inflating: traffic-sign/labels/valid/00134.txt \n", + " inflating: traffic-sign/labels/valid/00141.txt \n", + " inflating: traffic-sign/labels/valid/00142.txt \n", + " inflating: traffic-sign/labels/valid/00155.txt \n", + " inflating: traffic-sign/labels/valid/00161.txt \n", + " inflating: traffic-sign/labels/valid/00182.txt \n", + " inflating: traffic-sign/labels/valid/00183.txt \n", + " inflating: traffic-sign/labels/valid/00185.txt \n", + " inflating: traffic-sign/labels/valid/00189.txt \n", + " inflating: traffic-sign/labels/valid/00190.txt \n", + " inflating: traffic-sign/labels/valid/00204.txt \n", + " inflating: traffic-sign/labels/valid/00205.txt \n", + " inflating: traffic-sign/labels/valid/00216.txt \n", + " inflating: traffic-sign/labels/valid/00227.txt \n", + " inflating: traffic-sign/labels/valid/00228.txt \n", + " inflating: traffic-sign/labels/valid/00233.txt \n", + " inflating: traffic-sign/labels/valid/00236.txt \n", + " inflating: traffic-sign/labels/valid/00256.txt \n", + " inflating: traffic-sign/labels/valid/00258.txt \n", + " inflating: traffic-sign/labels/valid/00260.txt \n", + " inflating: traffic-sign/labels/valid/00274.txt \n", + " inflating: traffic-sign/labels/valid/00280.txt \n", + " inflating: traffic-sign/labels/valid/00306.txt \n", + " inflating: traffic-sign/labels/valid/00307.txt \n", + " inflating: traffic-sign/labels/valid/00310.txt \n", + " inflating: traffic-sign/labels/valid/00320.txt \n", + " inflating: traffic-sign/labels/valid/00341.txt \n", + " inflating: traffic-sign/labels/valid/00344.txt \n", + " inflating: traffic-sign/labels/valid/00350.txt \n", + " inflating: traffic-sign/labels/valid/00352.txt \n", + " inflating: traffic-sign/labels/valid/00367.txt \n", + " inflating: traffic-sign/labels/valid/00384.txt \n", + " inflating: traffic-sign/labels/valid/00388.txt \n", + " inflating: traffic-sign/labels/valid/00390.txt \n", + " inflating: traffic-sign/labels/valid/00397.txt \n", + " inflating: traffic-sign/labels/valid/00402.txt \n", + " inflating: traffic-sign/labels/valid/00418.txt \n", + " inflating: traffic-sign/labels/valid/00423.txt \n", + " inflating: traffic-sign/labels/valid/00426.txt \n", + " inflating: traffic-sign/labels/valid/00438.txt \n", + " inflating: traffic-sign/labels/valid/00446.txt \n", + " inflating: traffic-sign/labels/valid/00456.txt \n", + " inflating: traffic-sign/labels/valid/00461.txt \n", + " inflating: traffic-sign/labels/valid/00463.txt \n", + " inflating: traffic-sign/labels/valid/00470.txt \n", + " inflating: traffic-sign/labels/valid/00471.txt \n", + " inflating: traffic-sign/labels/valid/00473.txt \n", + " inflating: traffic-sign/labels/valid/00474.txt \n", + " inflating: traffic-sign/labels/valid/00483.txt \n", + " inflating: traffic-sign/labels/valid/00491.txt \n", + " inflating: traffic-sign/labels/valid/00494.txt \n", + " inflating: traffic-sign/labels/valid/00502.txt \n", + " inflating: traffic-sign/labels/valid/00507.txt \n", + " inflating: traffic-sign/labels/valid/00513.txt \n", + " inflating: traffic-sign/labels/valid/00514.txt \n", + " inflating: traffic-sign/labels/valid/00517.txt \n", + " inflating: traffic-sign/labels/valid/00551.txt \n", + " inflating: traffic-sign/labels/valid/00552.txt \n", + " inflating: traffic-sign/labels/valid/00557.txt \n", + " inflating: traffic-sign/labels/valid/00626.txt \n", + " inflating: traffic-sign/labels/valid/00642.txt \n", + " inflating: traffic-sign/labels/valid/00644.txt \n", + " inflating: traffic-sign/labels/valid/00646.txt \n", + " inflating: traffic-sign/labels/valid/00647.txt \n", + " inflating: traffic-sign/labels/valid/00651.txt \n", + " inflating: traffic-sign/labels/valid/00671.txt \n", + " inflating: traffic-sign/labels/valid/00672.txt \n", + " inflating: traffic-sign/labels/valid/00683.txt \n", + " inflating: traffic-sign/labels/valid/00685.txt \n", + " inflating: traffic-sign/labels/valid/00686.txt \n", + " inflating: traffic-sign/labels/valid/00695.txt \n", + " inflating: traffic-sign/labels/valid/00702.txt \n", + " inflating: traffic-sign/labels/valid/00703.txt \n", + " inflating: traffic-sign/labels/valid/00704.txt \n", + " inflating: traffic-sign/labels/valid/00710.txt \n", + " inflating: traffic-sign/labels/valid/00717.txt \n", + " inflating: traffic-sign/labels/valid/00729.txt \n", + " inflating: traffic-sign/labels/valid/00740.txt \n", + " inflating: traffic-sign/labels/valid/00761.txt \n", + " inflating: traffic-sign/labels/valid/00762.txt \n", + " inflating: traffic-sign/labels/valid/00773.txt \n", + " inflating: traffic-sign/labels/valid/00775.txt \n", + " inflating: traffic-sign/labels/valid/00780.txt \n", + " inflating: traffic-sign/labels/valid/00795.txt \n", + " inflating: traffic-sign/labels/valid/00802.txt \n", + " inflating: traffic-sign/labels/valid/00808.txt \n", + " inflating: traffic-sign/labels/valid/00820.txt \n", + " inflating: traffic-sign/labels/valid/00825.txt \n", + " inflating: traffic-sign/labels/valid/00829.txt \n", + " inflating: traffic-sign/labels/valid/00842.txt \n", + " inflating: traffic-sign/labels/valid/00851.txt \n", + " inflating: traffic-sign/labels/valid/00852.txt \n", + " inflating: traffic-sign/labels/valid/00864.txt \n", + " inflating: traffic-sign/labels/valid/00874.txt \n", + " inflating: traffic-sign/labels/valid/00876.txt \n", + " inflating: traffic-sign/labels/valid/00879.txt \n", + " inflating: traffic-sign/labels/valid/00885.txt \n" + ] + } + ], + "source": [ + "!wget https://netspresso-github.s3.ap-northeast-2.amazonaws.com/traffic-sign.zip\n", + "!unzip traffic-sign.zip" + ] + }, + { + "cell_type": "markdown", + "id": "ce91072f-28ec-4855-971b-d3889dae5ce0", + "metadata": {}, + "source": [ + "### 1-2. Declare trainer" + ] + }, + { + "cell_type": "markdown", + "id": "8cc2761b-d1d5-40a3-a391-88eb1492bbcf", + "metadata": {}, + "source": [ + "First, declare the Trainer. \n", + "\n", + "Currently, Trainer supports training pipelines about three computer vision tasks:\n", + "\n", + "- IMAGE_CLASSIFICATION\n", + "- OBJECT_DETECTION\n", + "- SEMANTIC_SEGMENTATION" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f78cdc2f-8994-4604-8c83-9ed6011aa6ad", + "metadata": {}, + "outputs": [], + "source": [ + "from netspresso.enums import Task\n", + "\n", + "trainer = netspresso.trainer(task=Task.OBJECT_DETECTION)" + ] + }, + { + "cell_type": "markdown", + "id": "6b718c57-b0e0-4700-863a-7a2d95ecb90e", + "metadata": {}, + "source": [ + "### 1-3. Set dataset config" + ] + }, + { + "cell_type": "markdown", + "id": "74ade4ed-09ce-4ba7-a8e7-9239b8b6bcac", + "metadata": {}, + "source": [ + "Please set the dataset you want to train." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c0e74828-8078-4634-a6e6-d3910382e623", + "metadata": {}, + "outputs": [], + "source": [ + "trainer.set_dataset_config(\n", + " name=\"traffic_sign_config_example\",\n", + " root_path=\"./traffic-sign\",\n", + " train_image=\"images/train\",\n", + " train_label=\"labels/train\",\n", + " valid_image=\"images/valid\",\n", + " valid_label=\"labels/valid\",\n", + " id_mapping=[\"prohibitory\", \"danger\", \"mandatory\", \"other\"],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "09bbdacb-1b4d-4c2b-a00e-e5709f2fb23a", + "metadata": {}, + "source": [ + "### 1-4. Set model config" + ] + }, + { + "cell_type": "markdown", + "id": "a71fcee7-1a09-406d-9040-2f20f3f1ea5c", + "metadata": {}, + "source": [ + "Please set the model you want to train.\n", + "\n", + "You can check the available models from `trainer.available_models`." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6d786c78-c433-49ce-bf84-b6b0c1a85527", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['EfficientFormer',\n", + " 'YOLOX-S',\n", + " 'ResNet',\n", + " 'MobileNetV3',\n", + " 'MixNetL',\n", + " 'MixNetM',\n", + " 'MixNetS']" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trainer.available_models" + ] + }, + { + "cell_type": "markdown", + "id": "5f132845-d86e-4097-b707-1aee898abeb2", + "metadata": {}, + "source": [ + "We configured it as follows to train using the YOLOX model." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "98196b5c-bfb0-48e4-9585-5870629bc0e1", + "metadata": {}, + "outputs": [], + "source": [ + "trainer.set_model_config(model_name=\"YOLOX-S\", img_size=512)" + ] + }, + { + "cell_type": "markdown", + "id": "00541eff-6e75-4de1-8b98-1db42644a24f", + "metadata": {}, + "source": [ + "### 1-5. Set augmentation config" + ] + }, + { + "cell_type": "markdown", + "id": "d5169b5c-4ec9-4521-8511-5f2565c3a5eb", + "metadata": {}, + "source": [ + "Please set the augmentation." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "9f30e104-43f8-4682-81dc-cf39da95fb6d", + "metadata": {}, + "outputs": [], + "source": [ + "from netspresso.trainer.augmentations import Resize\n", + "\n", + "trainer.set_augmentation_config(\n", + " train_transforms=[Resize()],\n", + " inference_transforms=[Resize()],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "7685003a-10f4-4244-b1b2-52fa72e823ec", + "metadata": {}, + "source": [ + "### 1-6. Set training config" + ] + }, + { + "cell_type": "markdown", + "id": "63f43ca2-b48a-4b04-8836-e71b7379fcca", + "metadata": {}, + "source": [ + "Please set the hyperparameter such as **epochs**, **batch size**, **optimizer**, and **scheduler** for training.\n", + "\n", + "If training config is not set, it will be set as **the default option for the task**." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "776eccea-879e-4f27-b509-d06fb8adb524", + "metadata": {}, + "outputs": [], + "source": [ + "from netspresso.trainer.optimizers import AdamW\n", + "from netspresso.trainer.schedulers import CosineAnnealingWarmRestartsWithCustomWarmUp\n", + "\n", + "trainer.set_training_config(\n", + " epochs=40,\n", + " batch_size=16,\n", + " optimizer=AdamW(lr=6e-3),\n", + " scheduler=CosineAnnealingWarmRestartsWithCustomWarmUp(warmup_epochs=10),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "97f9f39d-1c9c-4309-a1f6-f81fe33fb46f", + "metadata": {}, + "source": [ + "### 1-7. Train" + ] + }, + { + "cell_type": "markdown", + "id": "2e52d6a7-054c-4188-8586-5f9b6cedb337", + "metadata": {}, + "source": [ + "Please assign a GPU to use for training.\n", + "\n", + "- For single-gpu: \"0\"\n", + "- For multi-gpu: \"0,1,2,3\"" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "ed7a6fc8-aac7-4bbb-978d-ae686ce0933d", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.10/site-packages/torch/distributed/launch.py:180: FutureWarning: The module torch.distributed.launch is deprecated\n", + "and will be removed in future. Use torchrun.\n", + "Note that --use_env is set by default in torchrun.\n", + "If your script expects `--local_rank` argument to be set, please\n", + "change it to read from `os.environ['LOCAL_RANK']` instead. See \n", + "https://pytorch.org/docs/stable/distributed.html#launch-utility for \n", + "further instructions\n", + "\n", + " warnings.warn(\n", + "WARNING:torch.distributed.run:\n", + "*****************************************\n", + "Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. \n", + "*****************************************\n", + "2024-02-02 10:40:02.976 | INFO | netspresso_trainer.trainer_common:train_common:35 - Task: detection | Model: yolox_s | Training with torch.fx model? False\n", + "2024-02-02 10:40:02.977 | INFO | netspresso_trainer.trainer_common:train_common:36 - Result will be saved at outputs/training_sample/version_0\n", + "2024-02-02 10:40:02.978 | INFO | netspresso_trainer.dataloaders.builder:build_dataset:20 - ----------------------------------------\n", + "2024-02-02 10:40:02.979 | INFO | netspresso_trainer.dataloaders.builder:build_dataset:21 - Loading data...\n", + "2024-02-02 10:40:03.025 | INFO | netspresso_trainer.dataloaders.builder:build_dataset:94 - Summary | Dataset: (with local format)\n", + "2024-02-02 10:40:03.026 | INFO | netspresso_trainer.dataloaders.builder:build_dataset:95 - Summary | Training dataset: 630 sample(s)\n", + "2024-02-02 10:40:03.026 | INFO | netspresso_trainer.dataloaders.builder:build_dataset:97 - Summary | Validation dataset: 111 sample(s)\n", + "2024-02-02 10:40:04.403 | INFO | netspresso_trainer.models.utils:load_from_checkpoint:148 - Pretrained model for yolox_s is loaded from: /root/.cache/netspresso_trainer/yolox_s/yolox_s_coco.safetensors\n", + "2024-02-02 10:40:04.413 | INFO | netspresso_trainer.models.utils:load_from_checkpoint:152 - ----------------------------------------\n", + "2024-02-02 10:40:04.413 | INFO | netspresso_trainer.models.utils:load_from_checkpoint:153 - Head weights are not loaded because model.checkpoint.load_head is set to False\n", + " 0%| | 0/19 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "original_latency = original_benchmark_result['result']['latency']\n", + "compressed_latency = {ratio : benchmark_results[ratio]['result']['latency'] for ratio in ratios}\n", + "Plotter.compare_latency(original_latency=original_latency, latency_per_model=compressed_latency, target_latency=300)" + ] + }, + { + "cell_type": "markdown", + "id": "2c1033b8-4208-447b-b364-f70efb84dc01", + "metadata": {}, + "source": [ + "The compression ratio of **0.7** meet our target latency of 300 ms." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "96189a03-0541-4418-88b5-9b83551fa135", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABOcAAAIjCAYAAABIy38pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAADA90lEQVR4nOzdd3hU1b7G8XeSTHqbENIgjU4ChBAQQQSVDmJHEVQUrtg9qNejHg8IlmMvWDl6FSxgQY8cKxIEFQURSGjSJYWSAqQnJJkk+/4xyTBDDQhOCN/P8+SR2XvNzFqTxTZ5+a29TIZhGAIAAAAAAADwl3NzdQcAAAAAAACAsxXhHAAAAAAAAOAihHMAAAAAAACAixDOAQAAAAAAAC5COAcAAAAAAAC4COEcAAAAAAAA4CKEcwAAAAAAAICLEM4BAAAAAAAALkI4BwAAAAAAALgI4RwAAABwiBtvvFFxcXGu7sZp98MPP8hkMumHH35wdVcAADhrEc4BAACXmT17tkwm0xG/HnzwQXu7uLg4XXzxxcd9vezsbN16662Ki4uTl5eXwsLCdNlll+mXX345rG1DKNHwZTab1aZNG91www3asWPHKR3nXy0vL0//+7//q06dOsnX11d+fn5KSUnR448/rqKiIld3D8eQmZnpNC/d3NwUEhKi4cOHa/ny5Sf9uq+//rpmz5596joKAABOGQ9XdwAAAODRRx9VfHy807EuXbqc0Gv88ssvGjFihCTpf/7nf5SQkKDc3FzNnj1b559/vmbMmKG77rrrsOfdfffd6tWrl6xWq9LS0vTmm2/q66+/1vr16xUVFXXyg3KRlStXasSIESorK9N1112nlJQUSdKqVav01FNP6aefftLChQtd3Mum76233lJdXZ3L3v/aa6/ViBEjVFtbq61bt+r111/XhRdeqJUrV6pr164n/Hqvv/66QkNDdeONNzod79+/vw4cOCBPT89T1HMAAHCiCOcAAIDLDR8+XD179jzp5xcWFuqqq66Sj4+PfvnlF7Vt29Z+7t5779XQoUM1efJkpaSkqG/fvk7PPf/883XVVVdJkm666SZ16NBBd999t95991099NBDJ90nVygqKtLll18ud3d3paenq1OnTk7nn3jiCb311lsu6t3JqaurU3V1tby9vf/S9zWbzX/p+x2qR48euu666+yPzz//fA0fPlxvvPGGXn/99VP2Pm5ubn/5ZwsAAJyxrBUAAJzx/v3vfys3N1fPPvusUzAnST4+Pnr33XdlMpn06KOPHve1LrroIklSRkaGJKm0tFSTJ092Wio7ePBgpaWlHfU1Pv30U5lMJv34449H7KvJZNKGDRskSbm5ubrpppvUunVreXl5KTIyUpdeeqkyMzMbO3yn1969e7deeOGFw4I5SQoPD9c///lPp2Ovv/66EhMT5eXlpaioKN1xxx2HLX294IIL1KVLF61bt04DBgyQr6+v2rVrp08//VSS9OOPP6p3797y8fFRx44dtWjRIqfnT5s2TSaTSZs3b9bVV1+twMBAtWjRQn/7299UWVnp1NZkMunOO+/UnDlz7P1asGCBJGn37t2aMGGCwsPD5eXlpcTERL3zzjuHjfOVV15RYmKifH19ZbFY1LNnT82dO9d+vjHf0yPdc668vFz33XefoqOj5eXlpY4dO+q5556TYRhHHMP8+fPVpUsXe18bxnEyzj//fEnSH3/84XR81qxZuuiiixQWFiYvLy8lJCTojTfecGoTFxen33//XT/++KN9uewFF1wg6ej3nJs3b55SUlLk4+Oj0NBQXXfdddq9e/dJ9x8AABwdlXMAAMDliouLtW/fPqdjoaGhjX7+l19+KW9vb1199dVHPB8fH69+/fpp8eLFOnDggHx8fI76Wg3hR4sWLSRJt956qz799FPdeeedSkhI0P79+/Xzzz9r06ZN6tGjxxFfY+TIkfL399cnn3yiAQMGOJ37+OOPlZiYaF+2e+WVV+r333/XXXfdpbi4OOXn5ys1NVXZ2dknvCHBF198IR8fH3sl4PFMmzZN06dP16BBg3Tbbbdpy5YteuONN7Ry5Ur98ssvTtVjhYWFuvjiizVmzBiNHj1ab7zxhsaMGaM5c+Zo8uTJuvXWWzV27Fg9++yzuuqqq7Rz504FBAQ4vd/VV1+tuLg4Pfnkk/r111/18ssvq7CwUO+9955Tu8WLF+uTTz7RnXfeqdDQUMXFxSkvL0/nnnuuPfhq2bKlvv32W02cOFElJSWaPHmyJNty1LvvvltXXXWVPfxbt26dVqxYobFjx0o6ue+pYRi65JJLtGTJEk2cOFHdu3fXd999p/vvv1+7d+/Wiy++6NT+559/1n/+8x/dfvvtCggI0Msvv6wrr7xS2dnZ9rl1IhrCWovF4nT8jTfeUGJioi655BJ5eHjoyy+/1O233666ujrdcccdkqSXXnpJd911l/z9/fXwww9LsgW1RzN79mzddNNN6tWrl5588knl5eVpxowZ+uWXX5Senq7g4OAT7j8AADgGAwAAwEVmzZplSDril6PY2Fhj5MiRR32d4OBgIykp6ZjvdffddxuSjHXr1hmGYRhLliwxJBnvvPOOsXfvXmPPnj3G119/bcTFxRkmk8lYuXKlYRiGERQUZNxxxx0nPLZrr73WCAsLM2pqauzHcnJyDDc3N+PRRx81DMMwCgsLDUnGs88+e8KvfyQWi+W4n0OD/Px8w9PT0xgyZIhRW1trP/7qq6/aP5cGAwYMMCQZc+fOtR/bvHmzIclwc3Mzfv31V/vx7777zpBkzJo1y37skUceMSQZl1xyiVMfbr/9dkOSsXbtWvuxhtf8/fffndpOnDjRiIyMNPbt2+d0fMyYMUZQUJBRUVFhGIZhXHrppUZiYuIxx96Y7+n48eON2NhY++P58+cbkozHH3/cqd1VV11lmEwmY/v27U5j8PT0dDq2du1aQ5LxyiuvHPN9MzIyDEnG9OnTjb179xq5ubnG0qVLjV69ehmSjHnz5jm1bxi3o6FDhxpt2rRxOpaYmGgMGDDgsLYNfw+WLFliGIZhVFdXG2FhYUaXLl2MAwcO2Nt99dVXhiRj6tSpx+w/AAA4cSxrBQAALvfaa68pNTXV6etElJaWHlaldaiG8yUlJU7HJ0yYoJYtWyoqKkojR45UeXm53n33Xfs98IKDg7VixQrt2bPnhPp0zTXXKD8/32m54Keffqq6ujpdc801kmxLbj09PfXDDz+osLDwhF7/SEpKSo77OTRYtGiRqqurNXnyZLm5HfyR8Oabb1ZgYKC+/vprp/b+/v4aM2aM/XHHjh0VHByszp07q3fv3vbjDX8+0o63DZVcDRo26Pjmm2+cjg8YMEAJCQn2x4Zh6LPPPtOoUaNkGIb27dtn/xo6dKiKi4vtS1KDg4O1a9curVy58qhjP5nv6TfffCN3d3fdfffdTsfvu+8+GYahb7/91un4oEGDnJZYd+vWTYGBgY3eCfiRRx5Ry5YtFRERofPPP1+bNm3S888/f1hVpGMVaEMF6oABA7Rjxw4VFxc3enwNVq1apfz8fN1+++1O96IbOXKkOnXqdNi8AAAAfx7LWgEAgMudc845f2pDiICAAJWWlh6zTcP5Q8OrqVOn6vzzz5e7u7tCQ0PVuXNneXgc/BHpmWee0fjx4xUdHa2UlBSNGDFCN9xwg9q0aXPM9xs2bJiCgoL08ccfa+DAgZJsS1q7d++uDh06SJK8vLz09NNP67777lN4eLjOPfdcXXzxxbrhhhsUERFxwp9DYGDgcT+HBllZWZJsIZsjT09PtWnTxn6+QevWrWUymZyOBQUFKTo6+rBjko4YNrZv397pcdu2beXm5nbY/fUO3bl37969Kioq0ptvvqk333zziOPJz8+XJD3wwANatGiRzjnnHLVr105DhgzR2LFjdd5559nbnsz3NCsrS1FRUYfNn86dO9vPO4qJiTnsNSwWS6ND2EmTJmn06NGqrKzU4sWL9fLLL6u2tvawdr/88oseeeQRLV++XBUVFU7niouL7d+PxjravJCkTp066eeffz6h1wMAAMdH5RwAADjjde7cWVu2bFFVVdVR26xbt05ms/mwgKhr164aNGiQLrzwQnXt2tUpmJNs90nbsWOHXnnlFUVFRenZZ59VYmLiYZVSh/Ly8tJll12mzz//XDU1Ndq9e7d++eUXe9Vcg8mTJ2vr1q168skn5e3trSlTpqhz585KT08/wU/BFp5s3bpV1dXVJ/zc43F3dz+h48YhmyQcyaFhX4ND7wlYV1cnSbruuusOq7Bs+GoI3xrmwkcffaR+/frps88+U79+/fTII4/YX+9kv6cn4s98LpItyBw0aJAuvvhivfDCC7rnnnv04IMPatWqVfY2f/zxhwYOHKh9+/bphRde0Ndff63U1FTdc889kg5+bgAAoGkjnAMAAGe8iy++WJWVlZo3b94Rz2dmZmrp0qW66KKLjrkZxNFERkbq9ttv1/z585WRkaEWLVroiSeeOO7zrrnmGu3bt0/ff/+95s2bJ8MwDgvnJFsF2X333aeFCxdqw4YNqq6u1vPPP3/C/Rw1apQOHDigzz777LhtY2NjJUlbtmxxOl5dXa2MjAz7+VNp27ZtTo+3b9+uurq642580bJlSwUEBKi2tlaDBg064ldYWJi9vZ+fn6655hrNmjVL2dnZGjlypJ544gmnnWFP9HsaGxurPXv2HFaZuHnzZvv50+nhhx9WQECA0267X375paqqqvTFF1/olltu0YgRIzRo0KAjzvGjBaGHOtq8aDh2uscJAMDZiHAOAACc8W655RaFhYXp/vvvP+yeXpWVlbrppptkGIamTp16Qq9bW1t72H27wsLCFBUVdcwqvQaDBg1SSEiIPv74Y3388cc655xznJZsVlRUOAVGki2oCwgIcHr9nJwcbd68WVar9Zjvd+uttyoyMlL33Xeftm7detj5/Px8Pf744/a+eXp66uWXX3aq5nr77bdVXFyskSNHHnd8J+q1115zevzKK69IkoYPH37M57m7u+vKK6/UZ599pg0bNhx2fu/evfY/79+/3+mcp6enEhISZBiGrFbrSX9PR4wYodraWr366qtOx1988UWZTKbjjuHPCg4O1i233KLvvvtOa9askXSwOs/x+1dcXKxZs2Yd9nw/Pz8VFRUd93169uypsLAwzZw50+nz+Pbbb7Vp06bTMi8AADjbcc85AABwRti+fbs9WHKUnJyskSNH6tNPP9XIkSPVo0cP/c///I8SEhKUm5ur2bNna/v27ZoxY4b69u17Qu9ZWlqq1q1b66qrrlJSUpL8/f21aNEirVy5slGVbWazWVdccYU++ugjlZeX67nnnnM6v3XrVg0cOFBXX321EhIS5OHhoc8//1x5eXlOmy889NBDevfdd5WRkXHMKjOLxaLPP/9cI0aMUPfu3XXdddcpJSVFkpSWlqYPP/xQffr0kWSrRnvooYc0ffp0DRs2TJdccom2bNmi119/Xb169dJ11113Qp9VY2RkZOiSSy7RsGHDtHz5cn3wwQcaO3askpKSjvvcp556SkuWLFHv3r118803KyEhQQUFBUpLS9OiRYtUUFAgSRoyZIgiIiJ03nnnKTw8XJs2bdKrr76qkSNHKiAgQEVFRSf1PR01apQuvPBCPfzww8rMzFRSUpIWLlyo//73v5o8ebLT5g+ny9/+9je99NJLeuqpp/TRRx9pyJAh8vT01KhRo3TLLbeorKxMb731lsLCwpSTk+P03JSUFL3xxht6/PHH1a5dO4WFhemiiy467D3MZrOefvpp3XTTTRowYICuvfZa5eXlacaMGYqLi7MvmQUAAKeQq7aJBQAAmDVrliHJWLly5THbxcbGGpKO+DVx4kR7u4yMDOPmm282YmJiDLPZbISGhhqXXHKJsXTp0sNec8mSJYYkY968eUd936qqKuP+++83kpKSjICAAMPPz89ISkoyXn/99UaPMTU11ZBkmEwmY+fO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hgwZokGDBmnmzJlav369JkyYoODgYKd/yQUAAGcfD3c3dWkVpC6tgnR9H9uxI1bXVTpX15lMUruW/vZdYXvEWNS2iVTXzZ8/X0VFRbrxxhslSTt27JAkTZs2Tc8995y6d++u9957TwMHDtSGDRvUvn37Rr1uQECAfvjhB1122WX617/+JUlq3769vvvuO3l4HPvHztdff11///vfVV5ero4dOyo1NVWenp6SpKFDh+qll17Shx9+qKuvvlq5ubl69NFHJUk5OTkn8xEAAAA0GU06nFu2bJkuvfRSjRw5UpJtmcOHH36o3377TZKtau6ll17SP//5T1166aWSpPfee0/h4eGaP3++xowZo02bNmnBggVauXKlevbsKUl65ZVXNGLECD333HOKiorSnDlzVF1drXfeeUeenp5KTEzUmjVr9MILLxDOAQCAwzRU1w1KOHjvus25pUrPLlRafWiXtb9C2/LLtC2/TB+v2ilJCvT2UPf6+9b1iLGoe0ywAr3/+nvXvf322xo+fLiioqIkSXV1dZJsGzPcdNNNkqTk5GR9//33euedd/Tkk0826nUPHDigiRMnqk+fPrr11lt17rnn6qWXXtLIkSO1cuVK+fj4HPW548aN0+DBg5WTk6PnnntOV199tX755Rd5e3tryJAhevbZZ3Xrrbfq+uuvl5eXl6ZMmaKlS5c63RMPAADgTNSkw7m+ffvqzTff1NatW9WhQwetXbtWP//8s1544QVJUkZGhnJzczVo0CD7c4KCgtS7d28tX75cY8aM0fLlyxUcHGwP5iRp0KBBcnNz04oVK3T55Zdr+fLl6t+/v/1fZyXbv9A+/fTTKiwslMViOaxvVVVVqqqqsj8uKSmRJFmtVlmtTXcZy4loGEdzGQ/+HOYDHDEf4Ij5YNMxzFcdw3w1pmcrSbbqujU7i5W+s1jpO4u0fnexSipr9NPWvfpp615JDdV1fkqODlb36GAlRwepTajfaa2uy8rK0qJFi/TJJ5/Yv2ehoaGSpA4dOjh9Hzt27KjMzMzDvrcNG0scevz9999XZmamvv/+e33//ffq0aOH3n33XYWFhemzzz7TNddcc9R++fr6Ki4uzv6PsWFhYZo3b57GjBkjSbrrrrt05513KicnRxaLRZmZmXrooYcUExNz1s+9po5rBBwxH+CI+QBHzXE+NHYsTTqce/DBB1VS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q4iIiIiIiIhce8xuTvRtHUDf1lVriZeUV7DzUJ7VrrA5RWVsTstmc1q25boWAR7EhvvS+fR02FBf13qbCltZWUlJSQkREREEBweTkpJidf63335j4MCBVscMw2DJkiWWfEx1RUVFNWbrndkYsbKy8pxtKCoqAqhxnZ2d3XmvuZI1iORcQUEBo0aNYuHChTz99NOW43l5eSxatIj333+fG264AajKxLZu3Zqff/6Zbt26sXr1apKTk/nmm28ICAggJiaGmTNn8uijjzJt2jScnJx44403iIyM5MUXXwSqsrw//vgjc+fOVXLOxjTrWkRERERERK5Vzg72xIb7Ehvuy/9R9TfygeOFVrvCph4v5LcjBfx2pIAPNleNWPP3dCbu9DTYzhE+tAnywsH+widPPv744wwcOJCwsDBOnjzJ+++/z/r161m1ahUmk4mHH36YqVOn0qFDB2JiYnj77bfZs2cPn3zyiVU969atIzU1lXvuuafGPQYPHszcuXN5+umnCQwMZNu2bUyZMoXw8HA6duwIwObNmxk9ejRr164lJCSE+Ph4fHx8GDNmDFOmTMHV1ZWFCxdaBl+dsW/fPgoKCsjKyuLUqVOWaa1t2rTBycnpgr8f9aVBJOcmTJjA4MGD6devn1VyLjExkbKyMvr162c51qpVK8LCwti4cSPdunVj48aNtG/f3rKDJUD//v355z//ya5du+jYsSMbN260quNMmerTZ89WUlJCSUmJ5XV+fj5QNWe+rMx6SGlZWRmGYVBZWdmgMrhnEmNn2i7XtnPFQ2VlJYZhUFZWZvmfDbk2nHnOnf28k2uT4kHOppiQ6hQPUp3iQapTPFycMLMzYTFB3BJTNa30REEJiac3lUhMz2XX4XyOnixhRVIWK5KyAHB1tCMm1EynMDOx4WZimpjxdPnzlFBWVhajR48mMzMTb29v2rdvz1dffcX1119PWVkZEyZMoLCwkAceeIDs7Gyio6P5+uuvCQsLs3pfFy5cSHx8PE2bNq3xfl933XW88847vPDCC6SkpODh4UG3bt344osvcHBwoKysjPz8fFJSUigqKqKsrAxvb2++/PJLpkyZwg033EBZWRlt2rTh008/pU2bNpZ7jB07lu+//95yrzPJvt9++42IiIhLeh9qo7axfcVvCLFs2TJmzZrFli1bcHFx4frrrycmJoZ58+bx/vvv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/92X7x6+nhf/1oH/r0sozf09ADhwvJCPtv7OI5/+yrRzJOYAy7HpXyRTUXmuElcXjZyzscdmzz/vudbNIxj392GW11Ne+E+NJNwZTcNDmHjnXy2vZ768hMKiUzXKzZ16X63blp2dzbp163j66adrjGQLDAxk1KhRfPjhh8yfPx+TqWou+AsvvMCUKVOYOnXqOetMTU3lr3/9K/fddx/33HMP27Zt46GHHvrTtuzfv5/PPvuML7/8kpycHG699VbmzJnDrFmzACgsLGTy5MlER0dTUFDAlClTuPnmm9m+fTt2drXPQTs5OTFq1CiWLFlCjx49gKoE23PPPVdjOuudd97J3r17+fzzz/Hy8uLRRx9l0KBBJCcn4+joyKZNmxg7diyzZ89m+PDhrFy5ssb35YcffmD06NG88sorXHfddezfv59x48YBnPd7KCIiIiIiInKlM5lMhPu5E+7nzojYJgDkFJbyS3oOW9Jy+HbPEVKOFJz3egPIzCtmc2o28U3/eEmthk4j5+S89u7di2EYtGrV6pznW7duTU5ODseOHbMcu+GGG3jwwQdp2rQpTZs2rXHNm2++ScuWLXn++edp2bIlt912G3feeeeftqWyspKEhATatWvHddddxx133MHatWst50eMGMEtt9xCs2bNiImJYfHixSQlJZGcnHzB/b777rv56KOPKCws5PvvvycvL48hQ4ZYlTmTlHvrrbe47rrr6NChA0uXLuXQoUN89tlnALz88ssMGDCARx55hBYtWjBp0qQam4xMnz6dxx57jDFjxhAVFcWNN97IzJkzefPNNy+43SIiIiIiIiJXMh93J/q2DuCxga0Y36dZra45erK4nltlexo5Z2NzHh9/3nNnbz8846Fx5y17ZuTaGU/dd9elNawaw6j9ENK4uLg/PJ+SkkLnzp2tjnXp0uVP642IiMDT09PyOigoiKNHj1pe7927lylTprBp0yaOHz9OZWUlAOnp6bRr167W7Qfo0KEDzZs355NPPuHbb7/ljjvuwMHB+kdl9+7dODg40LVrV8sxPz8/WrZsye7duy1lbr75Zqvr4uPjWblypeX1jh072LBhg2UEIEBFRQXFxcUUFRXh5uZ2QW0XERERERERaQj8PV3qtFxDpuScjTk7Odq87Pk0a9YMk8nEnj17znl+9+7d+Pj40LhxY8sxd3f3S77vuTg6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GhMnTjRSUlKML7/80vD39zeefvrpWtcpV676iIcHH3zQWL9+vZGammps2LDB6Nevn9GoUSPj6NGjl71/cmEu9vNkz549jZEjR56zzqv584OSc9eYV1991QgLCzOcnJyMLl26GD///LPlXO/evY0xY8ZYXj/xxBNGs2bNDBcXF8PHx8eIj483li1bZlVfZWWl8dRTTxkBAQGGs7Oz0bdvXyMlJeVydUcuUV3GQ1FRkXHTTTcZjRs3NhwdHY3w8HDj3nvv1QepBuRC4uFs50rO6fnQsNVlPOj50PBdSDzcf//9lrIBAQHGoEGDjF9++cWqPj0fGra6jAc9Hxq+C/198dNPPxldu3Y1nJ2djaioKGPWrFlGeXl5reuUK1tdx8PIkSONoKAgw8nJyQgJCTFGjhxp7Nu373J1Ry7RhcbDnj17DMBYvXr1Oeu7mj8/mAzDMGw9ek9ERERERERERORapDXnREREREREREREbETJORERERERERERERtRck5ERERERERERMRGlJwTERERERERERGxESXnREREREREREREbETJORERERERERERERtRck5ERERERERERMRGlJwTERERERERERGxESXnRERERKTeRUREMG/ePFs345JcDX0QERGRK4+ScyIiIiL1ICsri3/9619ERUXh7OxMaGgoQ4cOZe3atbZumk1s2bKFcePG1es91q9fj8lksnw1btyYQYMGkZSUdEH1JCQkYDabaxy/HH0QERGRa4+ScyIiIiJ1LC0tjdjYWNatW8fzzz9PUlISK1eupE+fPkyYMMHWzTunsrKyeq2/cePGuLm51es9zkhJSSEzM5NVq1ZRUlLC4MGDKS0tveR6L2cfRERE5Nqh5JyIiIhIHRs/fjwmk4nNmzczYsQIWrRoQdu2bZk8eTI///yzpVx6ejrDhg3Dw8MDLy8vbr31Vo4cOWI5P23aNGJiYli8eDFhYWF4eHgwfvx4KioqeO655wgMDMTf359Zs2ZZ3d9kMrFgwQIGDhyIq6srUVFRfPLJJ5bzaWlpmEwmPvzwQ3r37o2LiwtLly4F4K233qJ169a4uLjQqlUr5s+fb7mutLSUiRMnEhQUhIuLC+Hh4cyePRsAwzCYNm0aYWFhODs7ExwczKRJkyzXnj0ltLZ9f/fdd4mIiMDb25vbbruNkydP/un339/fn8DAQDp16sT9999PRkYGe/bssZx/6aWXaN++Pe7u7oSGhjJ+/HgKCgqAqtF3d911F3l5eZYReNOmTbuoPoiIiIjUhpJzIiIiInUoOzublStXMmHCBNzd3WucPzNdsrKykmHDhpGdnc13333HmjVrOHDgACNHjrQqv3//fr7++mtWrlzJBx98wKJFixg8eDC///473333Hc8++yxPPvkkmzZtsrruqaeeYsSIEezYsYNRo0Zx2223sXv3bqsyjz32GPfddx+7d++mf//+LF26lClTpjBr1ix2797NM888w1NPPcXbb78NwCuvvMLnn3/ORx99REpKCkuXLiUiIgKATz/9lLlz5/Lmm2+yd+9ePvvsM9q3b3/O79GF9P2zzz7jyy+/5Msvv+S7775jzpw5tX4v8vLyWLZsGQBOTk6W43Z2drzyyivs2rWLt99+m3Xr1vHII48A0L17d+bNm4eXlxeZmZlkZmby0EMPXXQfRERERP6Mg60bICIiInI12bdvH4Zh0KpVqz8st3btWpKSkkhNTSU0NBSAd955h7Zt27JlyxY6d+4MVCWBFi9ejKenJ23atKFPnz6kpKSwYsUK7OzsaNmyJc8++yzffvstXbt2tdT/t7/9jXvuuQeAmTNnsmbNGl599VWrkXD3338/t9xyi+X11KlTefHFFy3HIiMjSU5O5s0332TMmDGkp6fTvHlzevbsiclkIjw83HJteno6gYGB9OvXD0dHR8LCwujSpcsl9z0hIQFPT08A7rjjDtauXVtjpODZmjRpAkBhYSEAf/nLX6zej/vvv9/y74iICJ5++mn+8Y9/MH/+fJycnPD29sZkMhEYGHjee9S2DyIiIiJ/RiPnREREROqQYRi1Krd7925CQ0MtiR2ANm3aYDabrUa4RUREWJJTAAEBAbRp0wY7OzurY0ePHrWqPz4+vsbrs0fOxcXFWf5dWFjI/v37GTt2LB4eHpavp59+mv379wNw5513sn37dlq2bMmkSZNYvXq15fq//e1vnDp1iqioKO69916WL19OeXl5nfY9KCioRj/P5YcffiAxMZGEhARatGjBG2+8YXX+m2++oW/fvoSEhODp6ckdd9zBiRMnKCoq+tO6L7QPIiIiIn9GyTkRERGROtS8eXNMJpPVGmeXwtHR0eq1yWQ657HKysoLrrv6tNsza64tXLiQ7du3W7527txpWSevU6dOpKamMnPmTE6dOsWtt97KX//6VwBCQ0NJSUlh/vz5uLq6Mn78eHr16nVJG01cbD8jIyNp2bIlY8aM4Z577rGaapqWlsaQIUOIjo7m008/JTExkddffx2gTjaNEBEREblQSs6JiIiI1CFfX1/69+/P66+/bplWWV1ubi4ArVu3JiMjg4yMDMu55ORkcnNzadOmzSW3o/rGE2det27d+rzlAwICCA4O5sCBAzRr1szqKzIy0lLOy8uLkSNHsnDhQj788EM+/fRTsrOzAXB1dWXo0KG88sorrF+/no0bN5KUlFTjXvXd9+omTJjAzp07Wb58OQCJiYlUVlby4osv0q1bN1q0aMHhw4etrnFycqKiouIP672cfRAREZGrm9acExEREaljr7/+Oj169KBLly7MmDGD6OhoysvLWbNmDQsWLGD37t3069eP9u3bM2rUKObNm0d5eTnjx4+nd+/eVtNNL9bHH39MXFwcPXv2ZOnSpWzevJlFixb94TXTp09n0qRJeHt7M2DAAEpKSti6dSs5OTlMnjyZl156iaCgIDp27IidnR0ff/wxgYGBmM1mEhISqKiooGvXrri5ufHee+/h6upqtS7dGfXd9+rc3Ny49957mTp1KsOHD6dZs2aUlZXx6quvMnToUDZs2FBj2mtERAQFBQWsXbuWDh064Obmhpubm836ICIiIlc3jZwTERERqWNRUVH88ssv9OnThwcffJB27dpx4403snbtWhYsWABUTdH83//+h4+PD7169aJfv35ERUXx4Ycf1kkbpk+fzrJly4iOjuadd97hgw8++NMRXffccw9vvfUWS5YsoX379vTu3ZuEhATLyDlPT0+ee+454uLi6Ny5M2lpaZaNKcxmMwsXLqRHjx5ER0fzzTff8MUXX+Dn51fjPvXd97NNnDiR3bt38/HHH9OhQwdeeuklnn32Wdq1a8fSpUuZPXu2Vfnu3bvzj3/8g5EjR9K4cWOee+45m/dBRERErl4mo7arFouIiIhIg2AymVi+fDnDhw+3dVNERERE5E9o5JyIiIiIiIiIiIiNKDknIiIiIiIiIiJiI9oQQkREROQqo1VLRERERBoOjZwTERERERERERGxESXnREREREREREREbETJORERERERERERERtRck5ERERERERERMRGlJwTERERERERERGxESXnREREREREREREbETJORERERERERERERtRck5ERERERERERMRG/n8IkruwjPcrkAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "original_flops = compressed_models[0.3]['results']['original_model']['flops']\n", + "compressed_flops = {ratio : compressed_models[ratio]['results']['compressed_model']['flops'] for ratio in ratios}\n", + "Plotter.compare_flops(original_flops=original_flops, flops_per_model=compressed_flops)" + ] + }, + { + "cell_type": "markdown", + "id": "edeb3bad-4d26-46eb-8c13-fe84768b7868", + "metadata": {}, + "source": [ + "## 4. Retrain the compressed model" + ] + }, + { + "cell_type": "markdown", + "id": "9268086e-2690-4338-8efe-ff07d9361860", + "metadata": {}, + "source": [ + "Then, we will retrain the compressed model with **ratio=0.7** and check the performance." + ] + }, + { + "cell_type": "markdown", + "id": "1f9f6ed8-1559-4bc7-9159-9cfae97b8ac5", + "metadata": {}, + "source": [ + "### 4-1. Train the compressed model" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "103afacf-086d-4fb1-8278-9c8845663bd7", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.10/site-packages/torch/distributed/launch.py:180: FutureWarning: The module torch.distributed.launch is deprecated\n", + "and will be removed in future. Use torchrun.\n", + "Note that --use_env is set by default in torchrun.\n", + "If your script expects `--local_rank` argument to be set, please\n", + "change it to read from `os.environ['LOCAL_RANK']` instead. See \n", + "https://pytorch.org/docs/stable/distributed.html#launch-utility for \n", + "further instructions\n", + "\n", + " warnings.warn(\n", + "WARNING:torch.distributed.run:\n", + "*****************************************\n", + "Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. \n", + "*****************************************\n", + "2024-02-02 10:55:57.445 | INFO | netspresso_trainer.trainer_common:train_common:35 - Task: detection | Model: yolox_s_graphmodule | Training with torch.fx model? True\n", + "2024-02-02 10:55:57.445 | INFO | netspresso_trainer.trainer_common:train_common:36 - Result will be saved at outputs/retraining_sample/version_0\n", + "2024-02-02 10:55:57.446 | INFO | netspresso_trainer.dataloaders.builder:build_dataset:20 - ----------------------------------------\n", + "2024-02-02 10:55:57.446 | INFO | netspresso_trainer.dataloaders.builder:build_dataset:21 - Loading data...\n", + "2024-02-02 10:55:57.469 | INFO | netspresso_trainer.dataloaders.builder:build_dataset:94 - Summary | Dataset: (with local format)\n", + "2024-02-02 10:55:57.469 | INFO | netspresso_trainer.dataloaders.builder:build_dataset:95 - Summary | Training dataset: 630 sample(s)\n", + "2024-02-02 10:55:57.469 | INFO | netspresso_trainer.dataloaders.builder:build_dataset:97 - Summary | Validation dataset: 111 sample(s)\n", + " 0%| | 0/19 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Plotter.compare_metric(training_result, retraining_result)" + ] + }, + { + "cell_type": "markdown", + "id": "202223eb-61be-4a54-8068-c34a064e31cf", + "metadata": {}, + "source": [ + "For each metric:\n", + "\n", + "- Original Model Bar: Represented by a gray bar labeled \"Original Model\", representing the performance metric value of the original model.\n", + "\n", + "- Compressed Model Bar: Represented by a blue bar labeled \"Compressed Model\", representing the performance metric value of the compressed model.\n", + "\n", + "- Difference Text: The difference value between the original and compressed models for each metric.ic.\"" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "c2aed04a-95ee-400c-8e08-6155c75b3187", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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nHXk10svvcSHH35obXPvdIZffPEFAQEB1nWGAgIC2Lt37yPXAwKsV2b9t19eu3at9XH/nXoRLAORsmbNyv79+596QMibb75J5cqVmThxIuHh4Vy5coUGDRokKp4nFM1///13a788e/Zs/Pz8WLRoEc2bN7euM5VQgChUqBCbN29m5cqV1uMMGjSIXr16WT/D8uXLx5AhQ/j4449VPE9me/bsITg4mFu3bpE+fXoWLlxoveK4VatW5M6dG19fX3bv3k3Pnj2JjIzk559/fuQx0/qAsydx9OhRevXqxe3bt3Fzc+Pjjz/m6NGjHD16lM8//9x6kjlhcNajBrEBLFiwgEuXLpEvXz6WL1/OjRs32L9//30D17755huWL19OTEwMAQEBfPLJJ9Y20dHRdO/enW7durFp06YHDn7LkCEDzZs3p2rVqpjNZuLi4qhTpw5BQUEPHEAnti+1DDaDp/seExERgdlsJnfu3A98XN68ebl06RKHDx8ma9asxMfHU7lyZd566y1rm2PHjgF3B3pNmjSJAgUKWAeZ5ciRg507dzJ27NhHDjiLj49n4sSJeHp64u/vT/PmzVm9erW13/vvQJRs2bIxYcIEChQowLZt2yhSpMgTDzi7ffs2rVq1on79+gwePJiIiAguX75MlSpViIuLsw44i4qKYunSpaxcuZISJUoAlrUaihUrxg8//ECTJk0YO3YsNWrUsH4fbteuHevXr2ft2rXWDAMGDKBLly7W9SqzZMlCr169GDhwIF27drVms+UBZ2mieP71119TunRp6z/2oySMpkj4gzU4OJhPPvmE2NhYaye1evVqAgICyJgxo7XN2rVrE/2jr169OtGZ9nu5uro+cGS7s7PzIzvD1MLJyemhOb/55htat2790BHbCWdq7n28yWQiNjaWSZMmWS/bnjt3Lj4+PonmSY2JieG7776znkmfMWOGtYAXEBDwyNz//PMPoaGh/Pjjj/c9/9Mcd86cOXz66acsXryYnDlzJno99/5uHB0dMZlMaeLfVR4uLi4Ok8mEg4PDU424SmpP89wJbRNy3yvhzPl/X1PZsmUTtU3YTmjz119/3demfPnyidr89zEJz5Nw6VkCX19fzp49a21z8OBB+vfvz9atWzl//rz1jPM///xDUFDQfTkexmQyUbJkSQoWLMjPP//Mb7/9Rps2bazrViT8LiIj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DhzICy+8wIwZM/D39yd9+vS8//77xMXFMWrUKHx8fMiWLRtDhw5N9Pwmk4mpU6dSt25d3N3dyZcvHwsWLLDef/ToUUwmE/PmzaNq1aq4ubkxe/ZsAL766isCAwNxc3OjcOHCfP7559bH3b59m06dOpEjRw7c3NzInTs3w4cPB8BsNjNw4ED8/f1xdXXF19eXzp07Wx8bExPDRx99RM6cOUmXLh3ly5e/7+z2rFmz8Pf3x8PDg6ZNm3LhwoUn+n23a9eOuXPncvPmTettM2bMoF27dve13bNnDy+99BLu7u5kzpyZDh06cO3a3VG5cXFxdO/eHW9vbzJnzszHH3+M+Z51HOLj4xk+fDh58+bF3d2dEiVKJPr9iqQGp7Pn4I+iL6hwLoL6ZfXLIsaLc3Ji44tVVTgX+Zf6ZvXNyU3Fc0kTMly5jOutW0bHEElRFy9eZOXKlXTs2JF06dLdd3/CfGTx8fE0btyYixcvsn79elavXs3hw4dp0aJFovZRUVGsWLGClStX8sMPP/D1119Tv359/vnnH9avX8/IkSPp27cvW7duTfS4fv360axZM/744w9at25Ny5YtOXDgQKI2vXr1okuXLhw4cICQkBBmz55N//79GTp0KAcOHGDYsGH069ePb775BoDPPvuMJUuW8OOPPxIZGcns2bPJkycPAD/99BPjx4/niy++4ODBgyxatIjixYtbn6tTp06EhYUxd+5cdu/eTfPmzalTpw4HDx4EYOvWrbRv355OnToRERFB9erV+fTTT5/od166dGny5MnDTz/9BFj+wNqwYQNt2rRJ1O769euEhISQMWNGtm/fzvz581mzZg2dOnWythk7diyzZs1ixowZbNq0iYsXL7Jw4cJExxk+fDjffvst06ZNY9++fXTr1o3XX3+d9evXP1FeERFJOeqX1S+LiEjqor5ZfXNK0LQtkqqZ4uMJDg+j4eol7Agqw08NmhsdSSTFHDp0CLPZTOHChR/Zbu3atezZs4cjR47g5+cHwLfffkvRokXZvn07ZcuWBSx/MMyYMQNPT0+KFClC9erViYyMZPny5Tg4OBAQEMDIkSP57bffKF++vPX4zZs356233gJgyJAhrF69mkmTJiU6K961a1defvll6/6AAQMYO3as9ba8efOyf/9+vvjiC9q1a8exY8coWLAglSpVwmQykTt3butjjx07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8+aZnUREREQApkyBIkVg8GBYudLsNPIcVDwXERERERFJrk6dMsZY/eYbGDAArl83O5GIiIj4+EBUlNHu3Ruio83NI89MxXMREREREZHkKm9eePNNox0RAePGmRpHREREgEaNoGpVo330KEyfbm4eeWYqnouIiIiIiCRnY8aAk5PRHjcOzpwxN4+IiEhqZ7HAxInGfwGGDYMLF8zNJM9ExXMREREREZHkrFAhCAw02jdvwsCB5uYRERERKFsWWrUy2pcvGwV0SXZUPBcREREREUnuBg+GjBmN9vz58Ouv5uYRERERGDkS3N2N9vTpcOiQuXnkqal4LiIiIiIiktxlygSDBt1d7tkTrFbz8oiIiAjkzAl9+hjt2Fhj8lBJVlQ8FxERERERSQkCA6FgQaO9eTOsXGlqHBEREQF69TKK6ACrVsGGDebmkaei4rmIiIiIiEhK4OICY8feXe7dG2JizMsjIiIikDYthIQY7fz5dWdYMuNkdgARERERERFJJA0bQpUqEB5uFNKddMknIiJiupYt4fZtaNECXF3NTiNPQX9JiYiIiIiIpBQWCyxZApkzGz3RRURExHwODtCmjdkp5BmoeC4iIiIiIpKS5MhhdgIRERGRFEFjnouIiIiIiKR0N2+anUBERETu+N//oFEjOHnS7CTyGOp5LiIiIiIiklIdOAC9eoG7O3zzjdlpRERE5LvvoEkTiI01xj9fssTsRPII6nkuIiIiIiKSEsXEQO3asGYNLF8OW7eanUhERESqVYNMmYz20qWwbZupceTRVDwXERERERFJiZydYejQu8tBQRAXZ1ocERERATw9Yfjwu8s9euj8bMdUPBcREREREUmp3n8ffH2N9t69sGiRqXFEREQEaNcOihc32rt2aegWO2bXxfOQkBDKly9P+vTpyZo1Kw0bNuTw4cPx9qlWrRoWiyXe48MPP4y3z+nTp6lTpw7u7u5kzZqV3r17c/v27Xj7bN68mTJlyuDq6krBggUJDQ1N6rcnIiIiIiKStBwdYcKEu8vBwXDjhnl5JFkaOnToA9fdRYoUMTuWiEjy5eQU//zcr5/Oz3bKrovnW7ZsITAwkB07drB+/XpiYmKoVasWkZGR8fZr37494eHhtsfYsWNt22JjY6lTpw7R0dFs27aN+fPnExoayuDBg237nDx5kjp16lC9enXCwsLo3r077dq1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sC0iIiIiIiIiIiIiIvdR8VxERERERERERERE5D4qnouIiIiIiIiIiIiI3EfFcxERERERERERERGR+6h4LiIiIiIiIiIiIiJyHxXPRURERERERERERETuo+K5iIiIiIiIiIiIiMh9VDwXEREREREREREREbmPiuciIiIiIiIiIiIiIvdR8VxERERERERERERE5D4qnouIiIiIiIiIiIiI3EfFcxERERERERERERGR+6h4LiIiIiIiIiIiIiJyHxXPRURERERERERERETuo+K5iIiIiIiIiIiIiMh9VDwXEREREREREREREbmPiuciIiIiIiIiIiIiIvdR8VxERERERERERERE5D4qnouIiIiIiIiIiIiI3EfFcxERERERERERERGR+6h4LiIiIiIiIiIiIiJyHxXPRURERERERERERETuo+K5iIiIiIiIiIiIiMh9VDwXEREREREREREREbmPiuciIiIiIiIiIiIiIvdR8VxERERERERERERE5D4qnouIiIiIiIiIiIiI3EfFcxERERERERERERGR+6h4LiIiIiIiIiIiIiJyHxXPRURERERERERERETuo+K5iIiIiIiIiIiIiMh9VDwXEREREREREREREbmPiuciIiIiIiIiIiIiIvdR8VxERERERERERERE5D4qnouIiIiIiIiIiIiI3EfFcxERERERERERERGR+6h4LiIiIiIiIiIiIiJyHxXPRURERERERERERETuo+L5faZNm0bevHlxc3OjQoUK7Nq1y+xIIiIiqZbOyyIiIvZD52UREUltVDy/x9KlSwkKCmLIkCH8+uuvlCpVCn9/f86dO2d2NBERkVRH52URERH7ofOyiIikRiqe32PixIm0b9+eNm3aUKxYMWbOnIm7uztz5841O5qIiEiqo/OyiIiI/dB5WUREUiMnswPYi+joaPbu3UtwcLBtnYODAzVr1mT79u0P7B8VFUVUVJRt+cqVKwBcvHiRmJiY585zOzrq8TtJsnThwgWzI0gK4KyPiBQrsT4irl27BoDVak2cA75g9nZeBp2bUzKdm+V56byccum8bHja8zLomlmenc7L8rx0Xk65EvPj4UnPzSqe/+f8+fPExsaSLVu2eOuzZcvGoUOHHtg/JCSEYcOGPbA+X758SZZRUoZPR/U1O4KI2LHMifwRce3aNTw9PRP3oC+AzsvyIunc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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Plotter.compare_profile_result(compressed_models[selected_pruning_ratio])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6afb3139-ee23-466d-b51f-05fc2f706440", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/PyNetsPresso Tutorial(YOLOX).ipynb b/notebooks/PyNetsPresso Tutorial(YOLOX).ipynb deleted file mode 100644 index 51a9c98a..00000000 --- a/notebooks/PyNetsPresso Tutorial(YOLOX).ipynb +++ /dev/null @@ -1,3362 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "3a32fcde-152c-4dc1-8938-abac253ae116", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
" - ] - }, - { - "cell_type": "markdown", - "id": "dfbc4b1f-7c53-495e-98b8-57ef48ec246d", - "metadata": {}, - "source": [ - "# **PyNetsPresso Tutorial**" - ] - }, - { - "cell_type": "markdown", - "id": "d56da6d2-190b-44c2-af64-1bac68450f09", - "metadata": {}, - "source": [ - "We will explain the process of optimizing the AI model with PyNetsPresso.\n", - "\n", - "In this tutorial, we will cover:\n", - "\n", - "- Train YOLOX detection model. (with **Trainer**)\n", - "- Benchmark the trained model. (with **Converter & Benchmarker**)\n", - "- Optimize the trained model to satisfies the target latency. (with **Compressor**)\n", - "- Retrain the compressed model that satisfies the target latency. (with **Trainer**)\n", - "- Comparison of performance between original model and compressed model." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "c030d2bb-b167-456e-8d4e-caf4c847da76", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2023-12-20 08:21:38.654\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.client.config\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m10\u001b[0m - \u001b[1mRead prod config\u001b[0m\n" - ] - } - ], - "source": [ - "import os\n", - "\n", - "from netspresso import ModelTrainer, ModelCompressor, ModelConverter, ModelBenchmarker\n", - "from netspresso.client import SessionClient\n", - "from netspresso.trainer import Task, Resize\n", - "from netspresso.compressor import Framework\n", - "from netspresso.launcher import ModelFramework, DeviceName\n", - "from loguru import logger\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import torch" - ] - }, - { - "cell_type": "markdown", - "id": "c06081b3-5606-47db-8d5f-f0518492b838", - "metadata": {}, - "source": [ - "To use the PyNetsPresso, please enter the email and password registered in NetsPresso." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "d37e2518-49ed-4126-b443-c23afdd792a3", - "metadata": {}, - "outputs": [], - "source": [ - "EMAIL = \"YOUR_EMAIL\"\n", - "PASSWORD = \"YOUR_PASSWORD\"" - ] - }, - { - "cell_type": "markdown", - "id": "9e18af43-bac8-44c0-8f5d-3cb204dc8365", - "metadata": {}, - "source": [ - "## 1. Train object detection model(with **YOLOX**)\n", - "--------------------------------------------------" - ] - }, - { - "cell_type": "markdown", - "id": "bd7eaa25-3b7d-4d84-9fa9-d0e470d8de5d", - "metadata": {}, - "source": [ - "We will train the object detection model with **YOLOX**.\n", - "\n", - "After training, we will measure the latency on the **Renesas RZ/V2L**." - ] - }, - { - "cell_type": "markdown", - "id": "5b131f48-c7df-4e5e-bf64-469b5b6998e1", - "metadata": {}, - "source": [ - "### 1-0. Preparation(Dataset, Model Weight)" - ] - }, - { - "cell_type": "markdown", - "id": "1ca535ed-dc97-4fc2-9a14-c44c2477bfac", - "metadata": {}, - "source": [ - "#### Dataset" - ] - }, - { - "cell_type": "markdown", - "id": "9ccc9c5a-55bc-4655-9e86-bc2b70b48560", - "metadata": {}, - "source": [ - "The source of the dataset is its [link](https://www.kaggle.com/code/valentynsichkar/traffic-signs-detection-by-yolo-v3-opencv-keras/input).\n", - "\n", - "We downloaded the Traffic Signs Dataset in YOLO format and used it." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "637381a6-947d-4b0a-a1fb-8e819162786a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2023-12-20 08:21:39-- https://pynetspresso.s3.ap-northeast-2.amazonaws.com/traffic-sign.zip\n", - "Resolving pynetspresso.s3.ap-northeast-2.amazonaws.com (pynetspresso.s3.ap-northeast-2.amazonaws.com)... 52.219.144.50, 3.5.142.31, 52.219.202.10, ...\n", - "Connecting to pynetspresso.s3.ap-northeast-2.amazonaws.com (pynetspresso.s3.ap-northeast-2.amazonaws.com)|52.219.144.50|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 261469534 (249M) [application/zip]\n", - "Saving to: ‘traffic-sign.zip’\n", - "\n", - "traffic-sign.zip 100%[===================>] 249.36M 90.6MB/s in 2.8s \n", - "\n", - "2023-12-20 08:21:41 (90.6 MB/s) - ‘traffic-sign.zip’ saved [261469534/261469534]\n", - "\n" - ] - } - ], - "source": [ - "!wget https://pynetspresso.s3.ap-northeast-2.amazonaws.com/traffic-sign.zip" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "c7bbbdf7-09d1-44fa-b797-889bc17f4554", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Archive: traffic-sign.zip\n", - " creating: traffic-sign/\n", - " creating: traffic-sign/images/\n", - " creating: traffic-sign/images/train/\n", - " inflating: traffic-sign/images/train/00000.jpg \n", - " inflating: traffic-sign/images/train/00001.jpg \n", - " inflating: traffic-sign/images/train/00003.jpg \n", - " inflating: traffic-sign/images/train/00005.jpg \n", - " inflating: traffic-sign/images/train/00006.jpg \n", - " inflating: traffic-sign/images/train/00007.jpg \n", - " inflating: traffic-sign/images/train/00008.jpg \n", - " inflating: traffic-sign/images/train/00009.jpg \n", - " inflating: traffic-sign/images/train/00010.jpg \n", - " inflating: traffic-sign/images/train/00011.jpg \n", - " inflating: traffic-sign/images/train/00012.jpg \n", - " inflating: traffic-sign/images/train/00013.jpg \n", - " inflating: traffic-sign/images/train/00014.jpg \n", - " inflating: traffic-sign/images/train/00016.jpg \n", - " inflating: traffic-sign/images/train/00017.jpg \n", - " inflating: traffic-sign/images/train/00018.jpg \n", - " inflating: traffic-sign/images/train/00019.jpg \n", - " inflating: traffic-sign/images/train/00020.jpg \n", - " inflating: traffic-sign/images/train/00021.jpg \n", - " inflating: traffic-sign/images/train/00022.jpg \n", - " inflating: traffic-sign/images/train/00024.jpg \n", - " inflating: traffic-sign/images/train/00026.jpg \n", - " inflating: traffic-sign/images/train/00027.jpg \n", - " inflating: traffic-sign/images/train/00028.jpg \n", - " inflating: traffic-sign/images/train/00029.jpg \n", - " inflating: traffic-sign/images/train/00030.jpg \n", - " inflating: traffic-sign/images/train/00031.jpg \n", - " inflating: traffic-sign/images/train/00032.jpg \n", - " inflating: traffic-sign/images/train/00033.jpg \n", - " inflating: traffic-sign/images/train/00034.jpg \n", - " inflating: traffic-sign/images/train/00035.jpg \n", - " inflating: traffic-sign/images/train/00036.jpg \n", - " inflating: traffic-sign/images/train/00037.jpg \n", - " inflating: traffic-sign/images/train/00038.jpg \n", - " inflating: traffic-sign/images/train/00039.jpg \n", - " inflating: traffic-sign/images/train/00040.jpg \n", - " inflating: traffic-sign/images/train/00041.jpg \n", - " inflating: traffic-sign/images/train/00042.jpg \n", - " inflating: traffic-sign/images/train/00043.jpg \n", - " inflating: traffic-sign/images/train/00044.jpg \n", - " inflating: traffic-sign/images/train/00045.jpg \n", - " inflating: traffic-sign/images/train/00046.jpg \n", - " inflating: traffic-sign/images/train/00047.jpg \n", - " inflating: traffic-sign/images/train/00048.jpg \n", - " inflating: traffic-sign/images/train/00049.jpg \n", - " inflating: traffic-sign/images/train/00050.jpg \n", - " inflating: traffic-sign/images/train/00052.jpg \n", - " inflating: traffic-sign/images/train/00053.jpg \n", - " inflating: traffic-sign/images/train/00054.jpg \n", - " inflating: traffic-sign/images/train/00055.jpg \n", - " inflating: traffic-sign/images/train/00056.jpg \n", - " inflating: traffic-sign/images/train/00057.jpg \n", - " inflating: traffic-sign/images/train/00058.jpg \n", - " inflating: traffic-sign/images/train/00059.jpg \n", - " inflating: traffic-sign/images/train/00060.jpg \n", - " inflating: traffic-sign/images/train/00061.jpg \n", - " inflating: traffic-sign/images/train/00062.jpg \n", - " inflating: traffic-sign/images/train/00063.jpg \n", - " inflating: traffic-sign/images/train/00064.jpg \n", - " inflating: traffic-sign/images/train/00065.jpg \n", - " inflating: traffic-sign/images/train/00066.jpg \n", - " inflating: traffic-sign/images/train/00067.jpg \n", - " inflating: traffic-sign/images/train/00068.jpg \n", - " inflating: traffic-sign/images/train/00069.jpg \n", - " inflating: traffic-sign/images/train/00070.jpg \n", - " inflating: traffic-sign/images/train/00071.jpg \n", - " inflating: traffic-sign/images/train/00072.jpg \n", - " inflating: traffic-sign/images/train/00073.jpg \n", - " inflating: traffic-sign/images/train/00074.jpg \n", - " inflating: traffic-sign/images/train/00076.jpg \n", - " inflating: traffic-sign/images/train/00077.jpg \n", - " inflating: traffic-sign/images/train/00079.jpg \n", - " inflating: traffic-sign/images/train/00080.jpg \n", - " inflating: traffic-sign/images/train/00081.jpg \n", - " inflating: traffic-sign/images/train/00083.jpg \n", - " inflating: traffic-sign/images/train/00084.jpg \n", - " inflating: traffic-sign/images/train/00086.jpg \n", - " inflating: traffic-sign/images/train/00088.jpg \n", - " inflating: traffic-sign/images/train/00089.jpg \n", - " inflating: traffic-sign/images/train/00090.jpg \n", - " inflating: traffic-sign/images/train/00091.jpg \n", - " inflating: traffic-sign/images/train/00092.jpg \n", - " inflating: traffic-sign/images/train/00093.jpg \n", - " inflating: traffic-sign/images/train/00094.jpg \n", - " inflating: traffic-sign/images/train/00095.jpg \n", - " inflating: traffic-sign/images/train/00096.jpg \n", - " inflating: traffic-sign/images/train/00097.jpg \n", - " inflating: traffic-sign/images/train/00098.jpg \n", - " inflating: traffic-sign/images/train/00099.jpg \n", - " inflating: traffic-sign/images/train/00101.jpg \n", - " inflating: traffic-sign/images/train/00102.jpg \n", - " inflating: traffic-sign/images/train/00103.jpg \n", - " inflating: traffic-sign/images/train/00105.jpg \n", - " inflating: traffic-sign/images/train/00106.jpg \n", - " inflating: traffic-sign/images/train/00107.jpg \n", - " inflating: traffic-sign/images/train/00109.jpg \n", - " inflating: traffic-sign/images/train/00110.jpg \n", - " inflating: traffic-sign/images/train/00111.jpg \n", - " inflating: traffic-sign/images/train/00112.jpg \n", - " inflating: traffic-sign/images/train/00113.jpg \n", - " inflating: traffic-sign/images/train/00114.jpg \n", - " inflating: traffic-sign/images/train/00115.jpg \n", - " inflating: traffic-sign/images/train/00117.jpg \n", - " inflating: traffic-sign/images/train/00118.jpg \n", - " inflating: traffic-sign/images/train/00119.jpg \n", - " inflating: traffic-sign/images/train/00120.jpg \n", - " inflating: traffic-sign/images/train/00121.jpg \n", - " inflating: traffic-sign/images/train/00122.jpg \n", - " inflating: traffic-sign/images/train/00123.jpg \n", - " inflating: traffic-sign/images/train/00124.jpg \n", - " inflating: traffic-sign/images/train/00125.jpg \n", - " inflating: traffic-sign/images/train/00126.jpg \n", - " inflating: traffic-sign/images/train/00127.jpg \n", - " inflating: traffic-sign/images/train/00128.jpg \n", - " inflating: traffic-sign/images/train/00129.jpg \n", - " inflating: traffic-sign/images/train/00130.jpg \n", - " inflating: traffic-sign/images/train/00131.jpg \n", - " inflating: traffic-sign/images/train/00132.jpg \n", - " inflating: traffic-sign/images/train/00133.jpg \n", - " inflating: traffic-sign/images/train/00135.jpg \n", - " inflating: traffic-sign/images/train/00136.jpg \n", - " inflating: traffic-sign/images/train/00137.jpg \n", - " inflating: traffic-sign/images/train/00138.jpg \n", - " inflating: traffic-sign/images/train/00140.jpg \n", - " inflating: traffic-sign/images/train/00143.jpg \n", - " inflating: traffic-sign/images/train/00144.jpg \n", - " inflating: traffic-sign/images/train/00146.jpg \n", - " inflating: traffic-sign/images/train/00147.jpg \n", - " inflating: traffic-sign/images/train/00148.jpg \n", - " inflating: traffic-sign/images/train/00149.jpg \n", - " inflating: traffic-sign/images/train/00150.jpg \n", - " inflating: traffic-sign/images/train/00151.jpg \n", - " inflating: traffic-sign/images/train/00152.jpg \n", - " inflating: traffic-sign/images/train/00153.jpg \n", - " inflating: traffic-sign/images/train/00154.jpg \n", - " inflating: traffic-sign/images/train/00156.jpg \n", - " inflating: traffic-sign/images/train/00157.jpg \n", - " inflating: traffic-sign/images/train/00158.jpg \n", - " inflating: traffic-sign/images/train/00159.jpg \n", - " inflating: traffic-sign/images/train/00160.jpg \n", - " inflating: traffic-sign/images/train/00162.jpg \n", - " inflating: traffic-sign/images/train/00163.jpg \n", - " inflating: traffic-sign/images/train/00164.jpg \n", - " inflating: traffic-sign/images/train/00165.jpg \n", - " inflating: traffic-sign/images/train/00166.jpg \n", - " inflating: traffic-sign/images/train/00167.jpg \n", - " inflating: traffic-sign/images/train/00168.jpg \n", - " inflating: traffic-sign/images/train/00169.jpg \n", - " inflating: traffic-sign/images/train/00170.jpg \n", - " inflating: traffic-sign/images/train/00171.jpg \n", - " inflating: traffic-sign/images/train/00172.jpg \n", - " inflating: traffic-sign/images/train/00173.jpg \n", - " inflating: traffic-sign/images/train/00174.jpg \n", - " inflating: traffic-sign/images/train/00175.jpg \n", - " inflating: traffic-sign/images/train/00176.jpg \n", - " inflating: traffic-sign/images/train/00177.jpg \n", - " inflating: traffic-sign/images/train/00178.jpg \n", - " inflating: traffic-sign/images/train/00179.jpg \n", - " inflating: traffic-sign/images/train/00180.jpg \n", - " inflating: traffic-sign/images/train/00181.jpg \n", - " inflating: traffic-sign/images/train/00184.jpg \n", - " inflating: traffic-sign/images/train/00186.jpg \n", - " inflating: traffic-sign/images/train/00187.jpg \n", - " inflating: traffic-sign/images/train/00188.jpg \n", - " inflating: traffic-sign/images/train/00191.jpg \n", - " inflating: traffic-sign/images/train/00192.jpg \n", - " inflating: traffic-sign/images/train/00193.jpg \n", - " inflating: traffic-sign/images/train/00194.jpg \n", - " inflating: traffic-sign/images/train/00195.jpg \n", - " inflating: traffic-sign/images/train/00196.jpg \n", - " inflating: traffic-sign/images/train/00197.jpg \n", - " inflating: traffic-sign/images/train/00198.jpg \n", - " inflating: traffic-sign/images/train/00199.jpg \n", - " inflating: traffic-sign/images/train/00200.jpg \n", - " inflating: traffic-sign/images/train/00201.jpg \n", - " inflating: traffic-sign/images/train/00202.jpg \n", - " inflating: traffic-sign/images/train/00203.jpg \n", - " inflating: traffic-sign/images/train/00206.jpg \n", - " inflating: traffic-sign/images/train/00207.jpg \n", - " inflating: traffic-sign/images/train/00208.jpg \n", - " inflating: traffic-sign/images/train/00209.jpg \n", - " inflating: traffic-sign/images/train/00210.jpg \n", - " inflating: traffic-sign/images/train/00211.jpg \n", - " inflating: traffic-sign/images/train/00212.jpg \n", - " inflating: traffic-sign/images/train/00214.jpg \n", - " inflating: traffic-sign/images/train/00215.jpg \n", - " inflating: traffic-sign/images/train/00217.jpg \n", - " inflating: traffic-sign/images/train/00218.jpg \n", - " inflating: traffic-sign/images/train/00219.jpg \n", - " inflating: traffic-sign/images/train/00220.jpg \n", - " inflating: traffic-sign/images/train/00221.jpg \n", - " inflating: traffic-sign/images/train/00222.jpg \n", - " inflating: traffic-sign/images/train/00223.jpg \n", - " inflating: traffic-sign/images/train/00224.jpg \n", - " inflating: traffic-sign/images/train/00225.jpg \n", - " inflating: traffic-sign/images/train/00226.jpg \n", - " inflating: traffic-sign/images/train/00229.jpg \n", - " inflating: traffic-sign/images/train/00230.jpg \n", - " inflating: traffic-sign/images/train/00231.jpg \n", - " inflating: traffic-sign/images/train/00232.jpg \n", - " inflating: traffic-sign/images/train/00234.jpg \n", - " inflating: traffic-sign/images/train/00237.jpg \n", - " inflating: traffic-sign/images/train/00238.jpg \n", - " inflating: traffic-sign/images/train/00239.jpg \n", - " inflating: traffic-sign/images/train/00240.jpg \n", - " inflating: traffic-sign/images/train/00241.jpg \n", - " inflating: traffic-sign/images/train/00242.jpg \n", - " inflating: traffic-sign/images/train/00243.jpg \n", - " inflating: traffic-sign/images/train/00244.jpg \n", - " inflating: traffic-sign/images/train/00245.jpg \n", - " inflating: traffic-sign/images/train/00246.jpg \n", - " inflating: traffic-sign/images/train/00247.jpg \n", - " inflating: traffic-sign/images/train/00248.jpg \n", - " inflating: traffic-sign/images/train/00249.jpg \n", - " inflating: traffic-sign/images/train/00250.jpg \n", - " inflating: traffic-sign/images/train/00251.jpg \n", - " inflating: traffic-sign/images/train/00252.jpg \n", - " inflating: traffic-sign/images/train/00253.jpg \n", - " inflating: traffic-sign/images/train/00254.jpg \n", - " inflating: traffic-sign/images/train/00255.jpg \n", - " inflating: traffic-sign/images/train/00257.jpg \n", - " inflating: traffic-sign/images/train/00259.jpg \n", - " inflating: traffic-sign/images/train/00261.jpg \n", - " inflating: traffic-sign/images/train/00262.jpg \n", - " inflating: traffic-sign/images/train/00263.jpg \n", - " inflating: traffic-sign/images/train/00264.jpg \n", - " inflating: traffic-sign/images/train/00265.jpg \n", - " inflating: traffic-sign/images/train/00266.jpg \n", - " inflating: traffic-sign/images/train/00267.jpg \n", - " inflating: traffic-sign/images/train/00268.jpg \n", - " inflating: traffic-sign/images/train/00269.jpg \n", - " inflating: traffic-sign/images/train/00270.jpg \n", - " inflating: traffic-sign/images/train/00271.jpg \n", - " inflating: traffic-sign/images/train/00272.jpg \n", - " inflating: traffic-sign/images/train/00273.jpg \n", - " inflating: traffic-sign/images/train/00275.jpg \n", - " inflating: traffic-sign/images/train/00276.jpg \n", - " inflating: traffic-sign/images/train/00277.jpg \n", - " inflating: traffic-sign/images/train/00278.jpg \n", - " inflating: traffic-sign/images/train/00279.jpg \n", - " inflating: traffic-sign/images/train/00281.jpg \n", - " inflating: traffic-sign/images/train/00282.jpg \n", - " inflating: traffic-sign/images/train/00283.jpg \n", - " inflating: traffic-sign/images/train/00284.jpg \n", - " inflating: traffic-sign/images/train/00285.jpg \n", - " inflating: traffic-sign/images/train/00286.jpg \n", - " inflating: traffic-sign/images/train/00287.jpg \n", - " inflating: traffic-sign/images/train/00288.jpg \n", - " inflating: traffic-sign/images/train/00289.jpg \n", - " inflating: traffic-sign/images/train/00290.jpg \n", - " inflating: traffic-sign/images/train/00291.jpg \n", - " inflating: traffic-sign/images/train/00292.jpg \n", - " inflating: traffic-sign/images/train/00293.jpg \n", - " inflating: traffic-sign/images/train/00294.jpg \n", - " inflating: traffic-sign/images/train/00295.jpg \n", - " inflating: traffic-sign/images/train/00296.jpg \n", - " inflating: traffic-sign/images/train/00297.jpg \n", - " inflating: traffic-sign/images/train/00298.jpg \n", - " inflating: traffic-sign/images/train/00299.jpg \n", - " inflating: traffic-sign/images/train/00300.jpg \n", - " inflating: traffic-sign/images/train/00301.jpg \n", - " inflating: traffic-sign/images/train/00302.jpg \n", - " inflating: traffic-sign/images/train/00303.jpg \n", - " inflating: traffic-sign/images/train/00304.jpg \n", - " inflating: traffic-sign/images/train/00305.jpg \n", - " inflating: traffic-sign/images/train/00309.jpg \n", - " inflating: traffic-sign/images/train/00311.jpg \n", - " inflating: traffic-sign/images/train/00312.jpg \n", - " inflating: traffic-sign/images/train/00313.jpg \n", - " inflating: traffic-sign/images/train/00314.jpg \n", - " inflating: traffic-sign/images/train/00315.jpg \n", - " inflating: traffic-sign/images/train/00316.jpg \n", - " inflating: traffic-sign/images/train/00317.jpg \n", - " inflating: traffic-sign/images/train/00318.jpg \n", - " inflating: traffic-sign/images/train/00319.jpg \n", - " inflating: traffic-sign/images/train/00322.jpg \n", - " inflating: traffic-sign/images/train/00323.jpg \n", - " inflating: traffic-sign/images/train/00330.jpg \n", - " inflating: traffic-sign/images/train/00333.jpg \n", - " inflating: traffic-sign/images/train/00334.jpg \n", - " inflating: traffic-sign/images/train/00337.jpg \n", - " inflating: traffic-sign/images/train/00338.jpg \n", - " inflating: traffic-sign/images/train/00339.jpg \n", - " inflating: traffic-sign/images/train/00340.jpg \n", - " inflating: traffic-sign/images/train/00343.jpg \n", - " inflating: traffic-sign/images/train/00346.jpg \n", - " inflating: traffic-sign/images/train/00347.jpg \n", - " inflating: traffic-sign/images/train/00348.jpg \n", - " inflating: traffic-sign/images/train/00349.jpg \n", - " inflating: traffic-sign/images/train/00351.jpg \n", - " inflating: traffic-sign/images/train/00353.jpg \n", - " inflating: traffic-sign/images/train/00355.jpg \n", - " inflating: traffic-sign/images/train/00356.jpg \n", - " inflating: traffic-sign/images/train/00357.jpg \n", - " inflating: traffic-sign/images/train/00358.jpg \n", - " inflating: traffic-sign/images/train/00359.jpg \n", - " inflating: traffic-sign/images/train/00360.jpg \n", - " inflating: traffic-sign/images/train/00362.jpg \n", - " inflating: traffic-sign/images/train/00363.jpg \n", - " inflating: traffic-sign/images/train/00366.jpg \n", - " inflating: traffic-sign/images/train/00368.jpg \n", - " inflating: traffic-sign/images/train/00369.jpg \n", - " inflating: traffic-sign/images/train/00370.jpg \n", - " inflating: traffic-sign/images/train/00371.jpg \n", - " inflating: traffic-sign/images/train/00372.jpg \n", - " inflating: traffic-sign/images/train/00373.jpg \n", - " inflating: traffic-sign/images/train/00374.jpg \n", - " inflating: traffic-sign/images/train/00375.jpg \n", - " inflating: traffic-sign/images/train/00376.jpg \n", - " inflating: traffic-sign/images/train/00377.jpg \n", - " inflating: traffic-sign/images/train/00378.jpg \n", - " inflating: traffic-sign/images/train/00379.jpg \n", - " inflating: traffic-sign/images/train/00380.jpg \n", - " inflating: traffic-sign/images/train/00382.jpg \n", - " inflating: traffic-sign/images/train/00383.jpg \n", - " inflating: traffic-sign/images/train/00385.jpg \n", - " inflating: traffic-sign/images/train/00386.jpg \n", - " inflating: traffic-sign/images/train/00387.jpg \n", - " inflating: traffic-sign/images/train/00391.jpg \n", - " inflating: traffic-sign/images/train/00392.jpg \n", - " inflating: traffic-sign/images/train/00393.jpg \n", - " inflating: traffic-sign/images/train/00395.jpg \n", - " inflating: traffic-sign/images/train/00396.jpg \n", - " inflating: traffic-sign/images/train/00398.jpg \n", - " inflating: traffic-sign/images/train/00400.jpg \n", - " inflating: traffic-sign/images/train/00401.jpg \n", - " inflating: traffic-sign/images/train/00403.jpg \n", - " inflating: traffic-sign/images/train/00404.jpg \n", - " inflating: traffic-sign/images/train/00405.jpg \n", - " inflating: traffic-sign/images/train/00406.jpg \n", - " inflating: traffic-sign/images/train/00408.jpg \n", - " inflating: traffic-sign/images/train/00410.jpg \n", - " inflating: traffic-sign/images/train/00411.jpg \n", - " inflating: traffic-sign/images/train/00412.jpg \n", - " inflating: traffic-sign/images/train/00413.jpg \n", - " inflating: traffic-sign/images/train/00414.jpg \n", - " inflating: traffic-sign/images/train/00415.jpg \n", - " inflating: traffic-sign/images/train/00416.jpg \n", - " inflating: traffic-sign/images/train/00417.jpg \n", - " inflating: traffic-sign/images/train/00419.jpg \n", - " inflating: traffic-sign/images/train/00420.jpg \n", - " inflating: traffic-sign/images/train/00421.jpg \n", - " inflating: traffic-sign/images/train/00422.jpg \n", - " inflating: traffic-sign/images/train/00425.jpg \n", - " inflating: traffic-sign/images/train/00427.jpg \n", - " inflating: traffic-sign/images/train/00428.jpg \n", - " inflating: traffic-sign/images/train/00430.jpg \n", - " inflating: traffic-sign/images/train/00431.jpg \n", - " inflating: traffic-sign/images/train/00432.jpg \n", - " inflating: traffic-sign/images/train/00433.jpg \n", - " inflating: traffic-sign/images/train/00434.jpg \n", - " inflating: traffic-sign/images/train/00435.jpg \n", - " inflating: traffic-sign/images/train/00436.jpg \n", - " inflating: traffic-sign/images/train/00439.jpg \n", - " inflating: traffic-sign/images/train/00440.jpg \n", - " inflating: traffic-sign/images/train/00441.jpg \n", - " inflating: traffic-sign/images/train/00443.jpg \n", - " inflating: traffic-sign/images/train/00444.jpg \n", - " inflating: traffic-sign/images/train/00445.jpg \n", - " inflating: traffic-sign/images/train/00447.jpg \n", - " inflating: traffic-sign/images/train/00448.jpg \n", - " inflating: traffic-sign/images/train/00449.jpg \n", - " inflating: traffic-sign/images/train/00450.jpg \n", - " inflating: traffic-sign/images/train/00451.jpg \n", - " inflating: traffic-sign/images/train/00452.jpg \n", - " inflating: traffic-sign/images/train/00453.jpg \n", - " inflating: traffic-sign/images/train/00455.jpg \n", - " inflating: traffic-sign/images/train/00457.jpg \n", - " inflating: traffic-sign/images/train/00458.jpg \n", - " inflating: traffic-sign/images/train/00459.jpg \n", - " inflating: traffic-sign/images/train/00460.jpg \n", - " inflating: traffic-sign/images/train/00465.jpg \n", - " inflating: traffic-sign/images/train/00466.jpg \n", - " inflating: traffic-sign/images/train/00467.jpg \n", - " inflating: traffic-sign/images/train/00468.jpg \n", - " inflating: traffic-sign/images/train/00472.jpg \n", - " inflating: traffic-sign/images/train/00475.jpg \n", - " inflating: traffic-sign/images/train/00476.jpg \n", - " inflating: traffic-sign/images/train/00477.jpg \n", - " inflating: traffic-sign/images/train/00478.jpg \n", - " inflating: traffic-sign/images/train/00479.jpg \n", - " inflating: traffic-sign/images/train/00480.jpg \n", - " inflating: traffic-sign/images/train/00481.jpg \n", - " inflating: traffic-sign/images/train/00482.jpg \n", - " inflating: traffic-sign/images/train/00484.jpg \n", - " inflating: traffic-sign/images/train/00485.jpg \n", - " inflating: traffic-sign/images/train/00486.jpg \n", - " inflating: traffic-sign/images/train/00487.jpg \n", - " inflating: traffic-sign/images/train/00488.jpg \n", - " inflating: traffic-sign/images/train/00490.jpg \n", - " inflating: traffic-sign/images/train/00492.jpg \n", - " inflating: traffic-sign/images/train/00493.jpg \n", - " inflating: traffic-sign/images/train/00496.jpg \n", - " inflating: traffic-sign/images/train/00497.jpg \n", - " inflating: traffic-sign/images/train/00498.jpg \n", - " inflating: traffic-sign/images/train/00499.jpg \n", - " inflating: traffic-sign/images/train/00500.jpg \n", - " inflating: traffic-sign/images/train/00501.jpg \n", - " inflating: traffic-sign/images/train/00503.jpg \n", - " inflating: traffic-sign/images/train/00504.jpg \n", - " inflating: traffic-sign/images/train/00505.jpg \n", - " inflating: traffic-sign/images/train/00508.jpg \n", - " inflating: traffic-sign/images/train/00509.jpg \n", - " inflating: traffic-sign/images/train/00512.jpg \n", - " inflating: traffic-sign/images/train/00515.jpg \n", - " inflating: traffic-sign/images/train/00516.jpg \n", - " inflating: traffic-sign/images/train/00518.jpg \n", - " inflating: traffic-sign/images/train/00519.jpg \n", - " inflating: traffic-sign/images/train/00520.jpg \n", - " inflating: traffic-sign/images/train/00521.jpg \n", - " inflating: traffic-sign/images/train/00523.jpg \n", - " inflating: traffic-sign/images/train/00524.jpg \n", - " inflating: traffic-sign/images/train/00527.jpg \n", - " inflating: traffic-sign/images/train/00528.jpg \n", - " inflating: traffic-sign/images/train/00530.jpg \n", - " inflating: traffic-sign/images/train/00531.jpg \n", - " inflating: traffic-sign/images/train/00536.jpg \n", - " inflating: traffic-sign/images/train/00542.jpg \n", - " inflating: traffic-sign/images/train/00544.jpg \n", - " inflating: traffic-sign/images/train/00545.jpg \n", - " inflating: traffic-sign/images/train/00548.jpg \n", - " inflating: traffic-sign/images/train/00554.jpg \n", - " inflating: traffic-sign/images/train/00556.jpg \n", - " inflating: traffic-sign/images/train/00560.jpg \n", - " inflating: traffic-sign/images/train/00564.jpg \n", - " inflating: traffic-sign/images/train/00565.jpg \n", - " inflating: traffic-sign/images/train/00566.jpg \n", - " inflating: traffic-sign/images/train/00567.jpg \n", - " inflating: traffic-sign/images/train/00570.jpg \n", - " inflating: traffic-sign/images/train/00571.jpg \n", - " inflating: traffic-sign/images/train/00575.jpg \n", - " inflating: traffic-sign/images/train/00593.jpg \n", - " inflating: traffic-sign/images/train/00599.jpg \n", - " inflating: traffic-sign/images/train/00601.jpg \n", - " inflating: traffic-sign/images/train/00602.jpg \n", - " inflating: traffic-sign/images/train/00603.jpg \n", - " inflating: traffic-sign/images/train/00604.jpg \n", - " inflating: traffic-sign/images/train/00605.jpg \n", - " inflating: traffic-sign/images/train/00606.jpg \n", - " inflating: traffic-sign/images/train/00607.jpg \n", - " inflating: traffic-sign/images/train/00608.jpg \n", - " inflating: traffic-sign/images/train/00609.jpg \n", - " inflating: traffic-sign/images/train/00610.jpg \n", - " inflating: traffic-sign/images/train/00611.jpg \n", - " inflating: traffic-sign/images/train/00612.jpg \n", - " inflating: traffic-sign/images/train/00613.jpg \n", - " inflating: traffic-sign/images/train/00615.jpg \n", - " inflating: traffic-sign/images/train/00616.jpg \n", - " inflating: traffic-sign/images/train/00619.jpg \n", - " inflating: traffic-sign/images/train/00620.jpg \n", - " inflating: traffic-sign/images/train/00621.jpg \n", - " inflating: traffic-sign/images/train/00622.jpg \n", - " inflating: traffic-sign/images/train/00623.jpg \n", - " inflating: traffic-sign/images/train/00624.jpg \n", - " inflating: traffic-sign/images/train/00625.jpg \n", - " inflating: traffic-sign/images/train/00628.jpg \n", - " inflating: traffic-sign/images/train/00630.jpg \n", - " inflating: traffic-sign/images/train/00631.jpg \n", - " inflating: traffic-sign/images/train/00632.jpg \n", - " inflating: traffic-sign/images/train/00633.jpg \n", - " inflating: traffic-sign/images/train/00634.jpg \n", - " inflating: traffic-sign/images/train/00635.jpg \n", - " inflating: traffic-sign/images/train/00637.jpg \n", - " inflating: traffic-sign/images/train/00638.jpg \n", - " inflating: traffic-sign/images/train/00639.jpg \n", - " inflating: traffic-sign/images/train/00640.jpg \n", - " inflating: traffic-sign/images/train/00641.jpg \n", - " inflating: traffic-sign/images/train/00645.jpg \n", - " inflating: traffic-sign/images/train/00648.jpg \n", - " inflating: traffic-sign/images/train/00649.jpg \n", - " inflating: traffic-sign/images/train/00650.jpg \n", - " inflating: traffic-sign/images/train/00653.jpg \n", - " inflating: traffic-sign/images/train/00654.jpg \n", - " inflating: traffic-sign/images/train/00655.jpg \n", - " inflating: traffic-sign/images/train/00656.jpg \n", - " inflating: traffic-sign/images/train/00657.jpg \n", - " inflating: traffic-sign/images/train/00658.jpg \n", - " inflating: traffic-sign/images/train/00659.jpg \n", - " inflating: traffic-sign/images/train/00660.jpg \n", - " inflating: traffic-sign/images/train/00661.jpg \n", - " inflating: traffic-sign/images/train/00662.jpg \n", - " inflating: traffic-sign/images/train/00663.jpg \n", - " inflating: traffic-sign/images/train/00664.jpg \n", - " inflating: traffic-sign/images/train/00665.jpg \n", - " inflating: traffic-sign/images/train/00667.jpg \n", - " inflating: traffic-sign/images/train/00668.jpg \n", - " inflating: traffic-sign/images/train/00669.jpg \n", - " inflating: traffic-sign/images/train/00670.jpg \n", - " inflating: traffic-sign/images/train/00673.jpg \n", - " inflating: traffic-sign/images/train/00674.jpg \n", - " inflating: traffic-sign/images/train/00675.jpg \n", - " inflating: traffic-sign/images/train/00678.jpg \n", - " inflating: traffic-sign/images/train/00679.jpg \n", - " inflating: traffic-sign/images/train/00680.jpg \n", - " inflating: traffic-sign/images/train/00681.jpg \n", - " inflating: traffic-sign/images/train/00682.jpg \n", - " inflating: traffic-sign/images/train/00688.jpg \n", - " inflating: traffic-sign/images/train/00689.jpg \n", - " inflating: traffic-sign/images/train/00690.jpg \n", - " inflating: traffic-sign/images/train/00691.jpg \n", - " inflating: traffic-sign/images/train/00692.jpg \n", - " inflating: traffic-sign/images/train/00693.jpg \n", - " inflating: traffic-sign/images/train/00694.jpg \n", - " inflating: traffic-sign/images/train/00696.jpg \n", - " inflating: traffic-sign/images/train/00697.jpg \n", - " inflating: traffic-sign/images/train/00698.jpg \n", - " inflating: traffic-sign/images/train/00699.jpg \n", - " inflating: traffic-sign/images/train/00700.jpg \n", - " inflating: traffic-sign/images/train/00701.jpg \n", - " inflating: traffic-sign/images/train/00705.jpg \n", - " inflating: traffic-sign/images/train/00706.jpg \n", - " inflating: traffic-sign/images/train/00707.jpg \n", - " inflating: traffic-sign/images/train/00712.jpg \n", - " inflating: traffic-sign/images/train/00714.jpg \n", - " inflating: traffic-sign/images/train/00715.jpg \n", - " inflating: traffic-sign/images/train/00716.jpg \n", - " inflating: traffic-sign/images/train/00719.jpg \n", - " inflating: traffic-sign/images/train/00720.jpg \n", - " inflating: traffic-sign/images/train/00721.jpg \n", - " inflating: traffic-sign/images/train/00722.jpg \n", - " inflating: traffic-sign/images/train/00723.jpg \n", - " inflating: traffic-sign/images/train/00725.jpg \n", - " inflating: traffic-sign/images/train/00728.jpg \n", - " inflating: traffic-sign/images/train/00730.jpg \n", - " inflating: traffic-sign/images/train/00732.jpg \n", - " inflating: traffic-sign/images/train/00733.jpg \n", - " inflating: traffic-sign/images/train/00734.jpg \n", - " inflating: traffic-sign/images/train/00736.jpg \n", - " inflating: traffic-sign/images/train/00737.jpg \n", - " inflating: traffic-sign/images/train/00738.jpg \n", - " inflating: traffic-sign/images/train/00741.jpg \n", - " inflating: traffic-sign/images/train/00742.jpg \n", - " inflating: traffic-sign/images/train/00744.jpg \n", - " inflating: traffic-sign/images/train/00746.jpg \n", - " inflating: traffic-sign/images/train/00747.jpg \n", - " inflating: traffic-sign/images/train/00749.jpg \n", - " inflating: traffic-sign/images/train/00751.jpg \n", - " inflating: traffic-sign/images/train/00752.jpg \n", - " inflating: traffic-sign/images/train/00754.jpg \n", - " inflating: traffic-sign/images/train/00755.jpg \n", - " inflating: traffic-sign/images/train/00756.jpg \n", - " inflating: traffic-sign/images/train/00758.jpg \n", - " inflating: traffic-sign/images/train/00760.jpg \n", - " inflating: traffic-sign/images/train/00763.jpg \n", - " inflating: traffic-sign/images/train/00764.jpg \n", - " inflating: traffic-sign/images/train/00766.jpg \n", - " inflating: traffic-sign/images/train/00770.jpg \n", - " inflating: traffic-sign/images/train/00771.jpg \n", - " inflating: traffic-sign/images/train/00772.jpg \n", - " inflating: traffic-sign/images/train/00774.jpg \n", - " inflating: traffic-sign/images/train/00776.jpg \n", - " inflating: traffic-sign/images/train/00777.jpg \n", - " inflating: traffic-sign/images/train/00778.jpg \n", - " inflating: traffic-sign/images/train/00779.jpg \n", - " inflating: traffic-sign/images/train/00782.jpg \n", - " inflating: traffic-sign/images/train/00783.jpg \n", - " inflating: traffic-sign/images/train/00784.jpg \n", - " inflating: traffic-sign/images/train/00785.jpg \n", - " inflating: traffic-sign/images/train/00787.jpg \n", - " inflating: traffic-sign/images/train/00788.jpg \n", - " inflating: traffic-sign/images/train/00789.jpg \n", - " inflating: traffic-sign/images/train/00791.jpg \n", - " inflating: traffic-sign/images/train/00794.jpg \n", - " inflating: traffic-sign/images/train/00797.jpg \n", - " inflating: traffic-sign/images/train/00798.jpg \n", - " inflating: traffic-sign/images/train/00801.jpg \n", - " inflating: traffic-sign/images/train/00803.jpg \n", - " inflating: traffic-sign/images/train/00805.jpg \n", - " inflating: traffic-sign/images/train/00806.jpg \n", - " inflating: traffic-sign/images/train/00807.jpg \n", - " inflating: traffic-sign/images/train/00809.jpg \n", - " inflating: traffic-sign/images/train/00810.jpg \n", - " inflating: traffic-sign/images/train/00811.jpg \n", - " inflating: traffic-sign/images/train/00813.jpg \n", - " inflating: traffic-sign/images/train/00816.jpg \n", - " inflating: traffic-sign/images/train/00817.jpg \n", - " inflating: traffic-sign/images/train/00818.jpg \n", - " inflating: traffic-sign/images/train/00821.jpg \n", - " inflating: traffic-sign/images/train/00822.jpg \n", - " inflating: traffic-sign/images/train/00823.jpg \n", - " inflating: traffic-sign/images/train/00824.jpg \n", - " inflating: traffic-sign/images/train/00827.jpg \n", - " inflating: traffic-sign/images/train/00828.jpg \n", - " inflating: traffic-sign/images/train/00831.jpg \n", - " inflating: traffic-sign/images/train/00833.jpg \n", - " inflating: traffic-sign/images/train/00834.jpg \n", - " inflating: traffic-sign/images/train/00835.jpg \n", - " inflating: traffic-sign/images/train/00836.jpg \n", - " inflating: traffic-sign/images/train/00837.jpg \n", - " inflating: traffic-sign/images/train/00838.jpg \n", - " inflating: traffic-sign/images/train/00839.jpg \n", - " inflating: traffic-sign/images/train/00841.jpg \n", - " inflating: traffic-sign/images/train/00844.jpg \n", - " inflating: traffic-sign/images/train/00845.jpg \n", - " inflating: traffic-sign/images/train/00846.jpg \n", - " inflating: traffic-sign/images/train/00848.jpg \n", - " inflating: traffic-sign/images/train/00849.jpg \n", - " inflating: traffic-sign/images/train/00850.jpg \n", - " inflating: traffic-sign/images/train/00853.jpg \n", - " inflating: traffic-sign/images/train/00854.jpg \n", - " inflating: traffic-sign/images/train/00855.jpg \n", - " inflating: traffic-sign/images/train/00857.jpg \n", - " inflating: traffic-sign/images/train/00858.jpg \n", - " inflating: traffic-sign/images/train/00859.jpg \n", - " inflating: traffic-sign/images/train/00860.jpg \n", - " inflating: traffic-sign/images/train/00862.jpg \n", - " inflating: traffic-sign/images/train/00863.jpg \n", - " inflating: traffic-sign/images/train/00865.jpg \n", - " inflating: traffic-sign/images/train/00866.jpg \n", - " inflating: traffic-sign/images/train/00867.jpg \n", - " inflating: traffic-sign/images/train/00868.jpg \n", - " inflating: traffic-sign/images/train/00869.jpg \n", - " inflating: traffic-sign/images/train/00870.jpg \n", - " inflating: traffic-sign/images/train/00871.jpg \n", - " inflating: traffic-sign/images/train/00872.jpg \n", - " inflating: traffic-sign/images/train/00881.jpg \n", - " inflating: traffic-sign/images/train/00882.jpg \n", - " inflating: traffic-sign/images/train/00884.jpg \n", - " inflating: traffic-sign/images/train/00886.jpg \n", - " inflating: traffic-sign/images/train/00887.jpg \n", - " inflating: traffic-sign/images/train/00888.jpg \n", - " inflating: traffic-sign/images/train/00889.jpg \n", - " inflating: traffic-sign/images/train/00891.jpg \n", - " inflating: traffic-sign/images/train/00893.jpg \n", - " inflating: traffic-sign/images/train/00894.jpg \n", - " inflating: traffic-sign/images/train/00895.jpg \n", - " inflating: traffic-sign/images/train/00896.jpg \n", - " inflating: traffic-sign/images/train/00897.jpg \n", - " inflating: traffic-sign/images/train/00898.jpg \n", - " inflating: traffic-sign/images/train/00899.jpg \n", - " creating: traffic-sign/images/valid/\n", - " inflating: traffic-sign/images/valid/00002.jpg \n", - " inflating: traffic-sign/images/valid/00004.jpg \n", - " inflating: traffic-sign/images/valid/00015.jpg \n", - " inflating: traffic-sign/images/valid/00023.jpg \n", - " inflating: traffic-sign/images/valid/00025.jpg \n", - " inflating: traffic-sign/images/valid/00051.jpg \n", - " inflating: traffic-sign/images/valid/00075.jpg \n", - " inflating: traffic-sign/images/valid/00078.jpg \n", - " inflating: traffic-sign/images/valid/00082.jpg \n", - " inflating: traffic-sign/images/valid/00085.jpg \n", - " inflating: traffic-sign/images/valid/00087.jpg \n", - " inflating: traffic-sign/images/valid/00100.jpg \n", - " inflating: traffic-sign/images/valid/00104.jpg \n", - " inflating: traffic-sign/images/valid/00116.jpg \n", - " inflating: traffic-sign/images/valid/00134.jpg \n", - " inflating: traffic-sign/images/valid/00141.jpg \n", - " inflating: traffic-sign/images/valid/00142.jpg \n", - " inflating: traffic-sign/images/valid/00155.jpg \n", - " inflating: traffic-sign/images/valid/00161.jpg \n", - " inflating: traffic-sign/images/valid/00182.jpg \n", - " inflating: traffic-sign/images/valid/00183.jpg \n", - " inflating: traffic-sign/images/valid/00185.jpg \n", - " inflating: traffic-sign/images/valid/00189.jpg \n", - " inflating: traffic-sign/images/valid/00190.jpg \n", - " inflating: traffic-sign/images/valid/00204.jpg \n", - " inflating: traffic-sign/images/valid/00205.jpg \n", - " inflating: traffic-sign/images/valid/00216.jpg \n", - " inflating: traffic-sign/images/valid/00227.jpg \n", - " inflating: traffic-sign/images/valid/00228.jpg \n", - " inflating: traffic-sign/images/valid/00233.jpg \n", - " inflating: traffic-sign/images/valid/00236.jpg \n", - " inflating: traffic-sign/images/valid/00256.jpg \n", - " inflating: traffic-sign/images/valid/00258.jpg \n", - " inflating: traffic-sign/images/valid/00260.jpg \n", - " inflating: traffic-sign/images/valid/00274.jpg \n", - " inflating: traffic-sign/images/valid/00280.jpg \n", - " inflating: traffic-sign/images/valid/00306.jpg \n", - " inflating: traffic-sign/images/valid/00307.jpg \n", - " inflating: traffic-sign/images/valid/00310.jpg \n", - " inflating: traffic-sign/images/valid/00320.jpg \n", - " inflating: traffic-sign/images/valid/00341.jpg \n", - " inflating: traffic-sign/images/valid/00344.jpg \n", - " inflating: traffic-sign/images/valid/00350.jpg \n", - " inflating: traffic-sign/images/valid/00352.jpg \n", - " inflating: traffic-sign/images/valid/00367.jpg \n", - " inflating: traffic-sign/images/valid/00384.jpg \n", - " inflating: traffic-sign/images/valid/00388.jpg \n", - " inflating: traffic-sign/images/valid/00390.jpg \n", - " inflating: traffic-sign/images/valid/00397.jpg \n", - " inflating: traffic-sign/images/valid/00402.jpg \n", - " inflating: traffic-sign/images/valid/00418.jpg \n", - " inflating: traffic-sign/images/valid/00423.jpg \n", - " inflating: traffic-sign/images/valid/00426.jpg \n", - " inflating: traffic-sign/images/valid/00438.jpg \n", - " inflating: traffic-sign/images/valid/00446.jpg \n", - " inflating: traffic-sign/images/valid/00456.jpg \n", - " inflating: traffic-sign/images/valid/00461.jpg \n", - " inflating: traffic-sign/images/valid/00463.jpg \n", - " inflating: traffic-sign/images/valid/00470.jpg \n", - " inflating: traffic-sign/images/valid/00471.jpg \n", - " inflating: traffic-sign/images/valid/00473.jpg \n", - " inflating: traffic-sign/images/valid/00474.jpg \n", - " inflating: traffic-sign/images/valid/00483.jpg \n", - " inflating: traffic-sign/images/valid/00491.jpg \n", - " inflating: traffic-sign/images/valid/00494.jpg \n", - " inflating: traffic-sign/images/valid/00502.jpg \n", - " inflating: traffic-sign/images/valid/00507.jpg \n", - " inflating: traffic-sign/images/valid/00513.jpg \n", - " inflating: traffic-sign/images/valid/00514.jpg \n", - " inflating: traffic-sign/images/valid/00517.jpg \n", - " inflating: traffic-sign/images/valid/00551.jpg \n", - " inflating: traffic-sign/images/valid/00552.jpg \n", - " inflating: traffic-sign/images/valid/00557.jpg \n", - " inflating: traffic-sign/images/valid/00626.jpg \n", - " inflating: traffic-sign/images/valid/00642.jpg \n", - " inflating: traffic-sign/images/valid/00644.jpg \n", - " inflating: traffic-sign/images/valid/00646.jpg \n", - " inflating: traffic-sign/images/valid/00647.jpg \n", - " inflating: traffic-sign/images/valid/00651.jpg \n", - " inflating: traffic-sign/images/valid/00671.jpg \n", - " inflating: traffic-sign/images/valid/00672.jpg \n", - " inflating: traffic-sign/images/valid/00683.jpg \n", - " inflating: traffic-sign/images/valid/00685.jpg \n", - " inflating: traffic-sign/images/valid/00686.jpg \n", - " inflating: traffic-sign/images/valid/00695.jpg \n", - " inflating: traffic-sign/images/valid/00702.jpg \n", - " inflating: traffic-sign/images/valid/00703.jpg \n", - " inflating: traffic-sign/images/valid/00704.jpg \n", - " inflating: traffic-sign/images/valid/00710.jpg \n", - " inflating: traffic-sign/images/valid/00717.jpg \n", - " inflating: traffic-sign/images/valid/00729.jpg \n", - " inflating: traffic-sign/images/valid/00740.jpg \n", - " inflating: traffic-sign/images/valid/00761.jpg \n", - " inflating: traffic-sign/images/valid/00762.jpg \n", - " inflating: traffic-sign/images/valid/00773.jpg \n", - " inflating: traffic-sign/images/valid/00775.jpg \n", - " inflating: traffic-sign/images/valid/00780.jpg \n", - " inflating: traffic-sign/images/valid/00795.jpg \n", - " inflating: traffic-sign/images/valid/00802.jpg \n", - " inflating: traffic-sign/images/valid/00808.jpg \n", - " inflating: traffic-sign/images/valid/00820.jpg \n", - " inflating: traffic-sign/images/valid/00825.jpg \n", - " inflating: traffic-sign/images/valid/00829.jpg \n", - " inflating: traffic-sign/images/valid/00842.jpg \n", - " inflating: traffic-sign/images/valid/00851.jpg \n", - " inflating: traffic-sign/images/valid/00852.jpg \n", - " inflating: traffic-sign/images/valid/00864.jpg \n", - " inflating: traffic-sign/images/valid/00874.jpg \n", - " inflating: traffic-sign/images/valid/00876.jpg \n", - " inflating: traffic-sign/images/valid/00879.jpg \n", - " inflating: traffic-sign/images/valid/00885.jpg \n", - " creating: traffic-sign/labels/\n", - " creating: traffic-sign/labels/train/\n", - " inflating: traffic-sign/labels/train/00000.txt \n", - " inflating: traffic-sign/labels/train/00001.txt \n", - " inflating: traffic-sign/labels/train/00003.txt \n", - " inflating: traffic-sign/labels/train/00005.txt \n", - " inflating: traffic-sign/labels/train/00006.txt \n", - " inflating: traffic-sign/labels/train/00007.txt \n", - " inflating: traffic-sign/labels/train/00008.txt \n", - " inflating: traffic-sign/labels/train/00009.txt \n", - " inflating: traffic-sign/labels/train/00010.txt \n", - " inflating: traffic-sign/labels/train/00011.txt \n", - " inflating: traffic-sign/labels/train/00012.txt \n", - " inflating: traffic-sign/labels/train/00013.txt \n", - " inflating: traffic-sign/labels/train/00014.txt \n", - " inflating: traffic-sign/labels/train/00016.txt \n", - " inflating: traffic-sign/labels/train/00017.txt \n", - " inflating: traffic-sign/labels/train/00018.txt \n", - " inflating: traffic-sign/labels/train/00019.txt \n", - " inflating: traffic-sign/labels/train/00020.txt \n", - " inflating: traffic-sign/labels/train/00021.txt \n", - " inflating: traffic-sign/labels/train/00022.txt \n", - " inflating: traffic-sign/labels/train/00024.txt \n", - " inflating: traffic-sign/labels/train/00026.txt \n", - " inflating: traffic-sign/labels/train/00027.txt \n", - " inflating: traffic-sign/labels/train/00028.txt \n", - " inflating: traffic-sign/labels/train/00029.txt \n", - " inflating: traffic-sign/labels/train/00030.txt \n", - " inflating: traffic-sign/labels/train/00031.txt \n", - " inflating: traffic-sign/labels/train/00032.txt \n", - " inflating: traffic-sign/labels/train/00033.txt \n", - " inflating: traffic-sign/labels/train/00034.txt \n", - " inflating: traffic-sign/labels/train/00035.txt \n", - " inflating: traffic-sign/labels/train/00036.txt \n", - " inflating: traffic-sign/labels/train/00037.txt \n", - " inflating: traffic-sign/labels/train/00038.txt \n", - " inflating: traffic-sign/labels/train/00039.txt \n", - " inflating: traffic-sign/labels/train/00040.txt \n", - " inflating: traffic-sign/labels/train/00041.txt \n", - " inflating: traffic-sign/labels/train/00042.txt \n", - " inflating: traffic-sign/labels/train/00043.txt \n", - " inflating: traffic-sign/labels/train/00044.txt \n", - " inflating: traffic-sign/labels/train/00045.txt \n", - " inflating: traffic-sign/labels/train/00046.txt \n", - " inflating: traffic-sign/labels/train/00047.txt \n", - " inflating: traffic-sign/labels/train/00048.txt \n", - " inflating: traffic-sign/labels/train/00049.txt \n", - " inflating: traffic-sign/labels/train/00050.txt \n", - " inflating: traffic-sign/labels/train/00052.txt \n", - " inflating: traffic-sign/labels/train/00053.txt \n", - " inflating: traffic-sign/labels/train/00054.txt \n", - " inflating: traffic-sign/labels/train/00055.txt \n", - " inflating: traffic-sign/labels/train/00056.txt \n", - " inflating: traffic-sign/labels/train/00057.txt \n", - " inflating: traffic-sign/labels/train/00058.txt \n", - " inflating: traffic-sign/labels/train/00059.txt \n", - " inflating: traffic-sign/labels/train/00060.txt \n", - " inflating: traffic-sign/labels/train/00061.txt \n", - " inflating: traffic-sign/labels/train/00062.txt \n", - " inflating: traffic-sign/labels/train/00063.txt \n", - " inflating: traffic-sign/labels/train/00064.txt \n", - " inflating: traffic-sign/labels/train/00065.txt \n", - " inflating: traffic-sign/labels/train/00066.txt \n", - " inflating: traffic-sign/labels/train/00067.txt \n", - " inflating: traffic-sign/labels/train/00068.txt \n", - " inflating: traffic-sign/labels/train/00069.txt \n", - " inflating: traffic-sign/labels/train/00070.txt \n", - " inflating: traffic-sign/labels/train/00071.txt \n", - " inflating: traffic-sign/labels/train/00072.txt \n", - " inflating: traffic-sign/labels/train/00073.txt \n", - " inflating: traffic-sign/labels/train/00074.txt \n", - " inflating: traffic-sign/labels/train/00076.txt \n", - " inflating: traffic-sign/labels/train/00077.txt \n", - " inflating: traffic-sign/labels/train/00079.txt \n", - " inflating: traffic-sign/labels/train/00080.txt \n", - " inflating: traffic-sign/labels/train/00081.txt \n", - " inflating: traffic-sign/labels/train/00083.txt \n", - " inflating: traffic-sign/labels/train/00084.txt \n", - " inflating: traffic-sign/labels/train/00086.txt \n", - " inflating: traffic-sign/labels/train/00088.txt \n", - " inflating: traffic-sign/labels/train/00089.txt \n", - " inflating: traffic-sign/labels/train/00090.txt \n", - " inflating: traffic-sign/labels/train/00091.txt \n", - " inflating: traffic-sign/labels/train/00092.txt \n", - " inflating: traffic-sign/labels/train/00093.txt \n", - " inflating: traffic-sign/labels/train/00094.txt \n", - " inflating: traffic-sign/labels/train/00095.txt \n", - " inflating: traffic-sign/labels/train/00096.txt \n", - " inflating: traffic-sign/labels/train/00097.txt \n", - " inflating: traffic-sign/labels/train/00098.txt \n", - " inflating: traffic-sign/labels/train/00099.txt \n", - " inflating: traffic-sign/labels/train/00101.txt \n", - " inflating: traffic-sign/labels/train/00102.txt \n", - " inflating: traffic-sign/labels/train/00103.txt \n", - " inflating: traffic-sign/labels/train/00105.txt \n", - " inflating: traffic-sign/labels/train/00106.txt \n", - " inflating: traffic-sign/labels/train/00107.txt \n", - " inflating: traffic-sign/labels/train/00109.txt \n", - " inflating: traffic-sign/labels/train/00110.txt \n", - " inflating: traffic-sign/labels/train/00111.txt \n", - " inflating: traffic-sign/labels/train/00112.txt \n", - " inflating: traffic-sign/labels/train/00113.txt \n", - " inflating: traffic-sign/labels/train/00114.txt \n", - " inflating: traffic-sign/labels/train/00115.txt \n", - " inflating: traffic-sign/labels/train/00117.txt \n", - " inflating: traffic-sign/labels/train/00118.txt \n", - " inflating: traffic-sign/labels/train/00119.txt \n", - " inflating: traffic-sign/labels/train/00120.txt \n", - " inflating: traffic-sign/labels/train/00121.txt \n", - " inflating: traffic-sign/labels/train/00122.txt \n", - " inflating: traffic-sign/labels/train/00123.txt \n", - " inflating: traffic-sign/labels/train/00124.txt \n", - " inflating: traffic-sign/labels/train/00125.txt \n", - " inflating: traffic-sign/labels/train/00126.txt \n", - " inflating: traffic-sign/labels/train/00127.txt \n", - " inflating: traffic-sign/labels/train/00128.txt \n", - " inflating: traffic-sign/labels/train/00129.txt \n", - " inflating: traffic-sign/labels/train/00130.txt \n", - " inflating: traffic-sign/labels/train/00131.txt \n", - " inflating: traffic-sign/labels/train/00132.txt \n", - " inflating: traffic-sign/labels/train/00133.txt \n", - " inflating: traffic-sign/labels/train/00135.txt \n", - " inflating: traffic-sign/labels/train/00136.txt \n", - " inflating: traffic-sign/labels/train/00137.txt \n", - " inflating: traffic-sign/labels/train/00138.txt \n", - " inflating: traffic-sign/labels/train/00140.txt \n", - " inflating: traffic-sign/labels/train/00143.txt \n", - " inflating: traffic-sign/labels/train/00144.txt \n", - " inflating: traffic-sign/labels/train/00146.txt \n", - " inflating: traffic-sign/labels/train/00147.txt \n", - " inflating: traffic-sign/labels/train/00148.txt \n", - " inflating: traffic-sign/labels/train/00149.txt \n", - " inflating: traffic-sign/labels/train/00150.txt \n", - " inflating: traffic-sign/labels/train/00151.txt \n", - " inflating: traffic-sign/labels/train/00152.txt \n", - " inflating: traffic-sign/labels/train/00153.txt \n", - " inflating: traffic-sign/labels/train/00154.txt \n", - " inflating: traffic-sign/labels/train/00156.txt \n", - " inflating: traffic-sign/labels/train/00157.txt \n", - " inflating: traffic-sign/labels/train/00158.txt \n", - " inflating: traffic-sign/labels/train/00159.txt \n", - " inflating: traffic-sign/labels/train/00160.txt \n", - " inflating: traffic-sign/labels/train/00162.txt \n", - " inflating: traffic-sign/labels/train/00163.txt \n", - " inflating: traffic-sign/labels/train/00164.txt \n", - " inflating: traffic-sign/labels/train/00165.txt \n", - " inflating: traffic-sign/labels/train/00166.txt \n", - " inflating: traffic-sign/labels/train/00167.txt \n", - " inflating: traffic-sign/labels/train/00168.txt \n", - " inflating: traffic-sign/labels/train/00169.txt \n", - " inflating: traffic-sign/labels/train/00170.txt \n", - " inflating: traffic-sign/labels/train/00171.txt \n", - " inflating: traffic-sign/labels/train/00172.txt \n", - " inflating: traffic-sign/labels/train/00173.txt \n", - " inflating: traffic-sign/labels/train/00174.txt \n", - " inflating: traffic-sign/labels/train/00175.txt \n", - " inflating: traffic-sign/labels/train/00176.txt \n", - " inflating: traffic-sign/labels/train/00177.txt \n", - " inflating: traffic-sign/labels/train/00178.txt \n", - " inflating: traffic-sign/labels/train/00179.txt \n", - " inflating: traffic-sign/labels/train/00180.txt \n", - " inflating: traffic-sign/labels/train/00181.txt \n", - " inflating: traffic-sign/labels/train/00184.txt \n", - " inflating: traffic-sign/labels/train/00186.txt \n", - " inflating: traffic-sign/labels/train/00187.txt \n", - " inflating: traffic-sign/labels/train/00188.txt \n", - " inflating: traffic-sign/labels/train/00191.txt \n", - " inflating: traffic-sign/labels/train/00192.txt \n", - " inflating: traffic-sign/labels/train/00193.txt \n", - " inflating: traffic-sign/labels/train/00194.txt \n", - " inflating: traffic-sign/labels/train/00195.txt \n", - " inflating: traffic-sign/labels/train/00196.txt \n", - " inflating: traffic-sign/labels/train/00197.txt \n", - " inflating: traffic-sign/labels/train/00198.txt \n", - " inflating: traffic-sign/labels/train/00199.txt \n", - " inflating: traffic-sign/labels/train/00200.txt \n", - " inflating: traffic-sign/labels/train/00201.txt \n", - " inflating: traffic-sign/labels/train/00202.txt \n", - " inflating: traffic-sign/labels/train/00203.txt \n", - " inflating: traffic-sign/labels/train/00206.txt \n", - " inflating: traffic-sign/labels/train/00207.txt \n", - " inflating: traffic-sign/labels/train/00208.txt \n", - " inflating: traffic-sign/labels/train/00209.txt \n", - " inflating: traffic-sign/labels/train/00210.txt \n", - " inflating: traffic-sign/labels/train/00211.txt \n", - " inflating: traffic-sign/labels/train/00212.txt \n", - " inflating: traffic-sign/labels/train/00214.txt \n", - " inflating: traffic-sign/labels/train/00215.txt \n", - " inflating: traffic-sign/labels/train/00217.txt \n", - " inflating: traffic-sign/labels/train/00218.txt \n", - " inflating: traffic-sign/labels/train/00219.txt \n", - " inflating: traffic-sign/labels/train/00220.txt \n", - " inflating: traffic-sign/labels/train/00221.txt \n", - " inflating: traffic-sign/labels/train/00222.txt \n", - " inflating: traffic-sign/labels/train/00223.txt \n", - " inflating: traffic-sign/labels/train/00224.txt \n", - " inflating: traffic-sign/labels/train/00225.txt \n", - " inflating: traffic-sign/labels/train/00226.txt \n", - " inflating: traffic-sign/labels/train/00229.txt \n", - " inflating: traffic-sign/labels/train/00230.txt \n", - " inflating: traffic-sign/labels/train/00231.txt \n", - " inflating: traffic-sign/labels/train/00232.txt \n", - " inflating: traffic-sign/labels/train/00234.txt \n", - " inflating: traffic-sign/labels/train/00237.txt \n", - " inflating: traffic-sign/labels/train/00238.txt \n", - " inflating: traffic-sign/labels/train/00239.txt \n", - " inflating: traffic-sign/labels/train/00240.txt \n", - " inflating: traffic-sign/labels/train/00241.txt \n", - " inflating: traffic-sign/labels/train/00242.txt \n", - " inflating: traffic-sign/labels/train/00243.txt \n", - " inflating: traffic-sign/labels/train/00244.txt \n", - " inflating: traffic-sign/labels/train/00245.txt \n", - " inflating: traffic-sign/labels/train/00246.txt \n", - " inflating: traffic-sign/labels/train/00247.txt \n", - " inflating: traffic-sign/labels/train/00248.txt \n", - " inflating: traffic-sign/labels/train/00249.txt \n", - " inflating: traffic-sign/labels/train/00250.txt \n", - " inflating: traffic-sign/labels/train/00251.txt \n", - " inflating: traffic-sign/labels/train/00252.txt \n", - " inflating: traffic-sign/labels/train/00253.txt \n", - " inflating: traffic-sign/labels/train/00254.txt \n", - " inflating: traffic-sign/labels/train/00255.txt \n", - " inflating: traffic-sign/labels/train/00257.txt \n", - " inflating: traffic-sign/labels/train/00259.txt \n", - " inflating: traffic-sign/labels/train/00261.txt \n", - " inflating: traffic-sign/labels/train/00262.txt \n", - " inflating: traffic-sign/labels/train/00263.txt \n", - " inflating: traffic-sign/labels/train/00264.txt \n", - " inflating: traffic-sign/labels/train/00265.txt \n", - " inflating: traffic-sign/labels/train/00266.txt \n", - " inflating: traffic-sign/labels/train/00267.txt \n", - " inflating: traffic-sign/labels/train/00268.txt \n", - " inflating: traffic-sign/labels/train/00269.txt \n", - " inflating: traffic-sign/labels/train/00270.txt \n", - " inflating: traffic-sign/labels/train/00271.txt \n", - " inflating: traffic-sign/labels/train/00272.txt \n", - " inflating: traffic-sign/labels/train/00273.txt \n", - " inflating: traffic-sign/labels/train/00275.txt \n", - " inflating: traffic-sign/labels/train/00276.txt \n", - " inflating: traffic-sign/labels/train/00277.txt \n", - " inflating: traffic-sign/labels/train/00278.txt \n", - " inflating: traffic-sign/labels/train/00279.txt \n", - " inflating: traffic-sign/labels/train/00281.txt \n", - " inflating: traffic-sign/labels/train/00282.txt \n", - " inflating: traffic-sign/labels/train/00283.txt \n", - " inflating: traffic-sign/labels/train/00284.txt \n", - " inflating: traffic-sign/labels/train/00285.txt \n", - " inflating: traffic-sign/labels/train/00286.txt \n", - " inflating: traffic-sign/labels/train/00287.txt \n", - " inflating: traffic-sign/labels/train/00288.txt \n", - " inflating: traffic-sign/labels/train/00289.txt \n", - " inflating: traffic-sign/labels/train/00290.txt \n", - " inflating: traffic-sign/labels/train/00291.txt \n", - " inflating: traffic-sign/labels/train/00292.txt \n", - " inflating: traffic-sign/labels/train/00293.txt \n", - " inflating: traffic-sign/labels/train/00294.txt \n", - " inflating: traffic-sign/labels/train/00295.txt \n", - " inflating: traffic-sign/labels/train/00296.txt \n", - " inflating: traffic-sign/labels/train/00297.txt \n", - " inflating: traffic-sign/labels/train/00298.txt \n", - " inflating: traffic-sign/labels/train/00299.txt \n", - " inflating: traffic-sign/labels/train/00300.txt \n", - " inflating: traffic-sign/labels/train/00301.txt \n", - " inflating: traffic-sign/labels/train/00302.txt \n", - " inflating: traffic-sign/labels/train/00303.txt \n", - " inflating: traffic-sign/labels/train/00304.txt \n", - " inflating: traffic-sign/labels/train/00305.txt \n", - " inflating: traffic-sign/labels/train/00309.txt \n", - " inflating: traffic-sign/labels/train/00311.txt \n", - " inflating: traffic-sign/labels/train/00312.txt \n", - " inflating: traffic-sign/labels/train/00313.txt \n", - " inflating: traffic-sign/labels/train/00314.txt \n", - " inflating: traffic-sign/labels/train/00315.txt \n", - " inflating: traffic-sign/labels/train/00316.txt \n", - " inflating: traffic-sign/labels/train/00317.txt \n", - " inflating: traffic-sign/labels/train/00318.txt \n", - " inflating: traffic-sign/labels/train/00319.txt \n", - " inflating: traffic-sign/labels/train/00322.txt \n", - " inflating: traffic-sign/labels/train/00323.txt \n", - " inflating: traffic-sign/labels/train/00330.txt \n", - " inflating: traffic-sign/labels/train/00333.txt \n", - " inflating: traffic-sign/labels/train/00334.txt \n", - " inflating: traffic-sign/labels/train/00337.txt \n", - " inflating: traffic-sign/labels/train/00338.txt \n", - " inflating: traffic-sign/labels/train/00339.txt \n", - " inflating: traffic-sign/labels/train/00340.txt \n", - " inflating: traffic-sign/labels/train/00343.txt \n", - " inflating: traffic-sign/labels/train/00346.txt \n", - " inflating: traffic-sign/labels/train/00347.txt \n", - " inflating: traffic-sign/labels/train/00348.txt \n", - " inflating: traffic-sign/labels/train/00349.txt \n", - " inflating: traffic-sign/labels/train/00351.txt \n", - " inflating: traffic-sign/labels/train/00353.txt \n", - " inflating: traffic-sign/labels/train/00355.txt \n", - " inflating: traffic-sign/labels/train/00356.txt \n", - " inflating: traffic-sign/labels/train/00357.txt \n", - " inflating: traffic-sign/labels/train/00358.txt \n", - " inflating: traffic-sign/labels/train/00359.txt \n", - " inflating: traffic-sign/labels/train/00360.txt \n", - " inflating: traffic-sign/labels/train/00362.txt \n", - " inflating: traffic-sign/labels/train/00363.txt \n", - " inflating: traffic-sign/labels/train/00366.txt \n", - " inflating: traffic-sign/labels/train/00368.txt \n", - " inflating: traffic-sign/labels/train/00369.txt \n", - " inflating: traffic-sign/labels/train/00370.txt \n", - " inflating: traffic-sign/labels/train/00371.txt \n", - " inflating: traffic-sign/labels/train/00372.txt \n", - " inflating: traffic-sign/labels/train/00373.txt \n", - " inflating: traffic-sign/labels/train/00374.txt \n", - " inflating: traffic-sign/labels/train/00375.txt \n", - " inflating: traffic-sign/labels/train/00376.txt \n", - " inflating: traffic-sign/labels/train/00377.txt \n", - " inflating: traffic-sign/labels/train/00378.txt \n", - " inflating: traffic-sign/labels/train/00379.txt \n", - " inflating: traffic-sign/labels/train/00380.txt \n", - " inflating: traffic-sign/labels/train/00382.txt \n", - " inflating: traffic-sign/labels/train/00383.txt \n", - " inflating: traffic-sign/labels/train/00385.txt \n", - " inflating: traffic-sign/labels/train/00386.txt \n", - " inflating: traffic-sign/labels/train/00387.txt \n", - " inflating: traffic-sign/labels/train/00391.txt \n", - " inflating: traffic-sign/labels/train/00392.txt \n", - " inflating: traffic-sign/labels/train/00393.txt \n", - " inflating: traffic-sign/labels/train/00395.txt \n", - " inflating: traffic-sign/labels/train/00396.txt \n", - " inflating: traffic-sign/labels/train/00398.txt \n", - " inflating: traffic-sign/labels/train/00400.txt \n", - " inflating: traffic-sign/labels/train/00401.txt \n", - " inflating: traffic-sign/labels/train/00403.txt \n", - " inflating: traffic-sign/labels/train/00404.txt \n", - " inflating: traffic-sign/labels/train/00405.txt \n", - " inflating: traffic-sign/labels/train/00406.txt \n", - " inflating: traffic-sign/labels/train/00408.txt \n", - " inflating: traffic-sign/labels/train/00410.txt \n", - " inflating: traffic-sign/labels/train/00411.txt \n", - " inflating: traffic-sign/labels/train/00412.txt \n", - " inflating: traffic-sign/labels/train/00413.txt \n", - " inflating: traffic-sign/labels/train/00414.txt \n", - " inflating: traffic-sign/labels/train/00415.txt \n", - " inflating: traffic-sign/labels/train/00416.txt \n", - " inflating: traffic-sign/labels/train/00417.txt \n", - " inflating: traffic-sign/labels/train/00419.txt \n", - " inflating: traffic-sign/labels/train/00420.txt \n", - " inflating: traffic-sign/labels/train/00421.txt \n", - " inflating: traffic-sign/labels/train/00422.txt \n", - " inflating: traffic-sign/labels/train/00425.txt \n", - " inflating: traffic-sign/labels/train/00427.txt \n", - " inflating: traffic-sign/labels/train/00428.txt \n", - " inflating: traffic-sign/labels/train/00430.txt \n", - " inflating: traffic-sign/labels/train/00431.txt \n", - " inflating: traffic-sign/labels/train/00432.txt \n", - " inflating: traffic-sign/labels/train/00433.txt \n", - " inflating: traffic-sign/labels/train/00434.txt \n", - " inflating: traffic-sign/labels/train/00435.txt \n", - " inflating: traffic-sign/labels/train/00436.txt \n", - " inflating: traffic-sign/labels/train/00439.txt \n", - " inflating: traffic-sign/labels/train/00440.txt \n", - " inflating: traffic-sign/labels/train/00441.txt \n", - " inflating: traffic-sign/labels/train/00443.txt \n", - " inflating: traffic-sign/labels/train/00444.txt \n", - " inflating: traffic-sign/labels/train/00445.txt \n", - " inflating: traffic-sign/labels/train/00447.txt \n", - " inflating: traffic-sign/labels/train/00448.txt \n", - " inflating: traffic-sign/labels/train/00449.txt \n", - " inflating: traffic-sign/labels/train/00450.txt \n", - " inflating: traffic-sign/labels/train/00451.txt \n", - " inflating: traffic-sign/labels/train/00452.txt \n", - " inflating: traffic-sign/labels/train/00453.txt \n", - " inflating: traffic-sign/labels/train/00455.txt \n", - " inflating: traffic-sign/labels/train/00457.txt \n", - " inflating: traffic-sign/labels/train/00458.txt \n", - " inflating: traffic-sign/labels/train/00459.txt \n", - " inflating: traffic-sign/labels/train/00460.txt \n", - " inflating: traffic-sign/labels/train/00465.txt \n", - " inflating: traffic-sign/labels/train/00466.txt \n", - " inflating: traffic-sign/labels/train/00467.txt \n", - " inflating: traffic-sign/labels/train/00468.txt \n", - " inflating: traffic-sign/labels/train/00472.txt \n", - " inflating: traffic-sign/labels/train/00475.txt \n", - " inflating: traffic-sign/labels/train/00476.txt \n", - " inflating: traffic-sign/labels/train/00477.txt \n", - " inflating: traffic-sign/labels/train/00478.txt \n", - " inflating: traffic-sign/labels/train/00479.txt \n", - " inflating: traffic-sign/labels/train/00480.txt \n", - " inflating: traffic-sign/labels/train/00481.txt \n", - " inflating: traffic-sign/labels/train/00482.txt \n", - " inflating: traffic-sign/labels/train/00484.txt \n", - " inflating: traffic-sign/labels/train/00485.txt \n", - " inflating: traffic-sign/labels/train/00486.txt \n", - " inflating: traffic-sign/labels/train/00487.txt \n", - " inflating: traffic-sign/labels/train/00488.txt \n", - " inflating: traffic-sign/labels/train/00490.txt \n", - " inflating: traffic-sign/labels/train/00492.txt \n", - " inflating: traffic-sign/labels/train/00493.txt \n", - " inflating: traffic-sign/labels/train/00496.txt \n", - " inflating: traffic-sign/labels/train/00497.txt \n", - " inflating: traffic-sign/labels/train/00498.txt \n", - " inflating: traffic-sign/labels/train/00499.txt \n", - " inflating: traffic-sign/labels/train/00500.txt \n", - " inflating: traffic-sign/labels/train/00501.txt \n", - " inflating: traffic-sign/labels/train/00503.txt \n", - " inflating: traffic-sign/labels/train/00504.txt \n", - " inflating: traffic-sign/labels/train/00505.txt \n", - " inflating: traffic-sign/labels/train/00508.txt \n", - " inflating: traffic-sign/labels/train/00509.txt \n", - " inflating: traffic-sign/labels/train/00512.txt \n", - " inflating: traffic-sign/labels/train/00515.txt \n", - " inflating: traffic-sign/labels/train/00516.txt \n", - " inflating: traffic-sign/labels/train/00518.txt \n", - " inflating: traffic-sign/labels/train/00519.txt \n", - " inflating: traffic-sign/labels/train/00520.txt \n", - " inflating: traffic-sign/labels/train/00521.txt \n", - " inflating: traffic-sign/labels/train/00523.txt \n", - " inflating: traffic-sign/labels/train/00524.txt \n", - " inflating: traffic-sign/labels/train/00527.txt \n", - " inflating: traffic-sign/labels/train/00528.txt \n", - " inflating: traffic-sign/labels/train/00530.txt \n", - " inflating: traffic-sign/labels/train/00531.txt \n", - " inflating: traffic-sign/labels/train/00536.txt \n", - " inflating: traffic-sign/labels/train/00542.txt \n", - " inflating: traffic-sign/labels/train/00544.txt \n", - " inflating: traffic-sign/labels/train/00545.txt \n", - " inflating: traffic-sign/labels/train/00548.txt \n", - " inflating: traffic-sign/labels/train/00554.txt \n", - " inflating: traffic-sign/labels/train/00556.txt \n", - " inflating: traffic-sign/labels/train/00560.txt \n", - " inflating: traffic-sign/labels/train/00564.txt \n", - " inflating: traffic-sign/labels/train/00565.txt \n", - " inflating: traffic-sign/labels/train/00566.txt \n", - " inflating: traffic-sign/labels/train/00567.txt \n", - " inflating: traffic-sign/labels/train/00570.txt \n", - " inflating: traffic-sign/labels/train/00571.txt \n", - " inflating: traffic-sign/labels/train/00575.txt \n", - " inflating: traffic-sign/labels/train/00593.txt \n", - " inflating: traffic-sign/labels/train/00599.txt \n", - " inflating: traffic-sign/labels/train/00601.txt \n", - " inflating: traffic-sign/labels/train/00602.txt \n", - " inflating: traffic-sign/labels/train/00603.txt \n", - " inflating: traffic-sign/labels/train/00604.txt \n", - " inflating: traffic-sign/labels/train/00605.txt \n", - " inflating: traffic-sign/labels/train/00606.txt \n", - " inflating: traffic-sign/labels/train/00607.txt \n", - " inflating: traffic-sign/labels/train/00608.txt \n", - " inflating: traffic-sign/labels/train/00609.txt \n", - " inflating: traffic-sign/labels/train/00610.txt \n", - " inflating: traffic-sign/labels/train/00611.txt \n", - " inflating: traffic-sign/labels/train/00612.txt \n", - " inflating: traffic-sign/labels/train/00613.txt \n", - " inflating: traffic-sign/labels/train/00615.txt \n", - " inflating: traffic-sign/labels/train/00616.txt \n", - " inflating: traffic-sign/labels/train/00619.txt \n", - " inflating: traffic-sign/labels/train/00620.txt \n", - " inflating: traffic-sign/labels/train/00621.txt \n", - " inflating: traffic-sign/labels/train/00622.txt \n", - " inflating: traffic-sign/labels/train/00623.txt \n", - " inflating: traffic-sign/labels/train/00624.txt \n", - " inflating: traffic-sign/labels/train/00625.txt \n", - " inflating: traffic-sign/labels/train/00628.txt \n", - " inflating: traffic-sign/labels/train/00630.txt \n", - " inflating: traffic-sign/labels/train/00631.txt \n", - " inflating: traffic-sign/labels/train/00632.txt \n", - " inflating: traffic-sign/labels/train/00633.txt \n", - " inflating: traffic-sign/labels/train/00634.txt \n", - " inflating: traffic-sign/labels/train/00635.txt \n", - " inflating: traffic-sign/labels/train/00637.txt \n", - " inflating: traffic-sign/labels/train/00638.txt \n", - " inflating: traffic-sign/labels/train/00639.txt \n", - " inflating: traffic-sign/labels/train/00640.txt \n", - " inflating: traffic-sign/labels/train/00641.txt \n", - " inflating: traffic-sign/labels/train/00645.txt \n", - " inflating: traffic-sign/labels/train/00648.txt \n", - " inflating: traffic-sign/labels/train/00649.txt \n", - " inflating: traffic-sign/labels/train/00650.txt \n", - " inflating: traffic-sign/labels/train/00653.txt \n", - " inflating: traffic-sign/labels/train/00654.txt \n", - " inflating: traffic-sign/labels/train/00655.txt \n", - " inflating: traffic-sign/labels/train/00656.txt \n", - " inflating: traffic-sign/labels/train/00657.txt \n", - " inflating: traffic-sign/labels/train/00658.txt \n", - " inflating: traffic-sign/labels/train/00659.txt \n", - " inflating: traffic-sign/labels/train/00660.txt \n", - " inflating: traffic-sign/labels/train/00661.txt \n", - " inflating: traffic-sign/labels/train/00662.txt \n", - " inflating: traffic-sign/labels/train/00663.txt \n", - " inflating: traffic-sign/labels/train/00664.txt \n", - " inflating: traffic-sign/labels/train/00665.txt \n", - " inflating: traffic-sign/labels/train/00667.txt \n", - " inflating: traffic-sign/labels/train/00668.txt \n", - " inflating: traffic-sign/labels/train/00669.txt \n", - " inflating: traffic-sign/labels/train/00670.txt \n", - " inflating: traffic-sign/labels/train/00673.txt \n", - " inflating: traffic-sign/labels/train/00674.txt \n", - " inflating: traffic-sign/labels/train/00675.txt \n", - " inflating: traffic-sign/labels/train/00678.txt \n", - " inflating: traffic-sign/labels/train/00679.txt \n", - " inflating: traffic-sign/labels/train/00680.txt \n", - " inflating: traffic-sign/labels/train/00681.txt \n", - " inflating: traffic-sign/labels/train/00682.txt \n", - " inflating: traffic-sign/labels/train/00688.txt \n", - " inflating: traffic-sign/labels/train/00689.txt \n", - " inflating: traffic-sign/labels/train/00690.txt \n", - " inflating: traffic-sign/labels/train/00691.txt \n", - " inflating: traffic-sign/labels/train/00692.txt \n", - " inflating: traffic-sign/labels/train/00693.txt \n", - " inflating: traffic-sign/labels/train/00694.txt \n", - " inflating: traffic-sign/labels/train/00696.txt \n", - " inflating: traffic-sign/labels/train/00697.txt \n", - " inflating: traffic-sign/labels/train/00698.txt \n", - " inflating: traffic-sign/labels/train/00699.txt \n", - " inflating: traffic-sign/labels/train/00700.txt \n", - " inflating: traffic-sign/labels/train/00701.txt \n", - " inflating: traffic-sign/labels/train/00705.txt \n", - " inflating: traffic-sign/labels/train/00706.txt \n", - " inflating: traffic-sign/labels/train/00707.txt \n", - " inflating: traffic-sign/labels/train/00712.txt \n", - " inflating: traffic-sign/labels/train/00714.txt \n", - " inflating: traffic-sign/labels/train/00715.txt \n", - " inflating: traffic-sign/labels/train/00716.txt \n", - " inflating: traffic-sign/labels/train/00719.txt \n", - " inflating: traffic-sign/labels/train/00720.txt \n", - " inflating: traffic-sign/labels/train/00721.txt \n", - " inflating: traffic-sign/labels/train/00722.txt \n", - " inflating: traffic-sign/labels/train/00723.txt \n", - " inflating: traffic-sign/labels/train/00725.txt \n", - " inflating: traffic-sign/labels/train/00728.txt \n", - " inflating: traffic-sign/labels/train/00730.txt \n", - " inflating: traffic-sign/labels/train/00732.txt \n", - " inflating: traffic-sign/labels/train/00733.txt \n", - " inflating: traffic-sign/labels/train/00734.txt \n", - " inflating: traffic-sign/labels/train/00736.txt \n", - " inflating: traffic-sign/labels/train/00737.txt \n", - " inflating: traffic-sign/labels/train/00738.txt \n", - " inflating: traffic-sign/labels/train/00741.txt \n", - " inflating: traffic-sign/labels/train/00742.txt \n", - " inflating: traffic-sign/labels/train/00744.txt \n", - " inflating: traffic-sign/labels/train/00746.txt \n", - " inflating: traffic-sign/labels/train/00747.txt \n", - " inflating: traffic-sign/labels/train/00749.txt \n", - " inflating: traffic-sign/labels/train/00751.txt \n", - " inflating: traffic-sign/labels/train/00752.txt \n", - " inflating: traffic-sign/labels/train/00754.txt \n", - " inflating: traffic-sign/labels/train/00755.txt \n", - " inflating: traffic-sign/labels/train/00756.txt \n", - " inflating: traffic-sign/labels/train/00758.txt \n", - " inflating: traffic-sign/labels/train/00760.txt \n", - " inflating: traffic-sign/labels/train/00763.txt \n", - " inflating: traffic-sign/labels/train/00764.txt \n", - " inflating: traffic-sign/labels/train/00766.txt \n", - " inflating: traffic-sign/labels/train/00770.txt \n", - " inflating: traffic-sign/labels/train/00771.txt \n", - " inflating: traffic-sign/labels/train/00772.txt \n", - " inflating: traffic-sign/labels/train/00774.txt \n", - " inflating: traffic-sign/labels/train/00776.txt \n", - " inflating: traffic-sign/labels/train/00777.txt \n", - " inflating: traffic-sign/labels/train/00778.txt \n", - " inflating: traffic-sign/labels/train/00779.txt \n", - " inflating: traffic-sign/labels/train/00782.txt \n", - " inflating: traffic-sign/labels/train/00783.txt \n", - " inflating: traffic-sign/labels/train/00784.txt \n", - " inflating: traffic-sign/labels/train/00785.txt \n", - " inflating: traffic-sign/labels/train/00787.txt \n", - " inflating: traffic-sign/labels/train/00788.txt \n", - " inflating: traffic-sign/labels/train/00789.txt \n", - " inflating: traffic-sign/labels/train/00791.txt \n", - " inflating: traffic-sign/labels/train/00794.txt \n", - " inflating: traffic-sign/labels/train/00797.txt \n", - " inflating: traffic-sign/labels/train/00798.txt \n", - " inflating: traffic-sign/labels/train/00801.txt \n", - " inflating: traffic-sign/labels/train/00803.txt \n", - " inflating: traffic-sign/labels/train/00805.txt \n", - " inflating: traffic-sign/labels/train/00806.txt \n", - " inflating: traffic-sign/labels/train/00807.txt \n", - " inflating: traffic-sign/labels/train/00809.txt \n", - " inflating: traffic-sign/labels/train/00810.txt \n", - " inflating: traffic-sign/labels/train/00811.txt \n", - " inflating: traffic-sign/labels/train/00813.txt \n", - " inflating: traffic-sign/labels/train/00816.txt \n", - " inflating: traffic-sign/labels/train/00817.txt \n", - " inflating: traffic-sign/labels/train/00818.txt \n", - " inflating: traffic-sign/labels/train/00821.txt \n", - " inflating: traffic-sign/labels/train/00822.txt \n", - " inflating: traffic-sign/labels/train/00823.txt \n", - " inflating: traffic-sign/labels/train/00824.txt \n", - " inflating: traffic-sign/labels/train/00827.txt \n", - " inflating: traffic-sign/labels/train/00828.txt \n", - " inflating: traffic-sign/labels/train/00831.txt \n", - " inflating: traffic-sign/labels/train/00833.txt \n", - " inflating: traffic-sign/labels/train/00834.txt \n", - " inflating: traffic-sign/labels/train/00835.txt \n", - " inflating: traffic-sign/labels/train/00836.txt \n", - " inflating: traffic-sign/labels/train/00837.txt \n", - " inflating: traffic-sign/labels/train/00838.txt \n", - " inflating: traffic-sign/labels/train/00839.txt \n", - " inflating: traffic-sign/labels/train/00841.txt \n", - " inflating: traffic-sign/labels/train/00844.txt \n", - " inflating: traffic-sign/labels/train/00845.txt \n", - " inflating: traffic-sign/labels/train/00846.txt \n", - " inflating: traffic-sign/labels/train/00848.txt \n", - " inflating: traffic-sign/labels/train/00849.txt \n", - " inflating: traffic-sign/labels/train/00850.txt \n", - " inflating: traffic-sign/labels/train/00853.txt \n", - " inflating: traffic-sign/labels/train/00854.txt \n", - " inflating: traffic-sign/labels/train/00855.txt \n", - " inflating: traffic-sign/labels/train/00857.txt \n", - " inflating: traffic-sign/labels/train/00858.txt \n", - " inflating: traffic-sign/labels/train/00859.txt \n", - " inflating: traffic-sign/labels/train/00860.txt \n", - " inflating: traffic-sign/labels/train/00862.txt \n", - " inflating: traffic-sign/labels/train/00863.txt \n", - " inflating: traffic-sign/labels/train/00865.txt \n", - " inflating: traffic-sign/labels/train/00866.txt \n", - " inflating: traffic-sign/labels/train/00867.txt \n", - " inflating: traffic-sign/labels/train/00868.txt \n", - " inflating: traffic-sign/labels/train/00869.txt \n", - " inflating: traffic-sign/labels/train/00870.txt \n", - " inflating: traffic-sign/labels/train/00871.txt \n", - " inflating: traffic-sign/labels/train/00872.txt \n", - " inflating: traffic-sign/labels/train/00881.txt \n", - " inflating: traffic-sign/labels/train/00882.txt \n", - " inflating: traffic-sign/labels/train/00884.txt \n", - " inflating: traffic-sign/labels/train/00886.txt \n", - " inflating: traffic-sign/labels/train/00887.txt \n", - " inflating: traffic-sign/labels/train/00888.txt \n", - " inflating: traffic-sign/labels/train/00889.txt \n", - " inflating: traffic-sign/labels/train/00891.txt \n", - " inflating: traffic-sign/labels/train/00893.txt \n", - " inflating: traffic-sign/labels/train/00894.txt \n", - " inflating: traffic-sign/labels/train/00895.txt \n", - " inflating: traffic-sign/labels/train/00896.txt \n", - " inflating: traffic-sign/labels/train/00897.txt \n", - " inflating: traffic-sign/labels/train/00898.txt \n", - " inflating: traffic-sign/labels/train/00899.txt \n", - " creating: traffic-sign/labels/valid/\n", - " inflating: traffic-sign/labels/valid/00002.txt \n", - " inflating: traffic-sign/labels/valid/00004.txt \n", - " inflating: traffic-sign/labels/valid/00015.txt \n", - " inflating: traffic-sign/labels/valid/00023.txt \n", - " inflating: traffic-sign/labels/valid/00025.txt \n", - " inflating: traffic-sign/labels/valid/00051.txt \n", - " inflating: traffic-sign/labels/valid/00075.txt \n", - " inflating: traffic-sign/labels/valid/00078.txt \n", - " inflating: traffic-sign/labels/valid/00082.txt \n", - " inflating: traffic-sign/labels/valid/00085.txt \n", - " inflating: traffic-sign/labels/valid/00087.txt \n", - " inflating: traffic-sign/labels/valid/00100.txt \n", - " inflating: traffic-sign/labels/valid/00104.txt \n", - " inflating: traffic-sign/labels/valid/00116.txt \n", - " inflating: traffic-sign/labels/valid/00134.txt \n", - " inflating: traffic-sign/labels/valid/00141.txt \n", - " inflating: traffic-sign/labels/valid/00142.txt \n", - " inflating: traffic-sign/labels/valid/00155.txt \n", - " inflating: traffic-sign/labels/valid/00161.txt \n", - " inflating: traffic-sign/labels/valid/00182.txt \n", - " inflating: traffic-sign/labels/valid/00183.txt \n", - " inflating: traffic-sign/labels/valid/00185.txt \n", - " inflating: traffic-sign/labels/valid/00189.txt \n", - " inflating: traffic-sign/labels/valid/00190.txt \n", - " inflating: traffic-sign/labels/valid/00204.txt \n", - " inflating: traffic-sign/labels/valid/00205.txt \n", - " inflating: traffic-sign/labels/valid/00216.txt \n", - " inflating: traffic-sign/labels/valid/00227.txt \n", - " inflating: traffic-sign/labels/valid/00228.txt \n", - " inflating: traffic-sign/labels/valid/00233.txt \n", - " inflating: traffic-sign/labels/valid/00236.txt \n", - " inflating: traffic-sign/labels/valid/00256.txt \n", - " inflating: traffic-sign/labels/valid/00258.txt \n", - " inflating: traffic-sign/labels/valid/00260.txt \n", - " inflating: traffic-sign/labels/valid/00274.txt \n", - " inflating: traffic-sign/labels/valid/00280.txt \n", - " inflating: traffic-sign/labels/valid/00306.txt \n", - " inflating: traffic-sign/labels/valid/00307.txt \n", - " inflating: traffic-sign/labels/valid/00310.txt \n", - " inflating: traffic-sign/labels/valid/00320.txt \n", - " inflating: traffic-sign/labels/valid/00341.txt \n", - " inflating: traffic-sign/labels/valid/00344.txt \n", - " inflating: traffic-sign/labels/valid/00350.txt \n", - " inflating: traffic-sign/labels/valid/00352.txt \n", - " inflating: traffic-sign/labels/valid/00367.txt \n", - " inflating: traffic-sign/labels/valid/00384.txt \n", - " inflating: traffic-sign/labels/valid/00388.txt \n", - " inflating: traffic-sign/labels/valid/00390.txt \n", - " inflating: traffic-sign/labels/valid/00397.txt \n", - " inflating: traffic-sign/labels/valid/00402.txt \n", - " inflating: traffic-sign/labels/valid/00418.txt \n", - " inflating: traffic-sign/labels/valid/00423.txt \n", - " inflating: traffic-sign/labels/valid/00426.txt \n", - " inflating: traffic-sign/labels/valid/00438.txt \n", - " inflating: traffic-sign/labels/valid/00446.txt \n", - " inflating: traffic-sign/labels/valid/00456.txt \n", - " inflating: traffic-sign/labels/valid/00461.txt \n", - " inflating: traffic-sign/labels/valid/00463.txt \n", - " inflating: traffic-sign/labels/valid/00470.txt \n", - " inflating: traffic-sign/labels/valid/00471.txt \n", - " inflating: traffic-sign/labels/valid/00473.txt \n", - " inflating: traffic-sign/labels/valid/00474.txt \n", - " inflating: traffic-sign/labels/valid/00483.txt \n", - " inflating: traffic-sign/labels/valid/00491.txt \n", - " inflating: traffic-sign/labels/valid/00494.txt \n", - " inflating: traffic-sign/labels/valid/00502.txt \n", - " inflating: traffic-sign/labels/valid/00507.txt \n", - " inflating: traffic-sign/labels/valid/00513.txt \n", - " inflating: traffic-sign/labels/valid/00514.txt \n", - " inflating: traffic-sign/labels/valid/00517.txt \n", - " inflating: traffic-sign/labels/valid/00551.txt \n", - " inflating: traffic-sign/labels/valid/00552.txt \n", - " inflating: traffic-sign/labels/valid/00557.txt \n", - " inflating: traffic-sign/labels/valid/00626.txt \n", - " inflating: traffic-sign/labels/valid/00642.txt \n", - " inflating: traffic-sign/labels/valid/00644.txt \n", - " inflating: traffic-sign/labels/valid/00646.txt \n", - " inflating: traffic-sign/labels/valid/00647.txt \n", - " inflating: traffic-sign/labels/valid/00651.txt \n", - " inflating: traffic-sign/labels/valid/00671.txt \n", - " inflating: traffic-sign/labels/valid/00672.txt \n", - " inflating: traffic-sign/labels/valid/00683.txt \n", - " inflating: traffic-sign/labels/valid/00685.txt \n", - " inflating: traffic-sign/labels/valid/00686.txt \n", - " inflating: traffic-sign/labels/valid/00695.txt \n", - " inflating: traffic-sign/labels/valid/00702.txt \n", - " inflating: traffic-sign/labels/valid/00703.txt \n", - " inflating: traffic-sign/labels/valid/00704.txt \n", - " inflating: traffic-sign/labels/valid/00710.txt \n", - " inflating: traffic-sign/labels/valid/00717.txt \n", - " inflating: traffic-sign/labels/valid/00729.txt \n", - " inflating: traffic-sign/labels/valid/00740.txt \n", - " inflating: traffic-sign/labels/valid/00761.txt \n", - " inflating: traffic-sign/labels/valid/00762.txt \n", - " inflating: traffic-sign/labels/valid/00773.txt \n", - " inflating: traffic-sign/labels/valid/00775.txt \n", - " inflating: traffic-sign/labels/valid/00780.txt \n", - " inflating: traffic-sign/labels/valid/00795.txt \n", - " inflating: traffic-sign/labels/valid/00802.txt \n", - " inflating: traffic-sign/labels/valid/00808.txt \n", - " inflating: traffic-sign/labels/valid/00820.txt \n", - " inflating: traffic-sign/labels/valid/00825.txt \n", - " inflating: traffic-sign/labels/valid/00829.txt \n", - " inflating: traffic-sign/labels/valid/00842.txt \n", - " inflating: traffic-sign/labels/valid/00851.txt \n", - " inflating: traffic-sign/labels/valid/00852.txt \n", - " inflating: traffic-sign/labels/valid/00864.txt \n", - " inflating: traffic-sign/labels/valid/00874.txt \n", - " inflating: traffic-sign/labels/valid/00876.txt \n", - " inflating: traffic-sign/labels/valid/00879.txt \n", - " inflating: traffic-sign/labels/valid/00885.txt \n" - ] - } - ], - "source": [ - "!unzip traffic-sign.zip" - ] - }, - { - "cell_type": "markdown", - "id": "b1514358-3743-45af-a008-4fd86bdb96c9", - "metadata": {}, - "source": [ - "#### Download YOLOX pretrained weights" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "e092e41a-68d2-4db6-9603-42479feb3279", - "metadata": {}, - "outputs": [], - "source": [ - "!mkdir -p ./weights/yolox" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "7df23bf0-1920-4d85-964c-dc1298bf7a84", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2023-12-20 08:21:43-- https://netspresso-trainer-public.s3.ap-northeast-2.amazonaws.com/checkpoint/cspdarknet/yolox_s.pth\n", - "Resolving netspresso-trainer-public.s3.ap-northeast-2.amazonaws.com (netspresso-trainer-public.s3.ap-northeast-2.amazonaws.com)... 52.219.60.3, 52.219.56.55, 3.5.140.106, ...\n", - "Connecting to netspresso-trainer-public.s3.ap-northeast-2.amazonaws.com (netspresso-trainer-public.s3.ap-northeast-2.amazonaws.com)|52.219.60.3|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 16969821 (16M) [binary/octet-stream]\n", - "Saving to: ‘./weights/yolox/yolox_s.pth’\n", - "\n", - "./weights/yolox/yol 100%[===================>] 16.18M 75.6MB/s in 0.2s \n", - "\n", - "2023-12-20 08:21:44 (75.6 MB/s) - ‘./weights/yolox/yolox_s.pth’ saved [16969821/16969821]\n", - "\n" - ] - } - ], - "source": [ - "!wget https://netspresso-trainer-public.s3.ap-northeast-2.amazonaws.com/checkpoint/cspdarknet/yolox_s.pth -O ./weights/yolox/yolox_s.pth" - ] - }, - { - "cell_type": "markdown", - "id": "ce91072f-28ec-4855-971b-d3889dae5ce0", - "metadata": {}, - "source": [ - "### 1-1. Declare trainer" - ] - }, - { - "cell_type": "markdown", - "id": "8cc2761b-d1d5-40a3-a391-88eb1492bbcf", - "metadata": {}, - "source": [ - "First, declare the ModelTrainer. \n", - "\n", - "Currently, ModelTrainer supports training pipelines about three computer vision tasks:\n", - "\n", - "- IMAGE_CLASSIFICATION\n", - "- OBJECT_DETECTION\n", - "- SEMANTIC_SEGMENTATION" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "f78cdc2f-8994-4604-8c83-9ed6011aa6ad", - "metadata": {}, - "outputs": [], - "source": [ - "trainer = ModelTrainer(task=Task.OBJECT_DETECTION)" - ] - }, - { - "cell_type": "markdown", - "id": "6b718c57-b0e0-4700-863a-7a2d95ecb90e", - "metadata": {}, - "source": [ - "### 1-2. Set dataset config" - ] - }, - { - "cell_type": "markdown", - "id": "74ade4ed-09ce-4ba7-a8e7-9239b8b6bcac", - "metadata": {}, - "source": [ - "Please set the dataset you want to train.\n", - "\n", - "The description of each argument is as follows.\n", - "- name: the name of dataset.\n", - "- root_path: root directory of dataset.\n", - "- train_image: training image directory.\n", - "- train_label: training label directory.\n", - "- valid_image: validation image directory.\n", - "- valid_lable: validation label directory.\n", - "- id_mapping: class name list for each class." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "c0e74828-8078-4634-a6e6-d3910382e623", - "metadata": {}, - "outputs": [], - "source": [ - "trainer.set_dataset_config(\n", - " name=\"traffic_sign_config_example\",\n", - " root_path=\"/root/traffic-sign\",\n", - " train_image=\"images/train\",\n", - " train_label=\"labels/train\",\n", - " valid_image=\"images/valid\",\n", - " valid_label=\"labels/valid\",\n", - " id_mapping=[\"prohibitory\", \"danger\", \"mandatory\", \"other\"],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "09bbdacb-1b4d-4c2b-a00e-e5709f2fb23a", - "metadata": {}, - "source": [ - "### 1-3. Set model config" - ] - }, - { - "cell_type": "markdown", - "id": "a71fcee7-1a09-406d-9040-2f20f3f1ea5c", - "metadata": {}, - "source": [ - "Please set the model you want to train.\n", - "\n", - "You can check the available models from `trainer.available_models`." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "6d786c78-c433-49ce-bf84-b6b0c1a85527", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['EfficientFormer', 'YOLOX']" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "trainer.available_models" - ] - }, - { - "cell_type": "markdown", - "id": "5f132845-d86e-4097-b707-1aee898abeb2", - "metadata": {}, - "source": [ - "We set it up as below to train with the YOLOX model." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "98196b5c-bfb0-48e4-9585-5870629bc0e1", - "metadata": {}, - "outputs": [], - "source": [ - "trainer.set_model_config(model_name=\"YOLOX\")" - ] - }, - { - "cell_type": "markdown", - "id": "7685003a-10f4-4244-b1b2-52fa72e823ec", - "metadata": {}, - "source": [ - "### 1-4. Set training config" - ] - }, - { - "cell_type": "markdown", - "id": "63f43ca2-b48a-4b04-8836-e71b7379fcca", - "metadata": {}, - "source": [ - "Please set the hyperparameter such as **epochs**, **batch size**, and **learning rate** for training.\n", - "\n", - "If training config is not set, it will be set as **the default option for the task**." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "776eccea-879e-4f27-b509-d06fb8adb524", - "metadata": {}, - "outputs": [], - "source": [ - "trainer.set_training_config(epochs=40, batch_size=16, lr=6e-3, opt=\"adamw\", warmup_epochs=10)" - ] - }, - { - "cell_type": "markdown", - "id": "97f9f39d-1c9c-4309-a1f6-f81fe33fb46f", - "metadata": {}, - "source": [ - "### 1-5. Train" - ] - }, - { - "cell_type": "markdown", - "id": "2e52d6a7-054c-4188-8586-5f9b6cedb337", - "metadata": {}, - "source": [ - "Please assign a GPU to use for training to run the training.\n", - "\n", - "- For single-gpu: \"0\"\n", - "- For multi-gpu: \"0,1,2,3\"" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "90a9e24b-b9fe-4b7d-8d41-4c3a39e3e3ad", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/conda/lib/python3.10/site-packages/torch/distributed/launch.py:180: FutureWarning: The module torch.distributed.launch is deprecated\n", - "and will be removed in future. Use torchrun.\n", - "Note that --use_env is set by default in torchrun.\n", - "If your script expects `--local_rank` argument to be set, please\n", - "change it to read from `os.environ['LOCAL_RANK']` instead. See \n", - "https://pytorch.org/docs/stable/distributed.html#launch-utility for \n", - "further instructions\n", - "\n", - " warnings.warn(\n", - "WARNING:torch.distributed.run:\n", - "*****************************************\n", - "Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. \n", - "*****************************************\n", - "2023-12-20_08:21:53 UTC | INFO\t\t| train_common::39 >>> Task: detection | Model: yolox_s | Training with torch.fx model? False\n", - "2023-12-20_08:21:53 UTC | INFO\t\t| build_dataset::20 >>> ----------------------------------------\n", - "2023-12-20_08:21:53 UTC | INFO\t\t| build_dataset::21 >>> Loading data...\n", - "2023-12-20_08:21:53 UTC | INFO\t\t| build_dataset::93 >>> Summary | Dataset: (with local format)\n", - "2023-12-20_08:21:53 UTC | INFO\t\t| build_dataset::94 >>> Summary | Training dataset: 630 sample(s)\n", - "2023-12-20_08:21:53 UTC | INFO\t\t| build_dataset::96 >>> Summary | Validation dataset: 111 sample(s)\n", - " 0%| | 0/19 [00:00:156 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 1 / 40\n", - "2023-12-20_08:22:13 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0006090\n", - "2023-12-20_08:22:13 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 10.4374824\n", - "2023-12-20_08:22:13 UTC | INFO\t\t| __call__::33 >>> training loss: 1414.4106349\n", - "2023-12-20_08:22:13 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.00017303210080668103), ('map75', 0.0), ('map50_95', 1.7303210080668102e-05)]\n", - "2023-12-20_08:22:13 UTC | INFO\t\t| __call__::37 >>> validation loss: 1617.5479889\n", - "2023-12-20_08:22:13 UTC | INFO\t\t| __call__::39 >>> validation metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:22:14 UTC | INFO\t\t| save_checkpoint::299 >>> Best model saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.pth\n", - "/opt/conda/lib/python3.10/site-packages/torch/onnx/_internal/jit_utils.py:258: UserWarning: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function. (Triggered internally at ../torch/csrc/jit/passes/onnx/shape_type_inference.cpp:1884.)\n", - " _C._jit_pass_onnx_node_shape_type_inference(node, params_dict, opset_version)\n", - "/opt/conda/lib/python3.10/site-packages/torch/onnx/utils.py:687: UserWarning: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function. (Triggered internally at ../torch/csrc/jit/passes/onnx/shape_type_inference.cpp:1884.)\n", - " _C._jit_pass_onnx_graph_shape_type_inference(\n", - "/opt/conda/lib/python3.10/site-packages/torch/onnx/utils.py:1178: UserWarning: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function. (Triggered internally at ../torch/csrc/jit/passes/onnx/shape_type_inference.cpp:1884.)\n", - " _C._jit_pass_onnx_graph_shape_type_inference(\n", - "2023-12-20_08:22:15 UTC | INFO\t\t| save_checkpoint::303 >>> ONNX model converting and saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.onnx\n", - "2023-12-20_08:22:15 UTC | INFO\t\t| save_checkpoint::306 >>> PyTorch FX model tracing and saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.pt\n", - "2023-12-20_08:22:15 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s/version_2/training_summary.ckpt\n", - "2023-12-20_08:22:15 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:22:22 UTC | INFO\t\t| __call__::27 >>> Epoch: 2 / 40\n", - "2023-12-20_08:22:22 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0012080\n", - "2023-12-20_08:22:22 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.0761657\n", - "2023-12-20_08:22:22 UTC | INFO\t\t| __call__::33 >>> training loss: 711.0335742\n", - "2023-12-20_08:22:22 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - " 0%| | 0/19 [00:00:189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 3 / 40\n", - "2023-12-20_08:22:30 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0018070\n", - "2023-12-20_08:22:30 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.5513067\n", - "2023-12-20_08:22:30 UTC | INFO\t\t| __call__::33 >>> training loss: 341.6857219\n", - "2023-12-20_08:22:30 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:22:30 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 4 / 40\n", - "2023-12-20_08:22:37 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0024060\n", - "2023-12-20_08:22:37 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.5163593\n", - "2023-12-20_08:22:37 UTC | INFO\t\t| __call__::33 >>> training loss: 188.7892809\n", - "2023-12-20_08:22:37 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:22:37 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:22:45 UTC | INFO\t\t| __call__::27 >>> Epoch: 5 / 40\n", - "2023-12-20_08:22:45 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0030050\n", - "2023-12-20_08:22:45 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.4877079\n", - "2023-12-20_08:22:45 UTC | INFO\t\t| __call__::33 >>> training loss: 95.2800152\n", - " 0%| | 0/19 [00:00:34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:22:45 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 6 / 40\n", - "2023-12-20_08:22:52 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0036040\n", - "2023-12-20_08:22:52 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.5253224\n", - "2023-12-20_08:22:52 UTC | INFO\t\t| __call__::33 >>> training loss: 50.1029380\n", - "2023-12-20_08:22:52 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:22:52 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 7 / 40\n", - "2023-12-20_08:23:00 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0042030\n", - "2023-12-20_08:23:00 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.5222013\n", - "2023-12-20_08:23:00 UTC | INFO\t\t| __call__::33 >>> training loss: 31.3534494\n", - "2023-12-20_08:23:00 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:23:00 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 8 / 40\n", - "2023-12-20_08:23:07 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0048020\n", - "2023-12-20_08:23:07 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.5078077\n", - "2023-12-20_08:23:07 UTC | INFO\t\t| __call__::33 >>> training loss: 21.9371144\n", - "2023-12-20_08:23:07 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:23:07 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:23:15 UTC | INFO\t\t| __call__::27 >>> Epoch: 9 / 40\n", - " 0%| | 0/19 [00:00:30 >>> learning rate: 0.0054010\n", - "2023-12-20_08:23:15 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.5374753\n", - "2023-12-20_08:23:15 UTC | INFO\t\t| __call__::33 >>> training loss: 17.9434943\n", - "2023-12-20_08:23:15 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:23:15 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 10 / 40\n", - "2023-12-20_08:23:23 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0060000\n", - "2023-12-20_08:23:23 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.5162177\n", - "2023-12-20_08:23:23 UTC | INFO\t\t| __call__::33 >>> training loss: 13.6733962\n", - "2023-12-20_08:23:23 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:23:23 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 11 / 40\n", - "2023-12-20_08:23:39 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0052813\n", - "2023-12-20_08:23:39 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 8.8121099\n", - "2023-12-20_08:23:39 UTC | INFO\t\t| __call__::33 >>> training loss: 10.2915794\n", - "2023-12-20_08:23:39 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.10686853780864194), ('map75', 0.031617667995444194), ('map50_95', 0.04480382163443496)]\n", - "2023-12-20_08:23:39 UTC | INFO\t\t| __call__::37 >>> validation loss: 10.7575002\n", - "2023-12-20_08:23:39 UTC | INFO\t\t| __call__::39 >>> validation metric: [('map50', 0.12711594827586206), ('map75', 0.12711594827586206), ('map50_95', 0.07626956896551725)]\n", - "2023-12-20_08:23:40 UTC | INFO\t\t| save_checkpoint::299 >>> Best model saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.pth\n", - "2023-12-20_08:23:41 UTC | INFO\t\t| save_checkpoint::303 >>> ONNX model converting and saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.onnx\n", - "2023-12-20_08:23:41 UTC | INFO\t\t| save_checkpoint::306 >>> PyTorch FX model tracing and saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.pt\n", - "2023-12-20_08:23:41 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s/version_2/training_summary.ckpt\n", - "2023-12-20_08:23:41 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:23:48 UTC | INFO\t\t| __call__::27 >>> Epoch: 12 / 40\n", - "2023-12-20_08:23:48 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0051215\n", - "2023-12-20_08:23:48 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.0516951\n", - "2023-12-20_08:23:48 UTC | INFO\t\t| __call__::33 >>> training loss: 8.2167112\n", - "2023-12-20_08:23:48 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.3455967909414378), ('map75', 0.17051293041126664), ('map50_95', 0.1796745709011917)]\n", - "2023-12-20_08:23:48 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:23:56 UTC | INFO\t\t| __call__::27 >>> Epoch: 13 / 40\n", - "2023-12-20_08:23:56 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0049485\n", - "2023-12-20_08:23:56 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6061423\n", - "2023-12-20_08:23:56 UTC | INFO\t\t| __call__::33 >>> training loss: 7.0258435\n", - "2023-12-20_08:23:56 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.3943107720409427), ('map75', 0.1299043256157939), ('map50_95', 0.17811473395977337)]\n", - "2023-12-20_08:23:56 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:24:04 UTC | INFO\t\t| __call__::27 >>> Epoch: 14 / 40\n", - "2023-12-20_08:24:04 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0047636\n", - "2023-12-20_08:24:04 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.5946496\n", - "2023-12-20_08:24:04 UTC | INFO\t\t| __call__::33 >>> training loss: 5.8810498\n", - "2023-12-20_08:24:04 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.5769681795080797), ('map75', 0.34311225037375226), ('map50_95', 0.3294392657489364)]\n", - "2023-12-20_08:24:04 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:24:11 UTC | INFO\t\t| __call__::27 >>> Epoch: 15 / 40\n", - "2023-12-20_08:24:11 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0045677\n", - "2023-12-20_08:24:11 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6157563\n", - "2023-12-20_08:24:11 UTC | INFO\t\t| __call__::33 >>> training loss: 5.1503853\n", - "2023-12-20_08:24:11 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.60585101395889), ('map75', 0.46033839486736183), ('map50_95', 0.38923960970683347)]\n", - "2023-12-20_08:24:11 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:24:19 UTC | INFO\t\t| __call__::27 >>> Epoch: 16 / 40\n", - "2023-12-20_08:24:19 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0043622\n", - "2023-12-20_08:24:19 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.5883863\n", - "2023-12-20_08:24:19 UTC | INFO\t\t| __call__::33 >>> training loss: 5.0433131\n", - "2023-12-20_08:24:19 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.6539654554856895), ('map75', 0.41862077436950046), ('map50_95', 0.3914403267393224)]\n", - "2023-12-20_08:24:19 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:24:26 UTC | INFO\t\t| __call__::27 >>> Epoch: 17 / 40\n", - "2023-12-20_08:24:26 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0041484\n", - "2023-12-20_08:24:26 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6336157\n", - "2023-12-20_08:24:26 UTC | INFO\t\t| __call__::33 >>> training loss: 4.6563755\n", - "2023-12-20_08:24:26 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.6686221120800792), ('map75', 0.5107400475907077), ('map50_95', 0.4270147574813225)]\n", - "2023-12-20_08:24:26 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:24:34 UTC | INFO\t\t| __call__::27 >>> Epoch: 18 / 40\n", - "2023-12-20_08:24:34 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0039274\n", - "2023-12-20_08:24:34 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6609187\n", - "2023-12-20_08:24:34 UTC | INFO\t\t| __call__::33 >>> training loss: 4.3717580\n", - "2023-12-20_08:24:34 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.7195411048734701), ('map75', 0.5085756008061773), ('map50_95', 0.4597116783623555)]\n", - "2023-12-20_08:24:34 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 19 / 40\n", - "2023-12-20_08:24:42 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0037007\n", - "2023-12-20_08:24:42 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6704786\n", - "2023-12-20_08:24:42 UTC | INFO\t\t| __call__::33 >>> training loss: 4.3703977\n", - "2023-12-20_08:24:42 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.6851857334206551), ('map75', 0.45604345070917973), ('map50_95', 0.412910858043379)]\n", - "2023-12-20_08:24:42 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:24:49 UTC | INFO\t\t| __call__::27 >>> Epoch: 20 / 40\n", - "2023-12-20_08:24:49 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0034697\n", - "2023-12-20_08:24:49 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6531098\n", - "2023-12-20_08:24:49 UTC | INFO\t\t| __call__::33 >>> training loss: 4.3075786\n", - "2023-12-20_08:24:49 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.678484245255486), ('map75', 0.3880555902888417), ('map50_95', 0.38517960135739276)]\n", - "2023-12-20_08:24:49 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 21 / 40\n", - "2023-12-20_08:25:06 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0032358\n", - "2023-12-20_08:25:06 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 8.8300462\n", - "2023-12-20_08:25:06 UTC | INFO\t\t| __call__::33 >>> training loss: 3.9147481\n", - "2023-12-20_08:25:06 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.7135850738274119), ('map75', 0.49059302909409663), ('map50_95', 0.4533717511190506)]\n", - "2023-12-20_08:25:06 UTC | INFO\t\t| __call__::37 >>> validation loss: 4.8515343\n", - "2023-12-20_08:25:06 UTC | INFO\t\t| __call__::39 >>> validation metric: [('map50', 0.6339054708672087), ('map75', 0.45666398865938695), ('map50_95', 0.4222396212203)]\n", - "2023-12-20_08:25:07 UTC | INFO\t\t| save_checkpoint::299 >>> Best model saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.pth\n", - "2023-12-20_08:25:08 UTC | INFO\t\t| save_checkpoint::303 >>> ONNX model converting and saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.onnx\n", - "2023-12-20_08:25:08 UTC | INFO\t\t| save_checkpoint::306 >>> PyTorch FX model tracing and saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.pt\n", - "2023-12-20_08:25:08 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s/version_2/training_summary.ckpt\n", - "2023-12-20_08:25:08 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 22 / 40\n", - "2023-12-20_08:25:16 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0030005\n", - "2023-12-20_08:25:16 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.2059810\n", - "2023-12-20_08:25:16 UTC | INFO\t\t| __call__::33 >>> training loss: 3.8451179\n", - "2023-12-20_08:25:16 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.7454260110530146), ('map75', 0.5308728520172723), ('map50_95', 0.47067967362650726)]\n", - "2023-12-20_08:25:16 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:25:23 UTC | INFO\t\t| __call__::27 >>> Epoch: 23 / 40\n", - "2023-12-20_08:25:23 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0027652\n", - "2023-12-20_08:25:23 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6800339\n", - "2023-12-20_08:25:23 UTC | INFO\t\t| __call__::33 >>> training loss: 3.5810392\n", - "2023-12-20_08:25:23 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.8748542601559004), ('map75', 0.6878586628437384), ('map50_95', 0.5915081336581067)]\n", - "2023-12-20_08:25:23 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 24 / 40\n", - "2023-12-20_08:25:31 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0025313\n", - "2023-12-20_08:25:31 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.7075655\n", - "2023-12-20_08:25:31 UTC | INFO\t\t| __call__::33 >>> training loss: 3.0245400\n", - "2023-12-20_08:25:31 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9176873432674402), ('map75', 0.8323709908059934), ('map50_95', 0.6820717851025933)]\n", - "2023-12-20_08:25:31 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 25 / 40\n", - "2023-12-20_08:25:39 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0023003\n", - "2023-12-20_08:25:39 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6703916\n", - "2023-12-20_08:25:39 UTC | INFO\t\t| __call__::33 >>> training loss: 3.0054912\n", - "2023-12-20_08:25:39 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9309751911383201), ('map75', 0.8380330774621192), ('map50_95', 0.6794528075167758)]\n", - "2023-12-20_08:25:39 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 26 / 40\n", - "2023-12-20_08:25:46 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0020736\n", - "2023-12-20_08:25:46 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.7693188\n", - "2023-12-20_08:25:46 UTC | INFO\t\t| __call__::33 >>> training loss: 3.3891310\n", - "2023-12-20_08:25:46 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.8975592342169858), ('map75', 0.6914263359403534), ('map50_95', 0.5934333758168127)]\n", - "2023-12-20_08:25:46 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 27 / 40\n", - "2023-12-20_08:25:54 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0018526\n", - "2023-12-20_08:25:54 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.7214327\n", - "2023-12-20_08:25:54 UTC | INFO\t\t| __call__::33 >>> training loss: 2.9756122\n", - "2023-12-20_08:25:54 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9513311298557512), ('map75', 0.8200974138026601), ('map50_95', 0.675911124407271)]\n", - "2023-12-20_08:25:54 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 28 / 40\n", - "2023-12-20_08:26:02 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0016388\n", - "2023-12-20_08:26:02 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6814280\n", - "2023-12-20_08:26:02 UTC | INFO\t\t| __call__::33 >>> training loss: 2.6790896\n", - "2023-12-20_08:26:02 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9535300576967218), ('map75', 0.9166690750903561), ('map50_95', 0.7330986373223756)]\n", - "2023-12-20_08:26:02 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 29 / 40\n", - "2023-12-20_08:26:10 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0014333\n", - "2023-12-20_08:26:10 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.7033715\n", - "2023-12-20_08:26:10 UTC | INFO\t\t| __call__::33 >>> training loss: 2.7049365\n", - "2023-12-20_08:26:10 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9727164091593148), ('map75', 0.9231919395586383), ('map50_95', 0.7400579966161019)]\n", - "2023-12-20_08:26:10 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 30 / 40\n", - "2023-12-20_08:26:17 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0012374\n", - "2023-12-20_08:26:17 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6934805\n", - "2023-12-20_08:26:17 UTC | INFO\t\t| __call__::33 >>> training loss: 2.9417155\n", - "2023-12-20_08:26:17 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9664054345667988), ('map75', 0.8490631672849117), ('map50_95', 0.7017059787330187)]\n", - "2023-12-20_08:26:17 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 31 / 40\n", - "2023-12-20_08:26:34 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0010525\n", - "2023-12-20_08:26:34 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 8.9408669\n", - "2023-12-20_08:26:34 UTC | INFO\t\t| __call__::33 >>> training loss: 3.3159554\n", - "2023-12-20_08:26:34 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9294406372226215), ('map75', 0.5629638189311799), ('map50_95', 0.576917388937565)]\n", - "2023-12-20_08:26:34 UTC | INFO\t\t| __call__::37 >>> validation loss: 4.0627677\n", - "2023-12-20_08:26:34 UTC | INFO\t\t| __call__::39 >>> validation metric: [('map50', 0.7522541666666668), ('map75', 0.6211416918276973), ('map50_95', 0.5237315942878047)]\n", - "2023-12-20_08:26:35 UTC | INFO\t\t| save_checkpoint::299 >>> Best model saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.pth\n", - "2023-12-20_08:26:36 UTC | INFO\t\t| save_checkpoint::303 >>> ONNX model converting and saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.onnx\n", - "2023-12-20_08:26:36 UTC | INFO\t\t| save_checkpoint::306 >>> PyTorch FX model tracing and saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.pt\n", - "2023-12-20_08:26:36 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s/version_2/training_summary.ckpt\n", - "2023-12-20_08:26:36 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 32 / 40\n", - "2023-12-20_08:26:44 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0008795\n", - "2023-12-20_08:26:44 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.1420374\n", - "2023-12-20_08:26:44 UTC | INFO\t\t| __call__::33 >>> training loss: 2.6539379\n", - "2023-12-20_08:26:44 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.94629273989899), ('map75', 0.9071708065300496), ('map50_95', 0.7336459717035536)]\n", - "2023-12-20_08:26:44 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 33 / 40\n", - "2023-12-20_08:26:51 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0007197\n", - "2023-12-20_08:26:51 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6738300\n", - "2023-12-20_08:26:51 UTC | INFO\t\t| __call__::33 >>> training loss: 2.5155922\n", - "2023-12-20_08:26:51 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9721495188895377), ('map75', 0.9493609175869723), ('map50_95', 0.7603409537812837)]\n", - "2023-12-20_08:26:51 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 34 / 40\n", - "2023-12-20_08:26:59 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0005739\n", - "2023-12-20_08:26:59 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6701257\n", - "2023-12-20_08:26:59 UTC | INFO\t\t| __call__::33 >>> training loss: 2.3940916\n", - "2023-12-20_08:26:59 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9743808928571429), ('map75', 0.9486046748340681), ('map50_95', 0.7883939292069766)]\n", - "2023-12-20_08:26:59 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 35 / 40\n", - "2023-12-20_08:27:07 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0004430\n", - "2023-12-20_08:27:07 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6859293\n", - "2023-12-20_08:27:07 UTC | INFO\t\t| __call__::33 >>> training loss: 2.2439785\n", - "2023-12-20_08:27:07 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9773829027777777), ('map75', 0.9727784202416087), ('map50_95', 0.828919539565377)]\n", - "2023-12-20_08:27:07 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:27:14 UTC | INFO\t\t| __call__::27 >>> Epoch: 36 / 40\n", - "2023-12-20_08:27:14 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0003279\n", - "2023-12-20_08:27:14 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.7774713\n", - "2023-12-20_08:27:14 UTC | INFO\t\t| __call__::33 >>> training loss: 2.1009162\n", - "2023-12-20_08:27:14 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9766315890562491), ('map75', 0.9748948276048436), ('map50_95', 0.8533081402668863)]\n", - "2023-12-20_08:27:14 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 37 / 40\n", - "2023-12-20_08:27:22 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0002293\n", - "2023-12-20_08:27:22 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6564112\n", - "2023-12-20_08:27:22 UTC | INFO\t\t| __call__::33 >>> training loss: 2.0519695\n", - "2023-12-20_08:27:22 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9768328102245994), ('map75', 0.9740780325973857), ('map50_95', 0.858594803898311)]\n", - "2023-12-20_08:27:22 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:27:30 UTC | INFO\t\t| __call__::27 >>> Epoch: 38 / 40\n", - "2023-12-20_08:27:30 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0001478\n", - "2023-12-20_08:27:30 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6984601\n", - "2023-12-20_08:27:30 UTC | INFO\t\t| __call__::33 >>> training loss: 2.0711439\n", - "2023-12-20_08:27:30 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9779690169439881), ('map75', 0.9742608463822581), ('map50_95', 0.8541282445635481)]\n", - "2023-12-20_08:27:30 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:27:37 UTC | INFO\t\t| __call__::27 >>> Epoch: 39 / 40\n", - "2023-12-20_08:27:37 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0000839\n", - "2023-12-20_08:27:37 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.6892321\n", - "2023-12-20_08:27:37 UTC | INFO\t\t| __call__::33 >>> training loss: 2.1181151\n", - "2023-12-20_08:27:37 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9802197113358617), ('map75', 0.9765260145885262), ('map50_95', 0.840192724227675)]\n", - "2023-12-20_08:27:37 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:27:54 UTC | INFO\t\t| __call__::27 >>> Epoch: 40 / 40\n", - "2023-12-20_08:27:54 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0000379\n", - "2023-12-20_08:27:54 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 8.9938524\n", - "2023-12-20_08:27:54 UTC | INFO\t\t| __call__::33 >>> training loss: 1.9973941\n", - "2023-12-20_08:27:54 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9802250915471468), ('map75', 0.9790833212278286), ('map50_95', 0.8694839982886673)]\n", - "2023-12-20_08:27:54 UTC | INFO\t\t| __call__::37 >>> validation loss: 3.7048484\n", - "2023-12-20_08:27:54 UTC | INFO\t\t| __call__::39 >>> validation metric: [('map50', 0.8340033333333334), ('map75', 0.7599866928783777), ('map50_95', 0.6229265451133857)]\n", - "2023-12-20_08:27:55 UTC | INFO\t\t| save_checkpoint::299 >>> Best model saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.pth\n", - "2023-12-20_08:27:56 UTC | INFO\t\t| save_checkpoint::303 >>> ONNX model converting and saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.onnx\n", - "2023-12-20_08:27:56 UTC | INFO\t\t| save_checkpoint::306 >>> PyTorch FX model tracing and saved at outputs/detection_yolox_s/version_2/detection_yolox_s_best.pt\n", - "2023-12-20_08:27:56 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s/version_2/training_summary.ckpt\n", - "2023-12-20_08:27:56 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:27:56 UTC | INFO\t\t| train::193 >>> Total time: 361.68 s\n", - "Unsupported operator aten::silu encountered 74 time(s)\n", - "Unsupported operator aten::add encountered 7 time(s)\n", - "Unsupported operator aten::max_pool2d encountered 3 time(s)\n", - "The following submodules of the model were never called during the trace of the graph. They may be unused, or they were accessed by direct calls to .forward() or via other python methods. In the latter case they will have zeros for statistics, though their statistics will still contribute to their parent calling module.\n", - "module.backbone.avgpool\n", - "2023-12-20_08:27:57 UTC | INFO\t\t| save_summary::327 >>> [Model stats] Params: 8.94M | MACs: 8.53G\n", - "2023-12-20_08:27:57 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s/version_2/training_summary.ckpt\n", - "\u001b[32m2023-12-20 08:28:01.042\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.trainer.model_trainer\u001b[0m:\u001b[36mtrain\u001b[0m:\u001b[36m197\u001b[0m - \u001b[1mRemove /tmp/temp_np_trainer_configs_s0caac9a folder.\u001b[0m\n" - ] - } - ], - "source": [ - "trainer.train(gpus=\"0,1\")" - ] - }, - { - "cell_type": "markdown", - "id": "3c39d1da-b5cf-49aa-941e-38d7e1e89c6b", - "metadata": {}, - "source": [ - "### 1-6. Declare project path" - ] - }, - { - "cell_type": "markdown", - "id": "a4d76607-fbea-439f-b670-a782cbe46476", - "metadata": {}, - "source": [ - "Declare the path of the completed project." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "ca38d843-4a8a-413b-b460-86f9c404f3ac", - "metadata": {}, - "outputs": [], - "source": [ - "project_path = \"./outputs/detection_yolox_s/version_2\"" - ] - }, - { - "cell_type": "markdown", - "id": "6b43c37d-569c-451e-b226-2a8f21ef67c3", - "metadata": {}, - "source": [ - "### 1-7. Check performance metric" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "5e6f3e83-7680-439d-b1c1-ee4ed7e29f15", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2023-12-20 08:28:01.075\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m5\u001b[0m - \u001b[1mmAP50: 0.8340033333333334\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:01.076\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m6\u001b[0m - \u001b[1mmAP75: 0.7599866928783777\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:01.077\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m7\u001b[0m - \u001b[1mmAP50_95: 0.6229265451133857\u001b[0m\n" - ] - } - ], - "source": [ - "original_training_summary_path = f\"{project_path}/training_summary.ckpt\"\n", - "original_training_summary = torch.load(original_training_summary_path)\n", - "original_valid_metrics = original_training_summary[\"valid_metrics\"][original_training_summary[\"best_epoch\"]]\n", - "\n", - "logger.info(f\"mAP50: {original_valid_metrics['map50']}\")\n", - "logger.info(f\"mAP75: {original_valid_metrics['map75']}\")\n", - "logger.info(f\"mAP50_95: {original_valid_metrics['map50_95']}\")" - ] - }, - { - "cell_type": "markdown", - "id": "0c41af3d-1702-42d2-82b6-67f7001d0713", - "metadata": {}, - "source": [ - "## 2. Benchmark the trained model on **Renesas RZ/V2L**\n", - "-------------------------------------------------------" - ] - }, - { - "cell_type": "markdown", - "id": "2aec166c-f9c6-4a41-bd4d-b10b74307106", - "metadata": {}, - "source": [ - "We will benchmark the trained model on **Renesas RZ/V2L**." - ] - }, - { - "cell_type": "markdown", - "id": "8580f43a-6d46-4e86-9ae7-e1e9c26ab6e9", - "metadata": {}, - "source": [ - "### 2-1. Convert the trained model" - ] - }, - { - "cell_type": "markdown", - "id": "925aa7c3-5ca8-40bd-a295-e270ddcb96c1", - "metadata": {}, - "source": [ - "For benchmark on **Renesas RZ/V2L**, convert onnx using **DRP-AI Translator**." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "c27bb62d-4ed1-4e8d-8769-b1afeb46b028", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2023-12-20 08:28:01.364\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.client\u001b[0m:\u001b[36m__login\u001b[0m:\u001b[36m50\u001b[0m - \u001b[1mLogin successfully\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:02.312\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.client\u001b[0m:\u001b[36m__get_user_info\u001b[0m:\u001b[36m67\u001b[0m - \u001b[1msuccessfully got user information\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:04.882\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mconvert_model\u001b[0m:\u001b[36m145\u001b[0m - \u001b[1mConverting Model for rzv2l_avnet (drpai)\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:10.032\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mdownload_converted_model\u001b[0m:\u001b[36m220\u001b[0m - \u001b[1mThe specified folder does not exist. Local Path: outputs/detection_yolox_s/version_2/converted\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:10.368\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mdownload_converted_model\u001b[0m:\u001b[36m223\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/converted/drpai_converted_model.zip\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:10.370\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m12\u001b[0m - \u001b[1muser_uuid='39d34070-db8e-4050-905c-12f49b86d583' input_model_uuid='a84fa521-0d56-4fad-8a04-9ab86439b6e3' status='FINISHED' input_shape=InputShape(batch=1, channel=3, input_size='512, 512') data_type='FP16' software_version=None framework='onnx' convert_task_uuid='7a2eec82-d7e6-4670-8c16-43e9292956a1' output_model_uuid='127163b6-2073-4b67-9702-85703b296efc' model_file_name='model.zip' target_device_name='rzv2l_avnet'\u001b[0m\n" - ] - } - ], - "source": [ - "converter = ModelConverter(email=EMAIL, password=PASSWORD)\n", - "\n", - "onnx_model_path = f\"{project_path}/detection_yolox_s_best.onnx\"\n", - "converted_model_path = f\"{project_path}/converted/drpai_converted_model.zip\"\n", - "\n", - "conversion_task = converter.convert_model(\n", - " model_path=onnx_model_path,\n", - " target_framework=ModelFramework.DRPAI,\n", - " target_device_name=DeviceName.RENESAS_RZ_V2L,\n", - " output_path=converted_model_path,\n", - ")\n", - "logger.info(conversion_task)" - ] - }, - { - "cell_type": "markdown", - "id": "fc51774c-8568-48c7-a1b7-4e3a64e50866", - "metadata": {}, - "source": [ - "### 2-2. Benchmark the trained model" - ] - }, - { - "cell_type": "markdown", - "id": "fcbde6a1-767b-4468-a070-b901e149c850", - "metadata": {}, - "source": [ - "Run benchmark on **Renesas RZ/V2L**." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "441e2169-541c-4aff-a175-823079c08072", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2023-12-20 08:28:10.572\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.client\u001b[0m:\u001b[36m__login\u001b[0m:\u001b[36m50\u001b[0m - \u001b[1mLogin successfully\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:11.098\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.client\u001b[0m:\u001b[36m__get_user_info\u001b[0m:\u001b[36m67\u001b[0m - \u001b[1msuccessfully got user information\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:14.933\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m8\u001b[0m - \u001b[1mModel inference latency: 137.628 ms\u001b[0m\n" - ] - } - ], - "source": [ - "benchmarker = ModelBenchmarker(email=EMAIL, password=PASSWORD)\n", - "\n", - "benchmark_task = benchmarker.benchmark_model(\n", - " model_path=converted_model_path,\n", - " target_device_name=DeviceName.RENESAS_RZ_V2L\n", - ")\n", - "original_model_latency = benchmark_task.latency\n", - "logger.info(f\"Model inference latency: {original_model_latency} ms\")" - ] - }, - { - "cell_type": "markdown", - "id": "c72bb3bb-2c45-4a30-90be-000fe0588627", - "metadata": {}, - "source": [ - "## 3. Optimize the trained model using Compressor\n", - "-------------------------------------------------" - ] - }, - { - "cell_type": "markdown", - "id": "9e2858ab-3d2f-4a85-8be0-ceecfc8e100e", - "metadata": {}, - "source": [ - "We would like to assume that the trained model wants to make it so that less than **100 ms** of latency can be obtained from **Renesas RZ/V2L**.\n", - "\n", - "We need to use Compressor to achieve that purpose.\n", - "\n", - "Then, let's use Compressor to create a model that satisfies the target latency." - ] - }, - { - "cell_type": "markdown", - "id": "8067af3c-f725-491d-b959-5afa86dee12d", - "metadata": {}, - "source": [ - "### 3-1. Run automatic compression" - ] - }, - { - "cell_type": "markdown", - "id": "0569cdf0-6dbc-4f85-87d3-43302602a5a4", - "metadata": {}, - "source": [ - "After uploading the trained model, we will proceed with compression using automatic compression.\n", - "\n", - "The compression ratio is set from 0.1 to 0.9 in units of 0.1." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "5896740a-dbd8-4fb1-9d53-9edb6d781703", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2023-12-20 08:28:15.240\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.client\u001b[0m:\u001b[36m__login\u001b[0m:\u001b[36m50\u001b[0m - \u001b[1mLogin successfully\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:15.755\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.client\u001b[0m:\u001b[36m__get_user_info\u001b[0m:\u001b[36m67\u001b[0m - \u001b[1msuccessfully got user information\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:15.759\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mUploading Model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:30.269\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m97\u001b[0m - \u001b[1mUpload model successfully. Model ID: 418e5085-caa8-4545-a76f-0e12ce1075c4\u001b[0m\n" - ] - } - ], - "source": [ - "compressor = ModelCompressor(email=EMAIL, password=PASSWORD)\n", - "\n", - "model = compressor.upload_model(\n", - " model_name=\"pynp_yolox\",\n", - " task=\"object_detection\",\n", - " framework=Framework.PYTORCH,\n", - " file_path=f\"{project_path}/detection_yolox_s_best_fx.pt\",\n", - " input_shapes=[{\"batch\": 1, \"channel\": 3, \"dimension\": [512, 512]}],\n", - ")\n", - "original_model_size = model.model_size\n", - "original_model_flops = model.flops\n", - "original_model_params = model.trainable_parameters + model.non_trainable_parameters" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "206b862c-2537-4770-b0f6-5a87a55e0d97", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2023-12-20 08:28:30.281\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m682\u001b[0m - \u001b[1mCompressing automatic-based model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:30.282\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mUploading Model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:45.401\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m97\u001b[0m - \u001b[1mUpload model successfully. Model ID: a7f1a47e-28cf-4df4-990d-efc4842f1086\u001b[0m\n", - "\u001b[32m2023-12-20 08:28:45.403\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m697\u001b[0m - \u001b[1mCompressing model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:09.583\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m250\u001b[0m - \u001b[1mDownloading model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:11.677\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m255\u001b[0m - \u001b[1mThe specified folder does not exist. Local Path: outputs/detection_yolox_s/version_2/compressed\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:12.124\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m260\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.1.pt\u001b[0m\n", - "/opt/conda/lib/python3.10/site-packages/torch/onnx/_internal/jit_utils.py:258: UserWarning: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function. (Triggered internally at ../torch/csrc/jit/passes/onnx/shape_type_inference.cpp:1884.)\n", - " _C._jit_pass_onnx_node_shape_type_inference(node, params_dict, opset_version)\n", - "/opt/conda/lib/python3.10/site-packages/torch/onnx/utils.py:687: UserWarning: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function. (Triggered internally at ../torch/csrc/jit/passes/onnx/shape_type_inference.cpp:1884.)\n", - " _C._jit_pass_onnx_graph_shape_type_inference(\n", - "/opt/conda/lib/python3.10/site-packages/torch/onnx/utils.py:1178: UserWarning: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function. (Triggered internally at ../torch/csrc/jit/passes/onnx/shape_type_inference.cpp:1884.)\n", - " _C._jit_pass_onnx_graph_shape_type_inference(\n", - "\u001b[32m2023-12-20 08:29:13.350\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor.utils.onnx\u001b[0m:\u001b[36m_export_onnx\u001b[0m:\u001b[36m29\u001b[0m - \u001b[1mONNX model converting and saved at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.1.onnx\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:13.352\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m707\u001b[0m - \u001b[1mAutomatic compression successfully. Compressed Model ID: 113fcc4c-5742-414b-a603-7f6821469818\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:13.353\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m710\u001b[0m - \u001b[1m25 credits have been consumed.\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:13.354\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m15\u001b[0m - \u001b[1mCompressedModel(model_id='113fcc4c-5742-414b-a603-7f6821469818', model_name='pynp_yolox_automatic_0.1', task='object_detection', framework='pytorch', model_size=27.6953, flops=15209.771, trainable_parameters=7.1815, non_trainable_parameters=0.0, number_of_layers=0, input_shapes=[InputShape(batch=2, channel=3, dimension=[512, 512])], compression_id='f0c161be-97c1-4e80-bfc8-3f76a8cc6517', original_model_id='a7f1a47e-28cf-4df4-990d-efc4842f1086')\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:13.355\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m682\u001b[0m - \u001b[1mCompressing automatic-based model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:13.356\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mUploading Model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:27.632\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m97\u001b[0m - \u001b[1mUpload model successfully. Model ID: 93cd850d-e7b1-44ed-a58c-89b3cd6e8dbf\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:27.634\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m697\u001b[0m - \u001b[1mCompressing model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:50.767\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m250\u001b[0m - \u001b[1mDownloading model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:53.309\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m260\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.2.pt\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:54.385\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor.utils.onnx\u001b[0m:\u001b[36m_export_onnx\u001b[0m:\u001b[36m29\u001b[0m - \u001b[1mONNX model converting and saved at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.2.onnx\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:54.387\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m707\u001b[0m - \u001b[1mAutomatic compression successfully. Compressed Model ID: 5c3eafab-ae9e-4c07-b190-f8d3f739d97b\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:54.387\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m710\u001b[0m - \u001b[1m25 credits have been consumed.\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:54.388\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m15\u001b[0m - \u001b[1mCompressedModel(model_id='5c3eafab-ae9e-4c07-b190-f8d3f739d97b', model_name='pynp_yolox_automatic_0.2', task='object_detection', framework='pytorch', model_size=21.9338, flops=13504.6318, trainable_parameters=5.6736, non_trainable_parameters=0.0, number_of_layers=0, input_shapes=[InputShape(batch=2, channel=3, dimension=[512, 512])], compression_id='78aa9f52-d402-4982-a12c-60ff94bd5303', original_model_id='93cd850d-e7b1-44ed-a58c-89b3cd6e8dbf')\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:54.389\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m682\u001b[0m - \u001b[1mCompressing automatic-based model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:29:54.389\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mUploading Model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:08.405\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m97\u001b[0m - \u001b[1mUpload model successfully. Model ID: e4d763c1-94d8-4024-9701-96cad717dd14\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:08.408\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m697\u001b[0m - \u001b[1mCompressing model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:30.664\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m250\u001b[0m - \u001b[1mDownloading model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:32.874\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m260\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.3.pt\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:33.928\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor.utils.onnx\u001b[0m:\u001b[36m_export_onnx\u001b[0m:\u001b[36m29\u001b[0m - \u001b[1mONNX model converting and saved at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.3.onnx\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:33.930\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m707\u001b[0m - \u001b[1mAutomatic compression successfully. Compressed Model ID: 95492ca9-645c-45f6-aa24-5ded629b72ba\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:33.930\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m710\u001b[0m - \u001b[1m25 credits have been consumed.\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:33.931\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m15\u001b[0m - \u001b[1mCompressedModel(model_id='95492ca9-645c-45f6-aa24-5ded629b72ba', model_name='pynp_yolox_automatic_0.3', task='object_detection', framework='pytorch', model_size=16.8701, flops=11440.6564, trainable_parameters=4.3482, non_trainable_parameters=0.0, number_of_layers=0, input_shapes=[InputShape(batch=2, channel=3, dimension=[512, 512])], compression_id='b2b5d7bf-fe68-46aa-b2df-ed7ce69a6110', original_model_id='e4d763c1-94d8-4024-9701-96cad717dd14')\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:33.931\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m682\u001b[0m - \u001b[1mCompressing automatic-based model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:33.932\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mUploading Model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:48.805\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m97\u001b[0m - \u001b[1mUpload model successfully. Model ID: a0c531be-5ddb-4c84-b524-515b988bf87e\u001b[0m\n", - "\u001b[32m2023-12-20 08:30:48.808\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m697\u001b[0m - \u001b[1mCompressing model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:10.211\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m250\u001b[0m - \u001b[1mDownloading model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:12.681\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m260\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.4.pt\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:13.789\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor.utils.onnx\u001b[0m:\u001b[36m_export_onnx\u001b[0m:\u001b[36m29\u001b[0m - \u001b[1mONNX model converting and saved at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.4.onnx\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:13.791\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m707\u001b[0m - \u001b[1mAutomatic compression successfully. Compressed Model ID: 448e1a7b-ced3-419a-8120-b355b044bba6\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:13.791\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m710\u001b[0m - \u001b[1m25 credits have been consumed.\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:13.792\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m15\u001b[0m - \u001b[1mCompressedModel(model_id='448e1a7b-ced3-419a-8120-b355b044bba6', model_name='pynp_yolox_automatic_0.4', task='object_detection', framework='pytorch', model_size=12.5323, flops=9438.0708, trainable_parameters=3.2131, non_trainable_parameters=0.0, number_of_layers=0, input_shapes=[InputShape(batch=2, channel=3, dimension=[512, 512])], compression_id='16685bf4-dcd2-459e-b487-f75535d0550f', original_model_id='a0c531be-5ddb-4c84-b524-515b988bf87e')\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:13.793\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m682\u001b[0m - \u001b[1mCompressing automatic-based model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:13.794\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mUploading Model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:29.655\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m97\u001b[0m - \u001b[1mUpload model successfully. Model ID: c91dc636-acbc-4795-991f-b268614864f2\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:29.659\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m697\u001b[0m - \u001b[1mCompressing model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:50.522\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m250\u001b[0m - \u001b[1mDownloading model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:52.912\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m260\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.5.pt\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:54.042\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor.utils.onnx\u001b[0m:\u001b[36m_export_onnx\u001b[0m:\u001b[36m29\u001b[0m - \u001b[1mONNX model converting and saved at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.5.onnx\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:54.043\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m707\u001b[0m - \u001b[1mAutomatic compression successfully. Compressed Model ID: b3894f08-2eb4-4917-8f8e-66ba57f0ae49\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:54.043\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m710\u001b[0m - \u001b[1m25 credits have been consumed.\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:54.044\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m15\u001b[0m - \u001b[1mCompressedModel(model_id='b3894f08-2eb4-4917-8f8e-66ba57f0ae49', model_name='pynp_yolox_automatic_0.5', task='object_detection', framework='pytorch', model_size=8.9114, flops=7520.7137, trainable_parameters=2.2658, non_trainable_parameters=0.0, number_of_layers=0, input_shapes=[InputShape(batch=2, channel=3, dimension=[512, 512])], compression_id='bb7255ba-6556-496e-a28c-416fa67f7b85', original_model_id='c91dc636-acbc-4795-991f-b268614864f2')\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:54.044\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m682\u001b[0m - \u001b[1mCompressing automatic-based model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:31:54.045\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mUploading Model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:09.865\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m97\u001b[0m - \u001b[1mUpload model successfully. Model ID: 73331736-d166-4472-b409-9979120cbb36\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:09.867\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m697\u001b[0m - \u001b[1mCompressing model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:29.334\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m250\u001b[0m - \u001b[1mDownloading model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:31.729\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m260\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.6.pt\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:32.751\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor.utils.onnx\u001b[0m:\u001b[36m_export_onnx\u001b[0m:\u001b[36m29\u001b[0m - \u001b[1mONNX model converting and saved at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.6.onnx\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:32.753\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m707\u001b[0m - \u001b[1mAutomatic compression successfully. Compressed Model ID: 3d8c05c6-8a99-455e-bb9b-9d3b663ff71d\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:32.753\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m710\u001b[0m - \u001b[1m25 credits have been consumed.\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:32.753\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m15\u001b[0m - \u001b[1mCompressedModel(model_id='3d8c05c6-8a99-455e-bb9b-9d3b663ff71d', model_name='pynp_yolox_automatic_0.6', task='object_detection', framework='pytorch', model_size=5.829, flops=5525.2818, trainable_parameters=1.4602, non_trainable_parameters=0.0, number_of_layers=0, input_shapes=[InputShape(batch=2, channel=3, dimension=[512, 512])], compression_id='3c841a7e-82fd-4881-b599-3edd3f34f08a', original_model_id='73331736-d166-4472-b409-9979120cbb36')\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:32.754\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m682\u001b[0m - \u001b[1mCompressing automatic-based model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:32.755\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mUploading Model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:47.245\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m97\u001b[0m - \u001b[1mUpload model successfully. Model ID: 00d4c068-2b7e-4aaf-af45-29577df97ac0\u001b[0m\n", - "\u001b[32m2023-12-20 08:32:47.247\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m697\u001b[0m - \u001b[1mCompressing model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:06.696\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m250\u001b[0m - \u001b[1mDownloading model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:08.892\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m260\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.7.pt\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:09.886\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor.utils.onnx\u001b[0m:\u001b[36m_export_onnx\u001b[0m:\u001b[36m29\u001b[0m - \u001b[1mONNX model converting and saved at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.7.onnx\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:09.887\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m707\u001b[0m - \u001b[1mAutomatic compression successfully. Compressed Model ID: c9a4db35-296c-4321-a226-6df782f32a23\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:09.888\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m710\u001b[0m - \u001b[1m25 credits have been consumed.\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:09.889\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m15\u001b[0m - \u001b[1mCompressedModel(model_id='c9a4db35-296c-4321-a226-6df782f32a23', model_name='pynp_yolox_automatic_0.7', task='object_detection', framework='pytorch', model_size=3.3889, flops=3635.5369, trainable_parameters=0.8228, non_trainable_parameters=0.0, number_of_layers=0, input_shapes=[InputShape(batch=2, channel=3, dimension=[512, 512])], compression_id='b7d4f3e6-3b6e-4431-acde-e193ecafd58c', original_model_id='00d4c068-2b7e-4aaf-af45-29577df97ac0')\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:09.890\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m682\u001b[0m - \u001b[1mCompressing automatic-based model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:09.890\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mUploading Model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:25.236\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m97\u001b[0m - \u001b[1mUpload model successfully. Model ID: d93cdd0d-8391-434a-8559-e30990db55cd\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:25.239\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m697\u001b[0m - \u001b[1mCompressing model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:44.615\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m250\u001b[0m - \u001b[1mDownloading model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:46.702\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m260\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.8.pt\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:47.738\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor.utils.onnx\u001b[0m:\u001b[36m_export_onnx\u001b[0m:\u001b[36m29\u001b[0m - \u001b[1mONNX model converting and saved at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.8.onnx\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:47.740\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m707\u001b[0m - \u001b[1mAutomatic compression successfully. Compressed Model ID: e890b083-de97-4f91-a425-1a618e8d4cc8\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:47.741\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m710\u001b[0m - \u001b[1m25 credits have been consumed.\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:47.741\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m15\u001b[0m - \u001b[1mCompressedModel(model_id='e890b083-de97-4f91-a425-1a618e8d4cc8', model_name='pynp_yolox_automatic_0.8', task='object_detection', framework='pytorch', model_size=1.6448, flops=1965.1451, trainable_parameters=0.368, non_trainable_parameters=0.0, number_of_layers=0, input_shapes=[InputShape(batch=2, channel=3, dimension=[512, 512])], compression_id='daa820ae-3164-4cd5-9345-1b7a2ba52790', original_model_id='d93cdd0d-8391-434a-8559-e30990db55cd')\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:47.742\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m682\u001b[0m - \u001b[1mCompressing automatic-based model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:33:47.743\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mUploading Model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:02.317\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mupload_model\u001b[0m:\u001b[36m97\u001b[0m - \u001b[1mUpload model successfully. Model ID: 392dab18-7209-4113-8b17-252befe02beb\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:02.320\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m697\u001b[0m - \u001b[1mCompressing model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:21.478\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m250\u001b[0m - \u001b[1mDownloading model...\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:23.512\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m260\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.9.pt\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:24.467\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor.utils.onnx\u001b[0m:\u001b[36m_export_onnx\u001b[0m:\u001b[36m29\u001b[0m - \u001b[1mONNX model converting and saved at outputs/detection_yolox_s/version_2/compressed/yolox_auto_compress_0.9.onnx\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:24.469\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m707\u001b[0m - \u001b[1mAutomatic compression successfully. Compressed Model ID: 348a7076-0127-478c-9266-442dace6ab28\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:24.470\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.compressor\u001b[0m:\u001b[36mautomatic_compression\u001b[0m:\u001b[36m710\u001b[0m - \u001b[1m25 credits have been consumed.\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:24.471\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m15\u001b[0m - \u001b[1mCompressedModel(model_id='348a7076-0127-478c-9266-442dace6ab28', model_name='pynp_yolox_automatic_0.9', task='object_detection', framework='pytorch', model_size=0.5778, flops=685.5823, trainable_parameters=0.0913, non_trainable_parameters=0.0, number_of_layers=0, input_shapes=[InputShape(batch=2, channel=3, dimension=[512, 512])], compression_id='5fcfe57f-a89c-4cb2-b834-43fdbd416d95', original_model_id='392dab18-7209-4113-8b17-252befe02beb')\u001b[0m\n" - ] - } - ], - "source": [ - "ratios = [round(i * 0.1, 2) for i in range(1, 10)]\n", - "model_size_list, flops_list, params_list = [], [], []\n", - "\n", - "for ratio in ratios:\n", - " output_path = f\"{project_path}/compressed/yolox_auto_compress_{ratio}.pt\"\n", - " compressed_model = compressor.automatic_compression(\n", - " model_name=\"pynp_yolox\",\n", - " task=\"object_detection\",\n", - " framework=Framework.PYTORCH,\n", - " input_shapes=[{\"batch\": 1, \"channel\": 3, \"dimension\": [512, 512]}],\n", - " input_path=f\"{project_path}/detection_yolox_s_best_fx.pt\",\n", - " output_path=output_path,\n", - " compression_ratio=ratio,\n", - " )\n", - " logger.info(compressed_model)\n", - " model_size_list.append(compressed_model.model_size)\n", - " flops_list.append(compressed_model.flops)\n", - " params_list.append(compressed_model.trainable_parameters + compressed_model.non_trainable_parameters)" - ] - }, - { - "cell_type": "markdown", - "id": "52458923-d223-4e46-9b6d-9edf94f2e796", - "metadata": {}, - "source": [ - "### 3-2. Convert the compressed models" - ] - }, - { - "cell_type": "markdown", - "id": "b7e61deb-57b6-4f46-a575-cbb6a933397d", - "metadata": {}, - "source": [ - "For benchmark on **Renesas RZ/V2L**, convert onnx using **DRP-AI Translator**." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "81388f18-423e-4145-994a-ca4a1b8f2ac9", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2023-12-20 08:34:24.642\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.client\u001b[0m:\u001b[36m__login\u001b[0m:\u001b[36m50\u001b[0m - \u001b[1mLogin successfully\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:25.200\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.client\u001b[0m:\u001b[36m__get_user_info\u001b[0m:\u001b[36m67\u001b[0m - \u001b[1msuccessfully got user information\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:27.242\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mconvert_model\u001b[0m:\u001b[36m145\u001b[0m - \u001b[1mConverting Model for rzv2l_avnet (drpai)\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:54.891\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mdownload_converted_model\u001b[0m:\u001b[36m223\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/converted/drpai_converted_model_0.1.zip\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:54.894\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m13\u001b[0m - \u001b[1muser_uuid='39d34070-db8e-4050-905c-12f49b86d583' input_model_uuid='8072432b-75f7-4bee-a5a8-e1cdd803e277' status='FINISHED' input_shape=InputShape(batch=1, channel=3, input_size='512, 512') data_type='FP16' software_version=None framework='onnx' convert_task_uuid='2148f1c6-c095-4590-a19b-41e082474049' output_model_uuid='84a1d0b3-fe10-460f-8521-ab5bb386279e' model_file_name='model.zip' target_device_name='rzv2l_avnet'\u001b[0m\n", - "\u001b[32m2023-12-20 08:34:56.753\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mconvert_model\u001b[0m:\u001b[36m145\u001b[0m - \u001b[1mConverting Model for rzv2l_avnet (drpai)\u001b[0m\n", - "\u001b[32m2023-12-20 08:35:24.495\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mdownload_converted_model\u001b[0m:\u001b[36m223\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/converted/drpai_converted_model_0.2.zip\u001b[0m\n", - "\u001b[32m2023-12-20 08:35:24.498\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m13\u001b[0m - \u001b[1muser_uuid='39d34070-db8e-4050-905c-12f49b86d583' input_model_uuid='0a96d434-9b4e-4c12-b887-7d9f451d3bde' status='FINISHED' input_shape=InputShape(batch=1, channel=3, input_size='512, 512') data_type='FP16' software_version=None framework='onnx' convert_task_uuid='31053c78-2151-480b-8933-eca8410dcc5c' output_model_uuid='f7646d67-4609-4b7e-a246-ac6293a00883' model_file_name='model.zip' target_device_name='rzv2l_avnet'\u001b[0m\n", - "\u001b[32m2023-12-20 08:35:31.199\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mconvert_model\u001b[0m:\u001b[36m145\u001b[0m - \u001b[1mConverting Model for rzv2l_avnet (drpai)\u001b[0m\n", - "\u001b[32m2023-12-20 08:36:03.958\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mdownload_converted_model\u001b[0m:\u001b[36m223\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/converted/drpai_converted_model_0.3.zip\u001b[0m\n", - "\u001b[32m2023-12-20 08:36:03.961\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m13\u001b[0m - \u001b[1muser_uuid='39d34070-db8e-4050-905c-12f49b86d583' input_model_uuid='3a2bd3e9-611b-4aba-8dff-b903841a71e4' status='FINISHED' input_shape=InputShape(batch=1, channel=3, input_size='512, 512') data_type='FP16' software_version=None framework='onnx' convert_task_uuid='8be35e28-0e69-4c71-b1dd-086646411cdf' output_model_uuid='ddac925a-0b5a-4d1d-a3ad-ce901e7ac2de' model_file_name='model.zip' target_device_name='rzv2l_avnet'\u001b[0m\n", - "\u001b[32m2023-12-20 08:36:05.327\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mconvert_model\u001b[0m:\u001b[36m145\u001b[0m - \u001b[1mConverting Model for rzv2l_avnet (drpai)\u001b[0m\n", - "\u001b[32m2023-12-20 08:36:32.604\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mdownload_converted_model\u001b[0m:\u001b[36m223\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/converted/drpai_converted_model_0.4.zip\u001b[0m\n", - "\u001b[32m2023-12-20 08:36:32.607\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m13\u001b[0m - \u001b[1muser_uuid='39d34070-db8e-4050-905c-12f49b86d583' input_model_uuid='a66d8899-5959-47b2-b9f6-93269e465d17' status='FINISHED' input_shape=InputShape(batch=1, channel=3, input_size='512, 512') data_type='FP16' software_version=None framework='onnx' convert_task_uuid='74df6898-5800-47fb-9d8b-24fd46d756e4' output_model_uuid='6d3b47b7-7147-4fcf-9c8b-b9b562f79691' model_file_name='model.zip' target_device_name='rzv2l_avnet'\u001b[0m\n", - "\u001b[32m2023-12-20 08:36:33.948\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mconvert_model\u001b[0m:\u001b[36m145\u001b[0m - \u001b[1mConverting Model for rzv2l_avnet (drpai)\u001b[0m\n", - "\u001b[32m2023-12-20 08:36:59.719\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mdownload_converted_model\u001b[0m:\u001b[36m223\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/converted/drpai_converted_model_0.5.zip\u001b[0m\n", - "\u001b[32m2023-12-20 08:36:59.722\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m13\u001b[0m - \u001b[1muser_uuid='39d34070-db8e-4050-905c-12f49b86d583' input_model_uuid='d7294c15-f493-44c3-a80f-e5a45a8df7d3' status='FINISHED' input_shape=InputShape(batch=1, channel=3, input_size='512, 512') data_type='FP16' software_version=None framework='onnx' convert_task_uuid='cc306df6-b358-4b3f-bf8e-a695b9e24701' output_model_uuid='d80bc17f-ba51-4991-8f7e-08747971adae' model_file_name='model.zip' target_device_name='rzv2l_avnet'\u001b[0m\n", - "\u001b[32m2023-12-20 08:37:00.827\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mconvert_model\u001b[0m:\u001b[36m145\u001b[0m - \u001b[1mConverting Model for rzv2l_avnet (drpai)\u001b[0m\n", - "\u001b[32m2023-12-20 08:37:29.548\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mdownload_converted_model\u001b[0m:\u001b[36m223\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/converted/drpai_converted_model_0.6.zip\u001b[0m\n", - "\u001b[32m2023-12-20 08:37:29.551\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m13\u001b[0m - \u001b[1muser_uuid='39d34070-db8e-4050-905c-12f49b86d583' input_model_uuid='b78eedb0-3112-440b-a8af-74b8d77b368c' status='FINISHED' input_shape=InputShape(batch=1, channel=3, input_size='512, 512') data_type='FP16' software_version=None framework='onnx' convert_task_uuid='3b475e82-3b18-43f4-b520-c6afccaa6bb3' output_model_uuid='e126bdf9-f633-4f9b-b9ad-0a480863fca9' model_file_name='model.zip' target_device_name='rzv2l_avnet'\u001b[0m\n", - "\u001b[32m2023-12-20 08:37:30.576\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mconvert_model\u001b[0m:\u001b[36m145\u001b[0m - \u001b[1mConverting Model for rzv2l_avnet (drpai)\u001b[0m\n", - "\u001b[32m2023-12-20 08:37:59.863\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mdownload_converted_model\u001b[0m:\u001b[36m223\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/converted/drpai_converted_model_0.7.zip\u001b[0m\n", - "\u001b[32m2023-12-20 08:37:59.866\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m13\u001b[0m - \u001b[1muser_uuid='39d34070-db8e-4050-905c-12f49b86d583' input_model_uuid='27836686-4f0f-4da8-8b6d-0557a3d53dc3' status='FINISHED' input_shape=InputShape(batch=1, channel=3, input_size='512, 512') data_type='FP16' software_version=None framework='onnx' convert_task_uuid='fe95050d-0e8a-4b6e-94f6-13346ea61521' output_model_uuid='420a3708-73cf-4412-bed7-1ef3fad1444d' model_file_name='model.zip' target_device_name='rzv2l_avnet'\u001b[0m\n", - "\u001b[32m2023-12-20 08:38:00.993\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mconvert_model\u001b[0m:\u001b[36m145\u001b[0m - \u001b[1mConverting Model for rzv2l_avnet (drpai)\u001b[0m\n", - "\u001b[32m2023-12-20 08:38:28.496\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mdownload_converted_model\u001b[0m:\u001b[36m223\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/converted/drpai_converted_model_0.8.zip\u001b[0m\n", - "\u001b[32m2023-12-20 08:38:28.499\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m13\u001b[0m - \u001b[1muser_uuid='39d34070-db8e-4050-905c-12f49b86d583' input_model_uuid='3b6ecf0a-c67d-4de7-ad6b-e29e91ec76ef' status='FINISHED' input_shape=InputShape(batch=1, channel=3, input_size='512, 512') data_type='FP16' software_version=None framework='onnx' convert_task_uuid='65b8cef8-735b-43ee-a75d-15e8f33aff27' output_model_uuid='6b503979-8319-46b8-9f56-3eb449a6a914' model_file_name='model.zip' target_device_name='rzv2l_avnet'\u001b[0m\n", - "\u001b[32m2023-12-20 08:38:29.329\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mconvert_model\u001b[0m:\u001b[36m145\u001b[0m - \u001b[1mConverting Model for rzv2l_avnet (drpai)\u001b[0m\n", - "\u001b[32m2023-12-20 08:38:57.483\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.launcher\u001b[0m:\u001b[36mdownload_converted_model\u001b[0m:\u001b[36m223\u001b[0m - \u001b[1mModel downloaded at outputs/detection_yolox_s/version_2/converted/drpai_converted_model_0.9.zip\u001b[0m\n", - "\u001b[32m2023-12-20 08:38:57.486\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m13\u001b[0m - \u001b[1muser_uuid='39d34070-db8e-4050-905c-12f49b86d583' input_model_uuid='d5b8d256-ab56-4e0f-837f-c1a509a0b03d' status='FINISHED' input_shape=InputShape(batch=1, channel=3, input_size='512, 512') data_type='FP16' software_version=None framework='onnx' convert_task_uuid='667d70cf-40b8-433e-b6dc-d8f47497f8b4' output_model_uuid='52d4c558-377e-49b6-b522-978e4eb70e33' model_file_name='model.zip' target_device_name='rzv2l_avnet'\u001b[0m\n" - ] - } - ], - "source": [ - "converter = ModelConverter(email=EMAIL, password=PASSWORD)\n", - "\n", - "for ratio in ratios:\n", - " onnx_model_path = f\"{project_path}/compressed/yolox_auto_compress_{ratio}.onnx\"\n", - " converted_model_path = f\"{project_path}/converted/drpai_converted_model_{ratio}.zip\"\n", - " \n", - " conversion_task = converter.convert_model(\n", - " model_path=onnx_model_path,\n", - " target_framework=ModelFramework.DRPAI,\n", - " target_device_name=DeviceName.RENESAS_RZ_V2L,\n", - " output_path=converted_model_path,\n", - " )\n", - " logger.info(conversion_task)" - ] - }, - { - "cell_type": "markdown", - "id": "1f28673d-4389-4ee2-a3a4-cbd876d1f950", - "metadata": {}, - "source": [ - "### 3-3. Benchmark the compressed models" - ] - }, - { - "cell_type": "markdown", - "id": "b4595f54-024c-4a19-8ee0-9c94452c136b", - "metadata": {}, - "source": [ - "Run benchmark on **Renesas RZ/V2L**." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "dbe801e7-3e96-4470-ac4e-c9101c80d61d", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2023-12-20 08:38:57.662\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.client\u001b[0m:\u001b[36m__login\u001b[0m:\u001b[36m50\u001b[0m - \u001b[1mLogin successfully\u001b[0m\n", - "\u001b[32m2023-12-20 08:38:58.181\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.client\u001b[0m:\u001b[36m__get_user_info\u001b[0m:\u001b[36m67\u001b[0m - \u001b[1msuccessfully got user information\u001b[0m\n", - "\u001b[32m2023-12-20 08:39:22.145\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m12\u001b[0m - \u001b[1mModel inference latency: 146.244 ms, Ratio: 0.1\u001b[0m\n", - "\u001b[32m2023-12-20 08:39:44.605\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m12\u001b[0m - \u001b[1mModel inference latency: 136.28 ms, Ratio: 0.2\u001b[0m\n", - "\u001b[32m2023-12-20 08:40:07.240\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m12\u001b[0m - \u001b[1mModel inference latency: 136.838 ms, Ratio: 0.3\u001b[0m\n", - "\u001b[32m2023-12-20 08:40:30.667\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m12\u001b[0m - \u001b[1mModel inference latency: 146.136 ms, Ratio: 0.4\u001b[0m\n", - "\u001b[32m2023-12-20 08:40:53.752\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m12\u001b[0m - \u001b[1mModel inference latency: 141.898 ms, Ratio: 0.5\u001b[0m\n", - "\u001b[32m2023-12-20 08:41:17.646\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m12\u001b[0m - \u001b[1mModel inference latency: 124.096 ms, Ratio: 0.6\u001b[0m\n", - "\u001b[32m2023-12-20 08:41:32.128\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m12\u001b[0m - \u001b[1mModel inference latency: 96.9564 ms, Ratio: 0.7\u001b[0m\n", - "\u001b[32m2023-12-20 08:41:46.284\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m12\u001b[0m - \u001b[1mModel inference latency: 96.2396 ms, Ratio: 0.8\u001b[0m\n", - "\u001b[32m2023-12-20 08:42:00.282\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36m__main__\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m12\u001b[0m - \u001b[1mModel inference latency: 83.5877 ms, Ratio: 0.9\u001b[0m\n" - ] - } - ], - "source": [ - "benchmarker = ModelBenchmarker(email=EMAIL, password=PASSWORD)\n", - "\n", - "latency_list = []\n", - "\n", - "for ratio in ratios:\n", - " converted_model_path = f\"{project_path}/converted/drpai_converted_model_{ratio}.zip\"\n", - " benchmark_task = benchmarker.benchmark_model(\n", - " model_path=converted_model_path,\n", - " target_device_name=DeviceName.RENESAS_RZ_V2L\n", - " )\n", - " latency_list.append(benchmark_task.latency)\n", - " logger.info(f\"Model inference latency: {benchmark_task.latency} ms, Ratio: {ratio}\")" - ] - }, - { - "cell_type": "markdown", - "id": "7091e43b-c729-4a8f-8da2-002887430c2d", - "metadata": {}, - "source": [ - "### 3-4. Comparison of latency and FLOPs corresponding to the compression ratios" - ] - }, - { - "cell_type": "markdown", - "id": "82806cc7-042b-4688-a13c-a315b253578d", - "metadata": {}, - "source": [ - "Let's examine how latency and FLOPs change corresponding to the compression ratios." - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "e46b8443-423d-429f-b0a9-0bf38acf88bf", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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ERHJstIuhWlYvhhbj11m4a6zvNWyktGRRERERKQAateuneXPNWvWZMfjj+NVxpui50K4aNeUBabKuFGWFlUrUqNGDTw8PGjRogXHjx+nfPnyma61f/9+nn76aUaNGkXr1q0txytXrkzlypVJSUkhOjqaoUOHEhERwbfffsvPP/9834zr16/n5Zdf5scff6RatWqW4xs2bOA///kP33//PQ0aNODYsWO8+eabfPLJJ3z00Uc5UB0RyW1azkVERESy5daSLr+HniU9PcPgNCIiIiLyKHB2dsa3ciXae0P3+mXIyIBJ64/R7YftRF69QYMGDQA4duxYpucdOHCAFi1a0L9/f0aMGHHf+9SvX/+2a9zJxo0bCQgI4Ntvv6VXr16Zzn300Ue8+OKLvPLKK9SoUYNnnnmG//znP4wdO5b09PRsvGoRySvURBcREZFsaVPNnaJ21py9coPtEZeNjiMiIiIij4C4uDiOHz+OV+lSjH22BpN6+FHUzpqQU1doP2EzPyxaC9xcouWW8PBwmjdvTu/evfnss8+ydJ+wsLBM17iTDRs20KFDB7744gv69+9/2/mEhATM5swtNysrKwAyMjQJRSQ/UhNdREREsqWQrRVP1fIE4PeQswanEREREZGC6J133mHjxo2cPHmSbdu28cwzz2BlZUX37t05fvw4u/+czudNi1CxUAJRe7fw3huv4l2tHpWr3lxWZf/+/TRv3pzWrVszdOhQoqOjiY6O5uLFi5Z7jB8/nj///JNjx45x6tQp3n77bdatW8frr79uGTNp0iRatGhhebx+/Xo6dOjAG2+8QefOnS3XjYmJsYwJCAhgypQp/Prrr0RERBAYGMhHH31EQECApZkuIvmL1kQXERGRbOtSrzS/7DjNiv1RjHm6GkXtbYyOJCIiIiIFyNmzZ+nevTuXL1+mRIkSNG7cmO3bt1OiRAkSExNZs2YN48ePJz4+niLFSlK4UkPSG3bj2e+3MalHHX7//XcuXrzInDlzmDNnjuW63t7enDx5EoDk5GTefvttIiMjsbGxoU6dOqxZs4bmzZtbxl+6dInjx49bHv/0008kJCQwduxYxo4dazn+xBNPsGHDBgBGjBiByWRixIgRREZGUqJECQICArI8G15E8h410UVERCTb/LycKV/CgeMX41m+N4pu9csYHUlERERECpBff/31rue8vLzY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5ubmBmNjY4VZJw4ODjAwMJA/trCwgJubG8RiscK2hIQEheN7enrmevzf2Szu7u7yP6ekpCA6OhpDhgxBmTJl5D9z585FdHQ0AGDgwIEICwuDs7MzxowZgxMnTsif3717d6SlpcHJyQnDhg3DgQMHkJWVVaDXbmVlles6P+Ts2bMIDQ2Fn58fKleujHXr1insP3nyJFq0aAEbGxsYGBigX79+ePnyJVJTUz96bFWvgYiIiIiKL47dOXbn2J2IChKb6ERESqpUqRJEIpHCOn6fQ1NTU+GxSCT64DaZTKbysd//ymrOuoLr169HWFiY/Of27dvytSBr166N2NhYzJkzB2lpaejRowe6desGALC1tUVkZCTWrFkDXV1djBo1Co0bN/6smx596nU6OjrC2dkZAwYMwNChQxW+pvngwQO0b98e1atXx759+xAaGorVq1cDQIHcwIiIiIiISg6O3Tl2JyIqSGyiExEpqWzZsvD29sbq1auRkpKSa//r168BAK6urnj06BEePXok3xceHo7Xr1/Dzc3ts/N4/yZIOY9dXV3zjLewsIC1tTViYmJQsWJFhR9HR0d5nKGhIXr27In169djz5492LdvHxITEwEAurq66NChA1auXIng4GCEhITg1q1buc5V2Nf+Pl9fX9y+fRsHDhwAAISGhkImk+Hnn39G/fr1UblyZTx9+lThOVpaWsjOzs73uEV5DURERERUODh259idY3ciKkga6k6AiKgkWb16NRo2bIh69eph9uzZqF69OrKyshAYGIi1a9ciIiICLVu2RLVq1dCnTx8sX74cWVlZGDVqFJo0aaLwVc1PtXfvXri7u8PLyws7duzA5cuXsXHjxnyfM2vWLIwZMwZGRkbw8fFBRkYGrl69ilevXmH8+PFYunQprKysUKtWLYjFYuzduxeWlpYwNjaGn58fsrOz4eHhAT09PWzfvh26urqwt7fPdZ7Cvvb36enpYdiwYZgxYwY6d+6MihUrQiqV4pdffkGHDh1w/vz5XF8ZdXBwQHJyMoKCglCjRg3o6elBT09PbddARERERIWHY3eO3YmICgpnohMRqcDJyQnXrl1Ds2bN8N1336Fq1apo1aoVgoKCsHbtWgDvvt546NAhmJiYoHHjxmjZsiWcnJywZ8+eAslh1qxZ2L17N6pXr46tW7di165dH51lMXToUGzYsAGbN29GtWrV0KRJE/j5+clnsxgYGGDx4sVwd3dH3bp18eDBAxw/fhxisRjGxsZYv349GjZsiOrVq+PkyZM4cuQITE1Nc52nsK/9v0aPHo2IiAjs3bsXNWrUwNKlS7Fo0SJUrVoVO3bswIIFCxTiGzRogBEjRqBnz54wMzPD4sWL1X4NRERERFQ4OHbn2J2IqKCIBGXvtkFERGonEolw4MABdO7cWd2pEBERERFRPjh2JyIqPTgTnYiIiIiIiIiIiIgoD2yiExERERERERERERHlgcu5EBERERERERERERHlgTPRiYiIiIiIiIiIiIjywCY6EREREREREREREVEe2EQnIiIiIiIiIiIiIsoDm+hERERERERERERERHlgE52IiIiIiIiIiIiIKA9sohMRERERERERERER5YFNdCIiIiIiIiIiIiKiPLCJTkRERERERERERESUBzbRiYiIiIiIiIiIiIjy8H/MTIexorVrdAAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(15, 6))\n", - "\n", - "# Latency vs. Compression Ratio\n", - "plt.subplot(1, 2, 1)\n", - "plt.plot(ratios, latency_list, marker='o', label='Compressed Model')\n", - "plt.axhline(original_model_latency, color='slategray', linestyle='--', label='Original Model') # Replace scatter with axhline\n", - "plt.axhline(100, color='red', linestyle='--', label='Target Latency')\n", - "plt.title('Latency vs. Compression Ratio')\n", - "plt.xlabel('Compression Ratio')\n", - "plt.ylabel('Latency (ms)')\n", - "plt.legend()\n", - "plt.grid(True)\n", - "\n", - "# Add text annotations for each point\n", - "for i, txt in enumerate(latency_list):\n", - " plt.annotate(f'{txt:.2f}', (ratios[i], txt), textcoords=\"offset points\", xytext=(0, 5), ha='center', va='bottom')\n", - "\n", - "plt.annotate(f'{original_model_latency:.2f}', (0, original_model_latency), textcoords=\"offset points\", xytext=(0, 5), ha='center', va='bottom')\n", - "\n", - "# FLOPs vs. Compression Ratio\n", - "plt.subplot(1, 2, 2)\n", - "plt.plot(ratios, flops_list, marker='o', label='Compressed Model')\n", - "plt.axhline(original_model_flops, color='slategray', linestyle='--', label='Original Model') # Replace scatter with axhline\n", - "plt.title('FLOPs vs. Compression Ratio')\n", - "plt.xlabel('Compression Ratio')\n", - "plt.ylabel('FLOPs (M)')\n", - "plt.legend()\n", - "plt.grid(True)\n", - "\n", - "# Add text annotations for each point\n", - "for i, txt in enumerate(flops_list):\n", - " plt.annotate(f'{txt:.2f}', (ratios[i], txt), textcoords=\"offset points\", xytext=(0, 5), ha='center', va='bottom')\n", - "\n", - "plt.annotate(f'{original_model_flops:.2f}', (0, original_model_flops), textcoords=\"offset points\", xytext=(0, 5), ha='center', va='bottom')\n", - "\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "2c1033b8-4208-447b-b364-f70efb84dc01", - "metadata": {}, - "source": [ - "The compression ratio that satisfies **the target latency(100ms)** we set can be found as 0.7, 0.8, and 0.9." - ] - }, - { - "cell_type": "markdown", - "id": "edeb3bad-4d26-46eb-8c13-fe84768b7868", - "metadata": {}, - "source": [ - "## 4. Retrain the compressed model" - ] - }, - { - "cell_type": "markdown", - "id": "9268086e-2690-4338-8efe-ff07d9361860", - "metadata": {}, - "source": [ - "Then, we will retrain the compressed model with ratio=0.7 and check the performance." - ] - }, - { - "cell_type": "markdown", - "id": "1f9f6ed8-1559-4bc7-9159-9cfae97b8ac5", - "metadata": {}, - "source": [ - "### 4-1. Train the compressed model" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "103afacf-086d-4fb1-8278-9c8845663bd7", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/conda/lib/python3.10/site-packages/torch/distributed/launch.py:180: FutureWarning: The module torch.distributed.launch is deprecated\n", - "and will be removed in future. Use torchrun.\n", - "Note that --use_env is set by default in torchrun.\n", - "If your script expects `--local_rank` argument to be set, please\n", - "change it to read from `os.environ['LOCAL_RANK']` instead. See \n", - "https://pytorch.org/docs/stable/distributed.html#launch-utility for \n", - "further instructions\n", - "\n", - " warnings.warn(\n", - "WARNING:torch.distributed.run:\n", - "*****************************************\n", - "Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. \n", - "*****************************************\n", - "2023-12-20_08:42:05 UTC | INFO\t\t| train_common::39 >>> Task: detection | Model: yolox_s_graphmodule | Training with torch.fx model? True\n", - "2023-12-20_08:42:05 UTC | INFO\t\t| build_dataset::20 >>> ----------------------------------------\n", - "2023-12-20_08:42:05 UTC | INFO\t\t| build_dataset::21 >>> Loading data...\n", - "2023-12-20_08:42:05 UTC | INFO\t\t| build_dataset::93 >>> Summary | Dataset: (with local format)\n", - "2023-12-20_08:42:05 UTC | INFO\t\t| build_dataset::94 >>> Summary | Training dataset: 630 sample(s)\n", - "2023-12-20_08:42:05 UTC | INFO\t\t| build_dataset::96 >>> Summary | Validation dataset: 111 sample(s)\n", - " 0%| | 0/19 [00:00:156 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 1 / 40\n", - "2023-12-20_08:42:23 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0006090\n", - "2023-12-20_08:42:23 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 8.4390075\n", - "2023-12-20_08:42:23 UTC | INFO\t\t| __call__::33 >>> training loss: 63.1507550\n", - "2023-12-20_08:42:23 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:42:23 UTC | INFO\t\t| __call__::37 >>> validation loss: 47.0097270\n", - "2023-12-20_08:42:23 UTC | INFO\t\t| __call__::39 >>> validation metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "/opt/conda/lib/python3.10/site-packages/torch/onnx/_internal/jit_utils.py:258: UserWarning: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function. (Triggered internally at ../torch/csrc/jit/passes/onnx/shape_type_inference.cpp:1884.)\n", - " _C._jit_pass_onnx_node_shape_type_inference(node, params_dict, opset_version)\n", - "/opt/conda/lib/python3.10/site-packages/torch/onnx/utils.py:687: UserWarning: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function. (Triggered internally at ../torch/csrc/jit/passes/onnx/shape_type_inference.cpp:1884.)\n", - " _C._jit_pass_onnx_graph_shape_type_inference(\n", - "/opt/conda/lib/python3.10/site-packages/torch/onnx/utils.py:1178: UserWarning: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function. (Triggered internally at ../torch/csrc/jit/passes/onnx/shape_type_inference.cpp:1884.)\n", - " _C._jit_pass_onnx_graph_shape_type_inference(\n", - "2023-12-20_08:42:25 UTC | INFO\t\t| save_checkpoint::291 >>> ONNX model converting and saved at outputs/detection_yolox_s_graphmodule/version_1/detection_yolox_s_graphmodule_best.onnx\n", - "2023-12-20_08:42:25 UTC | INFO\t\t| save_checkpoint::293 >>> Best model saved at outputs/detection_yolox_s_graphmodule/version_1/detection_yolox_s_graphmodule_best.pt\n", - "2023-12-20_08:42:25 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s_graphmodule/version_1/training_summary.ckpt\n", - "2023-12-20_08:42:25 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:42:31 UTC | INFO\t\t| __call__::27 >>> Epoch: 2 / 40\n", - "2023-12-20_08:42:31 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0012080\n", - "2023-12-20_08:42:31 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.2859809\n", - "2023-12-20_08:42:31 UTC | INFO\t\t| __call__::33 >>> training loss: 30.2520362\n", - "2023-12-20_08:42:31 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:42:31 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 3 / 40\n", - "2023-12-20_08:42:36 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0018070\n", - "2023-12-20_08:42:36 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.7605543\n", - "2023-12-20_08:42:36 UTC | INFO\t\t| __call__::33 >>> training loss: 19.6488754\n", - "2023-12-20_08:42:36 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:42:36 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:42:42 UTC | INFO\t\t| __call__::27 >>> Epoch: 4 / 40\n", - "2023-12-20_08:42:42 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0024060\n", - "2023-12-20_08:42:42 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8790698\n", - " 0%| | 0/19 [00:00:33 >>> training loss: 15.5341726\n", - "2023-12-20_08:42:42 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:42:42 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 5 / 40\n", - "2023-12-20_08:42:48 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0030050\n", - "2023-12-20_08:42:48 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.7742290\n", - "2023-12-20_08:42:48 UTC | INFO\t\t| __call__::33 >>> training loss: 11.8047088\n", - "2023-12-20_08:42:48 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:42:48 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 6 / 40\n", - "2023-12-20_08:42:54 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0036040\n", - "2023-12-20_08:42:54 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.7988470\n", - "2023-12-20_08:42:54 UTC | INFO\t\t| __call__::33 >>> training loss: 9.6228199\n", - "2023-12-20_08:42:54 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:42:54 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 7 / 40\n", - "2023-12-20_08:43:00 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0042030\n", - "2023-12-20_08:43:00 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.6705530\n", - "2023-12-20_08:43:00 UTC | INFO\t\t| __call__::33 >>> training loss: 8.2264675\n", - "2023-12-20_08:43:00 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:43:00 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 8 / 40\n", - "2023-12-20_08:43:05 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0048020\n", - "2023-12-20_08:43:05 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.6953704\n", - "2023-12-20_08:43:05 UTC | INFO\t\t| __call__::33 >>> training loss: 6.7606426\n", - "2023-12-20_08:43:05 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.0), ('map75', 0.0), ('map50_95', 0.0)]\n", - "2023-12-20_08:43:05 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 9 / 40\n", - "2023-12-20_08:43:11 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0054010\n", - "2023-12-20_08:43:11 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.7538841\n", - "2023-12-20_08:43:11 UTC | INFO\t\t| __call__::33 >>> training loss: 5.9162096\n", - "2023-12-20_08:43:11 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.1278383720930233), ('map75', 0.07716382488479265), ('map50_95', 0.06276677549384473)]\n", - "2023-12-20_08:43:11 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 10 / 40\n", - "2023-12-20_08:43:17 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0060000\n", - "2023-12-20_08:43:17 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.6608298\n", - "2023-12-20_08:43:17 UTC | INFO\t\t| __call__::33 >>> training loss: 5.1244618\n", - "2023-12-20_08:43:17 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.3909409763600794), ('map75', 0.28922409376050684), ('map50_95', 0.24180508703715206)]\n", - "2023-12-20_08:43:17 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 11 / 40\n", - "2023-12-20_08:43:31 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0052813\n", - "2023-12-20_08:43:31 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 6.8925948\n", - "2023-12-20_08:43:31 UTC | INFO\t\t| __call__::33 >>> training loss: 4.6550835\n", - "2023-12-20_08:43:31 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.41207491986049594), ('map75', 0.2007568474432646), ('map50_95', 0.23223553247420076)]\n", - "2023-12-20_08:43:31 UTC | INFO\t\t| __call__::37 >>> validation loss: 7.2581402\n", - "2023-12-20_08:43:31 UTC | INFO\t\t| __call__::39 >>> validation metric: [('map50', 0.1375), ('map75', 0.1375), ('map50_95', 0.11656250000000001)]\n", - "2023-12-20_08:43:33 UTC | INFO\t\t| save_checkpoint::291 >>> ONNX model converting and saved at outputs/detection_yolox_s_graphmodule/version_1/detection_yolox_s_graphmodule_best.onnx\n", - "2023-12-20_08:43:34 UTC | INFO\t\t| save_checkpoint::293 >>> Best model saved at outputs/detection_yolox_s_graphmodule/version_1/detection_yolox_s_graphmodule_best.pt\n", - "2023-12-20_08:43:34 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s_graphmodule/version_1/training_summary.ckpt\n", - "2023-12-20_08:43:34 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:43:39 UTC | INFO\t\t| __call__::27 >>> Epoch: 12 / 40\n", - "2023-12-20_08:43:39 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0051215\n", - "2023-12-20_08:43:39 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.1722512\n", - "2023-12-20_08:43:39 UTC | INFO\t\t| __call__::33 >>> training loss: 4.1476147\n", - "2023-12-20_08:43:39 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.4483970919756287), ('map75', 0.3883190186357815), ('map50_95', 0.2995321972796102)]\n", - " 0%| | 0/19 [00:00:189 >>> ----------------------------------------\n", - "2023-12-20_08:43:45 UTC | INFO\t\t| __call__::27 >>> Epoch: 13 / 40\n", - "2023-12-20_08:43:45 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0049485\n", - "2023-12-20_08:43:45 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8166983\n", - "2023-12-20_08:43:45 UTC | INFO\t\t| __call__::33 >>> training loss: 3.9909711\n", - "2023-12-20_08:43:45 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.5983280721651263), ('map75', 0.4237828628011841), ('map50_95', 0.38712426169362174)]\n", - "2023-12-20_08:43:45 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 14 / 40\n", - "2023-12-20_08:43:50 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0047636\n", - "2023-12-20_08:43:50 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.7417774\n", - "2023-12-20_08:43:50 UTC | INFO\t\t| __call__::33 >>> training loss: 4.0455971\n", - "2023-12-20_08:43:50 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.564594067022271), ('map75', 0.30174320654360165), ('map50_95', 0.3089923478479586)]\n", - "2023-12-20_08:43:50 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 15 / 40\n", - "2023-12-20_08:43:56 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0045677\n", - "2023-12-20_08:43:56 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.7882288\n", - "2023-12-20_08:43:56 UTC | INFO\t\t| __call__::33 >>> training loss: 3.7498569\n", - "2023-12-20_08:43:56 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.5682083484157944), ('map75', 0.39244127257801203), ('map50_95', 0.36028835672040727)]\n", - "2023-12-20_08:43:56 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 16 / 40\n", - "2023-12-20_08:44:02 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0043622\n", - "2023-12-20_08:44:02 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.7905769\n", - "2023-12-20_08:44:02 UTC | INFO\t\t| __call__::33 >>> training loss: 3.3634371\n", - "2023-12-20_08:44:02 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.6468558984041998), ('map75', 0.4563378899870896), ('map50_95', 0.42845661719546496)]\n", - "2023-12-20_08:44:02 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:44:08 UTC | INFO\t\t| __call__::27 >>> Epoch: 17 / 40\n", - "2023-12-20_08:44:08 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0041484\n", - "2023-12-20_08:44:08 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8331261\n", - "2023-12-20_08:44:08 UTC | INFO\t\t| __call__::33 >>> training loss: 3.2438085\n", - "2023-12-20_08:44:08 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.6937484905930132), ('map75', 0.5691006779090454), ('map50_95', 0.47462604009100795)]\n", - "2023-12-20_08:44:08 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 18 / 40\n", - "2023-12-20_08:44:13 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0039274\n", - "2023-12-20_08:44:13 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8001106\n", - "2023-12-20_08:44:13 UTC | INFO\t\t| __call__::33 >>> training loss: 3.1997120\n", - "2023-12-20_08:44:13 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.6755496552433466), ('map75', 0.502398855144446), ('map50_95', 0.42219161309684344)]\n", - "2023-12-20_08:44:13 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:44:19 UTC | INFO\t\t| __call__::27 >>> Epoch: 19 / 40\n", - "2023-12-20_08:44:19 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0037007\n", - "2023-12-20_08:44:19 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8007805\n", - "2023-12-20_08:44:19 UTC | INFO\t\t| __call__::33 >>> training loss: 3.4298683\n", - "2023-12-20_08:44:19 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.6196647902182604), ('map75', 0.37538364732672175), ('map50_95', 0.35788229538340444)]\n", - "2023-12-20_08:44:19 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 20 / 40\n", - "2023-12-20_08:44:25 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0034697\n", - "2023-12-20_08:44:25 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.7895205\n", - "2023-12-20_08:44:25 UTC | INFO\t\t| __call__::33 >>> training loss: 3.0349050\n", - "2023-12-20_08:44:25 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.7289777910749833), ('map75', 0.5407658580085766), ('map50_95', 0.47879647388996505)]\n", - "2023-12-20_08:44:25 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 21 / 40\n", - "2023-12-20_08:44:40 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0032358\n", - "2023-12-20_08:44:40 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.1087320\n", - "2023-12-20_08:44:40 UTC | INFO\t\t| __call__::33 >>> training loss: 2.5986893\n", - "2023-12-20_08:44:40 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.8149973245614035), ('map75', 0.7386074106540185), ('map50_95', 0.5958627674123627)]\n", - "2023-12-20_08:44:40 UTC | INFO\t\t| __call__::37 >>> validation loss: 4.1066909\n", - "2023-12-20_08:44:40 UTC | INFO\t\t| __call__::39 >>> validation metric: [('map50', 0.7190788825757576), ('map75', 0.6183106889922992), ('map50_95', 0.5314503794018333)]\n", - "2023-12-20_08:44:42 UTC | INFO\t\t| save_checkpoint::291 >>> ONNX model converting and saved at outputs/detection_yolox_s_graphmodule/version_1/detection_yolox_s_graphmodule_best.onnx\n", - "2023-12-20_08:44:42 UTC | INFO\t\t| save_checkpoint::293 >>> Best model saved at outputs/detection_yolox_s_graphmodule/version_1/detection_yolox_s_graphmodule_best.pt\n", - "2023-12-20_08:44:42 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s_graphmodule/version_1/training_summary.ckpt\n", - "2023-12-20_08:44:42 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 22 / 40\n", - "2023-12-20_08:44:47 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0030005\n", - "2023-12-20_08:44:47 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.2935987\n", - "2023-12-20_08:44:47 UTC | INFO\t\t| __call__::33 >>> training loss: 2.4436764\n", - "2023-12-20_08:44:47 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.886632849554353), ('map75', 0.8030019949372607), ('map50_95', 0.6603973213604748)]\n", - "2023-12-20_08:44:47 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 23 / 40\n", - "2023-12-20_08:44:53 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0027652\n", - "2023-12-20_08:44:53 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.7973373\n", - "2023-12-20_08:44:53 UTC | INFO\t\t| __call__::33 >>> training loss: 2.4632973\n", - "2023-12-20_08:44:53 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9009272632594023), ('map75', 0.7975881054656146), ('map50_95', 0.6491687213260049)]\n", - "2023-12-20_08:44:53 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:44:59 UTC | INFO\t\t| __call__::27 >>> Epoch: 24 / 40\n", - "2023-12-20_08:44:59 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0025313\n", - "2023-12-20_08:44:59 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8768649\n", - "2023-12-20_08:44:59 UTC | INFO\t\t| __call__::33 >>> training loss: 2.3764755\n", - "2023-12-20_08:44:59 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9172177461805978), ('map75', 0.8217223511215976), ('map50_95', 0.6705960672835088)]\n", - "2023-12-20_08:44:59 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 25 / 40\n", - "2023-12-20_08:45:05 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0023003\n", - "2023-12-20_08:45:05 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8196330\n", - "2023-12-20_08:45:05 UTC | INFO\t\t| __call__::33 >>> training loss: 2.5168927\n", - "2023-12-20_08:45:05 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.8773215081292646), ('map75', 0.7689052172206247), ('map50_95', 0.6305325813621326)]\n", - "2023-12-20_08:45:05 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 26 / 40\n", - "2023-12-20_08:45:11 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0020736\n", - "2023-12-20_08:45:11 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8364868\n", - "2023-12-20_08:45:11 UTC | INFO\t\t| __call__::33 >>> training loss: 2.3262159\n", - "2023-12-20_08:45:11 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9202235204269289), ('map75', 0.8283396011294581), ('map50_95', 0.6841667198644596)]\n", - "2023-12-20_08:45:11 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 27 / 40\n", - "2023-12-20_08:45:16 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0018526\n", - "2023-12-20_08:45:16 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8922710\n", - "2023-12-20_08:45:16 UTC | INFO\t\t| __call__::33 >>> training loss: 2.2831741\n", - "2023-12-20_08:45:16 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9225946979943908), ('map75', 0.8788214986922637), ('map50_95', 0.694440684113715)]\n", - "2023-12-20_08:45:16 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 28 / 40\n", - "2023-12-20_08:45:22 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0016388\n", - "2023-12-20_08:45:22 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8981543\n", - "2023-12-20_08:45:22 UTC | INFO\t\t| __call__::33 >>> training loss: 2.4531706\n", - "2023-12-20_08:45:22 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9119900418452745), ('map75', 0.8230926235426576), ('map50_95', 0.652244341352845)]\n", - "2023-12-20_08:45:22 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 29 / 40\n", - "2023-12-20_08:45:28 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0014333\n", - "2023-12-20_08:45:28 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8584843\n", - "2023-12-20_08:45:28 UTC | INFO\t\t| __call__::33 >>> training loss: 2.3939379\n", - "2023-12-20_08:45:28 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9253678819938231), ('map75', 0.8174441775388908), ('map50_95', 0.6587334140773025)]\n", - "2023-12-20_08:45:28 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 30 / 40\n", - "2023-12-20_08:45:34 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0012374\n", - "2023-12-20_08:45:34 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8480449\n", - "2023-12-20_08:45:34 UTC | INFO\t\t| __call__::33 >>> training loss: 2.3769474\n", - "2023-12-20_08:45:34 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9377841497747748), ('map75', 0.7718518389197265), ('map50_95', 0.6590747786896763)]\n", - "2023-12-20_08:45:34 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 31 / 40\n", - "2023-12-20_08:45:49 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0010525\n", - "2023-12-20_08:45:49 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.0990980\n", - "2023-12-20_08:45:49 UTC | INFO\t\t| __call__::33 >>> training loss: 1.9497498\n", - "2023-12-20_08:45:49 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9562489082852872), ('map75', 0.9223582040874946), ('map50_95', 0.7647128844837263)]\n", - "2023-12-20_08:45:49 UTC | INFO\t\t| __call__::37 >>> validation loss: 3.3377245\n", - "2023-12-20_08:45:49 UTC | INFO\t\t| __call__::39 >>> validation metric: [('map50', 0.8377063492063492), ('map75', 0.7023971236658078), ('map50_95', 0.6006831821720711)]\n", - "2023-12-20_08:45:51 UTC | INFO\t\t| save_checkpoint::291 >>> ONNX model converting and saved at outputs/detection_yolox_s_graphmodule/version_1/detection_yolox_s_graphmodule_best.onnx\n", - "2023-12-20_08:45:51 UTC | INFO\t\t| save_checkpoint::293 >>> Best model saved at outputs/detection_yolox_s_graphmodule/version_1/detection_yolox_s_graphmodule_best.pt\n", - "2023-12-20_08:45:51 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s_graphmodule/version_1/training_summary.ckpt\n", - "2023-12-20_08:45:51 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:45:56 UTC | INFO\t\t| __call__::27 >>> Epoch: 32 / 40\n", - "2023-12-20_08:45:56 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0008795\n", - "2023-12-20_08:45:56 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.2835336\n", - "2023-12-20_08:45:56 UTC | INFO\t\t| __call__::33 >>> training loss: 1.6759429\n", - "2023-12-20_08:45:56 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9700334815546772), ('map75', 0.9565800297246765), ('map50_95', 0.8308348436171615)]\n", - "2023-12-20_08:45:56 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 33 / 40\n", - "2023-12-20_08:46:02 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0007197\n", - "2023-12-20_08:46:02 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8252203\n", - "2023-12-20_08:46:02 UTC | INFO\t\t| __call__::33 >>> training loss: 1.6251924\n", - "2023-12-20_08:46:02 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9665042086089539), ('map75', 0.9545769804317592), ('map50_95', 0.8394772053323413)]\n", - "2023-12-20_08:46:02 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 34 / 40\n", - "2023-12-20_08:46:08 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0005739\n", - "2023-12-20_08:46:08 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8370714\n", - "2023-12-20_08:46:08 UTC | INFO\t\t| __call__::33 >>> training loss: 1.6892533\n", - "2023-12-20_08:46:08 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9645859291606016), ('map75', 0.9551113410217635), ('map50_95', 0.8252284232083733)]\n", - "2023-12-20_08:46:08 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 35 / 40\n", - "2023-12-20_08:46:14 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0004430\n", - "2023-12-20_08:46:14 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8484788\n", - "2023-12-20_08:46:14 UTC | INFO\t\t| __call__::33 >>> training loss: 1.7370771\n", - "2023-12-20_08:46:14 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9670114773540996), ('map75', 0.9615069373108094), ('map50_95', 0.8133118727715889)]\n", - "2023-12-20_08:46:14 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 36 / 40\n", - "2023-12-20_08:46:20 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0003279\n", - "2023-12-20_08:46:20 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8548205\n", - "2023-12-20_08:46:20 UTC | INFO\t\t| __call__::33 >>> training loss: 1.6265929\n", - "2023-12-20_08:46:20 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9781809196035243), ('map75', 0.97404856003301), ('map50_95', 0.8454108195882265)]\n", - "2023-12-20_08:46:20 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 37 / 40\n", - "2023-12-20_08:46:26 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0002293\n", - "2023-12-20_08:46:26 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8798182\n", - "2023-12-20_08:46:26 UTC | INFO\t\t| __call__::33 >>> training loss: 1.5920335\n", - "2023-12-20_08:46:26 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9759154717723797), ('map75', 0.9721514551546744), ('map50_95', 0.8401654261650787)]\n", - "2023-12-20_08:46:26 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 38 / 40\n", - "2023-12-20_08:46:32 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0001478\n", - "2023-12-20_08:46:32 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.9401760\n", - "2023-12-20_08:46:32 UTC | INFO\t\t| __call__::33 >>> training loss: 1.5582884\n", - "2023-12-20_08:46:32 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.98158806550784), ('map75', 0.9797515329356319), ('map50_95', 0.8485652880488921)]\n", - "2023-12-20_08:46:32 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - " 0%| | 0/19 [00:00:27 >>> Epoch: 39 / 40\n", - "2023-12-20_08:46:37 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0000839\n", - "2023-12-20_08:46:37 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 5.8435879\n", - "2023-12-20_08:46:37 UTC | INFO\t\t| __call__::33 >>> training loss: 1.4938441\n", - "2023-12-20_08:46:37 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9762418008551673), ('map75', 0.9761861688637813), ('map50_95', 0.861725541381734)]\n", - "2023-12-20_08:46:37 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:46:52 UTC | INFO\t\t| __call__::27 >>> Epoch: 40 / 40\n", - "2023-12-20_08:46:52 UTC | INFO\t\t| __call__::30 >>> learning rate: 0.0000379\n", - "2023-12-20_08:46:52 UTC | INFO\t\t| __call__::32 >>> elapsed_time: 7.1525633\n", - "2023-12-20_08:46:52 UTC | INFO\t\t| __call__::33 >>> training loss: 1.4213145\n", - "2023-12-20_08:46:52 UTC | INFO\t\t| __call__::34 >>> training metric: [('map50', 0.9794287800218341), ('map75', 0.978703460023114), ('map50_95', 0.8798982500488586)]\n", - "2023-12-20_08:46:52 UTC | INFO\t\t| __call__::37 >>> validation loss: 3.3688321\n", - "2023-12-20_08:46:52 UTC | INFO\t\t| __call__::39 >>> validation metric: [('map50', 0.8458950812345549), ('map75', 0.7152075600934154), ('map50_95', 0.6149036421188235)]\n", - "2023-12-20_08:46:53 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s_graphmodule/version_1/training_summary.ckpt\n", - "2023-12-20_08:46:53 UTC | INFO\t\t| train::189 >>> ----------------------------------------\n", - "2023-12-20_08:46:53 UTC | INFO\t\t| train::193 >>> Total time: 286.40 s\n", - "Unsupported operator aten::silu encountered 74 time(s)\n", - "Unsupported operator aten::add encountered 7 time(s)\n", - "Unsupported operator aten::max_pool2d encountered 3 time(s)\n", - "2023-12-20_08:46:53 UTC | INFO\t\t| save_summary::327 >>> [Model stats] Params: 0.82M | MACs: 1.79G\n", - "2023-12-20_08:46:53 UTC | INFO\t\t| save_summary::335 >>> Model training summary saved at outputs/detection_yolox_s_graphmodule/version_1/training_summary.ckpt\n", - "\u001b[32m2023-12-20 08:46:57.370\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mnetspresso.trainer.model_trainer\u001b[0m:\u001b[36mtrain\u001b[0m:\u001b[36m197\u001b[0m - \u001b[1mRemove /tmp/temp_np_trainer_configs_tnq94swz folder.\u001b[0m\n" - ] - } - ], - "source": [ - "ratio = 0.7\n", - "trainer.model.checkpoint = None\n", - "trainer.model.fx_model_checkpoint = f\"{project_path}/compressed/yolox_auto_compress_{ratio}.pt\"\n", - "trainer.training.lr = 6e-3\n", - "\n", - "trainer.train(gpus=\"0,1\")" - ] - }, - { - "cell_type": "markdown", - "id": "dfe0e57d-3f04-47c9-8e9c-6cb2bfaaca55", - "metadata": {}, - "source": [ - "### 4-2. Declare project path" - ] - }, - { - "cell_type": "markdown", - "id": "ad30655e-9bb2-4c02-8065-d94e70530a8c", - "metadata": {}, - "source": [ - "Declare the path of the completed project." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "b592418c-d87c-4898-acb4-49e15fe70524", - "metadata": {}, - "outputs": [], - "source": [ - "retrained_project_path = \"./outputs/detection_yolox_s_graphmodule/version_1\"" - ] - }, - { - "cell_type": "markdown", - "id": "a2c6dcb0-a715-43d6-95e6-fd4ac01f81e4", - "metadata": {}, - "source": [ - "## 5. Comparison of performance metric between original model and compressed model" - ] - }, - { - "cell_type": "markdown", - "id": "4ae26a54-2a9f-4078-996e-e8a259e613fe", - "metadata": {}, - "source": [ - "Comparing the metric of the original model and the compressed model is as follows.\n", - "\n", - "The plot illustrates comparison between the original and compressed models across different performance metrics. Each subplot corresponds to a specific metric(**mAP50**, **mAP75**, **mAP50_95**)." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "bbf67f96-7352-48a1-a6d5-90029a6756bd", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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587phx9+sLW99957at++fbb/sLh48aL69eunihUrytvbWx07dtShQ4fs+ixZskQ1atSQt7e3unbtmuOsgc8++0x33XWXypYtq9q1a2vKlClKTU0tcOwAAEjkboncDQBwLeRucndRo3gOAEXgwoULWr9+vZ577jl5eXnZ7QsICNCTTz6p5cuXy2q12tpfeeUVhYaG6ueff9aECROyHfPYsWPq3r27unTpol9++UX/+Mc/7P5DIDdHjhzRp59+qi+++EJffPGFvvnmG7s/80pMTFRkZKR27Nih6Ohomc1mde3aVRaLpUDX7OHhoSeffFLvvvuurW3JkiV6+umns/UdMGCAduzYoTVr1mjr1q2yWq16+OGHlZKSIknatm2bBg0apGHDhmn37t1q3bq1XnzxRbtjfPfdd+rXr59Gjhyp33//XW+99ZaWLFmi6dOnFyhuAAAkcnc6cjcAwFWQuw3k7qJF8RwAisChQ4dktVrVsGHDHPc3bNhQFy9e1NmzZ21tDz30kP75z3+qTp06qlOnTrYxb731lurXr6/Zs2erfv366tWrlwYMGJBnLBaLRUuWLFHjxo3VqlUr9e3bV9HR0bb9jz/+uLp166a6deuqWbNmWrx4sfbs2aPff/+9wNf99NNPa8WKFUpMTNS3336r+Ph4Pfroo3Z9Dh06pDVr1uidd95Rq1atFBoaqg8//FAnT57Up59+Kkl67bXX1KFDBz3//PO6/fbbNWLECEVERNgdZ8qUKXrhhRfUv39/1a5dW+3atdO0adP01ltvFThuAADI3eRuAIBrIXeTu28FiucAUIQyf8Kdl7vvvvuG+w8cOKB77rnHrq158+Z5HjckJEQVKlSwbQcGBurMmTO27UOHDql3796qXbu2fHx8FBISIkmKiYnJd+zpQkNDVa9ePa1cuVKLFy9W3759s60dt2/fPpUpU0YtWrSwtVWuXFn169fXvn37bH0y75ek8PBwu+1ffvlFU6dOVfny5W2vwYMH6/Tp07p69WqBYwcAQCJ3k7sBAK6G3E3uLkr5Xw0fAJBvdevWlclk0r59+9S1a9ds+/ft26eKFSvqtttus7WVK1euSGJxd3e32zaZTHZ/GtapUyfVrFlTb7/9tqpVqyaLxaLGjRsrOTm5UOd7+umnNW/ePP3+++/avn37TcV+I1euXNGUKVPUrVu3bPvKli1bZOcF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66+/1rBhw2x9/vOf/2jJkiVavHixvv/+e124cEGrV6+2O87MmTP1/vvva8GCBfrtt980evRoPfXUU/rmm2/yFS8AoHghd5O7AQCuhdxN7r4lrKVMfHy8VZI1Pj7e2aEAyIdr165Zf//9d+u1a9ey7asx99a+CmLbtm1WSdZVq1bdsN+GDRusbm5u1piYGFvbb7/9ZpVk3b59u9VqtVonTZpk9fb2tiYkJNj6REREWENCQqxpaWm2tvr161tnzpxp25ZkffbZZ+3O16JFC+uQIUOsVqvVeuzYMask69y59hdXp04d69KlS+3apk2bZg0PD7darVbr8OHDrQ899JDVYrFku57//Oc/1ttvv92anJycbd8ff/xhdXNzs548edKuvU2bNtaxY8darVartXfv3taHH37Ybn/Pnj2tvr6+2Y6XmSTr6tWrrXPnzrW2bt3aarVarVOmTLF27drVevHiRask66ZNm6xWq9W6cOFCa8WKFa1XrlyxjV+7dq3VbDZbY2NjrVar1RoYGGidNWuWbX9KSoq1evXq1s6dO1utVqv1+vXrVm9vb+uWLVvs4hg0aJC1d+/eVqvVat20aZNVkvXixYs5xnyj321ylT3uB+BayN3kbnI3uB+AayF3k7vJ3blj5jkAFAFrlj81ys2+ffsUHBys4OBgW1ujRo3k5+dn90l1SEiIKlSoYNv29/dXo0aNZDab7drOnDljd/zw8PBs21k/Ab/77rtt3ycmJurIkSMaNGiQypcvb3u9+OKLOnLkiCTj6de7d+9W/fr1NWLECG3YsME2/oknntC1a9dUu3ZtDR48WKtXr1Zqaqok40+20tLSdPvtt9sd+5tvvrEde9++fWrRosUNr+FGnnrqKW3dulVHjx7VkiVL9PTTT2frs2/fPoWGhtrNTGjZsqUsFosOHDig+Ph4nT592i6OMmXK2N2nw4cP6+rVq2rXrp3dtbz//vu2awEAuBZyN7kbAOBayN3k7luhzC07EwCUIvXq1ZPJZNL+/fsdcjx3d3e7bZPJlGObxWIp8LEzJ7P09cfefvvtbMnUzc1NknTXXXfp2LFj+vLLL/X111+rR48eatu2rVauXKng4GAdOHBAX3/9tb766is999xzmj17tr755htduXJFbm5u2rlzp+1Y6Rz1cJHKlSvr0Ucf1aBBg3T9+nV17NhRly9fdsixM0u/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UZLUs2dPdejQwa7PgAEDdP369RzjAgAAAAAAcCRmnpdwt3o2aWZWq1UdO3aUyWTSp59+arcvJiZGjzzyiLy9vVW1alX93//9n1JTU2/6egEU3Jw5czR48GANHDhQjRo10oIFC+Tt7a3Fixfn2H/Lli1q2bKl+vTpo5CQELVv3169e/e2e3/p1KmTHn74YdWrV0+33367pk+frvLly+vHH3+UJLm5uSkgIMDutXr1avXo0UPly5eXJHl5edntd3Nz08aNGzVo0KCivykAAAAAAKDUo3hegqXPJp00aZJ27dql0NBQRURE5LrcQfps0kmTJmnfvn1atGiRli9frn//+9+2PumzSXfu3KkdO3booYceUufOnfXbb79lO97cuXNlMpmytaelpemRRx5RcnKytmzZovfee09LlizRxIkTHXfxAPIlOTlZO3fuVNu2bW1tZrNZbdu21datW3Mcc99992nnzp22YvnRo0e1bt06Pfzwwzn2T0tL07Jly5SYmKjw8PAc++zcuVO7d+++YWH8/fffl7e3t7p3757fywMAAAAAACg0lm0pwTLPJpWkBQsWaO3atVq8eLFeeOGFbP0zzyaVpJCQEPXu3Vvbtm2z9enUqZPdmOnTp2v+/Pn68ccfdccdd9jad+/erf/85z/asWOHAgMD7cZs2LBBv//+u77++mv5+/urWbNmmjZtmsaMGaPJkyfLw8PDYfcAwI2dO3dOaWlp8vf3t2v39/fX/v37cxzTp08fnTt3Tvfff7+sVqtSU1P17LPP2n3QJkl79uxReHi4rl+/rvLly2v16tVq1KhRjsdctGiRGjZsqPvuuy/XWBctWqQ+ffrIy8urgFcJAAAAAABQcMw8L6GcOZv06tWr6tOnj+bNm6eAgIBs47Zu3aomTZrYFesiIiKUkJCQ4wx2AMXL5s2bNWPGDL355pvatWuXVq1apbVr12ratGl2/erXr6/du3dr27ZtGjJkiPr376/ff/892/GuXbumpUuX3nDW+datW7Vv3z6WbAEAAAAAALcMM89LKGfOJh09erTuu+8+de7cOcfzxMbG5hhX+j4At06VKlXk5uamuLg4u/a4uLgcP/ySpAkTJqhv3776+9//Lklq0qSJEhMT9cwzz2jcuHEym43PZT08PFS3bl1JUlhYmH766Se99tpreuutt+yOt3LlSl29elX9+vXL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N0pNTVWjRo30ySefqEaNGpKk69ev65///KeWLVumpKQkRURE6M0337RbIzcmJkZDhgzRpk2bVL58efXv318zZ840/pIKAEq54pyryN0AAGSX31zl1P/b6dmzp86ePauJEycqNjZWzZo1U1RUlO1/1GJiYuw+8R4/frxMJpPGjx+vkydP6rbbblOnTp00ffp0Z10CAAClCrm7aC1fvlyRkZFasGCBWrRooblz5yoiIkIHDhxQ1apVs/VftWqVkpOTbdvnz59XaGionnjiCVvbkSNHdP/992vQoEGaMmWKfHx89Ntvv6ls+l/fSBo9erTWrl2rjz/+WL6+vho2bJi6deumH374QZKUlpamRx55RAEBAdqyZYtOnz6tfv36yd3dXTNmzCjCOwIAuFnkbgAACs+pM8+dgZnnKChmnsNRmHlespWWmefOUJruR4sWLXTPPffojTfekGT8aX1wcLCGDx+uF154Ic/xc+fO1cSJE3X69GmVK1dOktSrVy+5u7vrf//7X45j4uPjddttt2np0qXq3r27JGn//v1q2LChtm7dqnvvvVdffvmlHn30UZ06dcpWbFmwYIHGjBmjs2fPysPDwxGXDwAuqzTlqvzgfgAAirv85iqnrXkOAACADMnJydq5c6fatm1razObzWrbtq22bt2ar2MsWrRIvXr1shXOLRaL1q5dq9tvv10RERGqWrWqWrRooU8//dQ2ZufOnUpJSbE7b4MGDVSjRg3bebdu3aomTZrYLeMSERGhhIQE/fbbbzdz2QAAAABQbFE8BwAAKAbOnTuntLQ0uwK1JPn7+ys2NjbP8du3b9fevXv197//3dZ25swZXblyRS+99JI6dOigDRs2qGvXrurWrZttrfTY2Fh5eHjIz88v1/PGxsbmGFf6PgAAAAAoiXjCEwAAQAmwaNEiNWnSxO7hohaLRZLUuXNnjR49WpLUrFkzbdmyRQsWLNADDzzglFgBAAAAwBUw8xwAAKAYqFKlitzc3BQXF2fXHhcXp4CAgBuOTUxM1LJlyzRo0KBsxyxTpowaNWpk196wYUPFxMRIkgICApScnKxLly7let6AgIAc40rfBwAAAAAlEcVzAACAYsDDw0NhYWGKjo62tVksFkVHRys8PPyGYz/++GMlJSXpqaeeynbMe+65RwcOHLBrP3jwoGrWrClJCgsLk7u7u915Dxw4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0gcfSFu2GLPWk5KkY8ekb74x2mfMkJ59Vnr4YalBA/ux6TPWM7twQdq923iA6RtvSGPGSL17Sykp9v2WLpWefFIaO1aaP19au9Z4IOqlS7kX71EszZs3TyEhISpbtqxatGih7du359r3wQcflMlkyvZ65JFHbH2sVqsmTpyowMBAeXl5qW3btjp06JBt//HjxzVo0CDVqlVLXl5eqlOnjiZNmqTkzM8EyOTw4cOqUKGC/Pz8HHbNAAAAtxozzwEAAABnc3eXQkKMV17uuMMofGd9uOmff0qpqRn9fHyyr9H+/fdGAT0nFSpkzFpv00b617/s96elSW5uBbkqFJHly5crMjJSCxYsUIsWLTR37lxFRETowIEDqlq1arb+q1atsitynz9/XqGhoXriiSdsbbNmzdLrr7+u9957T7Vq1dKECRMUERGh33//XWXLltX+/ftlsVj01ltvqW7dutq7d68GDx6sxMREvfLKK3bnS0lJUe/evdWqVStt2bKl6G4EAABAEaN4DgAAALiSmjWNWelZpaVJsbEZBfUrV7L3yWnWerrLl6XffjNeFStm31+3rpScfOOHm1aubMyqR5GaM2eOBg8erIEDB0qSFixYoLVr12rx4sV6IfP6+H+plOWBtcuWLZO3t7eteG61WjV37lyNHz9enTt3liS9//778vf316effqpevXqpQ4cO6tChg+0YtWvX1oEDBzR//vxsxfPx48erQYMGatOmDcVzAADg0iieAwAAACWBm5sUFGS8wsNz7rNiRc4PNM38oNOkpOzrrKemGvvT0oz12X/8Mefje3lJy5YZa62nO39e+vnnjKK7l5djrreUSk5O1s6dOzV27Fhbm9lsVtu2bbV169Z8HWPRokXq1auXyv31oNljx44pNjZWbdu2tfXx9fVVixYttHXrVvXq1SvH48THx2crzG/cuFEff/yxdu/erVWrVhX08gAAAIoViucAAABAaeHtLdWvb7xyYrVKZ89mnz2ekCCFhRkF9NOncz/+tWvGw0sz+/FH6dFHM7Zvuy332evNmzNzPQ/nzp1TWlqa/P397dr9/f21f//+PMdv375de/fu1aJFi2xtsbGxtmNkPWb6vqwOHz6s//73v3azzs+fP68BAwbogw8+kI+PT76vCQAAoLiieA4AAADAYDJJOayZrUqVpG3bjO+TkqSTJ3OfvV6z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//vnMh6g7n0e17DD8e1vfztGjBhx0PsvXbo0CgoK4q233vrcxsTRQXbnk93Q+MlujnayO5/shsZPdn8y5Xk927JlS1x11VXRpUuXaNmyZXTv3j0mTJgQb7755qceW1ZWFq+//nqccsopB/18I0eOjN/97nefZciH5ZxzzomCgoK4+eaba2y76KKLoqCgIKZMmVLv44L6tHXr1hg3blz07NkzCgsLo6ysLIYNGxZLlixp6KE1KgUFBVFQUBArVqzIW793794oKSmJgoKCWLp0acMMjkZBdstumg7ZXT9kN5832S27aTpkd/1oytmtPK9HGzdujAEDBsT69evj5z//eWzYsCHuueeeWLJkSQwaNCh27tz5scfu27cvmjdvHp07d45jjjnmoJ+zVatWcfzxx9fF8A9ZWVlZzJs3L2/da6+9FkuWLInS0tIGGRPUl02bNsXpp58e//3f/x0zZsyI1atXx+LFi+Pcc8+Na665pqGHV6sPPvigoYdw2MrKyuL+++/PW7do0aJo27ZtA42IxkJ2y26aDtldv2Q3nxfZLbtpOmR3/Wqq2a08r0fXXHNNtGzZMh599NEYPHhwdOvWLS688MJ4/PHH47XXXosf/OAHuX3Ly8vjpptuilGjRkVxcXF897vfrfVjW7/85S+jV69eUVRUFOeee2785Cc/yfvIQvajF1OmTIn+/fvHAw88EOXl5dG+ffv4sz/7s3j33Xdz+yxevDjOPvvs6NChQ5SUlMTFF18cL7/88iG/3osvvjh27NgRy5cvz637yU9+EhdccEGNXyx27doVo0aNio4dO0br1q3jwgsvjPXr1+ftM2/evOjWrVu0bt06Lr300lr/auAXv/hFfOlLX4qioqLo2bNnTJ06Nfbv33/IY4fP6uqrr46CgoJYuXJl/Omf/mmceOKJ8cd//MdRWVmZ907t5s2bY/jw4dG2bdsoLi6Ob33rW7Ft27bc9gNz9r777otu3bpF27Zt4+qrr46qqqq49dZbo3PnznH88cfHj370o7znLygoiLvvvjsuvPDCaNWqVfTs2TMefvjh3PYD15P58+fH4MGDo6ioKB588MGIiPjnf/7n6NOnTxQVFcVJJ50Ud911V+64ffv2xbXXXhulpaVRVFQU3bt3j+nTp0dEREoppkyZEt26dYvCwsLo0qVLjB8/Pnfs3r1747rrrouuXbtGmzZtoqKiosY70wczz2szevToeOihh+L999/Prbvvvvti9OjRNfZdvXp1fPWrX41WrVpFSUlJfPe7343du3fntldVVUVlZWXuGvh3f/d3kVLKO0d1dXVMnz49evToEa1atYp+/frl/XxpPGS37KbpkN2ym8ZBdstumg7ZLbvrRaJevPnmm6mgoCD9wz/8Q63bx44dmzp27Jiqq6tTSil17949FRcXp9tuuy1t2LAhbdiwIb3yyispItLzzz+fUkpp48aNqUWLFum6665La9euTT//+c9T165dU0SkXbt2pZRSuv/++1P79u1zzzN58uTUtm3b9I1vfCOtXr06LVu2LHXu3Dn9/d//fW6fhx9+OC1cuDCtX78+Pf/882nYsGHp1FNPTVVVVSmlVGMctRk8eHCaMGFCGj9+fBozZkxufa9evdKiRYtSv3790uTJk3PrL7nkktSnT5+0bNmytGrVqjR06NB0wgknpH379qWUUlqxYkVq1qxZuuWWW9K6devSP/7jP6YOHTrkvbZly5al4uLiNG/evPTyyy+nRx99NJWXl6cpU6bk9omItGjRoo8dN9SFT5vvB1RVVaX+/funs88+Oz3zzDNpxYoV6fTTT0+DBw/O7XNgzl522WXpxRdfTL/85S9Ty5Yt09ChQ9O4cePS2rVr03333ZciIq1YsSJ3XESkkpKSNHfu3LRu3bp04403pubNm6eXXnoppfR/87i8vDwtXLgwbdy4Mf3+979PP/3pT1NpaWlu3cKFC9Oxxx6b5s2bl1JKacaMGamsrCwtW7Ysbdq0Kf3P//xP+tnPfpZSSmnBggWpuLg4PfLII+nVV19NTz/9dJozZ05uTH/5l3+ZzjzzzLRs2bK0YcOGNGPGjFRYWJh+97vfpZQObp7X5sC87tu3b3rggQdSSim9+uqruXNHRHriiSdSSint3r07lZaW5q6BS5YsST169EijR4/One+WW25JHTt2TAsXLkwvvfRSGjNmTGrXrl0aPnx4bp9p06alk046KS1evDi9/PLL6f7770+FhYVp6dKlKaWUnnjiibxrMUcn2f0h2U1TILtlt+xuHGT3h2Q3TYHslt31ld3K83qyYsWKTwyQO+64I0VE2rZtW0rpwxAfMWJE3j7Z8Lz++uvTKaeckrfPD37wg08N8datW6d33nknt+773/9+qqio+Nixb9++PUVEWr16da3jqM2BEF+1alVq165d2r17d3ryySfT8ccfnz744IO8ED8wyZYvX547fseOHalVq1bpX//1X1NKKV1++eXp61//et5zjBw5Mu+1nXfeeTUumg888EAqLS3NPRbi1Ienn346RUT6t3/7t0/c79FHH03NmzdPmzdvzq178cUXU0SklStXppRqn7NDhw5N5eXluV+sU0qpd+/eafr06bnHEZH++q//Ou/5Kioq0ve+972U0v/N45kzZ+bt80d/9Ee5UD7gpptuSoMGDUoppTRu3Lj01a9+Nfc/HB91++23pxNPPDH3y/dHvfrqq6l58+bptddey1t/3nnnpYkTJ6aUDm6e1+bAvJ45c2Y699xzU0opTZ06NV166aVp165deSE+Z86c1LFjx7R79+7c8b/61a9Ss2bN0tatW1NKKZWWlqZbb701t/2DDz5IX/ziF3Mh/oc//CG1bt06/frXv84bx5gxY9Lll1+eUvI/4I2F7JbdNB2yW3bL7sZBdstumg7ZLbvrK7t9bUs9S5mPIHySAQMGfOL2devWxRlnnJG3buDAgZ963vLy8mjXrl3ucWlpabzxxhu5x+vXr4/LL788evbsGcXFxVFeXh4RH37M5VD169cvevXqFQ8//HDcd999ceWVV9b47rg1a9bEMcccExUVFbl1JSUl0bt371izZk1un49uj4gYNGhQ3uMXXnghfvjDH0bbtm1zy9ixY+P111+P995775DHDofrYOf5mjVroqysLMrKynLrTj755OjQoUPu335EzTnbqVOnOPnkk6NZs2Z56z46jyNqzpFBgwblnTci/zqzZ8+eePnll2PMmDF582jatGm5j5B++9vfjlWrVkXv3r1j/Pjx8eijj+aO/+Y3vxnvv/9+9OzZM8aOHRuLFi3KfXxz9erVUVVVFSeeeGLeuZ988sncuQ9mnn+Sv/iLv4innnoqNm7cGPPmzYurrrqqxj5r1qyJfv36RZs2bXLrzjrrrKiuro5169bF22+/Ha+//nreOI455pi8n9OGDRvivffei/PPPz/vtfzLv/zLYX3UliOf7JbdNH6yW3bTuMhu2U3jJ7tld305+Dtg8JmccMIJUVBQEGvWrIlLL720xvY1a9ZEx44d4wtf+EJu3Uf/kdWlFi1a5D0uKCiI6urq3ONhw4ZF9+7dY+7cudGlS5eorq6OU045Jfbt23dYz3fVVVfF7Nmz46WXXoqVK1d+prF/kt27d8fUqVPjG9/4Ro1tRUVFn9vzQlavXr2ioKAg1q5dWyfnq23Ofto8Plgfvc4c+P6xuXPn1gjT5s2bR0TEl770pXjllVfiP//zP+Pxxx+Pb33rWzFkyJB4+OGHo6ysLNatWxePP/54PPbYY3H11VfHjBkz4sknn4zdu3dH8+bN49lnn82d64C6urnIge+KHDNmTPzhD3+ICy+8MO97JevKgZ/Tr371q+jatWvetsLCwjp/PhqO7JbdNB2yW3bTOMhu2U3TIbtld33xl+f1pKSkJM4///y466678r5YPyJi69at8eCDD8bIkSOjoKDgoM/Zu3fveOaZZ/LW/e///u9nGuebb74Z69atixtvvDHOO++86NOnT+zatesznfPP//zPY/Xq1XHKKafEySefXGN7nz59Yv/+/fH000/XGMeB/fv06ZO3PSLybv4Q8eHFZd26dXHCCSfUWD76TiF83o499tgYOnRozJ49O/bs2VNj+4EbC/Xp0ye2bNkSW7ZsyW176aWX4q233qp1rhyq7BxZsWJF9OnT52P379SpU3Tp0iU2btxYYw716NEjt19xcXGMHDky5s6dG/Pnz4+FCxfGzp07IyKiVatWMWzYsPjxj38cS5cujaeeeipWr14dp512WlRVVcUbb7xR49ydO3fO/Tw+bZ5/mquuuiqWLl0ao0aNqvHLwoHneOGFF/L+uyxfvjyaNWsWvXv3jvbt20dpaWneOPbv3x/PPvts7vHJJ58chYWFsXnz5hqv5aN/zcDRT3bLbpoO2S27aRxkt+ym6ZDdsru++MvzejRr1qw488wzY+jQoTFt2rTo0aNHvPjii/H9738/unbtWuOuvZ/mr/7qr+KOO+6I66+/PsaMGROrVq2KefPmRUQc0i8DH9WxY8coKSmJOXPmRGlpaWzevDluuOGGwzrXR8/5+uuv13jH7oBevXrF8OHDY+zYsfFP//RP0a5du7jhhhuia9euMXz48IiIGD9+fJx11llx2223xfDhw+O//uu/YvHixXnnmTRpUlx88cXRrVu3uOyyy6JZs2bxwgsvxG9/+9uYNm3aZ3oNcKhmz54dZ511VgwcODB++MMfRt++fWP//v3x2GOPxd133x1r1qyJIUOGxKmnnhpXXHFFzJw5M/bv3x9XX311DB48+FM/PnowFixYEAMGDIizzz47HnzwwVi5cmXce++9n3jM1KlTY/z48dG+ffv42te+Fnv37o1nnnkmdu3aFZWVlXHHHXdEaWlpnHbaadGsWbNYsGBBdO7cOTp06BDz5s2LqqqqqKioiNatW8dPf/rTaNWqVXTv3j1KSkriiiuuiFGjRsXtt98ep512Wmzfvj2WLFkSffv2jYsuuuig5vmn+drXvhbbt2+P4uLiWrdfccUVMXny5Bg9enRMmTIltm/fHuPGjYsrr7wyOnXqFBEREyZMiJtvvjl69eoVJ510Utxxxx25X7wiItq1axfXXXdd/M3f/E1UV1fH2WefHW+//XYsX748iouLa73TOEcv2S27aTpkt+ymcZDdspumQ3bL7nrxuX6jOjVs2rQpjR49OnXq1Cm1aNEilZWVpXHjxqUdO3bk7de9e/d055135q2r7YYhv/jFL9IJJ5yQCgsL0znnnJPuvvvuFBHp/fffTynVfuOSfv365Z33zjvvTN27d889fuyxx1KfPn1SYWFh6tu3b1q6dGneDT8O5cYlHyd71++dO3emK6+8MrVv3z61atUqDR06NHcn4APuvffe9MUvfjG1atUqDRs2LN122201bmiwePHidOaZZ6ZWrVql4uLiNHDgwLy7Docbl1CPfv/736drrrkmde/ePbVs2TJ17do1XXLJJbmbaKT04Q09LrnkktSmTZvUrl279M1vfjN3A42Uap+zo0ePzrsDdUo151xEpNmzZ6fzzz8/FRYWpvLy8jR//vzc9k+axw8++GDq379/atmyZerYsWP6kz/5k9xNWObMmZP69++f2rRpk4qLi9N5552XnnvuuZRSSosWLUoVFRWpuLg4tWnTJn35y19Ojz/+eO68+/btS5MmTUrl5eWpRYsWqbS0NF166aXpN7/5TW6fg5nnWZ80r7M3Lkkppd/85jfp3HPPTUVFRenYY49NY8eOTe+++25u+wcffJAmTJiQiouLU4cOHVJlZWUaNWpU3s+8uro6zZw5M/Xu3Tu1aNEifeELX0hDhw5NTz75ZErJTccaG9n9IdlNUyC7Zbfsbhxk94dkN02B7Jbdn3d2F6R0CHfS4Ij3ox/9KO655568j6MATU9BQUEsWrQoRowY0dBDAT6F7AYiZDccTWQ3ECG7mwpf23KUu+uuu+KMM86IkpKSWL58ecyYMSOuvfbahh4WAPAxZDcAHF1kN0DTpTw/yq1fvz6mTZsWO3fujG7dusXf/u3fxsSJExt6WADAx5DdAHB0kd0ATZevbQEAAAAAgIxmDT0AAAAAAAA40ijPAQAAAAAgQ3kOAAAAAAAZynMAAAAAAMhQngMAAAAAQIbyHAAAAAAAMpTnAAAAAACQoTwHAAAAAICM/wf6wv/jexXGMAAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "compressed_training_summary_path = f\"{retrained_project_path}/training_summary.ckpt\"\n", - "compressed_training_summary = torch.load(compressed_training_summary_path)\n", - "compressed_valid_metrics = compressed_training_summary[\"valid_metrics\"][compressed_training_summary[\"best_epoch\"]]\n", - "\n", - "metrics = list(original_valid_metrics.keys())\n", - "original_values = list(original_valid_metrics.values())\n", - "compressed_values = list(compressed_valid_metrics.values())\n", - "\n", - "# Calculate the difference between original and compressed values\n", - "difference_values = np.array(compressed_values) - np.array(original_values)\n", - "\n", - "# Plotting\n", - "fig, axs = plt.subplots(ncols=len(metrics), figsize=(15, 6))\n", - "\n", - "bar_width = 0.45 # Adjust the width as needed\n", - "\n", - "for i, metric in enumerate(metrics):\n", - " bars_original = axs[i].bar(['Original Model'], [original_values[i]], color='slategray', label='Original Model', width=bar_width)\n", - " bars_compressed = axs[i].bar(['Compressed Model'], [compressed_values[i]], color='dodgerblue', label='Compressed Model', width=bar_width)\n", - "\n", - " # Add value annotations for bars\n", - " for bar in bars_original:\n", - " axs[i].text(bar.get_x() + bar.get_width() / 2, bar.get_height() + 0.01, f'{bar.get_height():.4f}', ha='center', va='bottom')\n", - "\n", - " for bar in bars_compressed:\n", - " axs[i].text(bar.get_x() + bar.get_width() / 2, bar.get_height() + 0.01, f'{bar.get_height():.4f}', ha='center', va='bottom')\n", - "\n", - " # Add scatter points for differences\n", - " axs[i].scatter(['Original Model', 'Compressed Model'], [original_values[i], compressed_values[i]], color='red', marker='o', zorder=3)\n", - "\n", - " # Add lines connecting scatter points\n", - " axs[i].plot(['Original Model', 'Compressed Model'], [original_values[i], compressed_values[i]], color='red', linestyle='--', linewidth=2, zorder=2)\n", - "\n", - " # Add difference text centered between scatter points\n", - " diff_x = np.mean(axs[i].get_xlim()) # Calculate the center between scatter points\n", - " axs[i].text(diff_x, compressed_values[i] - 0.05, f'Difference: {difference_values[i]:.4f}', ha='center', va='bottom', color='red')\n", - "\n", - " axs[i].set_ylim(0, 1) # Set y-axis limits between 0 and 1\n", - " axs[i].set_ylabel(metric)\n", - " axs[i].legend()\n", - " axs[i].grid(axis='y')\n", - "\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "202223eb-61be-4a54-8068-c34a064e31cf", - "metadata": {}, - "source": [ - "For each metric:\n", - "\n", - "- Original Model Bar: Represented by a gray bar labeled \"Original Model\", indicating the performance metric value of the original model.\n", - "\n", - "- Compressed Model Bar: Represented by a blue bar labeled \"Compressed Model\", indicating the performance metric value of the compressed model.\n", - "\n", - "- Difference Text: The difference value between the original and compressed models for each metric." - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "c2aed04a-95ee-400c-8e08-6155c75b3187", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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B9m/fz+NGzfGxcWFMveNqy4iIiL3iYiAMWMevs0wzJ8dO5r7SaxQz3MREREREZFEpm7duly6dIl+/foRHBxMkSJFWL16tX0ysPsvD+/Tpw82m40+ffpw9uxZXnrpJapVq8bQRo2gZEmIiKDHzp1kAfhvos+/gA7AB7Nm8emnn7J79262b98OQO7cuWPkOXnyJNmzZydv3rz8+OOPDBw4EF9fX5ycnChatCirV68mU6ZM8fCbERERScB++QX+/vvR2w0D/vrL3K906XiLlZipeC4iIiIiIpIItW3b9pHDtNx/ebiLiwv9+/enf//+D+5coQKsWmUWzu+RxWZjMYCnJwClS5fGiOr19hjvvfeefYxXERGR2JZtvNUJ4s4Hu87zxVPs127meZb9Eedx4t3pDvH/mBq2RURERERERB4uIgL+eMSnb10eLiIiEq8uej7dVVpPu588mYrnIiIiIiIi8nC//ALnzj16+72Xh4uIiEic2pHrbc6lzkwktoduj8TGudRZ2JHr7XhOlnhp2BYREREREZEXoMvDdXm4iIhIfIh0cmZgzfFMmfUhkdhwInq4tKiC+sCa44h0crYqYqKjnuciIiIiIiLyULo8XERExLGsLlyLVo2/Izj1yzHWB6fOTKvG37G6cC2LkiVO6nkuIiIiIiIiDxV1ebj31bMxerdFicRGcOrMujxcREQkHq0uXIu1Bavz5vFfyBBynouemdiR6231OI8DKp6LiIiIiIjIQ+nycBEREccU6eTMtldKWx0j0dOwLSIiIiIiIvJIujxcREREkir1PBcREREREZHH0uXhIiIikhSpeC4iIiIiIiJPpMvDRUREJKnRsC0iIiIiIiIiIiIiIvdR8VxERERERERERERE5D4qnouIiIiIiIiIiIiI3EfFcxERERERERERERGR+6h4LiIiIiIiIiIiIiJyHxXPRURERERERERERETuo+K5iIiIiIiIiIiIiMh9VDwXEREREREREREREbmPiuciIiIiIiIiIiIiIvdR8VxERERERERERERE5D4qnouIiIiIiIiIiIiI3EfFcxERERERERERERGR+6h4LiIiIiIiIiIiIiJyHxXPRURERERERERERETuo+K5iIiIiIiIiIiIiMh9VDwXEREREREREREREbmPiuciIiIiIiIiIiIiIvdR8VxERERERERERERE5D4q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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "metrics = [\"FLOPs(M)\",\"Num of Params(M)\", \"Model Size(MB)\"]\n", - "original_values = [original_model_flops, original_model_params, original_model_size]\n", - "compressed_values = [flops_list[-3], params_list[-3], model_size_list[-3]]\n", - "\n", - "# Calculate the difference between original and compressed values\n", - "difference_values = np.array(original_values) / np.array(compressed_values)\n", - "\n", - "# Plotting\n", - "fig, axs = plt.subplots(ncols=len(metrics), figsize=(15, 6))\n", - "\n", - "bar_width = 0.45 # Adjust the width as needed\n", - "\n", - "for i, metric in enumerate(metrics):\n", - " bars_original = axs[i].bar(['Original Model'], [original_values[i]], color='slategray', label='Original Model', width=bar_width)\n", - " bars_compressed = axs[i].bar(['Compressed Model'], [compressed_values[i]], color='dodgerblue', label='Compressed Model', width=bar_width)\n", - "\n", - " # Add value annotations for bars\n", - " for bar in bars_original:\n", - " axs[i].text(bar.get_x() + bar.get_width() / 2, bar.get_height() + 0.01, f'{bar.get_height():.4f}', ha='center', va='bottom')\n", - "\n", - " for bar in bars_compressed:\n", - " axs[i].text(bar.get_x() + bar.get_width() / 2, bar.get_height() + 0.01, f'{bar.get_height():.4f}', ha='center', va='bottom')\n", - "\n", - " # Add scatter points for differences\n", - " axs[i].scatter(['Original Model', 'Compressed Model'], [original_values[i], compressed_values[i]], color='red', marker='o', zorder=3)\n", - "\n", - " # Add lines connecting scatter points\n", - " axs[i].plot(['Original Model', 'Compressed Model'], [original_values[i], compressed_values[i]], color='red', linestyle='--', linewidth=2, zorder=2)\n", - "\n", - " # Add difference text centered between scatter points\n", - " diff_x = np.mean(axs[i].get_xlim()) # Calculate the center between scatter points\n", - " axs[i].text(diff_x, compressed_values[i] * 3.5, f'{difference_values[i]:.4f}x', ha='center', va='bottom', color='red')\n", - "\n", - " axs[i].set_ylabel(metric)\n", - " axs[i].legend()\n", - " axs[i].grid(axis='y')\n", - "\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6afb3139-ee23-466d-b51f-05fc2f706440", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -}