2017-04-17 7 views
1

私はCNNを訓練しています。私は総エポックの終わりに向かって約0.001リットルの損失を達成し、チェックポイントを保存しました。さて、私はトレーニングを再開したいとき、私はチェックポイントを読み込み、私が始めているエラーは0.008より大きいです。ここでtorch7のチェックポイントからCNNのトレーニングを再開

は、私がチェックポイントを保存しています方法です。ここで

paths.mkdir('checkpointsR3') 
parametersR, gradParametersR = nil, nil -- nil them to avoid spiking memory 
if epoch % 50 == 0 then 
    util.save('checkpointsR3/' .. opt.name .. '_' .. (epoch+1000) .. '_net_R.t7', netR, opt.gpu) 
end 

は、私がチェックポイントをロードしています方法です:

-- load Residual Learner 
assert(opt.net ~= '', 'provide a generator model') 
netR = util.load(opt.net, opt.gpu) 
netR:evaluate() 

utilの直接soumith chintala's dcgan.torchから使用LUAファイルです。

私はどこが間違っているのか、なぜ私はそのチェックポイントでそれを訓練したときよりもL2損失が高いのかを知りたいです。最も訓練されたチェックポイントをロードしていることを確認しましたが、依然として高いエラーが発生しています。

答えて

1

それは内のせいだった:Documentation

netR:evaluate() 

ここトーチのドキュメント、1はトレーニングを再開したい場合、それはトレーニングやテストのために、異なるBatchNormalization層を初期化しているため、training()代わりにevaluate()の使用すべきであると述べています。

関連する問題