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

设计logo网站官网镇江城乡建设网站首页

设计logo网站官网,镇江城乡建设网站首页,关于互联网的网站,成都网站建设 小兵cms同学你好#xff01;本文章于2021年末编写#xff0c;获得广泛的好评#xff01; 故在2022年末对本系列进行填充与更新#xff0c;欢迎大家订阅最新的专栏#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现#xff0c; Pytorch深度学习理论篇(2023版)目录地址…  同学你好本文章于2021年末编写获得广泛的好评 故在2022年末对本系列进行填充与更新欢迎大家订阅最新的专栏获取基于Pytorch1.10版本的理论代码(2023版)实现 Pytorch深度学习·理论篇(2023版)目录地址为 CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录本专栏将通过系统的深度学习实例从可解释性的角度对深度学习的原理进行讲解与分析通过将深度学习知识与Pytorch的高效结合帮助各位新入门的读者理解深度学习各个模板之间的关系这些均是在Pytorch上实现的可以有效的结合当前各位研究生的研究方向设计人工智能的各个领域是经过一年时间打磨的精品专栏https://v9999.blog.csdn.net/article/details/127587345欢迎大家订阅(2023版)理论篇 以下为2021版原文~~~~ 1 Variable类型与自动微分模块概述 1.1 Variable类型 Variable是由Autograd模块对张量进行进一步封装实现的具有自动求导的功能 1.2 Autograd模块(自动求导模块) Autograd模块在神经网络的反向传播中基于正向计算的结果进行微分计算从而实现对于网络权重的更新与迭代提供了张量的自动求微分功能可以通过代码来实现对反向过程的控制使得权重参数朝着目标结果进行更新与发展。 2 Variable类型与自动微分模块实战 2.1 Variable类型对象与张量对象之间的转化 2.1.1 代码实现 import torch from torch.autograd import Variablea torch.FloatTensor([4]) #创建张量 print(Variable(a)) # 将张量转化为Variable对象 # 输出 tensor([4.]) print(Variable(a,requires_gradTrue)) # requires_grad允许自动求导 # 输出 tensor([4.], requires_gradTrue) print(a.data) #将Variable对象转化为张量 # 输出 tensor([4.]) 2.1.2 注意 import torch from torch.autograd import Variable### 使用requires_grad时要求张量的值必须为浮点型 x torch.tensor([1],requires_gradTrue) #报错 x torch.tensor([1.],requires_gradTrue) #正确写法2.2 torch.no_grad() 2.2.1 概述 torch.no_grad()使Variable类型变量的requires_grad失效 torch.enable_grad()使Variable类型变量的requires_grad有效 2.2.2 使用torch.no_grad()配合with语句限制requires_grad的作用域 import torch from torch.autograd import Variablex torch.ones(2,2,requires_gradTrue) # 定义一个需要梯度计算的Variable类型对象 with torch.no_grad():y x * 2 print(y.requires_grad) # 输出 False2.2.3 使用装饰器实现 import torch from torch.autograd import Variable### 在神经网络中将网络模型进行封装使用装饰器方便实现开发的便捷性x torch.ones(2,2,requires_gradTrue) # 定义一个需要梯度计算的Variable类型对象 torch.no_grad() def doubler(x):return x * 2 z doubler(x) print(z.requires_grad) # 输出 False 2.3 函数enable_grad()与no_grad()的嵌套使用 2.3.1 enable_grad()配合with语句限制requires_grad的作用域 import torch x torch.ones(2,2,requires_gradTrue) # 定义一个需要梯度计算的Variable类型对象 with torch.no_grad():with torch.enable_grad():y x * 2print(y.requires_grad) # Trueprint(y.requires_grad) # True print(y.requires_grad) # True 2.3.2 使用enable_grad装饰器 import torch x torch.ones(2,2,requires_gradTrue) # 定义一个需要梯度计算的Variable类型对象 torch.enable_grad() def doubler(x): #封装到函数中return x * 2 with torch.no_grad(): #使得计算梯度失效z doubler(x) print(z.requires_grad) #True 2.3.3 作用在没有requires_grad的Variable类型变量上将会失效不能使其重新获得计算梯度的属性 import torch x torch.ones(2,2) # 定义一个不需要梯度计算的Variable类型对象 with torch.enable_grad():y x * 2 print(y.requires_grad) # False 2.3 set_grad_enabled()实现统一管理梯度计算 import torch x torch.ones(2,2,requires_gradTrue) # 定义一个需要梯度计算的Variable类型对象 torch.set_grad_enabled(False) # 统一关闭梯度计算 y x * 2 print(y.requires_grad) # False torch.set_grad_enabled(True) # 统一开启梯度计算 y x * 2 print(y.requires_grad) # True 2.4 Variable类型对象的grad_fn属性 2.4.1 grad_fn属性概述 Variable类型对象在经过前向传播后将会增加一个grad_fn属性该属性随着backward()方法进行自动的梯度计算。没有经过计算的Variable类型对象是没有这个属性的在requires_gradFalse的情况下无论如何计算他都不会有grad_fn属性。 2.4.2 grad_fn属性代码实现 import torch from torch.autograd import Variablex Variable(torch.ones(2,2),requires_gradTrue) print(x) # 输出 tensor([[1., 1.],[1., 1.]], requires_gradTrue) print(x.grad_fn) # 输出 Nonem x 2 # 经过正向计算获得grad_fn属性 print(m.grad_fn) # 输出 AddBackward0 object at 0x0000024E1AA14D00 print(m.grad_fn(x)) #对x变量进行求梯度计算 # 输出 (tensor([[1., 1.],[1., 1.]], requires_gradTrue), None)x2 torch.ones(2,2) # 创建一个不需要梯度计算的张量 m x2 2 print(m.grad_fn) # 输出 None 2.5 Variable类型对象的is_leaf函数 2.5.1 is_leaf()概述 1、定义Variable类型对象时若将requires_grad设为True则将该Variable类型对象称为种子节点其 is_leaf的属性为True。 2、若Variable类型对象不是通过自定义生成的而是通过其他张量计算所得时则不是叶子节点则该该Variable类型对象称为叶子节点其 is_leaf的属性为False。 3、Pytorch会记录每个张量的由来由此来在内存中行程树状结构实现反向链式计算叶子节点主要在求导过程为递归循环提供信号指示当反向链式计算遇到叶子节点则终止递归循环。 2.5.2 is_leaf()代码 import torch from torch.autograd import Variablex Variable(torch.ones(2,2),requires_gradTrue) print(x.is_leaf) # True m x 2 print(m.is_leaf) # False 2.6 backward()实现自动求导 2.6.1 backward()概述 backward()必须在当前变量内容是标量的情况下使用否则会报错。 2.6.3 自动求导的作用 从复杂的神经网络中自动将每一层中的每个参数的梯度计算出来实现训练过程中的反向传播。 2.6.2 代码 import torch from torch.autograd import Variable### y (x 2)/4 x Variable(torch.ones(2,2),requires_gradTrue) m x 2 f m.mean() #得到一个标量 f.backward() # 自动求导 print(f) #输出 tensor(3., grad_fnMeanBackward0) print(x.grad) # 输出 tensor([[0.2500, 0.2500],[0.2500, 0.2500]]) 2.7 detach()将Variable类型对象分离成种子节点 2.7.1 将需要求梯度的Variable类型对象转化为Numpy对象 import torch from torch.autograd import Variable### 如果被分离的Variable对象的volatile属性为True那么被分离出的volatile属性也为True ### 被返回的Variable对象和被分离的Variable对象指向同一个张量并且永远不会需要梯度 x Variable(torch.ones(2,2),requires_gradTrue) # x.numpy() # 报错Cant call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead. x1 x.detach().numpy() print(x1)# 输出 [[1.,1.],[1.,1.]] 2.7.2 实现对网络中的部分参数求梯度 2.8 volatile属性 早期代码中可以通过设置Variable类型对象的volatile属性为True的方法来实现停止梯度更新。
http://www.pierceye.com/news/485098/

相关文章:

  • 医疗网站设计小程序开发制作费用
  • 德州网站建设网页设计实验报告总结
  • 易烊千玺个人网站入口什么是网站建设的建议
  • 哪个网站做供求信息app开发公司排行榜
  • 信誉好的广州外贸网站未来做哪些网站能致富
  • 运城推广型网站建设温州的网站建设公司
  • 怎么样做网站编程一般通过哪些行为来处理人际关系
  • 学校的网站开发过程wordpress公司展示网站
  • 贵港市建设局网站网站建设优化之优化关键字
  • 网站开发设计比较好的公司电子烟网站设计
  • 群辉 wordpress套件阜阳网站优化
  • 如何做网站哪个站推广网站自助建设平台
  • 西安大网站建设公司排名沈阳网络维护公司
  • 个人建立一个网站要多少钱乔拓云h5制作
  • 蒙阴网站建设百度指数排名
  • 视频网站如何推广做模具做什么网站
  • 关于旅游的网站建设论文广州外贸网站建设公司价格
  • 怎么给自己制作一个网站wordpress 中文摘要
  • 如何看网站的ftp服装网站建设策划书3000字
  • 无锡网站建设 网站制作常见的网站首页布局有哪几种
  • 网站研发PHP MYSQL网站开发全程实
  • 简约型网站国外做电商平台的网站还有什么
  • 云南昆明网站建设公司jsp网站开发详解下载
  • 上海h5网站开发网站建设在开封找谁做
  • 滨海建设局官方网站营销网络平台
  • 中国小康建设网是骗子网站吗?建设宁波市分行的互联网网站
  • 制造网站建设自己做游戏资讯网站
  • 网站建设质量如何衡量都江堰网站开发
  • 企业网站设计步骤中山制作网站的公司
  • 通化网站制作企信网官网查询入口