nvidia-docker:caffe:mobilenetssd

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
nvidia-docker:caffe:mobilenetssd [2020/03/01 23:26] – [MobielNetSSDをnvidia-dockerで環境構築して学習されるまで] babanvidia-docker:caffe:mobilenetssd [2020/03/15 10:53] (現在) – [Dockerの起動] baba
行 10: 行 10:
 ===== SSD用caffeリポジトリのクローン ===== ===== SSD用caffeリポジトリのクローン =====
 まず,https://github.com/chuanqi305/MobileNet-SSD に記載されているように,BVLCのcaffeではなく,著者のweiliu89さんのcaffeを最初にクローンします.ただほしいのはここのdockerディレクトリ以下だけなので他は使いません. まず,https://github.com/chuanqi305/MobileNet-SSD に記載されているように,BVLCのcaffeではなく,著者のweiliu89さんのcaffeを最初にクローンします.ただほしいのはここのdockerディレクトリ以下だけなので他は使いません.
-  git clone https://github.com/weiliu89/caffe.git +  git clone https://github.com/weiliu89/caffe.git 
-  cd caffe/docker+  cd caffe/docker
      
 ===== 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の修正箇所のみ記述しています.
行 43: 行 44:
   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の学習ではこんなふうにしてあげると便利.
  
  
  
  • /home/users/2/lolipop.jp-4404d470cd64c603/web/ws/data/attic/nvidia-docker/caffe/mobilenetssd.1583072816.txt.gz
  • 最終更新: 2020/03/01 23:26
  • by baba