1
我們必須要計算:當我們使用crossano與theano時如何解決NAN或INF?
y*log(y_compute)+(1-y)*(1-y_compute)
所以,當我們得到y_compute
。或。,這個問題會出現。我該怎麼做才能避免它?
我們必須要計算:當我們使用crossano與theano時如何解決NAN或INF?
y*log(y_compute)+(1-y)*(1-y_compute)
所以,當我們得到y_compute
。或。,這個問題會出現。我該怎麼做才能避免它?
您的表達y_compute
可能包含指數(例如,來自theano.tensor.nnet.sigmoid
?在這種情況下,它通常不會達到確切的0或1.在這些情況下,您可以直接使用表達式或theano.tensor.nnet.crossentropy_categorical_1hot
。
如果無論出於何種原因你有確切的0和1,另一種方法是剪切輸入到crossentropy。嘗試用theano.tensor.clip(y_compute, 0.001, 0.999)
代替y_compute
,知道這會限制對數的範圍。
謝謝。我使用theano.tensor.nnet.sigmoid,我發現如果x> 20,那麼y將等於1.所以theano.tensor.clip將是一個很好的解決方案。 –
我認爲這種情況一般要避免。你能不能像這樣發生?如果您之前有其他問題,裁剪可能無法正常工作。 – eickenberg
是的,我知道,有時候是因爲初始化不好或者學習速度太快或者目標函數錯誤等。謝謝! –