关于with torch.no_grad:的一些小问题

with torch.no_grad:是截断梯度记录的,新生成的数据的都不记录梯度,但是今天产生了一点小疑惑,如果存在多层函数嵌入,是不是函数内所有的数据都不记录梯度,验证了一下,确实是的。

python 复制代码
import torch
x = torch.randn(10, 5, requires_grad = True)
y = torch.randn(10, 5, requires_grad = True)
z = torch.randn(10, 5, requires_grad = True)
def add(x,y,z):
    w = x + y + z
    print(w.requires_grad)
    print(w.grad_fn)
def add2(x,y,z):
    add(x,y,z)
with torch.no_grad():
    add2(x,y,z)
    
add2(x,y,z)
"""
输出:
False
None
True
<AddBackward0 object at 0x00000250371BED68>
"""
相关推荐
开源技术43 分钟前
Violit: Streamlit杀手,无需全局刷新,构建AI面板
人工智能·python
我什么都学不会1 小时前
Python练习作业2
开发语言·python
爱喝可乐的老王1 小时前
神经网络的基础:核心是 “搭积木 + 激活信号”
人工智能·深度学习·神经网络
b2077212 小时前
Flutter for OpenHarmony 身体健康状况记录App实战 - 健康目标实现
python·flutter·harmonyos
lixin5565562 小时前
基于深度生成对抗网络的高质量图像生成模型研究与实现
java·人工智能·pytorch·python·深度学习·语言模型
无望__wsk2 小时前
Python第一次作业
开发语言·python·算法
laplace01233 小时前
大模型整个训练流程
人工智能·深度学习·embedding·agent·rag
南 阳3 小时前
Python从入门到精通day16
开发语言·python·算法
MasonYyp3 小时前
Agno中使用MCP
python
aiguangyuan3 小时前
从零实现循环神经网络:中文情感分析的完整实践指南
人工智能·python·nlp