如何理解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
相关推荐
whitelbwwww2 分钟前
Python图像处理入门指南--opencv
人工智能·opencv·计算机视觉
Peter114671785010 分钟前
华中科技大学研究生课程《数字图像处理I》期末考试(2025-回忆版/电子信息与通信学院)
图像处理·人工智能·计算机视觉
测试199817 分钟前
接口自动化测试套件封装示例详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
颜颜yan_19 分钟前
在openEuler上搞个云原生AI模型商店:像点外卖一样部署模型
人工智能·云原生
lomocode31 分钟前
Dify 自建部署完全指南:从上手到放弃到真香
人工智能
aaaa_a1331 小时前
李宏毅——self-attention Transformer
人工智能·深度学习·transformer
工会代表2 小时前
使用 GitHub Actions 与 Docker 实现 CaptchaVision API 持续集成
python
Coovally AI模型快速验证2 小时前
MAR-YOLOv9:革新农业检测,YOLOv9的“低调”逆袭
人工智能·神经网络·yolo·计算机视觉·cnn
云和数据.ChenGuang2 小时前
AI运维工程师技术教程之Linux环境下部署Deepseek
linux·运维·人工智能
cvyoutian2 小时前
解决 PyTorch 大型 wheel 下载慢、超时和反复重下的问题
人工智能·pytorch·python