RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

  File "/remote-home/CS_IMIPAD_public3/yangdaoyu22/.conda/envs/dyy/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/remote-home/CS_IMIPAD_public3/yangdaoyu22/project/segmentation/WeekSupervised/ACDC/code/networks/unet_modified.py", line 29, in forward
    return self.conv_conv(x)
  File "/remote-home/CS_IMIPAD_public3/yangdaoyu22/.conda/envs/dyy/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/remote-home/CS_IMIPAD_public3/yangdaoyu22/.conda/envs/dyy/lib/python3.8/site-packages/torch/nn/modules/container.py", line 119, in forward
    input = module(input)
  File "/remote-home/CS_IMIPAD_public3/yangdaoyu22/.conda/envs/dyy/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/remote-home/CS_IMIPAD_public3/yangdaoyu22/.conda/envs/dyy/lib/python3.8/site-packages/torch/nn/modules/conv.py", line 399, in forward
    return self._conv_forward(input, self.weight, self.bias)
  File "/remote-home/CS_IMIPAD_public3/yangdaoyu22/.conda/envs/dyy/lib/python3.8/site-packages/torch/nn/modules/conv.py", line 395, in _conv_forward
    return F.conv2d(input, weight, bias, self.stride,
RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

解决办法:
修改代码过后忘记把模型加载GPU里面跑了,导致输入详细是GPU,但模型是CPU的情况
添加cuda即可

model=UNet_CCT(in_chns=1,class_num=num_classes).to("cuda")

RuntimeError: CUDA error: an illegal memory access was encountered

我是跑了一段时间才出现这种情况

网上说的很多方案:

  1. GPU坏了(我的不是)
  2. 张量有的在cpu,有的在gpu()
    尝试给所有的文件开头加上下面这一句:还是不行
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
  1. 我估计是我的代码有问题,导致显存使用异常,大家遇到这个问题可以尝试减小显存的使用试试,比如:减小batchsize大小,减小image_size大小,dataloader的num_work数改为0等
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐