2016-07-21 19 views
0

私は自分のトレーニングループでpythonでテストの損失を計算しようとしています。 solver.test_nets[0].forward()を呼び出すと、scoreブロブは更新されますが、lossは更新されないようです。どのように更新するにはどのようなアイデア?pycaffeでテスト/検証の損失を計算する方法

私は、次のソルバー設定を使用しています:

net: "/tmp/tmp8ikb9sg2/train.prototxt" 
test_net: "/tmp/tmp8ikb9sg2/test.prototxt" 
test_iter: 1 
test_interval: 2147483647 
base_lr: 0.1 
lr_policy: "fixed" 
test_initialization: false 

、電車やtest.prototxtは、ファイルの先頭での位相の定義を除いてまったく同じです:

name: "pycaffenet" 
state { 
    phase: TRAIN # set TEST in test.prototxt 
} 
... 
layer { 
    name: "loss" 
    type: "SoftmaxWithLoss" 
    bottom: "score" 
    bottom: "output" 
    top: "loss" 
} 
+0

prototxtはどのように見えますか?損失層をトレインフェーズだけに制限している 'include 'パラメータはありますか? – Prophecies

+0

@Prophecies私は損失層を制限していません。私は説明の中にprototxtファイルの一部を追加しました^。 –

答えて

1

でした実際に私が思ったものとは異なる問題です。 ブロブは更新されましたが、solver.test_nets[0]の重みは変更されていないため、同じままです。 solver.netと自動的に共有されないようです。これは、単に電話することによって行うことができます:

solver.test_nets[0].share_with(solver.net) 
関連する問題