如何理解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
相关推荐
万粉变现经纪人28 分钟前
如何解决 pip install -r requirements.txt 私有索引未设为 trusted-host 导致拒绝 问题
开发语言·python·scrapy·flask·beautifulsoup·pandas·pip
查士丁尼·绵2 小时前
笔试-九宫格三阶积幻方
python·九宫格·三阶积幻方
云知谷3 小时前
【C++基本功】C++适合做什么,哪些领域适合哪些领域不适合?
c语言·开发语言·c++·人工智能·团队开发
rit84324994 小时前
基于MATLAB实现基于距离的离群点检测算法
人工智能·算法·matlab
l1t4 小时前
DeepSeek辅助利用搬移底层xml实现快速编辑xlsx文件的python程序
xml·开发语言·python·xlsx
大飞记Python4 小时前
部门管理|“编辑部门”功能实现(Django5零基础Web平台)
前端·数据库·python·django
初学小刘4 小时前
深度学习:从图片数据到模型训练(十分类)
人工智能·深度学习
递归不收敛5 小时前
大语言模型(LLM)入门笔记:嵌入向量与位置信息
人工智能·笔记·语言模型
之墨_6 小时前
【大语言模型】—— 自注意力机制及其变体(交叉注意力、因果注意力、多头注意力)的代码实现
人工智能·语言模型·自然语言处理
查士丁尼·绵6 小时前
笔试-羊狼过河
python