Forked from KostaMalsev/retrain-object-detection_ssd_mobilenetv2.ipynb
Created
September 15, 2021 13:46
-
-
Save vck/e3d09940bc84e07c21e347057a4a1955 to your computer and use it in GitHub Desktop.
Retrain-Object-Detection_ssd_mobilenetv2.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "Retrain-Object-Detection_ssd_mobilenetv2.ipynb", | |
"provenance": [], | |
"collapsed_sections": [], | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
}, | |
"accelerator": "GPU" | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/KostaMalsev/5d08cecc99f7a7ce72893060a06aba71/retrain-object-detection_ssd_mobilenetv2.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "fF8ysCfYKgTP" | |
}, | |
"source": [ | |
"# Introduction\n", | |
"\n", | |
"\n", | |
"In this notebook, we implement [The TensorFlow 2 Object Detection Library](https://blog.tensorflow.org/2020/07/tensorflow-2-meets-object-detection-api.html) for training on your own dataset.\n", | |
"\n", | |
"\n", | |
"We will take the following steps to implement mobilenetV2 on our custom data:\n", | |
"* Install TensorFlow2 Object Detection Dependencies\n", | |
"* Download Custom TensorFlow2 Object Detection Dataset\n", | |
"* Write Custom TensorFlow2 Object Detection Training Configuation\n", | |
"* Train Custom TensorFlow2 Object Detection Model\n", | |
"* Export Custom TensorFlow2 Object Detection Weights\n", | |
"* Use Trained TensorFlow2 Object Detection For Inference on Test Images\n", | |
"\n", | |
"When you are done you will have a custom detector that you can use. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "l7EOtpvlLeS0" | |
}, | |
"source": [ | |
"# Install TensorFlow2 Object Detection Dependencies" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "ypWGYdPlLRUN", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "1da24b79-fd0f-4f8e-8d0f-377e9681933e" | |
}, | |
"source": [ | |
"#Clone rep of TensorFlow object detection api \n", | |
"import os\n", | |
"import pathlib\n", | |
"\n", | |
"%cd /content/\n", | |
"\n", | |
"# Clone the tensorflow models repository if it doesn't already exist\n", | |
"if \"models\" in pathlib.Path.cwd().parts:\n", | |
" while \"models\" in pathlib.Path.cwd().parts:\n", | |
" os.chdir('..')\n", | |
"elif not pathlib.Path('models').exists():\n", | |
" !git clone --depth 1 https://github.com/tensorflow/models" | |
], | |
"execution_count": 1, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"/content\n", | |
"Cloning into 'models'...\n", | |
"remote: Enumerating objects: 2397, done.\u001b[K\n", | |
"remote: Counting objects: 100% (2397/2397), done.\u001b[K\n", | |
"remote: Compressing objects: 100% (1988/1988), done.\u001b[K\n", | |
"remote: Total 2397 (delta 562), reused 1484 (delta 382), pack-reused 0\u001b[K\n", | |
"Receiving objects: 100% (2397/2397), 30.77 MiB | 16.85 MiB/s, done.\n", | |
"Resolving deltas: 100% (562/562), done.\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "6QPmVBSlLTzM", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "e75f6025-b790-4018-847c-01e314a965f1" | |
}, | |
"source": [ | |
"# Install the Object Detection API\n", | |
"%%bash\n", | |
"cd /content/models/research/\n", | |
"protoc object_detection/protos/*.proto --python_out=.\n", | |
"cp object_detection/packages/tf2/setup.py .\n", | |
"python -m pip install ." | |
], | |
"execution_count": 3, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Processing /content/models/research\n", | |
"Requirement already satisfied: avro-python3 in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (1.10.1)\n", | |
"Requirement already satisfied: apache-beam in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (2.27.0)\n", | |
"Requirement already satisfied: pillow in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (7.0.0)\n", | |
"Requirement already satisfied: lxml in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (4.2.6)\n", | |
"Requirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (3.2.2)\n", | |
"Requirement already satisfied: Cython in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (0.29.21)\n", | |
"Requirement already satisfied: contextlib2 in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (0.5.5)\n", | |
"Requirement already satisfied: tf-slim in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (1.1.0)\n", | |
"Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (1.15.0)\n", | |
"Requirement already satisfied: pycocotools in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (2.0.2)\n", | |
"Requirement already satisfied: lvis in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (0.5.3)\n", | |
"Requirement already satisfied: scipy in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (1.4.1)\n", | |
"Requirement already satisfied: pandas in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (1.1.5)\n", | |
"Requirement already satisfied: tf-models-official in /usr/local/lib/python3.6/dist-packages (from object-detection==0.1) (2.4.0)\n", | |
"Requirement already satisfied: typing-extensions<3.8.0,>=3.7.0 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (3.7.4.3)\n", | |
"Requirement already satisfied: pymongo<4.0.0,>=3.8.0 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (3.11.2)\n", | |
"Requirement already satisfied: python-dateutil<3,>=2.8.0 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (2.8.1)\n", | |
"Requirement already satisfied: httplib2<0.18.0,>=0.8 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (0.17.4)\n", | |
"Requirement already satisfied: pyarrow<3.0.0,>=0.15.1 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (2.0.0)\n", | |
"Requirement already satisfied: crcmod<2.0,>=1.7 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (1.7)\n", | |
"Requirement already satisfied: requests<3.0.0,>=2.24.0 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (2.25.1)\n", | |
"Requirement already satisfied: fastavro<2,>=0.21.4 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (1.2.3)\n", | |
"Requirement already satisfied: future<1.0.0,>=0.18.2 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (0.18.2)\n", | |
"Requirement already satisfied: numpy<2,>=1.14.3 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (1.19.5)\n", | |
"Requirement already satisfied: pydot<2,>=1.2.0 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (1.3.0)\n", | |
"Requirement already satisfied: hdfs<3.0.0,>=2.1.0 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (2.5.8)\n", | |
"Requirement already satisfied: mock<3.0.0,>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (2.0.0)\n", | |
"Requirement already satisfied: pytz>=2018.3 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (2018.9)\n", | |
"Requirement already satisfied: dill<0.3.2,>=0.3.1.1 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (0.3.1.1)\n", | |
"Requirement already satisfied: protobuf<4,>=3.12.2 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (3.12.4)\n", | |
"Requirement already satisfied: oauth2client<5,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (4.1.3)\n", | |
"Requirement already satisfied: grpcio<2,>=1.29.0 in /usr/local/lib/python3.6/dist-packages (from apache-beam->object-detection==0.1) (1.32.0)\n", | |
"Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->object-detection==0.1) (2.4.7)\n", | |
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib->object-detection==0.1) (0.10.0)\n", | |
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->object-detection==0.1) (1.3.1)\n", | |
"Requirement already satisfied: absl-py>=0.2.2 in /usr/local/lib/python3.6/dist-packages (from tf-slim->object-detection==0.1) (0.10.0)\n", | |
"Requirement already satisfied: setuptools>=18.0 in /usr/local/lib/python3.6/dist-packages (from pycocotools->object-detection==0.1) (51.1.1)\n", | |
"Requirement already satisfied: opencv-python>=4.1.0.25 in /usr/local/lib/python3.6/dist-packages (from lvis->object-detection==0.1) (4.1.2.30)\n", | |
"Requirement already satisfied: dataclasses in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (0.8)\n", | |
"Requirement already satisfied: google-api-python-client>=1.6.7 in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (1.7.12)\n", | |
"Requirement already satisfied: opencv-python-headless in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (4.5.1.48)\n", | |
"Requirement already satisfied: tensorflow-model-optimization>=0.4.1 in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (0.5.0)\n", | |
"Requirement already satisfied: tensorflow-hub>=0.6.0 in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (0.11.0)\n", | |
"Requirement already satisfied: sentencepiece in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (0.1.95)\n", | |
"Requirement already satisfied: psutil>=5.4.3 in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (5.4.8)\n", | |
"Requirement already satisfied: tensorflow>=2.4.0 in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (2.4.0)\n", | |
"Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (5.3.1)\n", | |
"Requirement already satisfied: py-cpuinfo>=3.3.0 in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (7.0.0)\n", | |
"Requirement already satisfied: tensorflow-addons in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (0.8.3)\n", | |
"Requirement already satisfied: kaggle>=1.3.9 in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (1.5.10)\n", | |
"Requirement already satisfied: tensorflow-datasets in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (4.0.1)\n", | |
"Requirement already satisfied: gin-config in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (0.4.0)\n", | |
"Requirement already satisfied: seqeval in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (1.2.2)\n", | |
"Requirement already satisfied: google-cloud-bigquery>=0.31.0 in /usr/local/lib/python3.6/dist-packages (from tf-models-official->object-detection==0.1) (1.21.0)\n", | |
"Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests<3.0.0,>=2.24.0->apache-beam->object-detection==0.1) (3.0.4)\n", | |
"Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests<3.0.0,>=2.24.0->apache-beam->object-detection==0.1) (2.10)\n", | |
"Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests<3.0.0,>=2.24.0->apache-beam->object-detection==0.1) (1.24.3)\n", | |
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests<3.0.0,>=2.24.0->apache-beam->object-detection==0.1) (2020.12.5)\n", | |
"Requirement already satisfied: docopt in /usr/local/lib/python3.6/dist-packages (from hdfs<3.0.0,>=2.1.0->apache-beam->object-detection==0.1) (0.6.2)\n", | |
"Requirement already satisfied: pbr>=0.11 in /usr/local/lib/python3.6/dist-packages (from mock<3.0.0,>=1.0.1->apache-beam->object-detection==0.1) (5.5.1)\n", | |
"Requirement already satisfied: rsa>=3.1.4 in /usr/local/lib/python3.6/dist-packages (from oauth2client<5,>=2.0.1->apache-beam->object-detection==0.1) (4.6)\n", | |
"Requirement already satisfied: pyasn1-modules>=0.0.5 in /usr/local/lib/python3.6/dist-packages (from oauth2client<5,>=2.0.1->apache-beam->object-detection==0.1) (0.2.8)\n", | |
"Requirement already satisfied: pyasn1>=0.1.7 in /usr/local/lib/python3.6/dist-packages (from oauth2client<5,>=2.0.1->apache-beam->object-detection==0.1) (0.4.8)\n", | |
"Requirement already satisfied: uritemplate<4dev,>=3.0.0 in /usr/local/lib/python3.6/dist-packages (from google-api-python-client>=1.6.7->tf-models-official->object-detection==0.1) (3.0.1)\n", | |
"Requirement already satisfied: google-auth-httplib2>=0.0.3 in /usr/local/lib/python3.6/dist-packages (from google-api-python-client>=1.6.7->tf-models-official->object-detection==0.1) (0.0.4)\n", | |
"Requirement already satisfied: google-auth>=1.4.1 in /usr/local/lib/python3.6/dist-packages (from google-api-python-client>=1.6.7->tf-models-official->object-detection==0.1) (1.17.2)\n", | |
"Requirement already satisfied: dm-tree~=0.1.1 in /usr/local/lib/python3.6/dist-packages (from tensorflow-model-optimization>=0.4.1->tf-models-official->object-detection==0.1) (0.1.5)\n", | |
"Requirement already satisfied: termcolor~=1.1.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (1.1.0)\n", | |
"Requirement already satisfied: gast==0.3.3 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (0.3.3)\n", | |
"Requirement already satisfied: tensorflow-estimator<2.5.0,>=2.4.0rc0 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (2.4.0)\n", | |
"Requirement already satisfied: flatbuffers~=1.12.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (1.12)\n", | |
"Requirement already satisfied: wrapt~=1.12.1 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (1.12.1)\n", | |
"Requirement already satisfied: astunparse~=1.6.3 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (1.6.3)\n", | |
"Requirement already satisfied: wheel~=0.35 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (0.36.2)\n", | |
"Requirement already satisfied: h5py~=2.10.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (2.10.0)\n", | |
"Requirement already satisfied: opt-einsum~=3.3.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (3.3.0)\n", | |
"Requirement already satisfied: tensorboard~=2.4 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (2.4.0)\n", | |
"Requirement already satisfied: keras-preprocessing~=1.1.2 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (1.1.2)\n", | |
"Requirement already satisfied: google-pasta~=0.2 in /usr/local/lib/python3.6/dist-packages (from tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (0.2.0)\n", | |
"Requirement already satisfied: typeguard in /usr/local/lib/python3.6/dist-packages (from tensorflow-addons->tf-models-official->object-detection==0.1) (2.7.1)\n", | |
"Requirement already satisfied: tqdm in /usr/local/lib/python3.6/dist-packages (from kaggle>=1.3.9->tf-models-official->object-detection==0.1) (4.41.1)\n", | |
"Requirement already satisfied: python-slugify in /usr/local/lib/python3.6/dist-packages (from kaggle>=1.3.9->tf-models-official->object-detection==0.1) (4.0.1)\n", | |
"Requirement already satisfied: tensorflow-metadata in /usr/local/lib/python3.6/dist-packages (from tensorflow-datasets->tf-models-official->object-detection==0.1) (0.26.0)\n", | |
"Requirement already satisfied: promise in /usr/local/lib/python3.6/dist-packages (from tensorflow-datasets->tf-models-official->object-detection==0.1) (2.3)\n", | |
"Requirement already satisfied: importlib-resources; python_version < \"3.9\" in /usr/local/lib/python3.6/dist-packages (from tensorflow-datasets->tf-models-official->object-detection==0.1) (4.1.1)\n", | |
"Requirement already satisfied: attrs>=18.1.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow-datasets->tf-models-official->object-detection==0.1) (20.3.0)\n", | |
"Requirement already satisfied: scikit-learn>=0.21.3 in /usr/local/lib/python3.6/dist-packages (from seqeval->tf-models-official->object-detection==0.1) (0.22.2.post1)\n", | |
"Requirement already satisfied: google-cloud-core<2.0dev,>=1.0.3 in /usr/local/lib/python3.6/dist-packages (from google-cloud-bigquery>=0.31.0->tf-models-official->object-detection==0.1) (1.0.3)\n", | |
"Requirement already satisfied: google-resumable-media!=0.4.0,<0.5.0dev,>=0.3.1 in /usr/local/lib/python3.6/dist-packages (from google-cloud-bigquery>=0.31.0->tf-models-official->object-detection==0.1) (0.4.1)\n", | |
"Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.6/dist-packages (from google-auth>=1.4.1->google-api-python-client>=1.6.7->tf-models-official->object-detection==0.1) (4.2.0)\n", | |
"Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard~=2.4->tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (1.7.0)\n", | |
"Requirement already satisfied: werkzeug>=0.11.15 in /usr/local/lib/python3.6/dist-packages (from tensorboard~=2.4->tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (1.0.1)\n", | |
"Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /usr/local/lib/python3.6/dist-packages (from tensorboard~=2.4->tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (0.4.2)\n", | |
"Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.6/dist-packages (from tensorboard~=2.4->tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (3.3.3)\n", | |
"Requirement already satisfied: text-unidecode>=1.3 in /usr/local/lib/python3.6/dist-packages (from python-slugify->kaggle>=1.3.9->tf-models-official->object-detection==0.1) (1.3)\n", | |
"Requirement already satisfied: googleapis-common-protos<2,>=1.52.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow-metadata->tensorflow-datasets->tf-models-official->object-detection==0.1) (1.52.0)\n", | |
"Requirement already satisfied: zipp>=0.4; python_version < \"3.8\" in /usr/local/lib/python3.6/dist-packages (from importlib-resources; python_version < \"3.9\"->tensorflow-datasets->tf-models-official->object-detection==0.1) (3.4.0)\n", | |
"Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.6/dist-packages (from scikit-learn>=0.21.3->seqeval->tf-models-official->object-detection==0.1) (1.0.0)\n", | |
"Requirement already satisfied: google-api-core<2.0.0dev,>=1.14.0 in /usr/local/lib/python3.6/dist-packages (from google-cloud-core<2.0dev,>=1.0.3->google-cloud-bigquery>=0.31.0->tf-models-official->object-detection==0.1) (1.16.0)\n", | |
"Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.6/dist-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard~=2.4->tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (1.3.0)\n", | |
"Requirement already satisfied: importlib-metadata; python_version < \"3.8\" in /usr/local/lib/python3.6/dist-packages (from markdown>=2.6.8->tensorboard~=2.4->tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (3.3.0)\n", | |
"Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.6/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard~=2.4->tensorflow>=2.4.0->tf-models-official->object-detection==0.1) (3.1.0)\n", | |
"Building wheels for collected packages: object-detection\n", | |
" Building wheel for object-detection (setup.py): started\n", | |
" Building wheel for object-detection (setup.py): finished with status 'done'\n", | |
" Created wheel for object-detection: filename=object_detection-0.1-cp36-none-any.whl size=1608567 sha256=177f19005e89c1b0c7eff446e4f5e7b342220b42fe64a11c4552d9c11b84e55d\n", | |
" Stored in directory: /tmp/pip-ephem-wheel-cache-w6qer244/wheels/94/49/4b/39b051683087a22ef7e80ec52152a27249d1a644ccf4e442ea\n", | |
"Successfully built object-detection\n", | |
"Installing collected packages: object-detection\n", | |
" Found existing installation: object-detection 0.1\n", | |
" Uninstalling object-detection-0.1:\n", | |
" Successfully uninstalled object-detection-0.1\n", | |
"Successfully installed object-detection-0.1\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "wHfsJ5nWLWh9" | |
}, | |
"source": [ | |
"import matplotlib\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"import os\n", | |
"import random\n", | |
"import io\n", | |
"import imageio\n", | |
"import glob\n", | |
"import scipy.misc\n", | |
"import numpy as np\n", | |
"from six import BytesIO\n", | |
"from PIL import Image, ImageDraw, ImageFont\n", | |
"from IPython.display import display, Javascript\n", | |
"from IPython.display import Image as IPyImage\n", | |
"\n", | |
"import tensorflow as tf\n", | |
"\n", | |
"from object_detection.utils import label_map_util\n", | |
"from object_detection.utils import config_util\n", | |
"from object_detection.utils import visualization_utils as viz_utils\n", | |
"from object_detection.utils import colab_utils\n", | |
"from object_detection.builders import model_builder\n", | |
"\n", | |
"%matplotlib inline" | |
], | |
"execution_count": 4, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "wh_HPMOqWH9z", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "26382165-e739-403f-b5af-1eb3a3de9cb7" | |
}, | |
"source": [ | |
"#run model builder test\n", | |
"!python /content/models/research/object_detection/builders/model_builder_tf2_test.py\n" | |
], | |
"execution_count": 5, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"2021-01-13 09:04:16.179085: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"Running tests under Python 3.6.9: /usr/bin/python3\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_center_net_model\n", | |
"2021-01-13 09:04:19.206994: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", | |
"2021-01-13 09:04:19.208369: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcuda.so.1\n", | |
"2021-01-13 09:04:19.257391: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:04:19.258232: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties: \n", | |
"pciBusID: 0000:00:04.0 name: Tesla K80 computeCapability: 3.7\n", | |
"coreClock: 0.8235GHz coreCount: 13 deviceMemorySize: 11.17GiB deviceMemoryBandwidth: 223.96GiB/s\n", | |
"2021-01-13 09:04:19.258281: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"2021-01-13 09:04:19.526965: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.10\n", | |
"2021-01-13 09:04:19.527111: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.10\n", | |
"2021-01-13 09:04:19.654962: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10\n", | |
"2021-01-13 09:04:19.683948: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10\n", | |
"2021-01-13 09:04:19.963721: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10\n", | |
"2021-01-13 09:04:19.994400: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.10\n", | |
"2021-01-13 09:04:20.539936: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.7\n", | |
"2021-01-13 09:04:20.540174: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:04:20.541040: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:04:20.545136: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0\n", | |
"2021-01-13 09:04:20.545722: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", | |
"2021-01-13 09:04:20.545925: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:04:20.546663: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties: \n", | |
"pciBusID: 0000:00:04.0 name: Tesla K80 computeCapability: 3.7\n", | |
"coreClock: 0.8235GHz coreCount: 13 deviceMemorySize: 11.17GiB deviceMemoryBandwidth: 223.96GiB/s\n", | |
"2021-01-13 09:04:20.546713: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"2021-01-13 09:04:20.546829: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.10\n", | |
"2021-01-13 09:04:20.546879: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.10\n", | |
"2021-01-13 09:04:20.546933: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10\n", | |
"2021-01-13 09:04:20.546973: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10\n", | |
"2021-01-13 09:04:20.547042: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10\n", | |
"2021-01-13 09:04:20.547088: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.10\n", | |
"2021-01-13 09:04:20.547144: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.7\n", | |
"2021-01-13 09:04:20.547318: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:04:20.548342: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:04:20.549083: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0\n", | |
"2021-01-13 09:04:20.554959: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"2021-01-13 09:04:24.571733: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1261] Device interconnect StreamExecutor with strength 1 edge matrix:\n", | |
"2021-01-13 09:04:24.571809: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1267] 0 \n", | |
"2021-01-13 09:04:24.571837: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1280] 0: N \n", | |
"2021-01-13 09:04:24.581040: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:04:24.581890: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:04:24.582653: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:04:24.583361: W tensorflow/core/common_runtime/gpu/gpu_bfc_allocator.cc:39] Overriding allow_growth setting because the TF_FORCE_GPU_ALLOW_GROWTH environment variable is set. Original config value was 0.\n", | |
"2021-01-13 09:04:24.583449: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10629 MB memory) -> physical GPU (device: 0, name: Tesla K80, pci bus id: 0000:00:04.0, compute capability: 3.7)\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_center_net_model): 9.08s\n", | |
"I0113 09:04:27.993697 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_center_net_model): 9.08s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_center_net_model\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_experimental_model\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_experimental_model): 0.0s\n", | |
"I0113 09:04:27.994926 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_experimental_model): 0.0s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_experimental_model\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_faster_rcnn_from_config_with_crop_feature0 (True)\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_from_config_with_crop_feature0 (True)): 0.05s\n", | |
"I0113 09:04:28.048082 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_from_config_with_crop_feature0 (True)): 0.05s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_faster_rcnn_from_config_with_crop_feature0 (True)\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_faster_rcnn_from_config_with_crop_feature1 (False)\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_from_config_with_crop_feature1 (False)): 0.02s\n", | |
"I0113 09:04:28.072153 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_from_config_with_crop_feature1 (False)): 0.02s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_faster_rcnn_from_config_with_crop_feature1 (False)\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_faster_rcnn_model_from_config_with_example_miner\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_model_from_config_with_example_miner): 0.03s\n", | |
"I0113 09:04:28.098084 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_model_from_config_with_example_miner): 0.03s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_faster_rcnn_model_from_config_with_example_miner\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_faster_rcnn_with_matmul\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_faster_rcnn_with_matmul): 0.18s\n", | |
"I0113 09:04:28.274315 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_faster_rcnn_with_matmul): 0.18s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_faster_rcnn_with_matmul\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_faster_rcnn_without_matmul\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_faster_rcnn_without_matmul): 0.16s\n", | |
"I0113 09:04:28.434020 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_faster_rcnn_without_matmul): 0.16s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_faster_rcnn_without_matmul\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_mask_rcnn_with_matmul\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_mask_rcnn_with_matmul): 0.19s\n", | |
"I0113 09:04:28.622249 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_mask_rcnn_with_matmul): 0.19s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_mask_rcnn_with_matmul\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_mask_rcnn_without_matmul\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_mask_rcnn_without_matmul): 0.18s\n", | |
"I0113 09:04:28.798972 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_mask_rcnn_without_matmul): 0.18s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_faster_rcnn_models_from_config_mask_rcnn_without_matmul\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_rfcn_model_from_config\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_rfcn_model_from_config): 0.18s\n", | |
"I0113 09:04:28.979662 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_rfcn_model_from_config): 0.18s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_rfcn_model_from_config\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_ssd_fpn_model_from_config\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_ssd_fpn_model_from_config): 0.06s\n", | |
"I0113 09:04:29.039405 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_ssd_fpn_model_from_config): 0.06s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_ssd_fpn_model_from_config\n", | |
"[ RUN ] ModelBuilderTF2Test.test_create_ssd_models_from_config\n", | |
"I0113 09:04:29.533888 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:144] EfficientDet EfficientNet backbone version: efficientnet-b0\n", | |
"I0113 09:04:29.534089 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:145] EfficientDet BiFPN num filters: 64\n", | |
"I0113 09:04:29.534199 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:147] EfficientDet BiFPN num iterations: 3\n", | |
"I0113 09:04:29.541646 140409651206016 efficientnet_model.py:147] round_filter input=32 output=32\n", | |
"I0113 09:04:29.563467 140409651206016 efficientnet_model.py:147] round_filter input=32 output=32\n", | |
"I0113 09:04:29.563605 140409651206016 efficientnet_model.py:147] round_filter input=16 output=16\n", | |
"I0113 09:04:29.638675 140409651206016 efficientnet_model.py:147] round_filter input=16 output=16\n", | |
"I0113 09:04:29.638861 140409651206016 efficientnet_model.py:147] round_filter input=24 output=24\n", | |
"I0113 09:04:29.823159 140409651206016 efficientnet_model.py:147] round_filter input=24 output=24\n", | |
"I0113 09:04:29.823341 140409651206016 efficientnet_model.py:147] round_filter input=40 output=40\n", | |
"I0113 09:04:30.010929 140409651206016 efficientnet_model.py:147] round_filter input=40 output=40\n", | |
"I0113 09:04:30.011130 140409651206016 efficientnet_model.py:147] round_filter input=80 output=80\n", | |
"I0113 09:04:30.291879 140409651206016 efficientnet_model.py:147] round_filter input=80 output=80\n", | |
"I0113 09:04:30.292109 140409651206016 efficientnet_model.py:147] round_filter input=112 output=112\n", | |
"I0113 09:04:30.585081 140409651206016 efficientnet_model.py:147] round_filter input=112 output=112\n", | |
"I0113 09:04:30.585280 140409651206016 efficientnet_model.py:147] round_filter input=192 output=192\n", | |
"I0113 09:04:30.962149 140409651206016 efficientnet_model.py:147] round_filter input=192 output=192\n", | |
"I0113 09:04:30.962337 140409651206016 efficientnet_model.py:147] round_filter input=320 output=320\n", | |
"I0113 09:04:31.049407 140409651206016 efficientnet_model.py:147] round_filter input=1280 output=1280\n", | |
"I0113 09:04:31.084312 140409651206016 efficientnet_model.py:458] Building model efficientnet with params ModelConfig(width_coefficient=1.0, depth_coefficient=1.0, resolution=224, dropout_rate=0.2, blocks=(BlockConfig(input_filters=32, output_filters=16, kernel_size=3, num_repeat=1, expand_ratio=1, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=16, output_filters=24, kernel_size=3, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=24, output_filters=40, kernel_size=5, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=40, output_filters=80, kernel_size=3, num_repeat=3, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=80, output_filters=112, kernel_size=5, num_repeat=3, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=112, output_filters=192, kernel_size=5, num_repeat=4, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=192, output_filters=320, kernel_size=3, num_repeat=1, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise')), stem_base_filters=32, top_base_filters=1280, activation='simple_swish', batch_norm='default', bn_momentum=0.99, bn_epsilon=0.001, weight_decay=5e-06, drop_connect_rate=0.2, depth_divisor=8, min_depth=None, use_se=True, input_channels=3, num_classes=1000, model_name='efficientnet', rescale_input=False, data_format='channels_last', dtype='float32')\n", | |
"I0113 09:04:31.173327 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:144] EfficientDet EfficientNet backbone version: efficientnet-b1\n", | |
"I0113 09:04:31.173480 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:145] EfficientDet BiFPN num filters: 88\n", | |
"I0113 09:04:31.173583 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:147] EfficientDet BiFPN num iterations: 4\n", | |
"I0113 09:04:31.178583 140409651206016 efficientnet_model.py:147] round_filter input=32 output=32\n", | |
"I0113 09:04:31.197006 140409651206016 efficientnet_model.py:147] round_filter input=32 output=32\n", | |
"I0113 09:04:31.197153 140409651206016 efficientnet_model.py:147] round_filter input=16 output=16\n", | |
"I0113 09:04:31.340677 140409651206016 efficientnet_model.py:147] round_filter input=16 output=16\n", | |
"I0113 09:04:31.340899 140409651206016 efficientnet_model.py:147] round_filter input=24 output=24\n", | |
"I0113 09:04:31.622428 140409651206016 efficientnet_model.py:147] round_filter input=24 output=24\n", | |
"I0113 09:04:31.622618 140409651206016 efficientnet_model.py:147] round_filter input=40 output=40\n", | |
"I0113 09:04:31.897557 140409651206016 efficientnet_model.py:147] round_filter input=40 output=40\n", | |
"I0113 09:04:31.897749 140409651206016 efficientnet_model.py:147] round_filter input=80 output=80\n", | |
"I0113 09:04:32.273334 140409651206016 efficientnet_model.py:147] round_filter input=80 output=80\n", | |
"I0113 09:04:32.273530 140409651206016 efficientnet_model.py:147] round_filter input=112 output=112\n", | |
"I0113 09:04:32.640562 140409651206016 efficientnet_model.py:147] round_filter input=112 output=112\n", | |
"I0113 09:04:32.640746 140409651206016 efficientnet_model.py:147] round_filter input=192 output=192\n", | |
"I0113 09:04:33.198482 140409651206016 efficientnet_model.py:147] round_filter input=192 output=192\n", | |
"I0113 09:04:33.198747 140409651206016 efficientnet_model.py:147] round_filter input=320 output=320\n", | |
"I0113 09:04:33.379037 140409651206016 efficientnet_model.py:147] round_filter input=1280 output=1280\n", | |
"I0113 09:04:33.412078 140409651206016 efficientnet_model.py:458] Building model efficientnet with params ModelConfig(width_coefficient=1.0, depth_coefficient=1.1, resolution=240, dropout_rate=0.2, blocks=(BlockConfig(input_filters=32, output_filters=16, kernel_size=3, num_repeat=1, expand_ratio=1, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=16, output_filters=24, kernel_size=3, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=24, output_filters=40, kernel_size=5, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=40, output_filters=80, kernel_size=3, num_repeat=3, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=80, output_filters=112, kernel_size=5, num_repeat=3, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=112, output_filters=192, kernel_size=5, num_repeat=4, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=192, output_filters=320, kernel_size=3, num_repeat=1, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise')), stem_base_filters=32, top_base_filters=1280, activation='simple_swish', batch_norm='default', bn_momentum=0.99, bn_epsilon=0.001, weight_decay=5e-06, drop_connect_rate=0.2, depth_divisor=8, min_depth=None, use_se=True, input_channels=3, num_classes=1000, model_name='efficientnet', rescale_input=False, data_format='channels_last', dtype='float32')\n", | |
"I0113 09:04:33.506897 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:144] EfficientDet EfficientNet backbone version: efficientnet-b2\n", | |
"I0113 09:04:33.507065 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:145] EfficientDet BiFPN num filters: 112\n", | |
"I0113 09:04:33.507225 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:147] EfficientDet BiFPN num iterations: 5\n", | |
"I0113 09:04:33.512053 140409651206016 efficientnet_model.py:147] round_filter input=32 output=32\n", | |
"I0113 09:04:33.531269 140409651206016 efficientnet_model.py:147] round_filter input=32 output=32\n", | |
"I0113 09:04:33.531402 140409651206016 efficientnet_model.py:147] round_filter input=16 output=16\n", | |
"I0113 09:04:33.687036 140409651206016 efficientnet_model.py:147] round_filter input=16 output=16\n", | |
"I0113 09:04:33.687227 140409651206016 efficientnet_model.py:147] round_filter input=24 output=24\n", | |
"I0113 09:04:33.979557 140409651206016 efficientnet_model.py:147] round_filter input=24 output=24\n", | |
"I0113 09:04:33.979798 140409651206016 efficientnet_model.py:147] round_filter input=40 output=48\n", | |
"I0113 09:04:34.270842 140409651206016 efficientnet_model.py:147] round_filter input=40 output=48\n", | |
"I0113 09:04:34.271031 140409651206016 efficientnet_model.py:147] round_filter input=80 output=88\n", | |
"I0113 09:04:34.648523 140409651206016 efficientnet_model.py:147] round_filter input=80 output=88\n", | |
"I0113 09:04:34.648778 140409651206016 efficientnet_model.py:147] round_filter input=112 output=120\n", | |
"I0113 09:04:35.022686 140409651206016 efficientnet_model.py:147] round_filter input=112 output=120\n", | |
"I0113 09:04:35.022911 140409651206016 efficientnet_model.py:147] round_filter input=192 output=208\n", | |
"I0113 09:04:35.485812 140409651206016 efficientnet_model.py:147] round_filter input=192 output=208\n", | |
"I0113 09:04:35.486015 140409651206016 efficientnet_model.py:147] round_filter input=320 output=352\n", | |
"I0113 09:04:35.670931 140409651206016 efficientnet_model.py:147] round_filter input=1280 output=1408\n", | |
"I0113 09:04:35.707109 140409651206016 efficientnet_model.py:458] Building model efficientnet with params ModelConfig(width_coefficient=1.1, depth_coefficient=1.2, resolution=260, dropout_rate=0.3, blocks=(BlockConfig(input_filters=32, output_filters=16, kernel_size=3, num_repeat=1, expand_ratio=1, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=16, output_filters=24, kernel_size=3, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=24, output_filters=40, kernel_size=5, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=40, output_filters=80, kernel_size=3, num_repeat=3, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=80, output_filters=112, kernel_size=5, num_repeat=3, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=112, output_filters=192, kernel_size=5, num_repeat=4, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=192, output_filters=320, kernel_size=3, num_repeat=1, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise')), stem_base_filters=32, top_base_filters=1280, activation='simple_swish', batch_norm='default', bn_momentum=0.99, bn_epsilon=0.001, weight_decay=5e-06, drop_connect_rate=0.2, depth_divisor=8, min_depth=None, use_se=True, input_channels=3, num_classes=1000, model_name='efficientnet', rescale_input=False, data_format='channels_last', dtype='float32')\n", | |
"I0113 09:04:35.805148 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:144] EfficientDet EfficientNet backbone version: efficientnet-b3\n", | |
"I0113 09:04:35.805367 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:145] EfficientDet BiFPN num filters: 160\n", | |
"I0113 09:04:35.805491 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:147] EfficientDet BiFPN num iterations: 6\n", | |
"I0113 09:04:35.810940 140409651206016 efficientnet_model.py:147] round_filter input=32 output=40\n", | |
"I0113 09:04:35.830141 140409651206016 efficientnet_model.py:147] round_filter input=32 output=40\n", | |
"I0113 09:04:35.830273 140409651206016 efficientnet_model.py:147] round_filter input=16 output=24\n", | |
"I0113 09:04:35.980354 140409651206016 efficientnet_model.py:147] round_filter input=16 output=24\n", | |
"I0113 09:04:35.980537 140409651206016 efficientnet_model.py:147] round_filter input=24 output=32\n", | |
"I0113 09:04:36.255695 140409651206016 efficientnet_model.py:147] round_filter input=24 output=32\n", | |
"I0113 09:04:36.255905 140409651206016 efficientnet_model.py:147] round_filter input=40 output=48\n", | |
"I0113 09:04:36.534618 140409651206016 efficientnet_model.py:147] round_filter input=40 output=48\n", | |
"I0113 09:04:36.534822 140409651206016 efficientnet_model.py:147] round_filter input=80 output=96\n", | |
"I0113 09:04:37.018503 140409651206016 efficientnet_model.py:147] round_filter input=80 output=96\n", | |
"I0113 09:04:37.018815 140409651206016 efficientnet_model.py:147] round_filter input=112 output=136\n", | |
"I0113 09:04:37.496504 140409651206016 efficientnet_model.py:147] round_filter input=112 output=136\n", | |
"I0113 09:04:37.496705 140409651206016 efficientnet_model.py:147] round_filter input=192 output=232\n", | |
"I0113 09:04:38.245398 140409651206016 efficientnet_model.py:147] round_filter input=192 output=232\n", | |
"I0113 09:04:38.245588 140409651206016 efficientnet_model.py:147] round_filter input=320 output=384\n", | |
"I0113 09:04:38.427142 140409651206016 efficientnet_model.py:147] round_filter input=1280 output=1536\n", | |
"I0113 09:04:38.460340 140409651206016 efficientnet_model.py:458] Building model efficientnet with params ModelConfig(width_coefficient=1.2, depth_coefficient=1.4, resolution=300, dropout_rate=0.3, blocks=(BlockConfig(input_filters=32, output_filters=16, kernel_size=3, num_repeat=1, expand_ratio=1, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=16, output_filters=24, kernel_size=3, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=24, output_filters=40, kernel_size=5, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=40, output_filters=80, kernel_size=3, num_repeat=3, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=80, output_filters=112, kernel_size=5, num_repeat=3, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=112, output_filters=192, kernel_size=5, num_repeat=4, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=192, output_filters=320, kernel_size=3, num_repeat=1, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise')), stem_base_filters=32, top_base_filters=1280, activation='simple_swish', batch_norm='default', bn_momentum=0.99, bn_epsilon=0.001, weight_decay=5e-06, drop_connect_rate=0.2, depth_divisor=8, min_depth=None, use_se=True, input_channels=3, num_classes=1000, model_name='efficientnet', rescale_input=False, data_format='channels_last', dtype='float32')\n", | |
"I0113 09:04:38.562373 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:144] EfficientDet EfficientNet backbone version: efficientnet-b4\n", | |
"I0113 09:04:38.562564 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:145] EfficientDet BiFPN num filters: 224\n", | |
"I0113 09:04:38.562661 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:147] EfficientDet BiFPN num iterations: 7\n", | |
"I0113 09:04:38.567511 140409651206016 efficientnet_model.py:147] round_filter input=32 output=48\n", | |
"I0113 09:04:38.586425 140409651206016 efficientnet_model.py:147] round_filter input=32 output=48\n", | |
"I0113 09:04:38.586549 140409651206016 efficientnet_model.py:147] round_filter input=16 output=24\n", | |
"I0113 09:04:38.733478 140409651206016 efficientnet_model.py:147] round_filter input=16 output=24\n", | |
"I0113 09:04:38.733719 140409651206016 efficientnet_model.py:147] round_filter input=24 output=32\n", | |
"I0113 09:04:39.119297 140409651206016 efficientnet_model.py:147] round_filter input=24 output=32\n", | |
"I0113 09:04:39.119486 140409651206016 efficientnet_model.py:147] round_filter input=40 output=56\n", | |
"I0113 09:04:39.492823 140409651206016 efficientnet_model.py:147] round_filter input=40 output=56\n", | |
"I0113 09:04:39.493036 140409651206016 efficientnet_model.py:147] round_filter input=80 output=112\n", | |
"I0113 09:04:40.069172 140409651206016 efficientnet_model.py:147] round_filter input=80 output=112\n", | |
"I0113 09:04:40.069386 140409651206016 efficientnet_model.py:147] round_filter input=112 output=160\n", | |
"I0113 09:04:40.642701 140409651206016 efficientnet_model.py:147] round_filter input=112 output=160\n", | |
"I0113 09:04:40.643019 140409651206016 efficientnet_model.py:147] round_filter input=192 output=272\n", | |
"I0113 09:04:41.387539 140409651206016 efficientnet_model.py:147] round_filter input=192 output=272\n", | |
"I0113 09:04:41.387722 140409651206016 efficientnet_model.py:147] round_filter input=320 output=448\n", | |
"I0113 09:04:41.564658 140409651206016 efficientnet_model.py:147] round_filter input=1280 output=1792\n", | |
"I0113 09:04:41.598180 140409651206016 efficientnet_model.py:458] Building model efficientnet with params ModelConfig(width_coefficient=1.4, depth_coefficient=1.8, resolution=380, dropout_rate=0.4, blocks=(BlockConfig(input_filters=32, output_filters=16, kernel_size=3, num_repeat=1, expand_ratio=1, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=16, output_filters=24, kernel_size=3, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=24, output_filters=40, kernel_size=5, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=40, output_filters=80, kernel_size=3, num_repeat=3, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=80, output_filters=112, kernel_size=5, num_repeat=3, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=112, output_filters=192, kernel_size=5, num_repeat=4, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=192, output_filters=320, kernel_size=3, num_repeat=1, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise')), stem_base_filters=32, top_base_filters=1280, activation='simple_swish', batch_norm='default', bn_momentum=0.99, bn_epsilon=0.001, weight_decay=5e-06, drop_connect_rate=0.2, depth_divisor=8, min_depth=None, use_se=True, input_channels=3, num_classes=1000, model_name='efficientnet', rescale_input=False, data_format='channels_last', dtype='float32')\n", | |
"I0113 09:04:41.720216 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:144] EfficientDet EfficientNet backbone version: efficientnet-b5\n", | |
"I0113 09:04:41.720402 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:145] EfficientDet BiFPN num filters: 288\n", | |
"I0113 09:04:41.720547 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:147] EfficientDet BiFPN num iterations: 7\n", | |
"I0113 09:04:41.725257 140409651206016 efficientnet_model.py:147] round_filter input=32 output=48\n", | |
"I0113 09:04:41.743279 140409651206016 efficientnet_model.py:147] round_filter input=32 output=48\n", | |
"I0113 09:04:41.743406 140409651206016 efficientnet_model.py:147] round_filter input=16 output=24\n", | |
"I0113 09:04:41.966708 140409651206016 efficientnet_model.py:147] round_filter input=16 output=24\n", | |
"I0113 09:04:41.966922 140409651206016 efficientnet_model.py:147] round_filter input=24 output=40\n", | |
"I0113 09:04:42.428259 140409651206016 efficientnet_model.py:147] round_filter input=24 output=40\n", | |
"I0113 09:04:42.428522 140409651206016 efficientnet_model.py:147] round_filter input=40 output=64\n", | |
"I0113 09:04:43.106059 140409651206016 efficientnet_model.py:147] round_filter input=40 output=64\n", | |
"I0113 09:04:43.106265 140409651206016 efficientnet_model.py:147] round_filter input=80 output=128\n", | |
"I0113 09:04:43.771493 140409651206016 efficientnet_model.py:147] round_filter input=80 output=128\n", | |
"I0113 09:04:43.771748 140409651206016 efficientnet_model.py:147] round_filter input=112 output=176\n", | |
"I0113 09:04:44.432280 140409651206016 efficientnet_model.py:147] round_filter input=112 output=176\n", | |
"I0113 09:04:44.432497 140409651206016 efficientnet_model.py:147] round_filter input=192 output=304\n", | |
"I0113 09:04:45.282749 140409651206016 efficientnet_model.py:147] round_filter input=192 output=304\n", | |
"I0113 09:04:45.282978 140409651206016 efficientnet_model.py:147] round_filter input=320 output=512\n", | |
"I0113 09:04:45.557895 140409651206016 efficientnet_model.py:147] round_filter input=1280 output=2048\n", | |
"I0113 09:04:45.596693 140409651206016 efficientnet_model.py:458] Building model efficientnet with params ModelConfig(width_coefficient=1.6, depth_coefficient=2.2, resolution=456, dropout_rate=0.4, blocks=(BlockConfig(input_filters=32, output_filters=16, kernel_size=3, num_repeat=1, expand_ratio=1, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=16, output_filters=24, kernel_size=3, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=24, output_filters=40, kernel_size=5, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=40, output_filters=80, kernel_size=3, num_repeat=3, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=80, output_filters=112, kernel_size=5, num_repeat=3, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=112, output_filters=192, kernel_size=5, num_repeat=4, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=192, output_filters=320, kernel_size=3, num_repeat=1, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise')), stem_base_filters=32, top_base_filters=1280, activation='simple_swish', batch_norm='default', bn_momentum=0.99, bn_epsilon=0.001, weight_decay=5e-06, drop_connect_rate=0.2, depth_divisor=8, min_depth=None, use_se=True, input_channels=3, num_classes=1000, model_name='efficientnet', rescale_input=False, data_format='channels_last', dtype='float32')\n", | |
"I0113 09:04:45.726045 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:144] EfficientDet EfficientNet backbone version: efficientnet-b6\n", | |
"I0113 09:04:45.726284 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:145] EfficientDet BiFPN num filters: 384\n", | |
"I0113 09:04:45.726411 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:147] EfficientDet BiFPN num iterations: 8\n", | |
"I0113 09:04:45.735179 140409651206016 efficientnet_model.py:147] round_filter input=32 output=56\n", | |
"I0113 09:04:45.755138 140409651206016 efficientnet_model.py:147] round_filter input=32 output=56\n", | |
"I0113 09:04:45.755271 140409651206016 efficientnet_model.py:147] round_filter input=16 output=32\n", | |
"I0113 09:04:45.987703 140409651206016 efficientnet_model.py:147] round_filter input=16 output=32\n", | |
"I0113 09:04:45.987974 140409651206016 efficientnet_model.py:147] round_filter input=24 output=40\n", | |
"I0113 09:04:46.547827 140409651206016 efficientnet_model.py:147] round_filter input=24 output=40\n", | |
"I0113 09:04:46.548021 140409651206016 efficientnet_model.py:147] round_filter input=40 output=72\n", | |
"I0113 09:04:47.114824 140409651206016 efficientnet_model.py:147] round_filter input=40 output=72\n", | |
"I0113 09:04:47.115041 140409651206016 efficientnet_model.py:147] round_filter input=80 output=144\n", | |
"I0113 09:04:48.043217 140409651206016 efficientnet_model.py:147] round_filter input=80 output=144\n", | |
"I0113 09:04:48.043408 140409651206016 efficientnet_model.py:147] round_filter input=112 output=200\n", | |
"I0113 09:04:48.806941 140409651206016 efficientnet_model.py:147] round_filter input=112 output=200\n", | |
"I0113 09:04:48.807124 140409651206016 efficientnet_model.py:147] round_filter input=192 output=344\n", | |
"I0113 09:04:49.845064 140409651206016 efficientnet_model.py:147] round_filter input=192 output=344\n", | |
"I0113 09:04:49.845352 140409651206016 efficientnet_model.py:147] round_filter input=320 output=576\n", | |
"I0113 09:04:50.129872 140409651206016 efficientnet_model.py:147] round_filter input=1280 output=2304\n", | |
"I0113 09:04:50.162630 140409651206016 efficientnet_model.py:458] Building model efficientnet with params ModelConfig(width_coefficient=1.8, depth_coefficient=2.6, resolution=528, dropout_rate=0.5, blocks=(BlockConfig(input_filters=32, output_filters=16, kernel_size=3, num_repeat=1, expand_ratio=1, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=16, output_filters=24, kernel_size=3, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=24, output_filters=40, kernel_size=5, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=40, output_filters=80, kernel_size=3, num_repeat=3, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=80, output_filters=112, kernel_size=5, num_repeat=3, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=112, output_filters=192, kernel_size=5, num_repeat=4, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=192, output_filters=320, kernel_size=3, num_repeat=1, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise')), stem_base_filters=32, top_base_filters=1280, activation='simple_swish', batch_norm='default', bn_momentum=0.99, bn_epsilon=0.001, weight_decay=5e-06, drop_connect_rate=0.2, depth_divisor=8, min_depth=None, use_se=True, input_channels=3, num_classes=1000, model_name='efficientnet', rescale_input=False, data_format='channels_last', dtype='float32')\n", | |
"I0113 09:04:50.299465 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:144] EfficientDet EfficientNet backbone version: efficientnet-b7\n", | |
"I0113 09:04:50.299666 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:145] EfficientDet BiFPN num filters: 384\n", | |
"I0113 09:04:50.299786 140409651206016 ssd_efficientnet_bifpn_feature_extractor.py:147] EfficientDet BiFPN num iterations: 8\n", | |
"I0113 09:04:50.304743 140409651206016 efficientnet_model.py:147] round_filter input=32 output=64\n", | |
"I0113 09:04:50.323679 140409651206016 efficientnet_model.py:147] round_filter input=32 output=64\n", | |
"I0113 09:04:50.323832 140409651206016 efficientnet_model.py:147] round_filter input=16 output=32\n", | |
"I0113 09:04:50.625847 140409651206016 efficientnet_model.py:147] round_filter input=16 output=32\n", | |
"I0113 09:04:50.626031 140409651206016 efficientnet_model.py:147] round_filter input=24 output=48\n", | |
"I0113 09:04:51.286716 140409651206016 efficientnet_model.py:147] round_filter input=24 output=48\n", | |
"I0113 09:04:51.286939 140409651206016 efficientnet_model.py:147] round_filter input=40 output=80\n", | |
"I0113 09:04:51.929672 140409651206016 efficientnet_model.py:147] round_filter input=40 output=80\n", | |
"I0113 09:04:51.929965 140409651206016 efficientnet_model.py:147] round_filter input=80 output=160\n", | |
"I0113 09:04:52.871074 140409651206016 efficientnet_model.py:147] round_filter input=80 output=160\n", | |
"I0113 09:04:52.871290 140409651206016 efficientnet_model.py:147] round_filter input=112 output=224\n", | |
"I0113 09:04:54.011404 140409651206016 efficientnet_model.py:147] round_filter input=112 output=224\n", | |
"I0113 09:04:54.011591 140409651206016 efficientnet_model.py:147] round_filter input=192 output=384\n", | |
"I0113 09:04:55.207569 140409651206016 efficientnet_model.py:147] round_filter input=192 output=384\n", | |
"I0113 09:04:55.207769 140409651206016 efficientnet_model.py:147] round_filter input=320 output=640\n", | |
"I0113 09:04:55.586327 140409651206016 efficientnet_model.py:147] round_filter input=1280 output=2560\n", | |
"I0113 09:04:55.631296 140409651206016 efficientnet_model.py:458] Building model efficientnet with params ModelConfig(width_coefficient=2.0, depth_coefficient=3.1, resolution=600, dropout_rate=0.5, blocks=(BlockConfig(input_filters=32, output_filters=16, kernel_size=3, num_repeat=1, expand_ratio=1, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=16, output_filters=24, kernel_size=3, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=24, output_filters=40, kernel_size=5, num_repeat=2, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=40, output_filters=80, kernel_size=3, num_repeat=3, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=80, output_filters=112, kernel_size=5, num_repeat=3, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=112, output_filters=192, kernel_size=5, num_repeat=4, expand_ratio=6, strides=(2, 2), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise'), BlockConfig(input_filters=192, output_filters=320, kernel_size=3, num_repeat=1, expand_ratio=6, strides=(1, 1), se_ratio=0.25, id_skip=True, fused_conv=False, conv_type='depthwise')), stem_base_filters=32, top_base_filters=1280, activation='simple_swish', batch_norm='default', bn_momentum=0.99, bn_epsilon=0.001, weight_decay=5e-06, drop_connect_rate=0.2, depth_divisor=8, min_depth=None, use_se=True, input_channels=3, num_classes=1000, model_name='efficientnet', rescale_input=False, data_format='channels_last', dtype='float32')\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_ssd_models_from_config): 26.74s\n", | |
"I0113 09:04:55.782923 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_create_ssd_models_from_config): 26.74s\n", | |
"[ OK ] ModelBuilderTF2Test.test_create_ssd_models_from_config\n", | |
"[ RUN ] ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update): 0.0s\n", | |
"I0113 09:04:55.790092 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update): 0.0s\n", | |
"[ OK ] ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update\n", | |
"[ RUN ] ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold): 0.0s\n", | |
"I0113 09:04:55.792058 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold): 0.0s\n", | |
"[ OK ] ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold\n", | |
"[ RUN ] ModelBuilderTF2Test.test_invalid_model_config_proto\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_model_config_proto): 0.0s\n", | |
"I0113 09:04:55.792641 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_invalid_model_config_proto): 0.0s\n", | |
"[ OK ] ModelBuilderTF2Test.test_invalid_model_config_proto\n", | |
"[ RUN ] ModelBuilderTF2Test.test_invalid_second_stage_batch_size\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_second_stage_batch_size): 0.0s\n", | |
"I0113 09:04:55.794467 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_invalid_second_stage_batch_size): 0.0s\n", | |
"[ OK ] ModelBuilderTF2Test.test_invalid_second_stage_batch_size\n", | |
"[ RUN ] ModelBuilderTF2Test.test_session\n", | |
"[ SKIPPED ] ModelBuilderTF2Test.test_session\n", | |
"[ RUN ] ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor): 0.0s\n", | |
"I0113 09:04:55.796175 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor): 0.0s\n", | |
"[ OK ] ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor\n", | |
"[ RUN ] ModelBuilderTF2Test.test_unknown_meta_architecture\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_unknown_meta_architecture): 0.0s\n", | |
"I0113 09:04:55.796728 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_unknown_meta_architecture): 0.0s\n", | |
"[ OK ] ModelBuilderTF2Test.test_unknown_meta_architecture\n", | |
"[ RUN ] ModelBuilderTF2Test.test_unknown_ssd_feature_extractor\n", | |
"INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_unknown_ssd_feature_extractor): 0.0s\n", | |
"I0113 09:04:55.797941 140409651206016 test_util.py:2076] time(__main__.ModelBuilderTF2Test.test_unknown_ssd_feature_extractor): 0.0s\n", | |
"[ OK ] ModelBuilderTF2Test.test_unknown_ssd_feature_extractor\n", | |
"----------------------------------------------------------------------\n", | |
"Ran 20 tests in 36.882s\n", | |
"\n", | |
"OK (skipped=1)\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "IPbU4I7aL9Fl" | |
}, | |
"source": [ | |
"# Prepare Tensorflow 2 Object Detection Training Data\n", | |
"\n", | |
"> \n", | |
"\n", | |
"\n", | |
"\n", | |
"We are going to use Roboflow to generate image data set and convert it to TFrecords format.\n", | |
"\n", | |
"To create a dataset in Roboflow and generate TFRecords, follow [this step-by-step guide](https://blog.roboflow.ai/getting-started-with-roboflow/).\n", | |
"\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "QcHJuaurS_AO", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "3a64e80c-0594-46bb-d4c3-c63c075cce73" | |
}, | |
"source": [ | |
"#Downloading data Training set made by Roboflow\n", | |
"%cd /content\n", | |
"\n", | |
"#Download Training set from git by cloning rep:\n", | |
"import os\n", | |
"import pathlib\n", | |
"# Clone the training set repository if it doesn't already exist\n", | |
"if \"RetrainModelExample\" in pathlib.Path.cwd().parts:\n", | |
" while \"RetrainModelExample\" in pathlib.Path.cwd().parts:\n", | |
" os.chdir('..')\n", | |
"elif not pathlib.Path('RetrainModelExample').exists():\n", | |
" !git clone --depth 1 https://github.com/KostaMalsev/RetrainModelExample\n", | |
" %cd /content/RetrainModelExample/TrainingSet/Picka \n", | |
" !unzip Pickachu2.v1.tfrecord.zip -d /content/\n", | |
"\n", | |
"#NOTE: Update these TFRecord names to your files containing training set!\n", | |
"#Also, Update relevant rows:in training config file \"ssd_mobilenet_v2_320x320_coco17_tpu-8.config\"\n", | |
"#label_map_path,input_path \n", | |
"test_record_fname = '/content/valid/Toy.tfrecord'\n", | |
"train_record_fname = '/content/train/Toy.tfrecord'\n", | |
"label_map_pbtxt_fname = '/content/train/Toy_label_map.pbtxt'\n", | |
"\n", | |
"#test_record_fname = '/content/valid/pieces.tfrecord'\n", | |
"#train_record_fname = '/content/train/toymnm.tfrecord'\n", | |
"#label_map_pbtxt_fname = '/content/train/toymnm_label_map.pbtxt'\n" | |
], | |
"execution_count": 6, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"/content\n", | |
"Cloning into 'RetrainModelExample'...\n", | |
"remote: Enumerating objects: 22, done.\u001b[K\n", | |
"remote: Counting objects: 100% (22/22), done.\u001b[K\n", | |
"remote: Compressing objects: 100% (21/21), done.\u001b[K\n", | |
"remote: Total 22 (delta 2), reused 0 (delta 0), pack-reused 0\u001b[K\n", | |
"Unpacking objects: 100% (22/22), done.\n", | |
"/content/RetrainModelExample/TrainingSet/Picka\n", | |
"Archive: Pickachu2.v1.tfrecord.zip\n", | |
" extracting: /content/README.roboflow.txt \n", | |
" creating: /content/train/\n", | |
" extracting: /content/train/Toy.tfrecord \n", | |
" extracting: /content/train/Toy_label_map.pbtxt \n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "I2MAcgJ53STW" | |
}, | |
"source": [ | |
"# Configure Custom TensorFlow2 Object Detection Training \n", | |
"\n", | |
"\n", | |
"\n", | |
"\n", | |
"> In this section we specify configuration for mobilentV2 model. for additional models see [TF2 OD model zoo](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md).\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "gN0EUEa3e5Un" | |
}, | |
"source": [ | |
"#We choose mobilentv2 model to deploy from TF2 object detection zoo\n", | |
"MODELS_CONFIG = {\n", | |
" 'ssd_mobilenet_v2_320x320_coco17': {\n", | |
" 'model_name': 'ssd_mobilenet_v2_320x320_coco17_tpu-8',\n", | |
" 'base_pipeline_file': 'ssd_mobilenet_v2_320x320_coco17_tpu-8.config',\n", | |
" 'pretrained_checkpoint': 'ssd_mobilenet_v2_320x320_coco17_tpu-8.tar.gz',\n", | |
" 'batch_size': 16\n", | |
" }\n", | |
"}\n", | |
"#'batchsize 512 19/10/20\n", | |
"chosen_model = 'ssd_mobilenet_v2_320x320_coco17'\n", | |
"\n", | |
"num_steps = 1800 #40000 #The more steps, the longer the training. Increase if your loss function is still decreasing and validation metrics are increasing. \n", | |
"num_eval_steps = 500 #Perform evaluation after so many steps\n", | |
"\n", | |
"model_name = MODELS_CONFIG[chosen_model]['model_name']\n", | |
"pretrained_checkpoint = MODELS_CONFIG[chosen_model]['pretrained_checkpoint']\n", | |
"batch_size = MODELS_CONFIG[chosen_model]['batch_size'] #if you can fit a large batch in memory, it may speed up your trainin#g\n", | |
"#base_pipeline_file = MODELS_CONFIG[chosen_model]['base_pipeline_file']" | |
], | |
"execution_count": 7, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "kG4TmJUVrYQ7", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "06bf1d02-8590-49a3-edfb-1bde4a220a81" | |
}, | |
"source": [ | |
"#Download pretrained weights\n", | |
"%mkdir /content/deploy/\n", | |
"%cd /content/deploy/\n", | |
"import tarfile\n", | |
"download_tar = 'http://download.tensorflow.org/models/object_detection/tf2/20200711/' + pretrained_checkpoint\n", | |
"\n", | |
"!wget {download_tar}\n", | |
"tar = tarfile.open(pretrained_checkpoint)\n", | |
"tar.extractall()\n", | |
"tar.close()\n", | |
"#Shorten the folder name,because long file paths are not yet supported :(\n", | |
"os.rename('ssd_mobilenet_v2_320x320_coco17_tpu-8','mobilnetv2')" | |
], | |
"execution_count": 8, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"/content/deploy\n", | |
"--2021-01-13 09:05:24-- http://download.tensorflow.org/models/object_detection/tf2/20200711/ssd_mobilenet_v2_320x320_coco17_tpu-8.tar.gz\n", | |
"Resolving download.tensorflow.org (download.tensorflow.org)... 74.125.133.128, 2a00:1450:400c:c07::80\n", | |
"Connecting to download.tensorflow.org (download.tensorflow.org)|74.125.133.128|:80... connected.\n", | |
"HTTP request sent, awaiting response... 200 OK\n", | |
"Length: 46042990 (44M) [application/x-tar]\n", | |
"Saving to: ‘ssd_mobilenet_v2_320x320_coco17_tpu-8.tar.gz’\n", | |
"\n", | |
"ssd_mobilenet_v2_32 100%[===================>] 43.91M 5.39MB/s in 7.7s \n", | |
"\n", | |
"2021-01-13 09:05:33 (5.68 MB/s) - ‘ssd_mobilenet_v2_320x320_coco17_tpu-8.tar.gz’ saved [46042990/46042990]\n", | |
"\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "c-nqYZtdtsgG", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "5230bc72-7a89-4255-81cc-58d3333ec1b0" | |
}, | |
"source": [ | |
"#Download training configuration file for mobilenetV2. \n", | |
"#note: configuration file contain references to your trainig set of images,\n", | |
"#you can change it for your dataset.\n", | |
"%cd /content/deploy\n", | |
"download_config = 'https://raw.githubusercontent.com/KostaMalsev/RetrainModelExample/main/ssd_mobilenet_v2_320x320_coco17_tpu-8.config'\n", | |
"!wget {download_config}" | |
], | |
"execution_count": 9, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"/content/deploy\n", | |
"--2021-01-13 09:05:37-- https://raw.githubusercontent.com/KostaMalsev/RetrainModelExample/main/ssd_mobilenet_v2_320x320_coco17_tpu-8.config\n", | |
"Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...\n", | |
"Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.\n", | |
"HTTP request sent, awaiting response... 200 OK\n", | |
"Length: 4737 (4.6K) [text/plain]\n", | |
"Saving to: ‘ssd_mobilenet_v2_320x320_coco17_tpu-8.config’\n", | |
"\n", | |
"ssd_mobilenet_v2_32 100%[===================>] 4.63K --.-KB/s in 0s \n", | |
"\n", | |
"2021-01-13 09:05:38 (57.4 MB/s) - ‘ssd_mobilenet_v2_320x320_coco17_tpu-8.config’ saved [4737/4737]\n", | |
"\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "b_ki9jOqxn7V" | |
}, | |
"source": [ | |
"#Prepare loaded model for retraining\n", | |
"fine_tune_checkpoint = '/content/deploy/mobilnetv2/checkpoint/ckpt-0'\n", | |
"pipeline_file = '/content/deploy/ssd_mobilenet_v2_320x320_coco17_tpu-8.config'\n", | |
"model_dir = '/content/training/'\n", | |
"\n", | |
"def get_num_classes(pbtxt_fname):\n", | |
" from object_detection.utils import label_map_util\n", | |
" label_map = label_map_util.load_labelmap(pbtxt_fname)\n", | |
" categories = label_map_util.convert_label_map_to_categories(\n", | |
" label_map, max_num_classes=90, use_display_name=True)\n", | |
" category_index = label_map_util.create_category_index(categories)\n", | |
" return len(category_index.keys())\n", | |
"num_classes = get_num_classes(label_map_pbtxt_fname)\n" | |
], | |
"execution_count": 10, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "NGC8QUt5nHkP", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "f5469db3-14ec-46bc-f2e7-83b29e96b221" | |
}, | |
"source": [ | |
"#Check if all configuration is OK:\n", | |
"print(fine_tune_checkpoint)\n", | |
"print(train_record_fname)\n", | |
"print(label_map_pbtxt_fname)\n", | |
"print(batch_size)\n", | |
"print(num_steps)\n", | |
"print(num_classes)\n", | |
"print(pipeline_file)\n", | |
"print(model_dir)" | |
], | |
"execution_count": 11, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"/content/deploy/mobilnetv2/checkpoint/ckpt-0\n", | |
"/content/train/Toy.tfrecord\n", | |
"/content/train/Toy_label_map.pbtxt\n", | |
"16\n", | |
"1800\n", | |
"1\n", | |
"/content/deploy/ssd_mobilenet_v2_320x320_coco17_tpu-8.config\n", | |
"/content/training/\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "XxPj_QV43qD5" | |
}, | |
"source": [ | |
"# Train Custom TF2 Object Detector\n", | |
"\n", | |
"* pipeline_file: defined above in writing custom training configuration\n", | |
"* model_dir: the location tensorboard logs and saved model checkpoints will save to\n", | |
"* num_train_steps: how long to train for\n", | |
"* num_eval_steps: perform eval on validation set after this many steps\n", | |
"\n", | |
"\n", | |
"\n", | |
"\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "tQTfZChVzzpZ", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "7846c8b6-9173-4223-c28d-3fc137f0f4f6" | |
}, | |
"source": [ | |
"!python /content/models/research/object_detection/model_main_tf2.py \\\n", | |
" --pipeline_config_path={pipeline_file} \\\n", | |
" --model_dir={model_dir} \\\n", | |
" --alsologtostderr \\\n", | |
" --num_train_steps={num_steps} \\\n", | |
" --sample_1_of_n_eval_examples=1 \\\n", | |
" --num_eval_steps={num_eval_steps}" | |
], | |
"execution_count": 12, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"2021-01-13 09:06:10.544002: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"2021-01-13 09:06:13.581979: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", | |
"2021-01-13 09:06:13.583201: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcuda.so.1\n", | |
"2021-01-13 09:06:13.607112: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:06:13.607878: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties: \n", | |
"pciBusID: 0000:00:04.0 name: Tesla K80 computeCapability: 3.7\n", | |
"coreClock: 0.8235GHz coreCount: 13 deviceMemorySize: 11.17GiB deviceMemoryBandwidth: 223.96GiB/s\n", | |
"2021-01-13 09:06:13.607927: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"2021-01-13 09:06:13.609928: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.10\n", | |
"2021-01-13 09:06:13.610012: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.10\n", | |
"2021-01-13 09:06:13.619966: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10\n", | |
"2021-01-13 09:06:13.620374: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10\n", | |
"2021-01-13 09:06:13.622416: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10\n", | |
"2021-01-13 09:06:13.623589: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.10\n", | |
"2021-01-13 09:06:13.628062: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.7\n", | |
"2021-01-13 09:06:13.628233: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:06:13.629021: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:06:13.629703: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0\n", | |
"2021-01-13 09:06:13.630404: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", | |
"2021-01-13 09:06:13.630548: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:06:13.631258: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties: \n", | |
"pciBusID: 0000:00:04.0 name: Tesla K80 computeCapability: 3.7\n", | |
"coreClock: 0.8235GHz coreCount: 13 deviceMemorySize: 11.17GiB deviceMemoryBandwidth: 223.96GiB/s\n", | |
"2021-01-13 09:06:13.631300: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"2021-01-13 09:06:13.631356: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.10\n", | |
"2021-01-13 09:06:13.631406: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.10\n", | |
"2021-01-13 09:06:13.631454: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10\n", | |
"2021-01-13 09:06:13.631502: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10\n", | |
"2021-01-13 09:06:13.631548: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10\n", | |
"2021-01-13 09:06:13.631593: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.10\n", | |
"2021-01-13 09:06:13.631638: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.7\n", | |
"2021-01-13 09:06:13.631746: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:06:13.632722: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:06:13.633415: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0\n", | |
"2021-01-13 09:06:13.633473: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"2021-01-13 09:06:14.187440: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1261] Device interconnect StreamExecutor with strength 1 edge matrix:\n", | |
"2021-01-13 09:06:14.187503: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1267] 0 \n", | |
"2021-01-13 09:06:14.187525: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1280] 0: N \n", | |
"2021-01-13 09:06:14.187744: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:06:14.188488: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:06:14.189320: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:06:14.189967: W tensorflow/core/common_runtime/gpu/gpu_bfc_allocator.cc:39] Overriding allow_growth setting because the TF_FORCE_GPU_ALLOW_GROWTH environment variable is set. Original config value was 0.\n", | |
"2021-01-13 09:06:14.190028: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10629 MB memory) -> physical GPU (device: 0, name: Tesla K80, pci bus id: 0000:00:04.0, compute capability: 3.7)\n", | |
"INFO:tensorflow:Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0',)\n", | |
"I0113 09:06:14.191948 140218222294912 mirrored_strategy.py:350] Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0',)\n", | |
"INFO:tensorflow:Maybe overwriting train_steps: 1800\n", | |
"I0113 09:06:14.197822 140218222294912 config_util.py:552] Maybe overwriting train_steps: 1800\n", | |
"INFO:tensorflow:Maybe overwriting use_bfloat16: False\n", | |
"I0113 09:06:14.198010 140218222294912 config_util.py:552] Maybe overwriting use_bfloat16: False\n", | |
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/object_detection/model_lib_v2.py:523: StrategyBase.experimental_distribute_datasets_from_function (from tensorflow.python.distribute.distribute_lib) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"rename to distribute_datasets_from_function\n", | |
"W0113 09:06:14.284213 140218222294912 deprecation.py:339] From /usr/local/lib/python3.6/dist-packages/object_detection/model_lib_v2.py:523: StrategyBase.experimental_distribute_datasets_from_function (from tensorflow.python.distribute.distribute_lib) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"rename to distribute_datasets_from_function\n", | |
"INFO:tensorflow:Reading unweighted datasets: ['/content/train/Toy.tfrecord']\n", | |
"I0113 09:06:14.303174 140218222294912 dataset_builder.py:148] Reading unweighted datasets: ['/content/train/Toy.tfrecord']\n", | |
"INFO:tensorflow:Reading record datasets for input file: ['/content/train/Toy.tfrecord']\n", | |
"I0113 09:06:14.303380 140218222294912 dataset_builder.py:77] Reading record datasets for input file: ['/content/train/Toy.tfrecord']\n", | |
"INFO:tensorflow:Number of filenames to read: 1\n", | |
"I0113 09:06:14.303540 140218222294912 dataset_builder.py:78] Number of filenames to read: 1\n", | |
"WARNING:tensorflow:num_readers has been reduced to 1 to match input file shards.\n", | |
"W0113 09:06:14.303676 140218222294912 dataset_builder.py:86] num_readers has been reduced to 1 to match input file shards.\n", | |
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/object_detection/builders/dataset_builder.py:103: parallel_interleave (from tensorflow.python.data.experimental.ops.interleave_ops) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"Use `tf.data.Dataset.interleave(map_func, cycle_length, block_length, num_parallel_calls=tf.data.AUTOTUNE)` instead. If sloppy execution is desired, use `tf.data.Options.experimental_deterministic`.\n", | |
"W0113 09:06:14.316147 140218222294912 deprecation.py:339] From /usr/local/lib/python3.6/dist-packages/object_detection/builders/dataset_builder.py:103: parallel_interleave (from tensorflow.python.data.experimental.ops.interleave_ops) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"Use `tf.data.Dataset.interleave(map_func, cycle_length, block_length, num_parallel_calls=tf.data.AUTOTUNE)` instead. If sloppy execution is desired, use `tf.data.Options.experimental_deterministic`.\n", | |
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/object_detection/builders/dataset_builder.py:222: DatasetV1.map_with_legacy_function (from tensorflow.python.data.ops.dataset_ops) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"Use `tf.data.Dataset.map()\n", | |
"W0113 09:06:14.348208 140218222294912 deprecation.py:339] From /usr/local/lib/python3.6/dist-packages/object_detection/builders/dataset_builder.py:222: DatasetV1.map_with_legacy_function (from tensorflow.python.data.ops.dataset_ops) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"Use `tf.data.Dataset.map()\n", | |
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/dispatch.py:201: sparse_to_dense (from tensorflow.python.ops.sparse_ops) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"Create a `tf.sparse.SparseTensor` and use `tf.sparse.to_dense` instead.\n", | |
"W0113 09:06:21.911179 140218222294912 deprecation.py:339] From /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/dispatch.py:201: sparse_to_dense (from tensorflow.python.ops.sparse_ops) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"Create a `tf.sparse.SparseTensor` and use `tf.sparse.to_dense` instead.\n", | |
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/dispatch.py:201: sample_distorted_bounding_box (from tensorflow.python.ops.image_ops_impl) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"`seed2` arg is deprecated.Use sample_distorted_bounding_box_v2 instead.\n", | |
"W0113 09:06:25.724696 140218222294912 deprecation.py:339] From /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/dispatch.py:201: sample_distorted_bounding_box (from tensorflow.python.ops.image_ops_impl) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"`seed2` arg is deprecated.Use sample_distorted_bounding_box_v2 instead.\n", | |
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/object_detection/inputs.py:281: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"Use `tf.cast` instead.\n", | |
"W0113 09:06:28.484790 140218222294912 deprecation.py:339] From /usr/local/lib/python3.6/dist-packages/object_detection/inputs.py:281: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"Use `tf.cast` instead.\n", | |
"2021-01-13 09:06:31.151516: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:116] None of the MLIR optimization passes are enabled (registered 2)\n", | |
"2021-01-13 09:06:31.160796: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2300000000 Hz\n", | |
"/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/backend.py:434: UserWarning: `tf.keras.backend.set_learning_phase` is deprecated and will be removed after 2020-10-11. To update it, simply pass a True/False value to the `training` argument of the `__call__` method of your layer or model.\n", | |
" warnings.warn('`tf.keras.backend.set_learning_phase` is deprecated and '\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:06:40.557094 140214955493120 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:06:40.557570 140214955493120 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:06:40.557797 140214955493120 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:06:40.557988 140214955493120 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:06:40.558174 140214955493120 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:06:40.558356 140214955493120 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"2021-01-13 09:06:58.145003: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.10\n", | |
"2021-01-13 09:06:59.529743: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.7\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._groundtruth_lists\n", | |
"W0113 09:07:05.340838 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._groundtruth_lists\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor\n", | |
"W0113 09:07:05.341359 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._batched_prediction_tensor_names\n", | |
"W0113 09:07:05.341487 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._batched_prediction_tensor_names\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads\n", | |
"W0113 09:07:05.341671 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._sorted_head_names\n", | |
"W0113 09:07:05.341900 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._sorted_head_names\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._shared_nets\n", | |
"W0113 09:07:05.342017 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._shared_nets\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings\n", | |
"W0113 09:07:05.342132 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background\n", | |
"W0113 09:07:05.342246 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.0\n", | |
"W0113 09:07:05.342349 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.1\n", | |
"W0113 09:07:05.342449 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.1\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.2\n", | |
"W0113 09:07:05.342550 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.2\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.3\n", | |
"W0113 09:07:05.342650 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.3\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.4\n", | |
"W0113 09:07:05.342750 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.4\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.5\n", | |
"W0113 09:07:05.342885 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._shared_nets.5\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.0\n", | |
"W0113 09:07:05.343005 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.1\n", | |
"W0113 09:07:05.343120 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.1\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.2\n", | |
"W0113 09:07:05.343233 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.2\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.3\n", | |
"W0113 09:07:05.343350 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.3\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.4\n", | |
"W0113 09:07:05.343463 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.4\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.5\n", | |
"W0113 09:07:05.343584 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.5\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.0\n", | |
"W0113 09:07:05.343685 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.1\n", | |
"W0113 09:07:05.343804 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.1\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.2\n", | |
"W0113 09:07:05.343908 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.2\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.3\n", | |
"W0113 09:07:05.344010 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.3\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.4\n", | |
"W0113 09:07:05.344111 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.4\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.5\n", | |
"W0113 09:07:05.344306 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.5\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.0._box_encoder_layers\n", | |
"W0113 09:07:05.344480 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.0._box_encoder_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.1._box_encoder_layers\n", | |
"W0113 09:07:05.344583 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.1._box_encoder_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.2._box_encoder_layers\n", | |
"W0113 09:07:05.344689 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.2._box_encoder_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.3._box_encoder_layers\n", | |
"W0113 09:07:05.344809 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.3._box_encoder_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.4._box_encoder_layers\n", | |
"W0113 09:07:05.344913 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.4._box_encoder_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.5._box_encoder_layers\n", | |
"W0113 09:07:05.345014 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.5._box_encoder_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.0._class_predictor_layers\n", | |
"W0113 09:07:05.345116 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.0._class_predictor_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.1._class_predictor_layers\n", | |
"W0113 09:07:05.345227 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.1._class_predictor_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.2._class_predictor_layers\n", | |
"W0113 09:07:05.345330 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.2._class_predictor_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.3._class_predictor_layers\n", | |
"W0113 09:07:05.345432 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.3._class_predictor_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.4._class_predictor_layers\n", | |
"W0113 09:07:05.345533 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.4._class_predictor_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.5._class_predictor_layers\n", | |
"W0113 09:07:05.345635 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.5._class_predictor_layers\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.0._box_encoder_layers.0\n", | |
"W0113 09:07:05.345788 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.0._box_encoder_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.1._box_encoder_layers.0\n", | |
"W0113 09:07:05.345900 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.1._box_encoder_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.2._box_encoder_layers.0\n", | |
"W0113 09:07:05.346013 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.2._box_encoder_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.3._box_encoder_layers.0\n", | |
"W0113 09:07:05.346117 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.3._box_encoder_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.4._box_encoder_layers.0\n", | |
"W0113 09:07:05.346269 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.4._box_encoder_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.5._box_encoder_layers.0\n", | |
"W0113 09:07:05.346395 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.5._box_encoder_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.0._class_predictor_layers.0\n", | |
"W0113 09:07:05.346496 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.0._class_predictor_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.1._class_predictor_layers.0\n", | |
"W0113 09:07:05.346696 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.1._class_predictor_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.2._class_predictor_layers.0\n", | |
"W0113 09:07:05.346869 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.2._class_predictor_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.3._class_predictor_layers.0\n", | |
"W0113 09:07:05.347013 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.3._class_predictor_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.4._class_predictor_layers.0\n", | |
"W0113 09:07:05.347164 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.4._class_predictor_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.5._class_predictor_layers.0\n", | |
"W0113 09:07:05.347277 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.5._class_predictor_layers.0\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.0._box_encoder_layers.0.kernel\n", | |
"W0113 09:07:05.347399 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.0._box_encoder_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.0._box_encoder_layers.0.bias\n", | |
"W0113 09:07:05.347524 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.0._box_encoder_layers.0.bias\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.1._box_encoder_layers.0.kernel\n", | |
"W0113 09:07:05.347714 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.1._box_encoder_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.1._box_encoder_layers.0.bias\n", | |
"W0113 09:07:05.347833 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.1._box_encoder_layers.0.bias\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.2._box_encoder_layers.0.kernel\n", | |
"W0113 09:07:05.347936 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.2._box_encoder_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.2._box_encoder_layers.0.bias\n", | |
"W0113 09:07:05.348037 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.2._box_encoder_layers.0.bias\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.3._box_encoder_layers.0.kernel\n", | |
"W0113 09:07:05.348138 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.3._box_encoder_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.3._box_encoder_layers.0.bias\n", | |
"W0113 09:07:05.348246 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.3._box_encoder_layers.0.bias\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.4._box_encoder_layers.0.kernel\n", | |
"W0113 09:07:05.348348 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.4._box_encoder_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.4._box_encoder_layers.0.bias\n", | |
"W0113 09:07:05.348448 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.4._box_encoder_layers.0.bias\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.5._box_encoder_layers.0.kernel\n", | |
"W0113 09:07:05.359953 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.5._box_encoder_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.5._box_encoder_layers.0.bias\n", | |
"W0113 09:07:05.360104 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.box_encodings.5._box_encoder_layers.0.bias\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.0._class_predictor_layers.0.kernel\n", | |
"W0113 09:07:05.360282 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.0._class_predictor_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.0._class_predictor_layers.0.bias\n", | |
"W0113 09:07:05.360417 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.0._class_predictor_layers.0.bias\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.1._class_predictor_layers.0.kernel\n", | |
"W0113 09:07:05.360546 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.1._class_predictor_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.1._class_predictor_layers.0.bias\n", | |
"W0113 09:07:05.360711 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.1._class_predictor_layers.0.bias\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.2._class_predictor_layers.0.kernel\n", | |
"W0113 09:07:05.360863 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.2._class_predictor_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.2._class_predictor_layers.0.bias\n", | |
"W0113 09:07:05.361016 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.2._class_predictor_layers.0.bias\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.3._class_predictor_layers.0.kernel\n", | |
"W0113 09:07:05.361217 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.3._class_predictor_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.3._class_predictor_layers.0.bias\n", | |
"W0113 09:07:05.361368 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.3._class_predictor_layers.0.bias\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.4._class_predictor_layers.0.kernel\n", | |
"W0113 09:07:05.361499 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.4._class_predictor_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.4._class_predictor_layers.0.bias\n", | |
"W0113 09:07:05.361630 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.4._class_predictor_layers.0.bias\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.5._class_predictor_layers.0.kernel\n", | |
"W0113 09:07:05.361779 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.5._class_predictor_layers.0.kernel\n", | |
"WARNING:tensorflow:Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.5._class_predictor_layers.0.bias\n", | |
"W0113 09:07:05.361910 140218222294912 util.py:161] Unresolved object in checkpoint: (root).model._box_predictor._prediction_heads.class_predictions_with_background.5._class_predictor_layers.0.bias\n", | |
"WARNING:tensorflow:A checkpoint was restored (e.g. tf.train.Checkpoint.restore or tf.keras.Model.load_weights) but not all checkpointed values were used. See above for specific issues. Use expect_partial() on the load status object, e.g. tf.train.Checkpoint.restore(...).expect_partial(), to silence these warnings, or use assert_consumed() to make the check explicit. See https://www.tensorflow.org/guide/checkpoint#loading_mechanics for details.\n", | |
"W0113 09:07:05.362041 140218222294912 util.py:169] A checkpoint was restored (e.g. tf.train.Checkpoint.restore or tf.keras.Model.load_weights) but not all checkpointed values were used. See above for specific issues. Use expect_partial() on the load status object, e.g. tf.train.Checkpoint.restore(...).expect_partial(), to silence these warnings, or use assert_consumed() to make the check explicit. See https://www.tensorflow.org/guide/checkpoint#loading_mechanics for details.\n", | |
"INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"I0113 09:07:06.208077 140218222294912 cross_device_ops.py:565] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"I0113 09:07:06.209387 140218222294912 cross_device_ops.py:565] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"I0113 09:07:06.212002 140218222294912 cross_device_ops.py:565] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"I0113 09:07:06.212990 140218222294912 cross_device_ops.py:565] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"I0113 09:07:06.215496 140218222294912 cross_device_ops.py:565] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"I0113 09:07:06.216498 140218222294912 cross_device_ops.py:565] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"I0113 09:07:06.218726 140218222294912 cross_device_ops.py:565] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"I0113 09:07:06.219626 140218222294912 cross_device_ops.py:565] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"I0113 09:07:06.222240 140218222294912 cross_device_ops.py:565] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"INFO:tensorflow:Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"I0113 09:07:06.223189 140218222294912 cross_device_ops.py:565] Reduce to /job:localhost/replica:0/task:0/device:CPU:0 then broadcast to ('/job:localhost/replica:0/task:0/device:CPU:0',).\n", | |
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/deprecation.py:605: calling map_fn_v2 (from tensorflow.python.ops.map_fn) with dtype is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"Use fn_output_signature instead\n", | |
"W0113 09:07:14.203226 140217510700800 deprecation.py:537] From /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/deprecation.py:605: calling map_fn_v2 (from tensorflow.python.ops.map_fn) with dtype is deprecated and will be removed in a future version.\n", | |
"Instructions for updating:\n", | |
"Use fn_output_signature instead\n", | |
"INFO:tensorflow:Step 100 per-step time 0.527s loss=3.105\n", | |
"I0113 09:08:16.627903 140218222294912 model_lib_v2.py:651] Step 100 per-step time 0.527s loss=3.105\n", | |
"INFO:tensorflow:Step 200 per-step time 0.452s loss=2.796\n", | |
"I0113 09:09:03.708320 140218222294912 model_lib_v2.py:651] Step 200 per-step time 0.452s loss=2.796\n", | |
"INFO:tensorflow:Step 300 per-step time 0.464s loss=2.496\n", | |
"I0113 09:09:50.453034 140218222294912 model_lib_v2.py:651] Step 300 per-step time 0.464s loss=2.496\n", | |
"INFO:tensorflow:Step 400 per-step time 0.478s loss=2.472\n", | |
"I0113 09:10:37.073666 140218222294912 model_lib_v2.py:651] Step 400 per-step time 0.478s loss=2.472\n", | |
"INFO:tensorflow:Step 500 per-step time 0.464s loss=2.372\n", | |
"I0113 09:11:23.608484 140218222294912 model_lib_v2.py:651] Step 500 per-step time 0.464s loss=2.372\n", | |
"INFO:tensorflow:Step 600 per-step time 0.502s loss=2.219\n", | |
"I0113 09:12:10.191238 140218222294912 model_lib_v2.py:651] Step 600 per-step time 0.502s loss=2.219\n", | |
"INFO:tensorflow:Step 700 per-step time 0.475s loss=2.101\n", | |
"I0113 09:12:56.810214 140218222294912 model_lib_v2.py:651] Step 700 per-step time 0.475s loss=2.101\n", | |
"INFO:tensorflow:Step 800 per-step time 0.473s loss=2.179\n", | |
"I0113 09:13:43.437318 140218222294912 model_lib_v2.py:651] Step 800 per-step time 0.473s loss=2.179\n", | |
"INFO:tensorflow:Step 900 per-step time 0.510s loss=1.975\n", | |
"I0113 09:14:29.944131 140218222294912 model_lib_v2.py:651] Step 900 per-step time 0.510s loss=1.975\n", | |
"INFO:tensorflow:Step 1000 per-step time 0.516s loss=2.095\n", | |
"I0113 09:15:16.705165 140218222294912 model_lib_v2.py:651] Step 1000 per-step time 0.516s loss=2.095\n", | |
"INFO:tensorflow:Step 1100 per-step time 0.457s loss=1.824\n", | |
"I0113 09:16:04.031994 140218222294912 model_lib_v2.py:651] Step 1100 per-step time 0.457s loss=1.824\n", | |
"INFO:tensorflow:Step 1200 per-step time 0.456s loss=1.803\n", | |
"I0113 09:16:50.884627 140218222294912 model_lib_v2.py:651] Step 1200 per-step time 0.456s loss=1.803\n", | |
"INFO:tensorflow:Step 1300 per-step time 0.467s loss=1.674\n", | |
"I0113 09:17:37.415874 140218222294912 model_lib_v2.py:651] Step 1300 per-step time 0.467s loss=1.674\n", | |
"INFO:tensorflow:Step 1400 per-step time 0.430s loss=1.700\n", | |
"I0113 09:18:23.508147 140218222294912 model_lib_v2.py:651] Step 1400 per-step time 0.430s loss=1.700\n", | |
"INFO:tensorflow:Step 1500 per-step time 0.432s loss=1.523\n", | |
"I0113 09:19:10.563435 140218222294912 model_lib_v2.py:651] Step 1500 per-step time 0.432s loss=1.523\n", | |
"INFO:tensorflow:Step 1600 per-step time 0.485s loss=1.479\n", | |
"I0113 09:19:57.198731 140218222294912 model_lib_v2.py:651] Step 1600 per-step time 0.485s loss=1.479\n", | |
"INFO:tensorflow:Step 1700 per-step time 0.479s loss=1.528\n", | |
"I0113 09:20:43.828677 140218222294912 model_lib_v2.py:651] Step 1700 per-step time 0.479s loss=1.528\n", | |
"INFO:tensorflow:Step 1800 per-step time 0.484s loss=1.397\n", | |
"I0113 09:21:30.734644 140218222294912 model_lib_v2.py:651] Step 1800 per-step time 0.484s loss=1.397\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "vqaZ4v-vIuDl", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "e27a24b0-d9f2-48d6-9b3c-de827edf5507" | |
}, | |
"source": [ | |
"#Your trained weights will be in this directory:\n", | |
"%ls -l '/content/training/'" | |
], | |
"execution_count": 13, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"total 54556\n", | |
"-rw-r--r-- 1 root root 253 Jan 13 09:15 checkpoint\n", | |
"-rw-r--r-- 1 root root 18649245 Jan 13 09:07 ckpt-1.data-00000-of-00001\n", | |
"-rw-r--r-- 1 root root 22263 Jan 13 09:07 ckpt-1.index\n", | |
"-rw-r--r-- 1 root root 37130901 Jan 13 09:15 ckpt-2.data-00000-of-00001\n", | |
"-rw-r--r-- 1 root root 41640 Jan 13 09:15 ckpt-2.index\n", | |
"drwxr-xr-x 2 root root 4096 Jan 13 09:06 \u001b[0m\u001b[01;34mtrain\u001b[0m/\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "YnSEZIzl4M10", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "cdaa6a94-acb3-421b-eaae-14853616567b" | |
}, | |
"source": [ | |
"#Run conversion script to save the retrained model:\n", | |
"#Saved model will be in saved_model.pb file:\n", | |
"\n", | |
"import re\n", | |
"import numpy as np\n", | |
"\n", | |
"output_directory = '/content/fine_tuned_model'\n", | |
"\n", | |
"#place the model weights you would like to export here\n", | |
"last_model_path = '/content/training/'\n", | |
"print(last_model_path)\n", | |
"!python /content/models/research/object_detection/exporter_main_v2.py \\\n", | |
" --trained_checkpoint_dir {last_model_path} \\\n", | |
" --output_directory {output_directory} \\\n", | |
" --pipeline_config_path {pipeline_file}" | |
], | |
"execution_count": 14, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"/content/training/\n", | |
"2021-01-13 09:30:54.667468: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"2021-01-13 09:30:57.471160: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", | |
"2021-01-13 09:30:57.472317: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcuda.so.1\n", | |
"2021-01-13 09:30:57.492921: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:30:57.493661: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties: \n", | |
"pciBusID: 0000:00:04.0 name: Tesla K80 computeCapability: 3.7\n", | |
"coreClock: 0.8235GHz coreCount: 13 deviceMemorySize: 11.17GiB deviceMemoryBandwidth: 223.96GiB/s\n", | |
"2021-01-13 09:30:57.493701: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"2021-01-13 09:30:57.495803: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.10\n", | |
"2021-01-13 09:30:57.495884: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.10\n", | |
"2021-01-13 09:30:57.497906: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10\n", | |
"2021-01-13 09:30:57.498308: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10\n", | |
"2021-01-13 09:30:57.503881: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10\n", | |
"2021-01-13 09:30:57.511134: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.10\n", | |
"2021-01-13 09:30:57.516197: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.7\n", | |
"2021-01-13 09:30:57.516340: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:30:57.517231: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:30:57.517996: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0\n", | |
"2021-01-13 09:30:57.518501: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", | |
"2021-01-13 09:30:57.518652: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:30:57.519395: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties: \n", | |
"pciBusID: 0000:00:04.0 name: Tesla K80 computeCapability: 3.7\n", | |
"coreClock: 0.8235GHz coreCount: 13 deviceMemorySize: 11.17GiB deviceMemoryBandwidth: 223.96GiB/s\n", | |
"2021-01-13 09:30:57.519480: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"2021-01-13 09:30:57.519522: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.10\n", | |
"2021-01-13 09:30:57.519567: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.10\n", | |
"2021-01-13 09:30:57.519616: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10\n", | |
"2021-01-13 09:30:57.519662: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10\n", | |
"2021-01-13 09:30:57.519702: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10\n", | |
"2021-01-13 09:30:57.519795: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.10\n", | |
"2021-01-13 09:30:57.519840: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.7\n", | |
"2021-01-13 09:30:57.519942: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:30:57.520708: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:30:57.521482: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0\n", | |
"2021-01-13 09:30:57.521529: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1\n", | |
"2021-01-13 09:30:58.065133: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1261] Device interconnect StreamExecutor with strength 1 edge matrix:\n", | |
"2021-01-13 09:30:58.065212: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1267] 0 \n", | |
"2021-01-13 09:30:58.065244: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1280] 0: N \n", | |
"2021-01-13 09:30:58.065523: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:30:58.066332: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:30:58.067232: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", | |
"2021-01-13 09:30:58.068060: W tensorflow/core/common_runtime/gpu/gpu_bfc_allocator.cc:39] Overriding allow_growth setting because the TF_FORCE_GPU_ALLOW_GROWTH environment variable is set. Original config value was 0.\n", | |
"2021-01-13 09:30:58.068118: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10629 MB memory) -> physical GPU (device: 0, name: Tesla K80, pci bus id: 0000:00:04.0, compute capability: 3.7)\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:31:05.202490 140629068285824 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:31:05.202994 140629068285824 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:31:05.203279 140629068285824 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:31:05.203549 140629068285824 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:31:05.203845 140629068285824 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"I0113 09:31:05.204121 140629068285824 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0\n", | |
"WARNING:tensorflow:Skipping full serialization of Keras layer <object_detection.meta_architectures.ssd_meta_arch.SSDMetaArch object at 0x7fe66040a2b0>, because it is not built.\n", | |
"W0113 09:31:14.689514 140629068285824 save_impl.py:78] Skipping full serialization of Keras layer <object_detection.meta_architectures.ssd_meta_arch.SSDMetaArch object at 0x7fe66040a2b0>, because it is not built.\n", | |
"2021-01-13 09:31:28.382391: W tensorflow/python/util/util.cc:348] Sets are not currently considered sequences, but this may change in the future, so consider avoiding using them.\n", | |
"W0113 09:31:45.050159 140629068285824 save.py:241] Found untraced functions such as BoxPredictor_layer_call_and_return_conditional_losses, BoxPredictor_layer_call_fn, BoxPredictor_layer_call_fn, BoxPredictor_layer_call_and_return_conditional_losses, BoxPredictor_layer_call_and_return_conditional_losses while saving (showing 5 of 125). These functions will not be directly callable after loading.\n", | |
"W0113 09:31:46.453536 140629068285824 save.py:241] Found untraced functions such as BoxPredictor_layer_call_and_return_conditional_losses, BoxPredictor_layer_call_fn, BoxPredictor_layer_call_fn, BoxPredictor_layer_call_and_return_conditional_losses, BoxPredictor_layer_call_and_return_conditional_losses while saving (showing 5 of 125). These functions will not be directly callable after loading.\n", | |
"INFO:tensorflow:Assets written to: /content/fine_tuned_model/saved_model/assets\n", | |
"I0113 09:31:51.998304 140629068285824 builder_impl.py:775] Assets written to: /content/fine_tuned_model/saved_model/assets\n", | |
"INFO:tensorflow:Writing pipeline config file to /content/fine_tuned_model/pipeline.config\n", | |
"I0113 09:31:52.765011 140629068285824 config_util.py:254] Writing pipeline config file to /content/fine_tuned_model/pipeline.config\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "TsE_uVjlsz3u", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "9864bca6-148f-401b-86c4-d6380a0b30c1" | |
}, | |
"source": [ | |
"%ls '/content/fine_tuned_model/saved_model/'" | |
], | |
"execution_count": 30, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"\u001b[0m\u001b[01;34massets\u001b[0m/ saved_model.pb \u001b[01;34mvariables\u001b[0m/\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "7Vz2vJeCCyZR" | |
}, | |
"source": [ | |
"# Run Inference on Test Images with Custom TensorFlow2 Object Detector" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "kcR4PWC3KBau", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "81c7f3cc-99f0-4c2b-f11b-6a9af2627fa2" | |
}, | |
"source": [ | |
"#Import your test images to colab. I use pinterest to store the the images. \n", | |
"%mkdir /content/test/\n", | |
"%cd /content/test/\n", | |
"#M&M toy:\n", | |
"#!curl -L \"https://i.pinimg.com/originals/4c/6a/00/4c6a0021a735e1dcb9edcb6715467e15.jpg\" > test.jpeg;\n", | |
"#Pickachu toy:\n", | |
"!curl -L \"https://i.pinimg.com/564x/f5/46/c4/f546c47505e1f5f8d17f8458d641b262.jpg\" > test.jpeg;\n" | |
], | |
"execution_count": 15, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"/content/test\n", | |
" % Total % Received % Xferd Average Speed Time Time Time Current\n", | |
" Dload Upload Total Spent Left Speed\n", | |
"100 66488 100 66488 0 0 226k 0 --:--:-- --:--:-- --:--:-- 226k\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "xxtm1NutE5vK" | |
}, | |
"source": [ | |
"import os \n", | |
"import glob\n", | |
"import matplotlib\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"import io\n", | |
"import scipy.misc\n", | |
"import numpy as np\n", | |
"from six import BytesIO\n", | |
"from PIL import Image, ImageDraw, ImageFont\n", | |
"\n", | |
"import tensorflow as tf\n", | |
"\n", | |
"from object_detection.utils import label_map_util\n", | |
"from object_detection.utils import config_util\n", | |
"from object_detection.utils import visualization_utils as viz_utils\n", | |
"from object_detection.builders import model_builder\n", | |
"\n", | |
"%matplotlib inline" | |
], | |
"execution_count": 16, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "gFY75DfTDHaU" | |
}, | |
"source": [ | |
"#Recover our saved model with the latest checkpoint:\n", | |
"pipeline_config = pipeline_file\n", | |
"#Put the last ckpt from training in here, don't use long pathnames:\n", | |
"model_dir = '/content/training/ckpt-2'\n", | |
"configs = config_util.get_configs_from_pipeline_file(pipeline_config)\n", | |
"model_config = configs['model']\n", | |
"detection_model = model_builder.build(\n", | |
" model_config=model_config, is_training=False)\n", | |
"\n", | |
"# Restore last checkpoint\n", | |
"ckpt = tf.compat.v2.train.Checkpoint(\n", | |
" model=detection_model)\n", | |
"#ckpt.restore(os.path.join(model_dir))\n", | |
"ckpt.restore(model_dir)\n", | |
"\n", | |
"#Function perform detection of the object on image in tensor format: \n", | |
"def get_model_detection_function(model):\n", | |
" \"\"\"Get a tf.function for detection.\"\"\"\n", | |
"\n", | |
" @tf.function\n", | |
" def detect_fn(image):\n", | |
" \"\"\"Detect objects in image.\"\"\"\n", | |
" image, shapes = model.preprocess(image)\n", | |
" prediction_dict = model.predict(image, shapes)\n", | |
" detections = model.postprocess(prediction_dict, shapes)\n", | |
"\n", | |
" return detections, prediction_dict, tf.reshape(shapes, [-1])\n", | |
"\n", | |
" return detect_fn\n", | |
" \n", | |
"#Define function which performs detection: \n", | |
"detect_fn = get_model_detection_function(detection_model)" | |
], | |
"execution_count": 17, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "-Ycfl7rnDT1D" | |
}, | |
"source": [ | |
"#map labels for inference decoding\n", | |
"label_map_path = configs['eval_input_config'].label_map_path\n", | |
"label_map = label_map_util.load_labelmap(label_map_path)\n", | |
"categories = label_map_util.convert_label_map_to_categories(\n", | |
" label_map,\n", | |
" max_num_classes=label_map_util.get_max_label_map_index(label_map),\n", | |
" use_display_name=True)\n", | |
"category_index = label_map_util.create_category_index(categories)\n", | |
"label_map_dict = label_map_util.get_label_map_dict(label_map, use_display_name=True)" | |
], | |
"execution_count": 18, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "wN1BzORoIzV4", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 663 | |
}, | |
"outputId": "8530c898-adfa-4954-87dc-1584835ba5e1" | |
}, | |
"source": [ | |
"#run detector on test image\n", | |
"#it takes a little longer on the first run and then runs at normal speed. \n", | |
"import random\n", | |
"\n", | |
"#Define utility functions for presenting the results:\n", | |
"def load_image_into_numpy_array(path):\n", | |
" \"\"\"Load an image from file into a numpy array.\n", | |
" Puts image into numpy array to feed into tensorflow graph.\n", | |
" Note that by convention we put it into a numpy array with shape\n", | |
" (height, width, channels), where channels=3 for RGB.\n", | |
" Args:\n", | |
" path: the file path to the image\n", | |
" Returns:\n", | |
" uint8 numpy array with shape (img_height, img_width, 3)\n", | |
" \"\"\"\n", | |
" img_data = tf.io.gfile.GFile(path, 'rb').read()\n", | |
" image = Image.open(BytesIO(img_data))\n", | |
" (im_width, im_height) = image.size\n", | |
" return np.array(image.getdata()).reshape(\n", | |
" (im_height, im_width, 3)).astype(np.uint8)\n", | |
"\n", | |
"\n", | |
"#Place your test images here:\n", | |
"image_path = '/content/test/test.jpeg'\n", | |
"\n", | |
"#Store test images in nmpy array:\n", | |
"image_np = load_image_into_numpy_array(image_path)\n", | |
"\n", | |
"#Convert images to tensor form:\n", | |
"input_tensor = tf.convert_to_tensor(\n", | |
" np.expand_dims(image_np, 0), dtype=tf.float32)\n", | |
"\n", | |
"#Perform detection on the image in tensor format:\n", | |
"detections, predictions_dict, shapes = detect_fn(input_tensor)\n", | |
"\n", | |
"#Visualize the detection boxes on the image:\n", | |
"label_id_offset = 1\n", | |
"image_np_with_detections = image_np.copy()\n", | |
"\n", | |
"viz_utils.visualize_boxes_and_labels_on_image_array(\n", | |
" image_np_with_detections,\n", | |
" detections['detection_boxes'][0].numpy(),\n", | |
" (detections['detection_classes'][0].numpy() + label_id_offset).astype(int),\n", | |
" detections['detection_scores'][0].numpy(),\n", | |
" category_index,\n", | |
" use_normalized_coordinates=True,\n", | |
" max_boxes_to_draw=200,\n", | |
" min_score_thresh=0.70,#0.5,#0.5\n", | |
" agnostic_mode=False,\n", | |
")\n", | |
"\n", | |
"plt.figure(figsize=(12,16))\n", | |
"plt.imshow(image_np_with_detections)\n", | |
"plt.show()" | |
], | |
"execution_count": 19, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n", | |
"INFO:tensorflow:depth of additional conv before box predictor: 0\n" | |
], | |
"name": "stdout" | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment