特殊的bug:element 0 of tensors does not require grad and does not have a grad_fn

很多帖子都说了,设置requires_grad_()就行。

但是我这次遇到的不一样,设置了都不行。

我是这种情况,在前面设置了torch.no_grad():,又在这个的作用域下进行了requires_grad_(),这是不起作用的。

简单版:

py 复制代码
with torch.no_grad():
            model.eval()
            pos_embed = model(homo_data.x, homo_data.edge_index)
						....            
            pos_embed.requires_grad_()# 不起作用
            ....

这样子直接看,傻瓜都不会犯错。而我这个就比较隐蔽了。。。

我的:

py 复制代码
# file1.py
with torch.no_grad():
    pos_embed = model(homo_data.x, homo_data.edge_index)
    ...
    fun_A(pos_embed)
    ...
# file2.py
def fun_A(x):
    ...
    fun_B(x)
    ...
# file3.py
def fun_B(x):
	...
  x.requires_grad_() # 由于x是在torch.no_grad中传过来的,所以不起作用
  ...

就这样一直会报错element 0 of tensors does not require grad and does not have a grad_fn

太坑了

大家引以为鉴,看看出现这个情况没。

相关推荐
正和视觉教育9 分钟前
深圳CCD视觉培训:快速掌握机器视觉检测核心技术
人工智能·python·计算机视觉·视觉检测
axinawang9 分钟前
第16课:编码、解码、转义字符、转义序列、输出格式化
python
不会计算机的g_c__b15 分钟前
Python + OpenCV 实现文档扫描与OCR识别系统
python·opencv·ocr
梦想不只是梦与想19 分钟前
Python 中的 reduce 函数:累积计算
python·reduce
唐山泽际科技26 分钟前
2026年本地生活服务(如餐饮、美业)怎样借助LBS(地理位置)精准获客?
python·智能手机·生活
金銀銅鐵36 分钟前
[Python] 用 Pillow 来绘制北欧五国的国旗
python
Allen_LVyingbo1 小时前
基于结构化电子病历的临床风险预测模型构建与大模型协同优化
python·安全·机器学习·docker·vim·健康医疗
paeamecium2 小时前
【PAT甲级真题】- Rational Sum (20)
数据结构·c++·python·算法·pat考试·pat
爱昏羔9 小时前
下篇:从检索到交互 — 物流RAG问答系统与WebUI全实现
python·langchain·agent
_Jimmy_9 小时前
Agent引用数据库知识过时的增量同步方案
人工智能·python·langchain