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

楚雄市网站建设公司网站建设学习课程

楚雄市网站建设公司,网站建设学习课程,微信运营商是哪个公司,免费建外贸网站小白学Pytorch系列-- torch.autograd API torch.Autograd提供了实现任意标量值函数的自动微分的类和函数。它只需要对现有代码进行最小的更改-你只需要声明张量s,它的梯度应该用requires gradTrue关键字计算。到目前为止,我们只支持浮点张量类型(half, f…

小白学Pytorch系列-- torch.autograd API

torch.Autograd提供了实现任意标量值函数的自动微分的类和函数。它只需要对现有代码进行最小的更改-你只需要声明张量s,它的梯度应该用requires grad=True关键字计算。到目前为止,我们只支持浮点张量类型(half, float, double和bfloat 16)和复杂张量类型(cfloat, cdouble)autograd

基本概念

Variable,Parameter和torch.tensor()

torch.nn.Parameter(是Variable的子类)
如果在网络的训练过程中需要更新,就要定义为Parameter,  类似为W(权重)和b(偏置)也都是Parameter

Variable默认是不需要求梯度的,还需要手动设置参数 requires_grad=TrueVariable因为要多次反向传播,那么在backward的时候还要手动注明参数(),就非常麻烦。
Pytorch主要通过引入nn.Parameter类型的变量和optimizer机制来解决了这个问题。ParameterVariable的子类,本质上和后者一样,只不过parameter默认是求梯度的,同时一个网络中的parameter变量是可以通过 net.parameters() 来很方便地访问到的,只需将网络中所有需要训练更新的参数定义为Parameter类型,再用以optimizer,就能够完成所有参数的更新了,例如:optimizer = torch.optim.SGD(net.parameters(), lr=1e-1)

相同点
:torch.tensor()torch.autograd.Variabletorch.nn.Parameter基本一样。
前两者都可以设置requires_grad参数,后者则直接默认requires_grad=True
三者都拥有.data,.grad,.grad_fn等属性。
所以,只要requires_grad=True,都可以计算梯度以及backward()

不同之处:
torch.nn.Parameter,直接默认requires_grad=True,在参数量大时更加方便。

反向传播

参考: https://blog.csdn.net/lj2048/article/details/113527400
实现autograd依赖于Variable和Function这两种数据类型。Variable是Tensor的外包装,Varibale和Tensor基本一致,区别在于多了下面几个属性。

variable类型变量的data属性存储着Tensor数据,grad属性存储关于该变量的导数,creator是代表该变量的创造者。
VariableFunction它们是彼此不分开的,如下图所示,是数据向前传输和向后传输生成导数的过程。

如图,假设我们有一个输入变量input(数据类型为Variable),input是用户输入的,所以其创造者creator为null值,input经过第一个数据操作operation1(比如加减乘除运算)得到output1变量(数据类型仍为Variable),这个过程中会自动生成一个function1的变量(数据类型为Function的一个实例),而output1的创造者就是这个function1。随后,output1再经过一个数据操作生成output2,这个过程也会生成另外一个实例function2,output2的创造者creator为function2。

示例可以参考该Blog: 参考PyTorch教程之Autograd

目标张量一般都是标量,如我们经常使用的损失值Loss,一般都是一个标量。但也有非标量的情况,后面将介绍的Deep Dream的目标值就是一个含多个元素的张量。那如何对非标量进行反向传播呢?

PyTorch有个简单的规定,不让张量(Tensor)对张量求导,只允许标量对张量求导,
因此,如果目标张量对一个非标量调用backward(),则需要传入一个gradient参数,该参数也是张量,而且需要与调用backward()的张量形状相同。

参考

https://zhuanlan.zhihu.com/p/321449610

http://www.15wanjia.com/news/156962.html

相关文章:

  • 自己做公司网站需要什么中国没公司怎么做网站
  • 做自己的网站如何赚钱的yandex引擎搜索入口
  • 深圳网站建设公司设计公司百度区域代理
  • 东莞手机微信网站制作大庆网站优化
  • 收费网站推广花蝴蝶高清免费看片大全
  • 天津南开区网站建设公司wordpress 纪念爱情
  • 网站开发网络公wordpress 导航菜单添加
  • 成都哪里做网站好wordpress建站教程书籍
  • 建设在线教育网站怎么开一个网站平台
  • 贵州建设工程招投标协会网站如何做网站 seo
  • 购买一个网站域名需要多少钱wordpress 文章页 模板
  • 网站制作素材图片右面是某网站建设立项需求
  • 温州微网站东莞seo站内优化
  • 浪潮做网站建设吗国外企业合作的网站
  • 医院网站建设 中企动力网站设计步骤的教学设计
  • wordpress仿站视频教程网站制作 温州
  • 做网站公司需要帮客户承担广告法吗现在用什么工具建网站
  • 网站导航网址大全永平建设有限公司网站
  • 云南效果好的网站优化怎么做网络运营
  • 自己怎么设置网站猪八戒做网站怎么赚钱
  • 建设婚恋网站做我女朋友的表白句的网站
  • 建筑学院网站广州网站改版设计公司
  • 哈密市住房和城乡建设局网站未来产品设计
  • 广州网站推广奋wordpress 添加新字段
  • 福州网站建设自助建站公众号建设成小说网站
  • 五种网站类型湘潭做网站公司选择封象网做网站公司
  • 百度网站解封扬州市城市建设投资公司网站
  • 北京室内设计利于优化的网站模板
  • 东莞网站建设 烤活鱼定制网站制作费用
  • 正规的营销型网站建设公司广东网络文明大会开幕