2015-11-18 28 views

回答

2

您的表達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,知道這會限制對數的範圍。

+0

謝謝。我使用theano.tensor.nnet.sigmoid,我發現如果x> 20,那麼y將等於1.所以theano.tensor.clip將是一個很好的解決方案。 –

+0

我認爲這種情況一般要避免。你能不能像這樣發生?如果您之前有其他問題,裁剪可能無法正常工作。 – eickenberg

+0

是的,我知道,有時候是因爲初始化不好或者學習速度太快或者目標函數錯誤等。謝謝! –

相關問題