在原始的网络结构上添加额外的可学习的文本编码器时,需要融合三个输出的文本特征,采用concat后经过一层BN层和一层Linear层得到最终的文本特征。但在添加相应的BN层和Linear层后,项目报错,提示如下:
显示所有张量不在同一设备上,分别在cpu和gpu上,之前遇到过此类问题,但由于没有记录所以忘记如何解决,特此写下本篇博文记录。
原因为修改源代码时,由于没有采用分布式训练,所以将源代码的分布式部署代码注释掉了,而源代码中由于采用了分布式训练,所以将model放在gpu上这一步写在了分布式代码内,而注销了model.cuda()
最终导致张量在gpu上,而model未放在gpu上,将model.cuda()添加上,问题解决。
(另,解决过程中记起上一次出现这个问题的原因
未将张量放置在gpu上,后再其后加上.cuda()问题解决
)