如何理解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
相关推荐
进击monkey几秒前
PandaWiki:开源企业级AI知识库工具,基于RAG架构的私有化部署方案
人工智能·开源
真智AI15 分钟前
用 LLM 辅助生成可跑的 Python 单元测试:pytest + coverage 覆盖率报告(含运行指令与排坑)
python·单元测试·pytest
zy_destiny24 分钟前
【工业场景】用YOLOv26实现桥梁检测
人工智能·深度学习·yolo·机器学习·计算机视觉·目标跟踪
2501_9418372627 分钟前
蘑菇可食用性分类识别_YOLO11分割模型实现与优化_1
人工智能·数据挖掘
2501_9418372627 分钟前
基于YOLO11-Aux改进的圣女果目标检测实现
人工智能·目标检测·计算机视觉
0思必得028 分钟前
[Web自动化] Selenium处理文件上传和下载
前端·爬虫·python·selenium·自动化·web自动化
莫有杯子的龙潭峡谷35 分钟前
在 Windows 系统上安装 OpenClaw
人工智能·node.js·安装教程·openclaw
Funny_AI_LAB37 分钟前
AI Agent最新重磅综述:迈向高效智能体,记忆、工具学习和规划综述
人工智能·学习·算法·语言模型·agi
zhangshuang-peta1 小时前
超越Composio:ContextForge与Peta作为集成平台的替代方案
人工智能·ai agent·mcp·peta
Hui Baby1 小时前
Java SPI 与 Spring SPI
java·python·spring