问题:

在使用sigmoid函数的时候遇到了这个错误:

  yyh=1/(1+np.power(np.e,-yh))


问题分析:

溢出就是数太大,计算机已经表示不了了。我们当然会想,怎么会溢出呢?因为我们注意到这里使用了指数,指数的增长速度是非常块的,e1000e^{1000}e1000这个数估计计算机都表示不了,因为太大了。

我们猜测:是否是我们的yhyhyh有一个非常小的负数,然后取负号就变成特别大的正数,然后指数一下就溢出。


果然如此,这里相当于计算了e1151e^{1151}e1151,所以当然会溢出了。

理论分析:

y=11+e−xy=\frac{1}{1+e^{-x}}y=1+e−x1​

当x为正数,很大的时候,不会溢出,因为e−xe^{-x}e−x趋近于0,没什么好溢出的。
当x为负数,很小的时候,会溢出,如上面的情况。

所以我们修正一下我们的sigmoid函数,不要直接上面这么用。将

  yyh=1/(1+np.power(np.e,-yh))

换成:

def sigmoid(x):if x>=0:      return 1.0/(1+np.power(np.e,-x))else:#为负数的时候,对sigmoid函数的优化,避免了出现极大的数据溢出return np.power(np.e,x)/(1+np.power(np.e,x))
yyh=sigmoid(yh)

注意:上面并没有修改sigmoid函数,只是把公式换了一种等价描述,但是却克服了计算机会溢出的缺点。

即:

y=11+e−x=exex+1y=\frac{1}{1+e^{-x}}=\frac{e^{x}}{e^{x}+1}y=1+e−x1​=ex+1ex​

但是当x为正的时候,不要使用第2种公式形式,不然溢出。当x为负的时候,才使用,但不使用第一种公式形式,这就是优化的sigmoid函数(仅仅在计算机中才需要优化,数学中是完全等价的)。

RuntimeWarning: overflow encountered in power相关推荐

  1. python图像处理报错:RuntimeWarning: overflow encountered in ushort_scalars

    python图像处理报错:RuntimeWarning: overflow encountered in ushort_scalars 在使用numpy进行图像处理过程,经常遇到RuntimeWarn ...

  2. “RuntimeWarning: overflow encountered in ubyte_scalars像素加减运算溢出异常”原因以及解决办法

    转载本文请注明详细地址 本文介绍了像素点相加减溢出的原因与解决方法 目录 原因: 解决方法: 原因: 这个问题一般是会出现在图像处理像素的加减中,出现的原因是因为图片的像素一般是八位即最大值是256, ...

  3. python计算警告:overflow encountered in exp(指数函数溢出)(sigmoid函数的numpy数组计算方式)

    文章目录 前言 原因 解决方法 1.对sigmoid函数实现的优化,使`np.exp(-x)`的值始终小于1 2.用这个公式替代(没试过,不知好不好用) 前言 在计算sigmoid函数值时,出现了以下 ...

  4. overflow encountered in exp

    再次运行logRegres.multiTest()时,没有第一次的警告,sigmoid函数优化可避免类似问题: def sigmoid(inX):from numpy import expreturn ...

  5. overflow encountered in ubyte_scalars像素加减运算溢出异常

    https://blog.csdn.net/Acecai01/article/details/80248139

  6. 01.神经网络和深度学习 W3.浅层神经网络(作业:带一个隐藏层的神经网络)

    文章目录 1. 导入包 2. 预览数据 3. 逻辑回归 4. 神经网络 4.1 定义神经网络结构 4.2 初始化模型参数 4.3 循环 4.3.1 前向传播 4.3.2 计算损失 4.3.3 后向传播 ...

  7. voc_eval.py:41: RuntimeWarning: invalid value encountered in greater_equal if np.sum(rec = t) ==

    训练faster-rcnn报错 训练结束后测试时出现类似 File "/home/xxx/py-faster-rcnn/tools/../lib/datasets/voc_eval.py&q ...

  8. 使用python的butter带通滤波器时出现RuntimeWarning

    RuntimeWarning: invalid value encountered in reduce   ret = umr_sum(arr, axis, dtype, out, keepdims) ...

  9. 吴恩达深度学习课程deeplearning.ai课程作业:Class 1 Week 3 assignment3

    吴恩达deeplearning.ai课程作业,自己写的答案. 补充说明: 1. 评论中总有人问为什么直接复制这些notebook运行不了?请不要直接复制粘贴,不可能运行通过的,这个只是notebook ...

最新文章

  1. AngularJS之Service(四)
  2. Xcode终端快捷键
  3. 导致定时器失效_IIS进程回收导致定时器失效的解决方法(CMD命令)
  4. python学习面向对象_python学习之面向对象学习
  5. MVVM架构~knockoutjs实现简单的购物车
  6. 2019 深度学习框架大盘点!看 PyTorch、TensorFlow 如何强势上榜?
  7. 7-67 使用二维数组实现Matrix(矩阵)。 (60 分)
  8. http的“无连接”指的是_http协议无状态中的 quot;状态quot; 到底指的是什么?...
  9. WSFC真实场景仲裁处理
  10. 2013年工作中遇到的20个问题:241-260
  11. 调试代码和解决问题的总体思路和 技术路线应该持有的心态
  12. 二、十六进制数互相转换
  13. Idea设置背景色设置为护眼色
  14. 怎么批量修改html文件后缀,如何批量修改文件后缀名
  15. [从头读历史] 第280节 诗经目录以及十五国风的地域分布
  16. NVDIMM编程模型原理大概推导梳理
  17. spring 动态数据源切换实例
  18. 电弧光保护系统 就选汉光HKHB-608智能电弧光保护系统
  19. matlab 版 数独小游戏 GUI界面设计
  20. Mac OS X Mavericks 迅雷下载地址 ( mac os x 10.9 )

热门文章

  1. warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;使用 /NODEFAULTLIB:library问题解决方法
  2. 知识图谱可解释推理研究综述
  3. 【开放书】《命令行数据科学指南(第二版)》
  4. 独家 | 浅谈Python/Pandas中管道的用法
  5. Python进阶最新中文版,开源!
  6. TensorRT重磅更新!10亿参数大模型实时运行,GPT推理加速21倍
  7. CV圈太卷了!继谷歌提出MLP-Mixer之后,清华、牛津等学者又发表三篇MLP相关论文...
  8. 90后清华女孩:博二开始研究世界级难题,3年发5篇Science,现入选中国榜“35岁以下科技创新35人”!...
  9. 2020人工智能课程超级大列表:深度学习-强化学习-图神经网络-自然语言处理等...
  10. 【Pytorch】运用英伟达DALI加速技巧可使PyTorch运算速度快4倍