首页 分享 Pytorch使用时遇到的关于in place,grad.zero

Pytorch使用时遇到的关于in place,grad.zero

来源:花匠小妙招 时间:2024-12-22 23:50

最新推荐文章于 2024-05-07 16:34:05 发布

喜欢吃火鸡面吗 于 2022-04-23 02:08:39 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

Pytorch使用时遇到的关于in place,grad.zero_()操作,require_grad=True

这几天在学习李沐的动手深度学习,但是由于不熟悉pytorch所以遇到了很多问题。

def sgd(params, lr, batch_size): with torch.no_grad(): for param in params: # param = param - lr*param.grad/batch_size # param -= lr * param.grad/batch_size param.grad.zero_() 123456'

这两种写法看似在编程中没什么区别,但在python中有些许区别。这就涉及到python中的in place操作,in place操作是指在变量的原地址上操作并且不产生新的变量。param -= 就是in place 操作

在这里插入图片描述
所以因为使用以下代码param -= lr * param.grad/batch.size, 所以必须先用torch.no_grad()将require_grad()变为false才可以对叶子节点使用-=操作。

还有一点需要讲明白的就是如果不使用in-place操作为什么梯度清零的时候会报错
在这里插入图片描述
因为在反向传播的时候,只有叶子节点的梯度才会被保存。

相关知识

pytorch 花朵的分类识别
农药肥料容易引起燃烧或爆炸,使用时要注意!
创建虚拟环境并,创建pytorch 1.3.1
基于Python和PyTorch的小程序苹果病虫害识别教程
pytorch python=3.6环境安装
使用PyTorch实现对花朵的分类
基于pytorch搭建神经网络的花朵种类识别(深度学习)
Pytorch介绍与linux、windows环境下安装
pytorch实现迁移训练
常用的保护性杀菌剂及使用时的注意事项

网址: Pytorch使用时遇到的关于in place,grad.zero https://www.huajiangbk.com/newsview1240410.html

所属分类:花卉
上一篇: .......双鱼男==!
下一篇: 封知宁容砚封知宁容砚==封知宁怔

推荐分享