如何理解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
相关推荐
Sol-itude2 分钟前
强化学习——PPO、DPO、GRPO的原理推导
人工智能·机器学习
阿杰学AI12 分钟前
AI核心知识52——大语言模型之Model Quantization(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·aigc·模型量化·ai-native
Dev7z12 分钟前
基于MATLAB的零件表面缺陷检测系统设计与实现
开发语言·人工智能·matlab
@小码农15 分钟前
2025年全国青少年信息素养大赛 Gandi编程 小低组初赛真题
数据结构·人工智能·算法·蓝桥杯
阿杰学AI16 分钟前
AI核心知识51——大语言模型之LLM Inference(简洁且通俗易懂版)
人工智能·ai·语言模型·aigc·模型推理·大语言模型推理·llm inference
嫂子的姐夫19 分钟前
004-MD5_易车网
爬虫·python·逆向·加密
菜鸟‍30 分钟前
【论文学习】Co-Seg:互提示引导的组织与细胞核分割协同学习
人工智能·学习·算法
gf132111131 分钟前
python_基于主视频删减片段并插入镜头视频
linux·python·音视频
八年。。33 分钟前
Python 版本确认方法
开发语言·笔记·python
张拭心37 分钟前
程序员越想创业,越不要急着动手
前端·人工智能