Sigmoid函数返回值为2.0的问题排查求助
问题解决:Sigmoid函数返回值异常的原因
你的问题出在sigmoid函数的运算符优先级错误。
你当前的实现:
def sigmoid(x): return 1/1+(np.exp(-x))
由于Python中除法优先级高于加法,这段代码等价于 (1/1) + np.exp(-x),也就是 1 + np.exp(-x)。当输入x=0时,np.exp(0)=1,结果就是1+1=2.0,完全偏离了sigmoid函数0-1的取值范围。
正确的sigmoid函数公式是 1/(1 + np.exp(-x)),需要给整个分母加上括号来保证运算顺序:
def sigmoid(x): return 1 / (1 + np.exp(-x))
修正后,无论输入什么实数x,函数返回值都会落在0到1之间,符合sigmoid函数的定义。
内容的提问来源于stack exchange,提问作者Lalaryk
相关产品推荐
相关产品推荐

