caffe常用コマンド
4427 ワード
Caffeコマンドラインの一般的なコマンド:
1、訓練:
コマンドGLOG_logtostderr=0ログ格納用、GLOG_log_dirは、自分が保存したいフォルダのパスを指定します(存在する必要があります).ログを解析する方法は以下のセクション6で説明する.トレーニングログを印刷したくない場合は、省略できます. は次に、自分がインストールしたcaffeパスの下の/build/tools/caffeパスであり、指定されたパスに応じて異なるバージョンのcaffe(BVLC原版)または他の人の改良版を呼び出すことができ、サンプルコードではENet改良されたcaffeバージョン(画像を読み取るDenseImageData層を追加し、読み込んだlabelにlabel_divide_factorを設定してencoder部分のトレーニングに使用することができる)が使用される. -solverの後に指定されているのは自分のsolverファイルです.solverファイルには、トレーニングのスーパーパラメータ、呼び出されたprototxtのネットワークプロファイル、トレーニングウェイトcaffemodelを格納するパスが書かれています.読み込まれたデータパスはprototxtのネットワークプロファイルに書かれています.
2、finetuneモデル微調整
は、まず、上記ファイルをログファイルを格納フォルダの下にコピーし、cdは、対応するフォルダにファイル実行権限 を付与する. trainとtestログの解析:
そのうちcaffe.yly.yly.log.INFO.20180812-151029.3307は、section 1のコマンドにより生成されたログファイルである.生成された*.log.trainファイルと*.log.testファイルには時間、反復回数、lr、lossのリストがあります.描画画像 トレーニングによって生成されたログファイルを追加する.log接尾辞を実行します.
異なる数値は、異なるグラフを出力することを示します.
7、caffeマルチGPUパラレルトレーニング
1、訓練: GLOG_logtostderr=0 GLOG_log_dir=/home/yly/ERFNet/weights/snapshots_encoder_finetune/ /home/yly/ENet/caffe-enet/build/tools/caffe train -solver /home/yly/ERFNet/prototxts/erfnet_encoder_solver.prototxt
GLOG_logtostderr=0 GLOG_log_dir=/home/yly/ERFNet/weights/snapshots_encoder_finetune/ /home/yly/ENet/caffe-enet/build/tools/caffe train -solver /home/yly/ERFNet/prototxts/erfnet_encoder_solver.prototxt
2、finetuneモデル微調整 GLOG_logtostderr=0 GLOG_log_dir=/home/yly/ERFNet/weights/snapshots_decoder_finetune/ /home/yly/ENet/caffe-enet/build/tools/caffe train -solver /home/yly/ERFNet/prototxts/erfnet_decoder_solver_finetune.prototxt -weights /home/yly/ERFNet/weights/snapshots_decoder/erfnet_iter_3000.caffemodel
前のコマンドとトレーニングが一致し、後に-weightsを追加し、finetuneの初期化ウェイトを指定します.
3、中断された訓練を続ける GLOG_logtostderr=0 GLOG_log_dir=/home/yly/ERFNet/weights/snapshots_decoder_finetune/ /home/yly/ENet/caffe-enet/build/tools/caffe train -solver /home/yly/ERFNet/prototxts/erfnet_decoder_solver_finetune.prototxt -snapshot /home/yly/ERFNet/weights/snapshots_decoder/erfnet_iter_3000.solverstate
トレーニング時間が長いため、さまざまな理由でトレーニングを中断する必要がある場合があります.solverstateファイルは、前のトレーニングを継続するために保存されます.-snapshotを使用して、以前のトレーニングの状態をロードします.
4、測定精度 /home/yly/ENet/caffe-enet/build/tools/caffe test -model /home/yly/ERFNet/prototxts/erfnet_decoder_train_val.prototxt -weights /home/yly/ERFNet/weights/snapshots_decoder/erfnet_iter_70000.caffemodel -iterations 500 -gpu 0 2>&1| tee /home/yly/ERFNet/weights/snapshots_decoder/test_accuracy.log
-modelはニューラルネットワークプロファイルを指定します.ここでのファイルは、データ次元のみを入力deployではなく、data入力層にテストファイルパスを含むprototxtでなければなりません.prototxt.後で-weightsは訓練されたウェイトファイルをロードし、-iterationsは反復回数(testデータセットにどれだけのファイルがあるかを指定します).次のコマンドは、ログを出力する別の方法です.2>&1|tee/home/yly/ERFNet/weights/snapshots_decoder/test_accuracy.log
5、テストモデルの各層と全体推理時間とbackword時間 /home/yly/ENet/caffe-enet/build/tools/caffe time -model /home/yly/ERFNet/prototxts/erfnet_decoder_train_val.prototxt -weights /home/yly/ERFNet/weights/snapshots_decoder/erfnet_iter_70000.caffemodel -iterations 10 -gpu 0 2>&1| tee /home/yly/ERFNet/weights/snapshots_decoder/test_time.log
-phase TRAIN ( forward backward ) -phase TEST ( forward time)
6、トレーニングログの可視化分析
トレーニングでコマンドGLOG_を利用logtostderr=0 GLOG_log_dirが指定したパスの下でログファイルが生成されます.ログファイルには画面上のすべての情報が印刷されており、反復数の増加に伴ってlossまたはaccuracyがどのように変化するかに注目することが多い.オリジナルcaffeの/tools/extraフォルダの下parse_を使用できます.log.sh, extract_seconds.py, plot_training_log.py, plot_training_log.py.exampleのファイルはログファイルを解析し,興味のある情報を抽出する.
GLOG_logtostderr=0 GLOG_log_dir=/home/yly/ERFNet/weights/snapshots_decoder_finetune/ /home/yly/ENet/caffe-enet/build/tools/caffe train -solver /home/yly/ERFNet/prototxts/erfnet_decoder_solver_finetune.prototxt -weights /home/yly/ERFNet/weights/snapshots_decoder/erfnet_iter_3000.caffemodel
GLOG_logtostderr=0 GLOG_log_dir=/home/yly/ERFNet/weights/snapshots_decoder_finetune/ /home/yly/ENet/caffe-enet/build/tools/caffe train -solver /home/yly/ERFNet/prototxts/erfnet_decoder_solver_finetune.prototxt -snapshot /home/yly/ERFNet/weights/snapshots_decoder/erfnet_iter_3000.solverstate
トレーニング時間が長いため、さまざまな理由でトレーニングを中断する必要がある場合があります.solverstateファイルは、前のトレーニングを継続するために保存されます.-snapshotを使用して、以前のトレーニングの状態をロードします.
4、測定精度 /home/yly/ENet/caffe-enet/build/tools/caffe test -model /home/yly/ERFNet/prototxts/erfnet_decoder_train_val.prototxt -weights /home/yly/ERFNet/weights/snapshots_decoder/erfnet_iter_70000.caffemodel -iterations 500 -gpu 0 2>&1| tee /home/yly/ERFNet/weights/snapshots_decoder/test_accuracy.log
-modelはニューラルネットワークプロファイルを指定します.ここでのファイルは、データ次元のみを入力deployではなく、data入力層にテストファイルパスを含むprototxtでなければなりません.prototxt.後で-weightsは訓練されたウェイトファイルをロードし、-iterationsは反復回数(testデータセットにどれだけのファイルがあるかを指定します).次のコマンドは、ログを出力する別の方法です.2>&1|tee/home/yly/ERFNet/weights/snapshots_decoder/test_accuracy.log
5、テストモデルの各層と全体推理時間とbackword時間 /home/yly/ENet/caffe-enet/build/tools/caffe time -model /home/yly/ERFNet/prototxts/erfnet_decoder_train_val.prototxt -weights /home/yly/ERFNet/weights/snapshots_decoder/erfnet_iter_70000.caffemodel -iterations 10 -gpu 0 2>&1| tee /home/yly/ERFNet/weights/snapshots_decoder/test_time.log
-phase TRAIN ( forward backward ) -phase TEST ( forward time)
6、トレーニングログの可視化分析
トレーニングでコマンドGLOG_を利用logtostderr=0 GLOG_log_dirが指定したパスの下でログファイルが生成されます.ログファイルには画面上のすべての情報が印刷されており、反復数の増加に伴ってlossまたはaccuracyがどのように変化するかに注目することが多い.オリジナルcaffeの/tools/extraフォルダの下parse_を使用できます.log.sh, extract_seconds.py, plot_training_log.py, plot_training_log.py.exampleのファイルはログファイルを解析し,興味のある情報を抽出する.
/home/yly/ENet/caffe-enet/build/tools/caffe test -model /home/yly/ERFNet/prototxts/erfnet_decoder_train_val.prototxt -weights /home/yly/ERFNet/weights/snapshots_decoder/erfnet_iter_70000.caffemodel -iterations 500 -gpu 0 2>&1| tee /home/yly/ERFNet/weights/snapshots_decoder/test_accuracy.log
/home/yly/ENet/caffe-enet/build/tools/caffe time -model /home/yly/ERFNet/prototxts/erfnet_decoder_train_val.prototxt -weights /home/yly/ERFNet/weights/snapshots_decoder/erfnet_iter_70000.caffemodel -iterations 10 -gpu 0 2>&1| tee /home/yly/ERFNet/weights/snapshots_decoder/test_time.log
-phase TRAIN ( forward backward ) -phase TEST ( forward time)
6、トレーニングログの可視化分析
トレーニングでコマンドGLOG_を利用logtostderr=0 GLOG_log_dirが指定したパスの下でログファイルが生成されます.ログファイルには画面上のすべての情報が印刷されており、反復数の増加に伴ってlossまたはaccuracyがどのように変化するかに注目することが多い.オリジナルcaffeの/tools/extraフォルダの下parse_を使用できます.log.sh, extract_seconds.py, plot_training_log.py, plot_training_log.py.exampleのファイルはログファイルを解析し,興味のある情報を抽出する.
chmod u+x ./parse_log.sh ./extract_seconds.py ./plot_training_log.py ./plot_training_log.py.example
./parse_log.sh caffe.yly.yly.log.INFO.20180812-151029.3307
そのうちcaffe.yly.yly.log.INFO.20180812-151029.3307は、section 1のコマンドにより生成されたログファイルである.生成された*.log.trainファイルと*.log.testファイルには時間、反復回数、lr、lossのリストがあります.
./plot_training_log.py.example 6 trainloss_iters.png caffe.yly.yly.log.INFO.20180812-151029.3307.log
異なる数値は、異なるグラフを出力することを示します.
0: Test accuracy vs. Iters
1: Test accuracy vs. Seconds
2: Test loss vs. Iters
3: Test loss vs. Seconds
4: Train learning rate vs. Iters
5: Train learning rate vs. Seconds
6: Train loss vs. Iters
7: Train loss vs. Seconds
7、caffeマルチGPUパラレルトレーニング
トレーニングのコマンドラインの後ろにGPU番号を指定するだけでいいです.-gpu 0,1
全GPUを使用する場合:-gpu all
8、リアルタイムでビデオカードの使用状況を監視する
1秒に1回リフレッシュ:watch -n 1 nvidia-smi
参考資料:http://caffe.berkeleyvision.org/tutorial/interfaces.html
-gpu 0,1
-gpu all
1秒に1回リフレッシュ:
watch -n 1 nvidia-smi
参考資料:http://caffe.berkeleyvision.org/tutorial/interfaces.html