caffe常用コマンド

4427 ワード

Caffeコマンドラインの一般的なコマンド:

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は、自分が保存したいフォルダのパスを指定します(存在する必要があります).ログを解析する方法は以下のセクション6で説明する.トレーニングログを印刷したくない場合は、省略できます.
  • は次に、自分がインストールしたcaffeパスの下の/build/tools/caffeパスであり、指定されたパスに応じて異なるバージョンのcaffe(BVLC原版)または他の人の改良版を呼び出すことができ、サンプルコードではENet改良されたcaffeバージョン(画像を読み取るDenseImageData層を追加し、読み込んだlabelにlabel_divide_factorを設定してencoder部分のトレーニングに使用することができる)が使用される.
  • -solverの後に指定されているのは自分のsolverファイルです.solverファイルには、トレーニングのスーパーパラメータ、呼び出されたprototxtのネットワークプロファイル、トレーニングウェイトcaffemodelを格納するパスが書かれています.読み込まれたデータパスは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のファイルはログファイルを解析し,興味のある情報を抽出する.
  • は、まず、上記ファイルをログファイルを格納フォルダの下にコピーし、cdは、対応するフォルダにファイル実行権限
  • を付与する.
    chmod u+x ./parse_log.sh ./extract_seconds.py ./plot_training_log.py ./plot_training_log.py.example
  • trainとtestログの解析:
  • ./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のリストがあります.
  • 描画画像
  • トレーニングによって生成されたログファイルを追加する.log接尾辞を実行します.
    ./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