首页 > 解决方案 > 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)

这是结果:

在此处输入图像描述

标签: pythonnumpydebuggingneural-networknumpy-ndarray

解决方案


这是运行时警告,而不是错误。您的代码运行良好。警告是因为您正在尝试计算exp(-(-1000))哪些溢出浮动容量(基本上返回inf)。既然你在分母中有它,我不会担心它,因为它会返回1/inf = 0


推荐阅读