2016-02-16 7 views
5

にスナップショットを作成しません、カフェは訓練を停止しますが、スナップショットを作成しません。それを修正するには? 私のソルバー:カフェがSIGINT

net: "course-work/testing/model.prototxt" 
test_iter: 200 
test_interval: 500 

base_lr: 0.001 
momentum: 0.9 
weight_decay: 0.005 
lr_policy: "fixed" 

display: 50 
max_iter: 60000 

snapshot: 5000 
snapshot_format: HDF5 
snapshot_prefix: "course-work/testing/by_solver_lr0" 
snapshot_after_train: true 

solver_mode: CPU 

bashスクリプト:teeとパイプを介してカフェの出力をリダイレクトする

TOOLS=./build/tools 
NET_DIR=course-work/testing 

$TOOLS/caffe train \ 
    --solver=$NET_DIR/solver_lr0.prototxt 2>&1 | tee $NET_DIR/1.log 
+0

私はHDF5へのスナップショットに問題がありました。代わりにBINARYPROTOにスナップショットを試みてください。 – Shai

+1

@Shaiそれは変ですが、 'kill -s SIGINT 'でSIGINTを直接送ると、caffeがスナップショットを作成します。 'CTRL + C'はまだ動作しません。 – 0x1337

+1

は、 'tee'パイプラインのために、キーボードからのシグナルが何らかの形で別のプロセスに送られる可能性がありますか? – Shai

答えて

6

は、プロセスにOSハンドルと転送信号方法を変更することがあります。 SIGINTがcaffeに届くように| teeを避けてください。 caffe toolは二つのフラグ

DEFINE_string(sigint_effect, "stop", 
      "Optional; action to take when a SIGINT signal is received: " 
       "snapshot, stop or none."); 
DEFINE_string(sighup_effect, "snapshot", 
      "Optional; action to take when a SIGHUP signal is received: " 
      "snapshot, stop or none."); 

これらのフラグを持っていることを

注あなたはSIGINTSIGHUPにカフェの動作を定義することができます。カフェ出力をログに記録する

+0

出力をログに記録する別の方法は何ですか? – shaunakde

+0

@shaunakde私は通常 'screen'を使い、フォアグラウンドでファイルにリダイレクトします。 – Shai

1

良い方法は、これはカフェ出力とSIGINTのライブログは間違いなくカフェに達しない

GLOG_log_dir=/path/to/log/dir $CAFFE_ROOT/bin/caffe.bin train 
—solver=/path/to/solver.prototxt 

です。

+0

これはどのように問題を解決しますか? ** GLOG_log_dir **とはどういう意味ですか? – caffeine

+0

CaffeはGoogle Logging Library(GLOG)を使用し、GLOG_log_dirはログファイルのディレクトリを指定します。 – curio1729

関連する問題