如何理解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
相关推荐
连线Insight3 分钟前
智谱、MiniMax争夺“大模型第一股”:高增长之下各有难题
大数据·人工智能·microsoft
美狐美颜SDK开放平台6 分钟前
专业直播美颜SDK如何打造?美型功能开发思路与方案分享
大数据·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
superman超哥9 分钟前
仓颉Option类型的空安全处理深度解析
c语言·开发语言·c++·python·仓颉
2401_8414956410 分钟前
【LeetCode刷题】跳跃游戏Ⅱ
数据结构·python·算法·leetcode·数组·贪心策略·跳跃游戏
居然JuRan11 分钟前
AI工具"翻车"现场:为什么你学了那么多,还是用不好AI?
人工智能
Data_agent22 分钟前
OOPBUY模式淘宝1688代购系统搭建指南
开发语言·爬虫·python
科学创新前沿23 分钟前
人工智能流体力学仿真专题学习
人工智能·cfd·流体力学
张哈大26 分钟前
AI Ping 上新限免:GLM-4.7 与 MiniMax-M2.1 实测对比
人工智能·python
乘凉~27 分钟前
【Linux作业】Limux下的python多线程爬虫程序设计
linux·爬虫·python
后端小肥肠31 分钟前
27条作品涨粉77万?我用Coze破解了“藏经人”的流量密码
人工智能·aigc·coze