1、
这句话的意思是:期望张量的后端处理是在cpu上,但是实际是在cuda上。排查代码发现,数据还在cpu上,但是模型已经转到cuda上,所以可以通过把数据转到cuda上解决。
解决代码:
tensor.to("cuda")
2、
解决方法:减小batch size的大小或减小图片的尺寸
3、
原始的代码如下:
torch.save(model.module.state_dict(), os.path.join(model_prefix, '{}-model.pth'.format(epoch)))
原因:因为只有一块GPU,以上代码是多GPU使用的
解决方法:改为以下单GPU代码:
meta = {}
checkpoint = {"meta": meta, "state_dict": weights_to_cpu(model.state_dict())}
if optimizer is not None:
checkpoint["optimizer"] = optimizer.state_dict()
torch.save(checkpoint, os.path.join(model_prefix, '{}-model.pth'.format(epoch)))