python - Numpy 在不应该返回错误的地方返回错误
问题描述
我正在从头开始使用神经网络,当我尝试实现稳定的 sigmoid 函数时,numpy where 似乎表现得很奇怪。这里的两个函数都返回RuntimeWarning:exp 中遇到的溢出:
#Original Function
def sigmoid(x):
return np.where(x >= 0, 1 / (1 + np.exp(-x)), np.exp(x) / (1 + np.exp(x)))
#Dummy function that is also misbehaving
def sigmoid(x):
return np.where(x>=0, 1 / (1 + np.exp(-x)), 0)
这是结果:
解决方案
这是运行时警告,而不是错误。您的代码运行良好。警告是因为您正在尝试计算exp(-(-1000))
哪些溢出浮动容量(基本上返回inf
)。既然你在分母中有它,我不会担心它,因为它会返回1/inf = 0
。
推荐阅读
- php - 从 laravel 中间件调用控制器方法
- mongodb - 如何在官方 MongoDB Go 驱动程序上查找和比较日期?
- python - 如何仅选择值超过阈值的行?
- erlang - 为什么我的代码在 erlang 21 中出现错误,但在 erlang 20 中却没有?
- java - java把利率放在我的抵押贷款计算器上
- reactjs - 渲染带有附加文本的 React 组件列表
- c++ - 什么是 C++ 中的 unordered_set
- python - Python - 按其属性对链接列表进行排序
- python - Python中列表列表的反转
- excel - 在 Excel 中将行转换为列