怎么用pytorch中backward()方法自动求梯度


本篇内容介绍了“怎么用pytorch中backward()方法自动求梯度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!x为源张量,基于源张量x得到的张量y为结果张量。一个标量调用它的backward()方法后,会根据链式法则自动计算出源张量的梯度值。2.1、结果张量是一维张量基于以上例子,就是将一维张量y变成标量后,然后通过调用backward()方法,就能自动计算出x的梯度值。那么,如何将一维张量y变成标量呢?一般通过对一维张量y进行求和来实现,即y.sum()。一个一维张量就是一个向量,对一维张量求和等同于这个向量点乘一个等维的单位向量,使用求和得到的标量y.sum()对源张量x求导与y的每个元素对x的每个元素求导结果是一样的,最终对源张量x的梯度求解没有影响。因此,代码如下:2.2、结果张量是二维张量或更高维张量撇开上面例子,结果变量y可能是二维张量或者更高维的张量,这时可以理解为一般点乘一个等维的单位张量(点乘,是向量中的概念,这样描述只是方便理解)代码如下:在一元函数中,某点的梯度标的就说某点的导数. 在多元函数中某点的梯度表示的是由每个自变量所对应的偏导数免费云主机域名所组成的向量在前面的线性回归中 就像y = wx + b方程中求出w参数最优的解,就需要对w参数进行偏导数的求取,然后通过偏导数的值来调整w参数以便找到最优解。在PyTorch中可以使用torch.autograd.backward()方法来自动计算梯度在定义张量时,可以指定requires_grad=True表示这个张量可以求偏导数得出结论:f1中有允许可以求偏导的张量存在才可以求梯度grad_fn为梯度1. 求x的偏导数2. 停止梯度的计算张量.requires_grad_(False)3. 获取到可以求偏导数的张量相同的内容,但是新变量不可以求偏导张量.detach()方法4. 在作用域中张量不可计算偏导数with torch.no_grad(): 内的整个作用域在PyTorch中,如果我们利用torch.autograd.backward()方法求解张量的梯度, 在多次运行该函数的情况下, 该函数会将计算得到的梯度累加起来。所以在函数中计算张量的偏导数,每次计算完修改完参数要清空梯度的计算。不清空梯度计算:会累加使用张量.grad.zero_()方法清空梯度的计算:“怎么用pytorch中backward()方法自动求梯度”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!

相关推荐: Centos rsync文件同步怎么配置

这篇文章主要介绍“Centos rsync文件同步怎么配置”,在日常操作中,相信很多人在Centos rsync文件同步怎么配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Centos rsync文件同步怎么配置”的疑惑有所帮…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/14 17:55
下一篇 05/14 17:55

相关推荐