当前位置: 首页 > news >正文

如何理解pytorch中的“with torch.no_grad()”?

torch.no_grad()方法就像一个循环,其中循环中的每个张量都将requires_grad设置为False。这意味着,当前与当前计算图相连的具有梯度的张量现在与当前图分离了我们将不再能够计算关于该张量的梯度。直到张量在循环内,它才与当前图分离。一旦用梯度定义的张量脱离了循环,它就会再次附着到当前图上。此方法禁用梯度计算,从而减少计算的内存消耗。

示例:在这个例子中,我们将用requires_grad=true定义一个张量a,然后我们将使用张量a在torch.no_grad()中定义一个函数B。现在张量a在循环中,所以requires_grad被设置为false。

# Python3
# import necessary libraries 
import torch # define a tensor 
A = torch.tensor(1., requires_grad=True) 
print("Tensor-A:", A) # define a function using A tensor  
# inside loop 
with torch.no_grad(): B = A + 1
print("B:-", B) # check gradient 
print("B.requires_grad=", B.requires_grad)

 OUTPUT

Tensor-A: tensor(1., requires_grad=True)
B:- tensor(2.)
B.requires_grad= False

http://www.lryc.cn/news/187500.html

相关文章:

  • Linux虚拟机克隆之后使用ip addr无法获取ip地址
  • 日报系统:优化能源行业管理与决策的利器
  • linux安装idea
  • vue启动项目,npm run dev出现error:0308010C:digital envelope routines::unsupported
  • vue-devtools插件安装
  • const关键字
  • HTML5+CSS3+JS小实例:仿优酷视频轮播图
  • dart的Websocket为什么找不到onOpen方法?
  • VMware中Ubuntu(Linux)无法连接网络解决办法记录
  • js结合map对象等处理数组
  • 网络攻防实战演练
  • 基于Keil a51汇编 —— 标准宏定义
  • 遍历List集合
  • k8s containerd查看镜像
  • acwing.893. 集合-Nim游戏(博弈论sg函数模板)
  • 数据安全防护:云访问安全代理(CASB)
  • 面试准备-操作系统
  • 深度学习基础知识 Batch Normalization的用法解析
  • Centos7安装MongoDB7.xxNoSQL数据库|设置开机启动(骨灰级+保姆级)
  • JDK、JRE、JVM三者之间的关系
  • 【ppt技巧】批量修改ppt中的字体
  • RustDay01——运行在线GitHub Rust环境
  • 上门按摩小程序|同城上门按摩软件开发|上门按摩系统;
  • rpm安装mysql8后碰到的问题
  • Linux 磁盘管理+实例
  • MongoDB——centOS7安装mongodb5.0.21版本服务端(图解版)
  • C#实现OPC DA转OPC UA服务器
  • TCP/IP网络协议通信函数接口
  • go语言判断管道是否关闭的误区
  • 如何轻松使用 ChatGPT 进行论文大纲和创作