文章目录

  • 前言
  • 原因
  • 解决方法
    • 1、对sigmoid函数实现的优化,使`np.exp(-x)`的值始终小于1
    • 2、用这个公式替代(没试过,不知好不好用)

前言

在计算sigmoid函数值时,出现了以下警告

原因

我们观察我们的sigmoid函数

import numpy as np# Dontla:定义sigmoid函数
def sigmoid(x):return 1.0 / (1 + np.exp(-x))

numpy数组x中可能有绝对值比较大的负数,这样传给sigmoid函数时,分母np.exp(-x)会非常大,导致np.exp(-x)溢出

解决方法

1、对sigmoid函数实现的优化,使np.exp(-x)的值始终小于1

import numpy as np# Dontla:定义sigmoid函数
def sigmoid(inx):if inx >= 0:  # 对sigmoid函数的优化,避免了出现极大的数据溢出return 1.0 / (1 + np.exp(-inx))else:return np.exp(inx) / (1 + np.exp(inx))

但在numpy数组中,你不好直接判断np.array大于零或小于零,所以需要把数组里的数字取出来一个一个判断,计算后,再重新整合:

def sigmoid(x):x_ravel = x.ravel()  # 将numpy数组展平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)

2、用这个公式替代(没试过,不知好不好用)

def logistic_function(x):return .5 * (1 + np.tanh(.5 * x))

参考文章1:深度学习神经网络sigmoid函数溢出

参考文章2:Sigmoid函数的替代:overflow encountered in exp in computing the logistic function

python计算警告:overflow encountered in exp(指数函数溢出)(sigmoid函数的numpy数组计算方式)相关推荐

  1. overflow encountered in exp

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

  2. python中复数采用什么方法提取实部_讲解Python3中NumPy数组寻找特定元素下标的两种方法 python3中怎样实现对一个复数取实部...

    python numpy 数组提取某一列大于某一直的数据 import numpy as npa=np.arange(9).reshape(3,3)12 a Out[31]: array([[0, 1 ...

  3. python导入mat文件_从.mat文件导入复杂数据作为numpy数组

    我有一个关于元组的问题.我使用了一个程序,它以.mat格式转储大量输出的三维数组.它们在MATLAB中工作得很好.它们是较新的.mat格式(基于HDF5). 假设我在MATLAB中生成了一个10x10 ...

  4. python计算ex函数_python – numpy:计算softmax函数的导数

    我试图用MNIST理解一个简单的3层神经网络中的反向传播. 输入层有权重和偏差.标签是MNIST,因此它是10类向量. 第二层是线性转变.第三层是softmax激活,以获得输出作为概率. 反向传播计算 ...

  5. python中if语句求最大值_如何用if语句向量化numpy数组中的最大值?

    我的设置:Python 2.7.4.1.numpymkl 1.7.1.windows7x64.WinPython 上下文: 我尝试实现序列最小优化算法来求解支持向量机.我使用最大违反对方法.在 问题是 ...

  6. python slice是共享内存吗_在共享内存中使用numpy数组进行多处理

    在共享内存中使用numpy数组进行多处理 我希望在共享内存中使用numpy数组,以便与多处理模块一起使用.困难之处在于它像一个numpy数组一样使用,而不仅仅是作为一个ctype数组使用.from m ...

  7. python 第一行非零_python – 沿着已排序的二维numpy数组的轴查找第一个非零值

    使用 np.where的速度相当快: >>> a array([[0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, ...

  8. python整数因子_Python:通过非整数因子下采样2D numpy数组

    我最后写了一个小函数,使用scipy.ndimage.zoom升级图像,但是为了缩小它,它首先将它升级为原始形状的倍数,然后通过块平均缩小.它接受scipy.zoom的任何其他关键字参数(order和 ...

  9. python三维矩阵可视化_科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数)...

    Mlab了解 Mlab是Mayavi提供的面向脚本的api,他可以实现快速的三维可视化,Mayavi可以通过Mlab的绘图函数对Numpy数组建立可视化. 过程为: .建立数据源 .使用Filter( ...

最新文章

  1. Windows下Eclipse和PyDev搭建完美Python开发环境
  2. Scikit-learn 概述
  3. LeetCode 361. 轰炸敌人(前缀和DP)
  4. 牛客21312 神秘餐馆
  5. 技术大佬:今年还学Python,傻了吧? 网友:就你敢说!
  6. 小鱼会有危险吗(洛谷-P1426)
  7. icesat-2数据下载的几种方法
  8. 算法工程师面试九之隐马尔可夫模型
  9. 如何不授权情况下获取自己微信openid/傻瓜式获取
  10. 【实习周报】2019年6月 前端开发实习工作周报汇总
  11. 数据库系统--期末复习
  12. html5网页制作电脑版,页未央HTML5制作神器PC版
  13. rtx a1000相当于什么显卡 rtxa1000相当于gtx多
  14. C语言汉诺塔问题图文详解
  15. AsyncTask实例
  16. 光电成像相关检测技术整理
  17. AlwaysOn实现主从切换
  18. HTML form表单 input输入框
  19. 最新仿抖音短视频APP双端源码+带安装教程/PHP后端
  20. 计算机英语四级考试报名,大学英语四级报名

热门文章

  1. 理解MySQL——复制(Replication)
  2. ASP.NET 2.0 XML 系列(2): XML技术
  3. access vba表字段_Access获取表字段的所有属性信息
  4. 如何判断序列是不是堆_备胎是什么意思?如何判断自己是不是感情中的备胎?...
  5. 关于会计科目表,科目组,字段状态组
  6. 汇总内表数据:at end of方法和collect方法
  7. SAP方丈-写给新手的SAP成本核算流程
  8. 生产订单结算时候的几个差异
  9. 如何让报表告别繁琐?简单操作实现报表联动!
  10. 结婚率连7年下降,数据揭秘单身背后复杂逻辑