pytorch深度学习笔记10

目录

摘要

1.反向传播

加法节点的反向传播

乘法节点的反向传播

2.激活层的反向传播和实现

ReLU的反向传播

Sigmoid的反向传播


摘要

本篇文章继续学习尚硅谷深度学习教程,学习内容是反向传播相关内容

1.反向传播

利用计算图的反向传播,可以很容易地计算出输出关于输入的偏导数

加法节点的反向传播

对于z=x+y,,。因此加法的反向传播会将上游传来的值原样向下游传递。

乘法节点的反向传播

对于z=xy,,。因此乘法的反向传播会将上游传来的值乘以输入的翻转向下游传递。

2.激活层的反向传播和实现

将计算图应用到神经网络中。神经网络中一步重要的计算操作就是激活函数,下面就来讨论各种激活函数的反向传播,基于这些我们就可以用代码实现激活层的完整功能了。

​​​​​​​ReLU的反向传播

对于ReLU函数:

其导数为:

分为两种情况分别讨论,反向传播的计算图如下:

ReLU层可以在代码中实现为一个类 Relu:

python 复制代码
class Relu:
    def __init__(self):
        self.mask = None

    def forward(self, x):
        self.mask = (x <= 0)
        out = x.copy()
        out[self.mask] = 0

        return out

    def backward(self, dout):
        dout[self.mask] = 0
        dx = dout
        return dx
​​​​​​​Sigmoid的反向传播

对于Sigmoid函数:

其导数为:

利用计算图的反向传播,也可以得到相同的结果:

简化得:

Sigmoid层可以在代码中实现为一个类 Sigmoid:

python 复制代码
class Sigmoid:
    def __init__(self):
        self.out = None

    def forward(self, x):
        out = sigmoid(x)
        self.out = out
        return out

    def backward(self, dout):
        dx = dout * (1.0 - self.out) * self.out

        return dx
相关推荐
冬木家居34 分钟前
40㎡客厅变形记,小家住出大自由[特殊字符]
android·经验分享·笔记·智能家居·微信公众平台
摇滚侠37 分钟前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
推送者3 小时前
用宠物照片制作桌宠:从AI拆帧到九点标定的本地化实现笔记
笔记·宠物·用宠物照片制作桌宠
一条破秋裤3 小时前
16_TIM编码器接口测速
笔记·stm32·学习
tju新生代魔迷3 小时前
Verilog HDL 学习笔记(十)| 第10章 时序和延迟
笔记·学习·fpga开发
Mickey Q3 小时前
【深度学习】数值稳定性和模型初始化
人工智能·深度学习
揽秀亭长4 小时前
论文降AI率哪个方法比较实用?4种方式实际对比
人工智能·深度学习
血小板要健康5 小时前
链表 阶段算法总结
java·数据结构·笔记·算法·leetcode·链表
浔溺5 小时前
al+大数据每日学习笔记31
大数据·笔记·学习
数智工坊5 小时前
NTIRE2024×4图像超分竞赛综述|Mamba崛起、数据缩放、频域增强成为新趋势
网络·人工智能·深度学习·cnn·机器人