2017年5月29日月曜日

SSD-Caffe を cuDNN Caffeにインストールを試みたが失敗した。(attempted to install SSD-Caffe on cuDNN Caffe but failed.)

はじめに

SSD (Single Shot MultiBox Detector) を cuDNN Caffe (ver 1.0) 上にインストールを試みたが、失敗した。その原因を備忘録として残しておく。

SSDに関しては、Takanori Ogata さんの SSD: Single Shot MultiBox Detector に概要が説明されている。

SSD-Caffeの取得

関連するファイル一式は、ここから取得する。中段右にある、Clone or Downloadのボタンを押し、
Download ZIPを押下すれば、一式のZIPファイルを取得できる。

上記ページにインストール方法の説明が記載されており、これに従えば問題なくインストール出きると推測される。(今は試してはいない)

cuDNN Caffe でSSD CaffeのExsampleを動作させてみる

cuDNN Caffe の環境に、上記ZIPファイルを展開する。
展開したら、学習済みデータ(93M)をここから取得する

展開すると
models/VGGNet/VOC0712/SSD_300x300
のフォルダーに、prototxt ファイルと caffemodel ファイルが格納されている

サンプルはプログラムは、exsamplesの下にいくつか準備されている

examples/ssd/ssd_pascal_video.py を使用すると、一緒に提供されていているビデオファイル( examples/videos/ILSVRC2015_train_00755001.mp4) 内のオブジェクトの検出と分類を行う

python examples/ssd/ssd_pascal_video.py

エラー

cuDNN Caffe 上で上記コマンドを実行すると、
model_libs.py がないとのメッセージが表示されエラーとなる。

ssd/python/caffe/model_libs.py を /opt/caffe/build/python/caffeに コピーして再び実行させると

net_spec.py 内の関数がおかしいとのエラーとなる。

根本的原因

SSD-Caffe は、BLVC Caffeのバージョン 1.0.0-rc3 をブランチしたものである。
これは、CMakeLists.txtをみれば分かる。

# ---[ Caffe version
set(CAFFE_TARGET_VERSION "1.0.0-rc3" CACHE STRING "Caffe logical version")
set(CAFFE_TARGET_SOVERSION "1.0.0-rc3" CACHE STRING "Caffe soname version")
add_definitions(-DCAFFE_VERSION=${CAFFE_TARGET_VERSION})

cuDNN Caffe 1.0 と SSD Caffe の python/caffe フォルダーを比較した結果以下のような差分が確認された。

左側 Caffe 1.0  右側 SSD Caffe (1.0.0-rc3 のブランチ)


これだけ、pythonのインタフェースに差があると、オリジナル上で動作させることは無理と考えられる。

注意

ブランチにmasterとあるが、これは単にCaffeをそのままブランチしたもんで、SSDではない



以上

0 件のコメント:

コメントを投稿