如何理解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
相关推荐
Jay Kay9 分钟前
从0到1理解大语言模型:读《大语言模型:从理论到实践(第2版)》笔记
人工智能·笔记·语言模型
Baihai_IDP11 分钟前
【译】TPU Deep Dive:Google TPU 架构深度分析
人工智能·google·面试
电商API_1800790524714 分钟前
微店商品详情接口micro.item_get请求参数响应参数解析
大数据·数据库·人工智能·爬虫
洛卡卡了15 分钟前
面试官问我会不会用 AI,我拿出这个 Ollama + FastGPT 项目给他看
人工智能·后端·docker
Python测试之道19 分钟前
用LangGraph实现聊天机器人记忆功能的深度解析
人工智能·langchain·prompt
生信宝典20 分钟前
通用温度感知语言模型用于设计具备增强稳定性和活性的蛋白质
人工智能·语言模型·自然语言处理
带电的小王1 小时前
VLA--Gemini Robotics On-Device: 将AI带到本地机器人设备上
人工智能·机器人
终端域名1 小时前
如何解决人工智能在社会治理中面临的技术和伦理挑战?
人工智能·交互技术
倔强的石头1061 小时前
[源力觉醒 创作者计划]_文心大模型4.5开源:从技术突破到生态共建的国产AI解读与本地部署指南
人工智能·开源·文心一言·文心大模型
AI训练师1 小时前
基于深度学习的YOLO框架的道路裂缝智能识别系统【附完整源码+数据集】
人工智能