tensorflow/models環境を構築(1.x系)
最終更新日 2019/10/20
使用OS ver Ubuntu18.04、tensorflow 1.15.0, tensorflow/models 1.13.0
Proxy あり
はじめに
事前に色々バージョンを検証しました
結果、tensorflow1.15.0とtensorflow/modelsの1.13.0の組み合わせが一番安定しています
前準備@host側
データを準備する
modelを落とす(今回は2.0が最新なので下記)
tf1ディレクトリを作成
$ mkdir ~/work/tf1
models1をwork/tf1へ移動
$ mv models ~/work/tf1
移動
$ cd ~/work/tf1/models/research/
protobufを落とす
解凍
$ unzip protobuf.zip
実行
$ ./bin/protoc object_detection/protos/*.proto --python_out=.
何も表示されないけど気にしない
COCO APIのインストール
移動
$ cd ~/
Host側でCOCO APIを落とす
移動
$ cd ~/cocoapi/PythonAPI
コンテナでmakeする
$ make
------------------------------下記、このmakeではまったときのメモ----------------------------------
エラーの原因は?
makeで叩かれるsetup.pyがpythonコマンドで叩かれていること
Python3前提で環境構築していたので、python-pipがなかったこと
当然、pipにはsetuotoolsやnumpyがないこと
よって下記を実施した
$ sudo apt install python-pip
$ pip install setuptools
$ pip install numpy
これでもエラー。_mask.cが読めないらしい。cythonを入れる
$ pip install cython
cythonを入れたら解決する
しかし、先日これでもエラーが出たので下記をトライ。ただ、 やり直したら不要だった。要検討。
とりあえず、setup.pyの中身を見る
$ cd ~/cocoapi/PythonAPI
$ sudo vim setup.py
maskApi.cの階層がおかしくない?cocoapi/PythonAPI/にいるからcommonは2階層上じゃない?
修正前(これだとcommonまでいかない気がする)
修正後
--------------------------------makeではまったときのメモここまで----------------------------------
生成したpycocotoolsを移動
$ cp -r pycocotools ~/work/tf1/models/research/
Object Detection Test
homeへ移動
$ cd ~/
作成したイメージを起動
$ docker run --gpus all -it --rm -v $(pwd)/work:/tf/work -p 8888:8888 tf-1.15.0:gpu-py3-jupyter-models-cv-0.1 bash
pythonのパスが合っているか動作確認
移動
$ cd work/tf1/models/research
テスト実行
$ python object_detection/builders/model_builder_test.py
OKが出れば実行環境準備できている
Object Detection Tutorial
イメージを起動
$ docker run --gpus all -it --rm -v $(pwd)/work:/tf/work -p 8888:8888 tf-1.15.0:gpu-py3-jupyter-models-cv-0.1
jupyter notebookへアクセス
"work/models/research/object_detection" にある「object_detection_tutorial.ipynb」を開く
一部修正が必要
一番最後の2行の前におまじない
修正前
plt.figure(figsize=IMAGE_SIZE)
plt.imshow(image_np)
修正後
%matplotlib inline
plt.figure(figsize=IMAGE_SIZE)
plt.imshow(image_np)
この修正で動いた
https://gyazo.com/ca4c9b2c83aada67361c23c215e33d5a
参考