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
相关推荐
烬羽4 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
谙弆悕博士4 小时前
系统集成项目管理工程师教程(第3版)笔记——第4章:信息系统架构
笔记·系统架构·项目管理·创业创新·学习方法·业界资讯·物理
hongyucai5 小时前
torch具身常用算子
人工智能·深度学习
林泽毅5 小时前
PyTRIO快速入门(一):概念、推理与训练
人工智能·python·深度学习·机器学习·语言模型
茯苓gao5 小时前
嵌入式开发笔记:Qt信号槽机制深度解析——从原理到实战的全方位指南
开发语言·笔记·嵌入式硬件·qt·学习
学术小李6 小时前
基于Pytorch,如何用CUDA自己写算子?(一)
人工智能·pytorch·python
A.零点7 小时前
【期末复习,408 考研计组全程笔记 】— 第4章 :指令系统
笔记·考研·408·计算机组成原理
早茶cc7 小时前
sqli1-5 9报错注入 笔记
笔记
橙臣程7 小时前
深度学习3——数据集概述
人工智能·深度学习
摇滚侠7 小时前
Java 全栈开发实战教程 课程笔记 34-36
java·笔记