Python Numpy where返回不应该返回的错误';T
我从零开始使用神经网络,当我尝试实现稳定的sigmoid函数时,numpywhere似乎表现得很奇怪。此处的两个函数都返回运行时警告:exp中遇到溢出:Python Numpy where返回不应该返回的错误';T,python,numpy,debugging,neural-network,numpy-ndarray,Python,Numpy,Debugging,Neural Network,Numpy Ndarray,我从零开始使用神经网络,当我尝试实现稳定的sigmoid函数时,numpywhere似乎表现得很奇怪。此处的两个函数都返回运行时警告: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(
#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
这是一个运行时警告,而不是错误。你的代码运行得非常好。警告是因为您试图计算溢出浮动容量的exp(-1000))
(基本上返回inf
)。既然分母中有它,我就不担心它了,因为它返回1/inf=0
,其中
不会阻止对整个数组求值。这是Pythonh如何解决此问题?可能会抑制警告。或者ufunc
像np.exp
有自己的where
机制。在传递给函数之前,您还可以剪裁x
值。其中
不会阻止对整个数组进行求值。这是Pythonh如何解决此问题?可能会抑制警告。或者ufunc
像np.exp
有自己的where
机制。您还可以在传递到函数之前对x
值进行clip
。