《深度学习入门》系列文章目录
深度学习入门 (1)感知机
深度学习入门(2)神经网络
深度学习入门(3)神经网络参数梯度的计算方式
深度学习入门(4)【深度学习实战】无框架实现两层神经网络的搭建与训练过程
深度学习入门(5)如何对神经网络模型训练结果进行评价
深度学习入门(6)误差反向传播基础---计算图与链式法则使用
深度学习入门(7)误差反向传播计算方式及简单计算层的实现
文章目录
目录
前言
一、ReLU层计算图及其代码实现
二、Sigmoid层计算图及其代码实现
总结
前言
基于前两篇文章《深度学习入门(6)误差反向传播基础---计算图与链式法则》《深度学习入门(7)误差反向传播计算方式及简单计算层的实现》计算图基础及其简单层的实现,本文主要介绍如何将计算图运用到神经网络中,通过定义一个类的方式用计算图实现激活函数的 ReLU层和 Sigmoid层,让其成为构成神经网络的一个基础层。
一、ReLU层计算图及其代码实现
如果正向传播时的输入x大于0,则反向传播会将上游的值原封不动地传给下游。反过来,如果正向传播时的x小于等于0,则反向传播中传给下游的信号将停在此处。
如果正向传播时的输入值小于等于0,则反向传播的值为0。因此,反向传播中会使用正向传播时保存的 mask,将从上游传来的 dout的mask中的元素为 True的地方设为0。、
注:ReLU 层的作用就像电路中的开关一样。正向传播时,有电流通过的话,就将开关设为ON;没有电流通过的话,就将开关设为OFF。反向传播时,开关为ON的话,电流会直接通过;开关为OFF的话,则不会有电流通过。
二、Sigmoid层计算图及其代码实现
计算图:
图中,除了“ ×”和“ +”节点外,还出现了新的“ exp”和“ /”节点。“ exp”节点会进行y = exp(x)的计算,“ /”节点会进行y=1/x的计算。
计算图可以画成下图的集约化的“ sigmoid”节点。
通过对节点进行集约化,可以不用在意Sigmoid层中琐碎的细节,而只需要专注它的输入和输出。
这个实现中,正向传播时将输出保存在了实例变量 out中。然后,反向传播时,使用该变量 out进行计算。
总结
本文主要介绍了激活函数的 ReLU层和 Sigmoid层计算图的表示方式,以及代码实现。
如果内容对你有帮助,感谢点赞+关注哦!
更多干货内容持续更新中…