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

[교육 기간 중 일반적인 원인] (0120-555-301) – Shai

답변

2

당신은 손실이 0이 아니며 심지어 닫히지 않습니다. 3.3e+11 (~ 10^11)으로 시작하고 폭발 직후에 나타나고 nan이됩니다. 당신은 크게 손실 가치를 축소해야합니다. "EuclideanLoss"을 사용하는 경우 손실을 깊이 맵의 크기로 평균화하고 예측 값을 [-1,1] 범위로 확장하거나 손실이 폭발하지 않도록하는 다른 배율 방법으로 조정할 수 있습니다.

+0

크기에 따른 손실의 평균은 어떻게됩니까? 깊이지도? – thigi

+0

깊이 맵 크기가 고정되어 있으면'loss_weight'를 사용할 수 있습니다. 그렇지 않으면 더 까다로울 수 있습니다. – Shai

관련 문제