详细错误信息如下:
Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
大意是“预期所有张量处于相同的设备上,但是发现至少在两种设备上存在张量。”。
也就是说有一些张量被放到了CPU,有一些张量被放在了GPU上,导致异常出现。建议是排查一下代码,是否在做GPU加速时,有一些张量被忘记放到GPU上了。特别是优化器(optimization)也应该处于GPU上(保持与模型在同一类设备上)。
由于距离上一次遇到这个问题过去太久了,具体处理细节有点忘记了……,所以没办法给出详细的修改步骤。总之,根本原因还是张量没有被正确放置。
// 全文完
因笔者能力有限,若文章内容存在错误或不恰当之处,欢迎留言、私信批评指正。
Email:YePeanut[at]foxmail.com