P19 PyTorch 链式法则

前言:

链式法则是深度学习中比较基础核心的一部分,

这里先简单的回顾一下感知机模型,然后常用的导数方程,以及

链式求导法则


一 感知机

简单回顾一下前面感知机模型,这是一种最简单的单层网络结构

输入

前向传播

输出

, 这里面用的是sigmod函数作为激活函数输出

损失函数

整个梯度可以看作两个部分,一部分只跟输出有关系,另一部分跟输入有关系


二 常用导数方程

2.1

2.2

2.3

2.4

2.5 f*g=

2.6

2.7

2.8 假设向量之间的依赖关系为 (x,y,z 都是向量)

2.9 假设向量之间的依赖关系为 (其中 x,y 为m,n的向量,z为标量)


三 例子

# -*- coding: utf-8 -*-
"""
Created on Tue Feb 21 16:40:49 2023

@author: chengxf2
"""

import torch

import torch.autograd  as autograd

def grad():
    
    x = torch.tensor(1.0)
    w1 = torch.tensor(2.3, requires_grad= True)
    b1 = torch.tensor(1.0)
    
    w2 = torch.tensor(3.3, requires_grad= True)
    b2 = torch.tensor(1.0)
    
    y1 = w1*x+b1
    y2 = w2*y1+b2
    
    dy2_dy1 =autograd.grad(y2, [y1], retain_graph=True)
    dy1_dw1 = autograd.grad(y1, [w1], retain_graph=True)
    dy2_dw1 = autograd.grad(y2, [w1], retain_graph = True)
    
   
    
    a = dy1_dw1[0]*dy2_dy1[0]
    
    print("\n 本地计算 ",a ,"\t API  函数计算",dy2_dw1)
    
if __name__ == "__main__":
    
    grad()
    
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值