RuntimeWarning: overflow encountered in exp return np.exp(z)/(1+np.exp(z))
时间: 2024-02-13 19:59:56 浏览: 340
oracle EXP 遇到的问题
这个警告通常出现是因为指数函数(exp)的参数过大,导致其计算结果超出了计算机的表示范围,从而出现溢出(overflow)的情况。
为了避免这个警告,可以使用一些数值稳定的方法来计算sigmoid函数,避免指数函数的参数过大。以下是一些示例代码:
1. 使用logistic函数
```
def sigmoid(z):
return 1 / (1 + np.exp(-z))
```
这里使用了logistic函数的形式来计算sigmoid函数,避免了指数函数的参数过大的问题。
2. 使用sigmoid函数的性质
```
def sigmoid(z):
if z >= 0:
return 1 / (1 + np.exp(-z))
else:
return np.exp(z) / (1 + np.exp(z))
```
这里利用了sigmoid函数的性质,将输入值分为正数和负数两种情况来计算sigmoid函数,避免了指数函数的参数过大的问题。
以上两种方法都可以避免出现警告,并且计算结果准确。
阅读全文