当前位置: 首页 > news >正文

长沙网站开西安seo排名公司

长沙网站开,西安seo排名公司,python做简单网站,深圳外贸网络推广误差反向传播法 前言 此为本人学习《深度学习入门》的学习笔记 四、简单层的实现 本节将用 Python 实现前面的购买苹果的例子。这里#xff0c;我们把要实现的计算图的乘法节点称为“乘法层”#xff08;MulLayer#xff09;#xff0c;加法节点称为“加法层”#xff08;… 误差反向传播法 前言 此为本人学习《深度学习入门》的学习笔记 四、简单层的实现 本节将用 Python 实现前面的购买苹果的例子。这里我们把要实现的计算图的乘法节点称为“乘法层”MulLayer加法节点称为“加法层”AddLayer。 1、乘法层的实现 层的实现中有两个共通的方法接口forward() 和backward()。forward() 对应正向传播backward() 对应反向传播。 实现乘法层。乘法层作为 MulLayer 类其实现过程如下所示   class MulLayer:def __init__(self):self.x Noneself.y Nonedef forward(self, x, y):self.x xself.y yout x * yreturn outdef backward(self, dout):dx dout * self.y # 翻转x和ydy dout * self.xreturn dx, dy __init__() 中会初始化实例变量 x 和 y它们用于保存正向传播时的输入值。forward() 接收 x 和 y 两个参数将它们相乘后输出。backward() 将从上游传来的导数dout乘以正向传播的翻转值然后传给下游。 使用 MulLayer 实现前面的购买苹果的例子2 个苹果和消费税。                                图 5-16 购买 2 个苹果 使用这个乘法层的话图 5-16 的正向传播可以像下面这样实现  此外关于各个变量的导数可由 backward() 求出。 调用 backward() 的顺序与调用 forward() 的顺序相反。此外要注意 backward() 的参数中需要输入“关于正向传播时的输出变量的导数”。比如mul_apple_layer 乘法层在正向传播时会输出 apple_price在反向传播时则会将 apple_price 的导数 dapple_price 设为参数。 2、加法层的实现 class AddLayer:def __init__(self):passdef forward(self, x, y):out x yreturn outdef backward(self, dout):dx dout * 1dy dout * 1return dx, dy 加法层不需要特意进行初始化所以 __init__() 中什么也不运行pass 语句表示“什么也不运行”。加法层的 forward() 接收 x 和 y 两个参数将它们相加后输出。backward() 将上游传来的导数dout原封不动地传递给下游。 使用加法层和乘法层实现图 5-17 所示的购买 2 个苹果和 3 个橘子的例子。                      图 5-17 购买 2 个苹果和 3 个橘子 用 Python 实现图 5-17 的计算图的过程如下所示 首先生成必要的层以合适的顺序调用正向传播的 forward() 方法。然后用与正向传播相反的顺序调用反向传播的 backward() 方法就可以求出想要的导数。 五、激活函数层的实现 将计算图的思路应用到神经网络中。把构成神经网络的层实现为一个类。先来实现激活函数的 ReLU 层和 Sigmoid 层。 1、ReLU层 激活函数 ReLURectified Linear Unit由下式5.7表示。 通过式5.7可以求出 y 关于 x 的导数如式5.8所示。 在式5.8中如果正向传播时的输入 x 大于 0则反向传播会将上游的值原封不动地传给下游。反过来如果正向传播时的 x 小于等于 0则反向传播中传给下游的信号将停在此处。用计算图表示的话如图 5-18 所示。 实现 ReLU 层。在神经网络的层的实现中一般假定 forward() 和backward() 的参数是 NumPy 数组。     图 5-18 ReLU 层的计算图 class Relu:def __init__(self):self.mask Nonedef forward(self, x):self.mask (x 0)out x.copy()out[self.mask] 0return outdef backward(self, dout):dout[self.mask] 0dx doutreturn dx Relu 类有实例变量 mask。这个变量 mask 是由 True/False 构成的 NumPy 数组它会把正向传播时的输入 x 的元素中小于等于 0 的地方保存为 True其他地方大于 0 的元素保存为 False。  2、Sigmoid层 实现sigmoid函数sigmoid函数由式5.9表示 用计算图表示式子5.9的话则如图5-19所示 图 5-19 sigmoid 层的计算图仅正向传播 图 5-19 中除了“×”和“”节点外还出现了新的“exp”和“/”节点。“exp”节点会进行 y  exp(x) 的计算“/”节点会进行  的计算。 如图 5-19 所示式5.9的计算由局部计算的传播构成。 下面我们就来进行图 5-19 的计算图的反向传播。这里作为总结我们来依次看一下反向传播的流程。 步骤 1 “/”节点表示 它的导数可以解析性地表示为下式。 根据式5.10反向传播时会将上游的值乘以 正向传播的输出的平方乘以 -1 后的值后再传给下游。计算图如下所示。 步骤 2 “”节点将上游的值原封不动地传给下游。计算图如下所示。 步骤 3 “exp”节点表示 y  exp(x)它的导数由下式表示。 计算图中上游的值乘以正向传播时的输出这个例子中是 exp(-x)后再传给下游。 步骤 4 “×”节点将正向传播时的值翻转后做乘法运算。因此这里要乘以 -1。 图 5-20 Sigmoid 层的计算图  转载于:https://www.cnblogs.com/zyqy/p/10816953.html
http://www.zqtcl.cn/news/734129/

相关文章:

  • 会计公司网站模板微信网站如何制作软件
  • 烟台做网站多少钱.net网站做增删改
  • 什么网站专门做软件的深圳电商网站制作
  • 局域网做网站家装公司哪家比较好
  • 免费的行情软件网站在线使用wordpress视频分享
  • 内容平台策划书网站优化公司推荐
  • 怎么在阿里巴巴网站做公司wordpress伪静态404
  • 配置 tomcat 做网站网站建设用什么语言
  • 大型的营销型网站建设怎么选择网站建设公司
  • 怎么用网站源码建站友情链接交换方式有哪些
  • 国外免费网站服务器链接幼教网站建设分析
  • 做药品网站有哪些陕西专业网站建设价格
  • 网络公司做网站网站 服务器选择
  • 湖南省重点建设项目办公室网站河南省住建局官网
  • 建设网站企业网上银行登录入口官方论坛系统
  • 嘉定建设机械网站合肥制作网页设计
  • 外链网站有哪些空港经济区内的建设工程网站
  • 企业网站开发价阿里云快速备份网站
  • 大型电子商务网站建设成本ai网页生成
  • 网页播放视频 网站开发常用网站搜索引擎
  • 制作一个购物网站要多少钱做创意小视频的网站
  • 淇县网站建设软件定制流程
  • 17网站一起做网店代发流程wordpress悬浮 联系
  • 如何查网站外链快速开发平台 免费开源
  • 做网站有哪些流程怎么做网站电影
  • 做街机棋牌上什么网站发广告网站策划和运营
  • 建网站是什么专业类别阳江网红人物
  • 网站建设工作描述株洲市建设质监站网站
  • 做网站 橙色怎么搭配吐鲁番市网站建设
  • 企业信息网站衡阳高端网站建设