代码之家  ›  专栏  ›  技术社区  ›  Mona Jalal

运行时错误:给定组=1,大小的权重[64、3、7、7],预期输入[3、1、224、224]有3个通道,但得到1个通道

  •  0
  • Mona Jalal  · 技术社区  · 7 年前

    在下面的代码中:

        model_ft.eval()
        test_data, test_target = image_datasets['train'][idx]
        test_data = test_data.cuda()
        #test_target = test_target.cuda()
        test_target = torch.tensor(test_target)
        test_target = test_target.cuda()
        test_data.unsqueeze_(1)
        test_target.unsqueeze_(0)
        print(test_data.shape)
        output = model_ft(test_data)
    

    我得到以下错误:

    Traceback (most recent call last):
      File "test_loocv.py", line 245, in <module>
        output = model_ft(test_data)
      File "/scratch/sjn-p3/anaconda/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 477, in __call__
        result = self.forward(*input, **kwargs)
      File "/scratch/sjn-p3/anaconda/anaconda3/lib/python3.6/site-packages/torchvision-0.2.1-py3.6.egg/torchvision/models/resnet.py", line 139, in forward
      File "/scratch/sjn-p3/anaconda/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 477, in __call__
        result = self.forward(*input, **kwargs)
      File "/scratch/sjn-p3/anaconda/anaconda3/lib/python3.6/site-packages/torch/nn/modules/conv.py", line 301, in forward
        self.padding, self.dilation, self.groups)
    RuntimeError: Given groups=1, weight of size [64, 3, 7, 7], expected input[3, 1, 224, 224] to have 3 channels, but got 1 channels instead
    

    此外,测试数据的形状为:torch.size([3,1,224,224])。

    我该怎么解决这个问题?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Mona Jalal    7 年前

    解决方法如下:

    test_data, test_target = image_datasets['train'][idx]
    test_data = test_data.cuda()
    test_target = torch.tensor(test_target)
    test_target = test_target.cuda()
    test_data.unsqueeze_(0)
    test_target.unsqueeze_(0)
    output = model_ft(test_data)
    

    我不得不改变 test_data.unsqueeze_(1) test_data.unsqueeze_(0)

    推荐文章