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
相关推荐
風清掦29 分钟前
【江科大STM32学习笔记-04】0.96寸OLED显示屏
笔记·stm32·学习
胡西风_foxww34 分钟前
ObsidianAI_学习一个陌生知识领域_建立学习路径和知识库框架_写一本书
人工智能·笔记·学习·知识库·obsidian·notebooklm·写一本书
AI视觉网奇1 小时前
huggingface-cli 安装笔记2026
前端·笔记
爱吃泡芙的小白白2 小时前
神经网络压缩实战指南:让大模型“瘦身”跑得更快
人工智能·深度学习·神经网络·模型压缩
idontknow2332 小时前
DPDK学习笔记(1):二层转发应用例代码解析
c语言·网络·笔记·学习
YelloooBlue2 小时前
深度学习 SOP: conda通过命令快速构建指定版本tensorflow gpu环境。
深度学习·conda·tensorflow
求真求知的糖葫芦2 小时前
耦合传输线分析学习笔记(八)对称耦合微带线S参数矩阵推导与应用(上)
笔记·学习·矩阵·射频工程
AI即插即用3 小时前
即插即用系列 | AAAI 2026 WaveFormer: 当视觉建模遇上波动方程,频率-时间解耦的新SOTA
图像处理·人工智能·深度学习·神经网络·计算机视觉·视觉检测
试试勇气3 小时前
Linux学习笔记(十三)--文件系统
linux·笔记·学习
逄逄不是胖胖3 小时前
《动手学深度学习》-55-2RNN的简单实现
人工智能·深度学习