我们必须计算:
y*log(y_compute)+(1-y)*(1-y_compute)
所以我们得到y_compute
1 。或 0 。,此问题会出现。我该怎么办才能避免它?
答案 0 :(得分:2)
您的表达式y_compute
可能包含指数,例如来自theano.tensor.nnet.sigmoid
?在这种情况下,它通常不会达到精确的0或1.在这些情况下,您可以直接使用您的表达式或theano.tensor.nnet.crossentropy_categorical_1hot
。
如果由于某种原因你有精确的0和1,另一种方法是将输入剪辑到交叉熵。尝试例如将y_compute
替换为theano.tensor.clip(y_compute, 0.001, 0.999)
,知道这将限制对数的范围。