问题:
RuntimeWarning: overflow encountered in exp
解决:
(原始)
def sigmoid(x):
return 1 / (1 + np.exp(-x))
(优化)
def sigmoid(x):
x_ravel = x.ravel()
length = len(x_ravel)
y = []
for index in range(length):
if x_ravel[index] >= 0:
y.append(1.0 / (1 + np.exp(-x_ravel[index])))
else:
y.append(np.exp(x_ravel[index]) / (np.exp(x_ravel[index]) + 1))
return np.array(y).reshape(x.shape)
参考链接:
深度学习神经网络sigmoid函数溢出
运行时警告:exp中遇到溢出,RuntimeWarningoverflowencounteredinexp