PyTorch中 tensor.detach() 和 tensor.data 的区别详解


Posted in Python onJanuary 06, 2020

PyTorch0.4中,.data 仍保留,但建议使用 .detach(), 区别在于 .data 返回和 x 的相同数据 tensor, 但不会加入到x的计算历史里,且require s_grad = False, 这样有些时候是不安全的, 因为 x.data 不能被 autograd 追踪求微分 。

.detach() 返回相同数据的 tensor ,且 requires_grad=False ,但能通过 in-place 操作报告给 autograd 在进行反向传播的时候.

举例:

tensor.data

>>> a = torch.tensor([1,2,3.], requires_grad =True)
>>> out = a.sigmoid()
>>> c = out.data
>>> c.zero_()
tensor([ 0., 0., 0.])

>>> out     # out的数值被c.zero_()修改
tensor([ 0., 0., 0.])

>>> out.sum().backward() # 反向传播
>>> a.grad    # 这个结果很严重的错误,因为out已经改变了
tensor([ 0., 0., 0.])

tensor.detach()

>>> a = torch.tensor([1,2,3.], requires_grad =True)
>>> out = a.sigmoid()
>>> c = out.detach()
>>> c.zero_()
tensor([ 0., 0., 0.])

>>> out     # out的值被c.zero_()修改 !!
tensor([ 0., 0., 0.])

>>> out.sum().backward() # 需要原来out得值,但是已经被c.zero_()覆盖了,结果报错
RuntimeError: one of the variables needed for gradient
computation has been modified by an

以上这篇PyTorch中 tensor.detach() 和 tensor.data 的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3 入门教程 简单但比较不错
Nov 29 Python
在Python中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
Oct 28 Python
详解python中sort排序使用
Mar 23 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
pandas计数 value_counts()的使用
Jun 24 Python
python安装scipy的方法步骤
Jun 26 Python
Python将主机名转换为IP地址的方法
Aug 14 Python
简单了解python中的f.b.u.r函数
Nov 02 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
Python把图片转化为pdf代码实例
Jul 28 Python
python如何爬取动态网站
Sep 09 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
Jan 06 #Python
基于python+selenium的二次封装的实现
Jan 06 #Python
Python使用Tkinter实现滚动抽奖器效果
Jan 06 #Python
Python使用Tkinter实现转盘抽奖器的步骤详解
Jan 06 #Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 #Python
Python 将json序列化后的字符串转换成字典(推荐)
Jan 06 #Python
Python tkinter三种布局实例详解
Jan 06 #Python
You might like
Zerg兵种介绍
2020/03/14 星际争霸
php 图片上添加透明度渐变的效果
2009/06/29 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
php bootstrap实现简单登录
2016/03/08 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
Python的Urllib库的基本使用教程
2015/04/30 Python
python妹子图简单爬虫实例
2015/07/07 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
世界最大的票务市场:viagogo
2017/02/16 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
感恩寄语大全
2014/04/11 职场文书
初一学生期末评语
2014/04/24 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫