如何理解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
相关推荐
core5128 分钟前
深度解析DeepSeek-R1中GRPO强化学习算法
人工智能·算法·机器学习·deepseek·grpo
Surpass余sheng军8 分钟前
AI 时代下的网关技术选型
人工智能·经验分享·分布式·后端·学习·架构
说私域12 分钟前
基于开源AI智能名片链动2+1模式S2B2C商城小程序源码的所有物服务创新研究
人工智能
桃花键神22 分钟前
openFuyao在AI推理与大数据场景中的加速方案:技术特性与实践探索
大数据·人工智能
wb0430720130 分钟前
大模型(LLM)及其应用生态中的关键技术栈
人工智能
颜颜yan_40 分钟前
DevUI + Vue 3 入门实战教程:从零构建AI对话应用
前端·vue.js·人工智能
ney1878190247440 分钟前
分类网络LeNet + FashionMNIST 准确率92.9%
python·深度学习·分类
Coding茶水间40 分钟前
基于深度学习的无人机视角检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·计算机视觉
JoannaJuanCV1 小时前
自动驾驶—CARLA 仿真(1)安装与demo测试
人工智能·机器学习·自动驾驶·carla
林林宋1 小时前
Step-Audio-R1
人工智能