1.第一种情况就是数据和model没有在放在同一个设备上
print(img.device)
print(next(model.parameters()).is_cuda)
2.定义不当,没有遵循torch的规则,比如直接使用list去保存layer网络层,这个不行使用nn.mouldelist的方法保存
3.就是我自己遇到的,我为了图方便,直接在forward一边定义一边就使用了。这样定义的卷积的权重不会被一起放到gpu上,导致出现题目的错误
f1 = nn.Conv2d(in_channels=384, out_channels=64, kernel_size=3, stride=1, padding=1)(self.layers_save[0])