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()函数理解相关推荐

  1. nodejs回调函数理解

    回调实例 问题:想要得到一秒后 计算出的结果 //错误写法function add(x,y) {console.log(1);setTimeout(function () {console.log(2 ...

  2. R语言attach函数、detach函数(全局注册或者全局解除)实战

    R语言attach函数.detach函数(全局注册或者全局解除)实战 目录 R语言attach函数.detach函数(全局注册或者全局解除)实战 #基本语法 # 仿真数据 # 如果没有attach就直 ...

  3. ML之MIC:利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数、最大信息系数MIC)

    ML之MIC:利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数.最大信息系数MIC) 目录 利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数.最大信息系 ...

  4. 高频交易配对交易学习——Copulas函数理解

    Copulas函数理解 https://github.com/MalteKurz/VineCopulaCPP

  5. Pytorch中tensor.view().permute().contiguous()函数理解

    Pytorch中tensor.view().permute().contiguous()函数理解 yolov3中有一行这样的代码,在此记录一下三个函数的含义 # 例子中batch_size为整型,le ...

  6. pytorch中repeat()函数理解

    pytorch中repeat()函数理解 最近在学习过程中遇到了repeat()函数的使用,这里记录一下自己对这个函数的理解. 情况1:repeat参数个数与tensor维数一致时 a = torch ...

  7. SQLServer STUFF 函数理解

    SQLServer  CAST -- 转换数据类型 逗号表示分割 .     STUFF 函数理解 -- 第一个就是字符串 FOR XML PATH('') 必须用 , 第二个参数 负数或0空字符串, ...

  8. Java回调函数理解和应用

    #Java回调函数理解和应用 所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的. 在未理解之前,我也是一脸懵逼,等我理 ...

  9. pytorch 中 contiguous() 函数理解

    pytorch 中 contiguous() 函数理解 文章目录 pytorch 中 contiguous() 函数理解 引言 使用 contiguous() 后记 文章抄自 Pytorch中cont ...

  10. Android回调函数理解

    Android回调函数理解,比如我用一个activity去做显示下载进度的一个进度条,但是下载是另外一个B类来做的,这个时候我Activity获取下载的进度就可以提供一个回调接口,然后让下载类来回调就 ...

最新文章

  1. python loop call soon_从“call\u soon”回调函数执行协同路由
  2. 使用metasploit中Evasion模块
  3. ASP.Net中页面传值的几种方式
  4. 移动服务安全现状分析!
  5. 执行yum:Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again...
  6. leetcode 18. 四数之和(双指针)
  7. 判断Logger级别是否开启的方法
  8. 移动web-触摸事件touch
  9. 最新8篇ICML2020投稿论文:自监督学习、联邦学习、图学习、数据隐私、语言模型、终身学习...
  10. java .equal_Java 中的equals()方法
  11. 【网络安全工程师面试合集】——什么是IP安全 IPsec
  12. 宣传思想社工计算机考试内容,社工考试主要考什么?
  13. 图像数字水印技术研究及matlab实现,基于MATLAB的数字水印技术研究
  14. 野生二粒小麦基因组在science发布
  15. NVIDIA-SMI
  16. 揭秘java虚拟机 kindle_Kindle有一个java虚拟机
  17. 判断数是否为素数与素数输出
  18. javaee之spring3
  19. Huggingface简介及BERT代码浅析
  20. 【Java位运算】使用快速幂方法求指数的值

热门文章

  1. 30天学会JAVA—练习题(2021韩顺平)——Day20
  2. 计算机丢失lame,libmp3lame64.dll
  3. this关键字的作用
  4. win10 更改中文用户名为英文
  5. 上传txt文件乱码问题
  6. 桌面计算机密码修改频率,教大家如何更改电脑的显示频率
  7. idea启动azkaban2.5
  8. 可汗学院公开课:线性代数笔记-10-三元线性方程
  9. 贪心——Berserk And Fireball
  10. 2018年下半年网络工程师考试试题分析(4)