Python:乘法中遇到溢出
在计算tanh导数的过程中,dout是上游梯度 tanh(x)=(exp(2*x)-1)/(exp(2*x)+1)Python:乘法中遇到溢出,python,overflow,recurrent-neural-network,Python,Overflow,Recurrent Neural Network,在计算tanh导数的过程中,dout是上游梯度 tanh(x)=(exp(2*x)-1)/(exp(2*x)+1) 我怀疑溢出是由零除错误引起的。检查等式的1/((np.exp(2*x)+1)*(np.exp(2*x)+1))部分。在第二个等式中没有除数,所以没有可能的DBZ错误。谢谢你的回答,但是(exp(2*x)+1)在任何情况下都不能为零,所以不会发生被零除的错误。哦,是的,我错过了!exp(0)=1。谢谢你指出伊姆曹兹! # this will encounter overflow in
我怀疑溢出是由零除错误引起的。检查等式的1/((np.exp(2*x)+1)*(np.exp(2*x)+1))部分。在第二个等式中没有除数,所以没有可能的DBZ错误。谢谢你的回答,但是(exp(2*x)+1)在任何情况下都不能为零,所以不会发生被零除的错误。哦,是的,我错过了!exp(0)=1。谢谢你指出伊姆曹兹!
# this will encounter overflow in multiply
d_tanh = dout * 4 * np.exp(2*x)/((np.exp(2*x)+1) * (np.exp(2*x)+1))
# this will not, why?
d_tanh = dout * (1 - np.tanh(x) * np.tanh(x))