Closed Luobupi closed 1 year ago
我换过几个损失函数的计算方式,都显示在DWA loss.backward()的时候,说在进行反向传播时[512,31]这个向量里面有值发生了inplace操作,但是我并没有在损失函数中有类似+=或者类似的inplace操作
“[512,31]这个向量”, 这个向量是哪个
decoder定义为linear,在office-31数据集中,就是把512维的向量映射到31个类别中,所以相当于给encoder的输出结果乘以[512,31]的矩阵向量。 模型在反向传播时,对这个矩阵向量的权值进行更新
单靠这样的描述很难找到bug,如果方便还是麻烦你提供一下可复现这个bug的代码吧
谢谢您的帮助,通过多次调试,发现是我的代码在加载模型参数时的异常导致的错误,已经解决了,不好意思,耽误您的时间了! 祝您科研顺利,工作愉快!
您好,我在更换损失函数的时候有两个问题想请教一下,谢谢!
目前使用的版本是1.1.6
把损失函数从CELoss换成KLDivLoss的时候会出现维度对不上问题
在原有损失函数换成一个新的损失时会出现,inplace操作,但是在代码中好像没有出现inplace,如果还是计算交叉熵则不会有问题
修改的代码
其中unlearned_decoder 是模型输出的pred,init_decoder 是初始化模型输出的pred
错误信息