python - 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))
解决方案
我怀疑溢出是由零除错误引起的。检查等式的 1//((np.exp(2*x)+1) * (np.exp(2*x)+1)) 部分。在第二个等式中没有除数,因此不可能出现 DBZ 错误。
推荐阅读
- glsl - 在 KDevelop 中关闭 GLSL 的语义分析
- c# - 在.Net Windows Forms中循环时不阻塞UI
- javascript - 如何将 + 号移到左侧?
- python - 使用 cbv 隐藏模板中的内容
- excel - 按范围复制和粘贴值,而不是按单元格
- django - 我正在通过 api 调用从外部数据库同步应用程序详细信息,出现错误 none type has no attribute strip
- sql - 如何使用 SQL 中的“IN”运算符编写 LDAP 查询
- r - 汇总数据,转换为时间序列并用零补全缺失的月份
- javascript - 如何更改 Yup 的日期格式验证
- javascript - 如何在 vue.js 中将数据传递给 tinymce?