0

私はネットワークを訓練しており、私は0.1から0.00001の学習率に変更しました。出力は常に同じままです。トレーニングには平均は使用されていません。 このような奇妙な損失の理由は何でしょうか?カフェの損失が0または0

I1107 15:07:28.381621 12333 solver.cpp:404]  Test net output #0: loss = 3.37134e+11 (* 1 = 3.37134e+11 loss) 
I1107 15:07:28.549142 12333 solver.cpp:228] Iteration 0, loss = 1.28092e+11 
I1107 15:07:28.549201 12333 solver.cpp:244]  Train net output #0: loss = 1.28092e+11 (* 1 = 1.28092e+11 loss) 
I1107 15:07:28.549211 12333 sgd_solver.cpp:106] Iteration 0, lr = 1e-07 
I1107 15:07:59.490077 12333 solver.cpp:228] Iteration 50, loss = -nan 
I1107 15:07:59.490170 12333 solver.cpp:244]  Train net output #0: loss = 0 (* 1 = 0 loss) 
I1107 15:07:59.490176 12333 sgd_solver.cpp:106] Iteration 50, lr = 1e-07 
I1107 15:08:29.177093 12333 solver.cpp:228] Iteration 100, loss = -nan 
I1107 15:08:29.177119 12333 solver.cpp:244]  Train net output #0: loss = 0 (* 1 = 0 loss) 
I1107 15:08:29.177125 12333 sgd_solver.cpp:106] Iteration 100, lr = 1e-07 
I1107 15:08:59.758381 12333 solver.cpp:228] Iteration 150, loss = -nan 
I1107 15:08:59.758513 12333 solver.cpp:244]  Train net output #0: loss = 0 (* 1 = 0 loss) 
I1107 15:08:59.758545 12333 sgd_solver.cpp:106] Iteration 150, lr = 1e-07 
I1107 15:09:30.210208 12333 solver.cpp:228] Iteration 200, loss = -nan 
I1107 15:09:30.210304 12333 solver.cpp:244]  Train net output #0: loss = 0 (* 1 = 0 loss) 
I1107 15:09:30.210310 12333 sgd_solver.cpp:106] Iteration 200, lr = 1e-07 
+0

[トレーニング中のナンの一般的な原因]の複製が可能です(http://stackoverflow.com/questions/33962226/common-causes-of-nans-during-training) – Shai

答えて

2

あなたは紛失ではありません0、近くもありません。​​(〜10^11)で始まり、すぐに爆発してからnanになるようです。あなたは大幅に損失の値を縮小する必要があります。 "EuclideanLoss"を使用している場合は、損失を奥行きマップのサイズで平均化し、予測値を[-1,1]の範囲にスケーリングするか、損失が爆発するのを防ぐ他のスケーリング方法を使用することができます。

+0

奥行きマップ? – thigi

+0

深度マップのサイズが固定されている場合は、 'loss_weight'を使用できます。それ以外の場合は、もっと難しいかもしれません。 – Shai

関連する問題