文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python中如何使用matplotlib模块

2023-06-02 02:56

关注

这篇文章给大家介绍python中如何使用matplotlib模块,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

  常见的激活函数效果图如下:

  代码区:

  #!E:\anaconda\python.exe

  # -*-coding:utf-8 -*-

  """

  功能:绘制激活函数 常见的激活函数有sigmoid、tanh、ReLU、eru、leaky ReLU、softmax

  时间:2019/10/6

  """

  from matplotlib import pyplot as plt

  import numpy as np

  # 1.sigmoid函数的表达式:f(x) = 1/(1+e^-x)

  x = np.linspace(-6,6,200)

  def sigmoid(x):

  y = 1/(1+np.exp(-x))

  return y

  # 2.tanh的函数表达式: f(x) = (e^x-e^-x)/(e^x+e-x)

  def tanh(x):

  y = (np.exp(x) - np.exp(-x))/(np.exp(x) + np.exp(-x))

  return y

  #3. ReLu 的函数表达式: f(x)= 当x<0 f(x)0 当x>=0 f(x) = x

  def ReLU(x):

  y = []

  for i in x:

  if i >= 0:

  y.append(i)

  else:

  y.append(0)

  return y

  #return np.maximum(x,[0]*100) #可以利用np中的maximum方法表示,也可以用上述方法

  #4.elu 的函数表达式 f(x) x>=0 f(x)=x x<0 f(x) =a(e^x -1)

  def elu(x,a):

  y = []

  for i in x:

  if i>=0:

  y.append(i)

  else:

  y.append(a*(np.exp(i)-1))

  return y

  #5.leaky ReLU 的函数表达式 x>=0 f(x)=x x<0 f(x) =0.01x

  def LReLU(x):

  y = []

  for i in x:

  if i>=0:

  y.append(i)

  else:

  y.append(0.01*i)

  return y

  # softmax激活函数 softmax的表达式为:输入信号的指数函数除以所有输入信号的指数和

  def softmax(x):

  c = np.max(x) #解决溢出问题

  exe_x = np.exp(x)

  exe_s = np.sum(exe_x)

  y = exe_x/exe_s

  return y

  plt.subplot(1,2,1) #画子图

  plt.plot(x,sigmoid(x),c="red",lw="2",label = "sigmiod")

  plt.plot(x,tanh(x),c="blue",lw="2",label = "tanh")

  plt.plot(x,softmax(x),c="yellow",lw="2",label = "softmax")

  plt.gca().spines["bottom"].set_position(("data",0)) #将函数图像移动到x轴(0,0)

  plt.gca().spines["left"].set_position(("data",0)) #将函数图形移动到y轴(0,0)

  plt.xlabel("x轴",fontproperties="SimHei")

  plt.ylabel("y轴",fontproperties="SimHei")

  plt.title("激活函数",fontproperties="SimHei")

  plt.legend(loc="best")

  plt.subplot(1,2,2)

  plt.plot(x,ReLU(x),c="blue",lw="2",label="ReLU")

  plt.plot(x,elu(x,0.1),c="yellow",lw="2",label="elu")

  plt.plot(x,LReLU(x),c="green",lw="2",label="LReLU")

  plt.gca().spines["bottom"].set_position(("data",0))

  plt.gca().spines["left"].set_position(("data",0))

  plt.xlabel("x轴",fontproperties="SimHei")

  plt.ylabel("y轴",fontproperties="SimHei")

  plt.title("激活函数",fontproperties="SimHei")

  plt.legend(loc="best")

  plt.show()

  **

  sigmoid激活函数:

  **

  优点:1.输出[0,1]之间,利用前向传播

  2.连续函数,方便求导

  缺点:1.容易产生梯度消失。一般5层以内就会产生梯度消失的现象。

  2.输出不是以零为中心

  3.大量运算时相当耗时(由于是幂函数)

  **

  tanh激活函数:

  **

  优点:1.输出[-1,1]之间,利用前向传播

  2.连续函数,方便求导

  3.输出以零为中心

  缺点:1.容易产生梯度消失。一般5层以内就会产生梯度消失的现象。

  2.大量数据运算时相当耗时(由于是幂函数)

  **

  ReLU激活函数:

  **

  优点:1.解决了正区间梯度消失问题

  2.易于计算

  3.收敛速度快

  缺点:1.输出不是以零为中心

  2.某些神经元不能被激活,导致参数永远不能更新

  **无锡人流医院哪家好 http://www.bhnnkyy120.com/

  Leaky ReLU激活函数:

  **

  优点:

  1.解决了正区间梯度消失问题

  2.易于计算

  3.收敛速度快

  4.解决了某些神经元不能被激活

  缺点:输出不是以零为中心

  **

  elu激活函数:

  **

  优点:

  1.解决了正区间梯度消失问题

  2.易于计算

  3.收敛速度快

  4.解决了某些神经元不能被激活

  5.输出的均值为0

  缺点:输出不是以零为中心

  softmax激活函数:

  **

  一般用在分类的输出层作为激活函数

  优点:

  1.输出在[0,1]之间,可以当初概率

  缺点:

  在实际问题中,由于幂运算需要时间,而且softmax不会影响各元素的大小,因此输出层的softmax激活函数一般被省略。

关于python中如何使用matplotlib模块就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯