如何理解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
相关推荐
掘金一周5 分钟前
看看大家每月的成本有多少 | 沸点周刊 7.30
前端·人工智能·后端
Zzj_tju7 分钟前
如何复现一篇 LLM 论文:环境、数据、权重、seed 和日志
人工智能·自然语言处理
ZHOU_WUYI15 分钟前
4. light wam 模型loss计算过程
开发语言·人工智能·python
nwsuaf_huasir24 分钟前
【无标题】
python
SelectDB30 分钟前
AI Agent 可观测性实战教程:用 Apache Doris 5 分钟搭建 Agent 监控系统
人工智能
尤乐娃子33 分钟前
进入大厂(厂子大)实习Day5
人工智能
骄阳如火40 分钟前
论文SKILLS实测系列一、nature-skills:把“中式论文腔“润色成 Nature 风格
人工智能
逻辑君42 分钟前
基于 PPO 的双足机器人行走控制
人工智能·深度学习·机器人
xiaoeshuo44 分钟前
产品介绍PPT模板哪家强?8个平台实测对比
人工智能
惊讶的猫1 小时前
《动手学大模型智能体》(Hands-on AI Agent)
人工智能