detach()函数理解
detach() & data()
detach()返回一个新的tensor,是从当前计算图中分离下来的,但是仍指向原变量的存放位置,其grad_fn=None且requires_grad=False,得到的这个tensor永远不需要计算其梯度,不具有梯度grad,即使之后重新将它的requires_grad置为true,它也不会具有梯度grad。
注意:返回的tensor和原始的tensor共享同一内存数据。in-place函数修改会在两个tensor上同时体现(因为它们共享内存数据),此时当要对其调用backward()时可能会导致错误。
data()函数和 detach() 函数功能相同,但是其不能保证in-place的安全性。
In-place 正确性检查:所有的tensor都会记录用在他们身上的 in-place operations。如果pytorch检测到tensor在一个Function中已经被保存用来backward,但是之后它又被in-place operations修改。当这种情况发生时,在backward的时候,pytorch就会报错。这种机制保证了,如果你用了in-place operations,但是在backward过程中没有报错,那么梯度的计算就是正确的。
detach_()
detach_()将 tensor从创建它的 graph 中分离,把它作为叶子节点,其grad_fn=None且requires_grad=False。同detach(),但detach_()是对本身的修改(in-place操作),而detach()则是生成了一个新的tensor。
detach()函数理解相关推荐
- nodejs回调函数理解
回调实例 问题:想要得到一秒后 计算出的结果 //错误写法function add(x,y) {console.log(1);setTimeout(function () {console.log(2 ...
- R语言attach函数、detach函数(全局注册或者全局解除)实战
R语言attach函数.detach函数(全局注册或者全局解除)实战 目录 R语言attach函数.detach函数(全局注册或者全局解除)实战 #基本语法 # 仿真数据 # 如果没有attach就直 ...
- ML之MIC:利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数、最大信息系数MIC)
ML之MIC:利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数.最大信息系数MIC) 目录 利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数.最大信息系 ...
- 高频交易配对交易学习——Copulas函数理解
Copulas函数理解 https://github.com/MalteKurz/VineCopulaCPP
- Pytorch中tensor.view().permute().contiguous()函数理解
Pytorch中tensor.view().permute().contiguous()函数理解 yolov3中有一行这样的代码,在此记录一下三个函数的含义 # 例子中batch_size为整型,le ...
- pytorch中repeat()函数理解
pytorch中repeat()函数理解 最近在学习过程中遇到了repeat()函数的使用,这里记录一下自己对这个函数的理解. 情况1:repeat参数个数与tensor维数一致时 a = torch ...
- SQLServer STUFF 函数理解
SQLServer CAST -- 转换数据类型 逗号表示分割 . STUFF 函数理解 -- 第一个就是字符串 FOR XML PATH('') 必须用 , 第二个参数 负数或0空字符串, ...
- Java回调函数理解和应用
#Java回调函数理解和应用 所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的. 在未理解之前,我也是一脸懵逼,等我理 ...
- pytorch 中 contiguous() 函数理解
pytorch 中 contiguous() 函数理解 文章目录 pytorch 中 contiguous() 函数理解 引言 使用 contiguous() 后记 文章抄自 Pytorch中cont ...
- Android回调函数理解
Android回调函数理解,比如我用一个activity去做显示下载进度的一个进度条,但是下载是另外一个B类来做的,这个时候我Activity获取下载的进度就可以提供一个回调接口,然后让下载类来回调就 ...
最新文章
- python loop call soon_从“call\u soon”回调函数执行协同路由
- 使用metasploit中Evasion模块
- ASP.Net中页面传值的几种方式
- 移动服务安全现状分析!
- 执行yum:Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again...
- leetcode 18. 四数之和(双指针)
- 判断Logger级别是否开启的方法
- 移动web-触摸事件touch
- 最新8篇ICML2020投稿论文:自监督学习、联邦学习、图学习、数据隐私、语言模型、终身学习...
- java .equal_Java 中的equals()方法
- 【网络安全工程师面试合集】——什么是IP安全 IPsec
- 宣传思想社工计算机考试内容,社工考试主要考什么?
- 图像数字水印技术研究及matlab实现,基于MATLAB的数字水印技术研究
- 野生二粒小麦基因组在science发布
- NVIDIA-SMI
- 揭秘java虚拟机 kindle_Kindle有一个java虚拟机
- 判断数是否为素数与素数输出
- javaee之spring3
- Huggingface简介及BERT代码浅析
- 【Java位运算】使用快速幂方法求指数的值