首页 > 解决方案 > Python:乘以溢出

问题描述

在计算tanh导数的过程中,dout是上游梯度。

tanh(x) = (exp(2*x) - 1)/(exp(2*x)+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))

标签: pythonoverflowrecurrent-neural-network

解决方案


我怀疑溢出是由零除错误引起的。检查等式的 1//((np.exp(2*x)+1) * (np.exp(2*x)+1)) 部分。在第二个等式中没有除数,因此不可能出现 DBZ 错误。


推荐阅读