当前位置: 首页 > news >正文

杭州高端网站建设做文具的网站

杭州高端网站建设,做文具的网站,淮北发展论坛,做百度推广的网站前言:激活函数与loss的梯度PyTorch 提供了Auto Grad 功能,这里系统讲解一下torch.autograd.grad系统的工作原理,了解graph 结构目录:1: require_grad False2: require_grad True3: 多层bakcward 原理4: in…

前言:

激活函数与loss的梯度

PyTorch 提供了Auto Grad 功能,这里系统讲解一下

torch.autograd.grad系统的工作原理,了解graph 结构


目录:

1: require_grad = False

2: require_grad =True

3: 多层bakcward 原理

4: index 的作用

5: 更复杂的例子


一 require_grad = False

我们创建了两个tensor :a,b

c=a*b

tensor 会为Tensor a,b,c 内部自动分配一些属性

data: 当前的数据

grad: 保存当前的梯度,非leaf 不保存。retain_graid

grad_fn: 指向backward graph中的Node

is_leaf : 是否为graph 中的leaf

requires_grad: 为True 的时候才会创建backwards grad

# -*- coding: utf-8 -*-
"""
Created on Wed Feb  1 17:34:37 2023@author: chengxf2
"""import torchdef autograd():a = torch.tensor(2.0,requires_grad=False)b = torch.tensor(3.0,requires_grad=False)c =a*bgrad_a =torch.autograd.grad(c,[a])print(a,grad_a)autograd()

运行后回直接报错

因为 a 的require_grad 为 False,

所以没有对应的grad_fn 指向backwards graph


二 require_grad= True

Mul 函数 会创建一个上下文保存当前输入的Tensor:a,b

当a require_grad属性 设置成True

Tensor C的三个属性发生了变化

grad_fn = MulBackward

is_leaf = False

require_grad = True

MulBackward 的input 是ctx中保存的tensor,跟输入的a,b分别关联

是tuple 组成的list

tuple的结构是[Function, index]

[Accumulated Grad,0] 跟 Tensor a 关联

[None ,0] 跟 Tensor b 关联

# -*- coding: utf-8 -*-
"""
Created on Wed Feb  1 17:34:37 2023@author: chengxf2
"""import torchdef autograd():a = torch.tensor(2.0,requires_grad=True)b = torch.tensor(3.0,requires_grad=False)c =a*bgrad_a =torch.autograd.grad(c,[a])print(grad_a)autograd()


三 多层bakcward 原理

c=a*b

e=c*d

其中因为c 是intermediate node, 非leaf,当

backward时候,不保存grad,直接把梯度传递到 其内部的grad_fn(MulBackward)

# -*- coding: utf-8 -*-
"""
Created on Wed Feb  1 17:34:37 2023@author: chengxf2
"""import torchdef autograd():a = torch.tensor(2.0,requires_grad=True)b = torch.tensor(3.0,requires_grad=True)d = torch.tensor(4.0,requires_grad=True)c =a*be =c*dgrad_a,grad_b,grad_d =torch.autograd.grad(e,[a,b,d])print("grad_a: %d grad_b: %d  grad_d: %d"%(grad_a,grad_b,grad_d))autograd()

为了防止tensor 运行期间发生变化增加了 _version 保护


四 index 的作用

# -*- coding: utf-8 -*-
"""
Created on Wed Feb  1 17:34:37 2023@author: chengxf2
"""import torchdef autograd():a = torch.tensor([1.0,2.0,3.0],requires_grad=True)b,c,d= a.unbind()e =b*c*dgrad_a =torch.autograd.grad(e,[a])print("grad_a:  ",grad_a)autograd()

index 主要用于指向对应的backward graph 中的input的tensor索引


五 更复杂的例子

c= a*b

c.require_grad= True

e = c*d

# -*- coding: utf-8 -*-
"""
Created on Wed Feb  1 17:34:37 2023@author: chengxf2
"""import torchdef Forward():a = torch.tensor(2.0,requires_grad=False)b = torch.tensor(2.0, requires_grad=False)d = torch.tensor(2.0, requires_grad=False)f = torch.tensor(2.0, requires_grad=False)h = torch.tensor(2.0, requires_grad=True)c= a*bprint("\n c:",c)c.requires_grad=Truee= c*dprint("\n e ",e)g= e*fprint("\n g ",g)i =g/hprint("\n i ",i)j = i+hk=j*iprint("\n j ",j)print("\n k ",k)grad_c = torch.autograd.grad(k,[c])print("\n grad_c ",grad_c)m=k.detach()print("m ",m)Forward()

输出:

i.reatin_graid(): 保证当前的梯度

http://www.sczhlp.com/news/61682/

相关文章:

  • 做装修网站如何做便宜的宝贝的网站
  • 推广网站排名优化seo教程在本地用dedecms做好的网站如何上传到服务器?
  • 网站关键词用什么隔开网站上seo怎么做
  • 专业网站建设推荐外贸品牌网站建设
  • 东莞网站制作十强网络公司名字大全20000个
  • 十堰网站建设哪家好wordpress大淘客
  • 合肥网站设商丘网格通
  • 站长是什么级别啦啦啦直播在线观看中文免费高清
  • 集合练习
  • C# Avalonia 11- DragInCanvasTest
  • C#/.NET/.NET Core技术前沿周刊 | 第 52 期(2025年8.25-8.31)
  • 湖北省建设厅网站a群免费的域名解析
  • 做资讯网站做网站开发用哪种语言好
  • 百度做网站投广告最新新闻头条国家大事国际新闻
  • 石狮网站建设科技苏州找工作
  • 门户网站类型有哪些做盗版视频网站吗
  • iis 网站访问权限设置海尔商城网站建设维护
  • 溧阳网站建设报价简述网站开发过程
  • 简单网站建设方案外链都没有的网站如何做排名的
  • 医药网站怎么做wordpress 无法升级
  • 做外贸的网站有那些seo计费怎么刷关键词的
  • 制作网站流程图广东省医院建设协会网站
  • 网站工商网监标wordpress怎么禁用多域名
  • 株洲企业网站建设品牌北京互联网公司有哪些
  • 网页的依托网站网络推广哪个网站好
  • 凡科做数据查询网站erp软件定制公司
  • 环球资源网的定位淄博网络优化哪家专业
  • 做漫画网站的需求国外网站在国内做镜像站点
  • 网站建设方案 预算云技术在网站建设中的应用
  • 大美南京网站seo软文代写