このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン |
nvidia-docker:caffe:mobilenetssd [2020/03/02 02:42] – [SSD用caffeリポジトリのクローン] baba | nvidia-docker:caffe:mobilenetssd [2020/03/15 10:53] (現在) – [Dockerの起動] baba |
---|
| |
===== Dockerfileの修正 ===== | ===== Dockerfileの修正 ===== |
んでもって,このdockerにあるREADME( https://github.com/weiliu89/caffe/tree/ssd/docker )をみると,すぐにdockerでビルドする段取りが記述されています.これをnvidia-dockerでgpuに置き換えるわけですが,このビルドを実行する前に standalone/gpu/Dockerfile を修正します.なぜならこのDockerfileはBVLCそのままでssd用のDockerfileになっていないからです.修正する箇所は git clone を行っているところです.BVLCのcaffeではなく,weiliu89のcaffeにすること,さらにENV CLONE_TAGをmaster からssdに修正します. | んでもって,このdockerにあるREADME( https://github.com/weiliu89/caffe/tree/ssd/docker )をみると,すぐにdockerでビルドする段取りが記述されています.これをnvidia-dockerでgpuに置き換えるわけですが,このビルドを実行する前に standalone/gpu/Dockerfile を修正します.なぜならこのDockerfileはBVLCそのままでssd用のDockerfileになっていないからです.修正する箇所は git clone を行っているところです.BVLCのcaffeではなく,weiliu89のcaffeにすること,さらにENV CLONE_TAGをmaster からssdに修正します.この修正を行わずにビルドするとBVLCのcaffeでmasterが入ってしまい,caffeのコンパイル自体は成功するがMobileNet-SSDの学習の際,必要な実装部分が足りずにプロセスが死んでしまいます.https://github.com/chuanqi305/MobileNet-SSD/issues/157 に記載されているように困った人もいたようです.提供されてるDockerfile使わなかければこんなことは起こりません. |
<file> | <file> |
# standalone/gpu/Dockerfileの修正箇所のみ記述しています. | # standalone/gpu/Dockerfileの修正箇所のみ記述しています. |
docker run -ti caffe:gpu caffe --version | docker run -ti caffe:gpu caffe --version |
caffe version 1.0.0-rc3 | caffe version 1.0.0-rc3 |
| |
| |
| ====== Dockerの起動 ====== |
| 通常データセットは外部SSD等に保存しているので,先程作成したdocker imageをそのまま走らせてもデータセットを参照できないため,imageの起動時にデータセットの場所や学習に必要なディレクトリをマウントするとよいです.例えばデータセットが /data1 ディレクトリに保存されている場合は |
| nvidia-docker run --volume=/data1:/data1 -ti caffe:gpu |
| とすれば起動したimage内で同様に/data1/にアクセスできるようになります.-ti オプションは -t: ターミナル,-i:stdinをterminalにアタッチの意味です.docker imageをterminal内で使う場合に指定します. |
| nvidia-docker run -v=/data1:/data1 -v=/data2/caffe/examples:/opt/caffe/examples -v=/data2/caffe/data:/opt/caffe/data -ti caffe:gpu |
| |
| MobileNetSSDの学習ではこんなふうにしてあげると便利. |
| |
| |
| |