如何理解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
相关推荐
学习者0073 分钟前
python 下载离线库方法
python
声声codeGrandMaster7 分钟前
AI之模型提升
人工智能·pytorch·python·算法·ai
魔镜前的帅比22 分钟前
多 Agent 架构:Coordinator + Worker 模式
python·ai
lpfasd12327 分钟前
AI Phone下的各类App该何去何从
人工智能
路长冬35 分钟前
python基本语法
python
superman超哥37 分钟前
仓颉语言中错误恢复策略的深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
玖日大大39 分钟前
LangGraph 深度解析:构建强大智能体的新一代框架
人工智能·语言模型·架构·langchain
GISer_Jing44 分钟前
Nano Banana:AI图像生成与编辑新标杆
前端·javascript·人工智能
海上飞猪1 小时前
【Python基础】python判空
python
梦幻精灵_cq1 小时前
Linux.date格式化标识“制作”极简台历 vs Python.datetime.strftime格式化“精美”日历牌(时间工具依情境选择也是一种“智慧)
linux·python