pytorch分组卷积获取错误

时间:2019-11-28 15:47:50

标签: python pytorch convolution

我试图在非常大的图像(10k x 10k像素)上使用Pytorch分组的Conv2d运算符。尝试在网络中应用分组卷积时,出现 RuntimeError:offset太大错误。有人知道该如何规避吗?

可重复性代码:

import torch
import torch.nn as nn
import pdb


def create_img(size, batch_size=1, channels=3):
    return torch.FloatTensor(batch_size, channels, size, size).uniform_(-1, 1)


class TestModel(nn.Module):

    def __init__(self):
        super(TestModel, self).__init__()
        self.conv1 = nn.Conv2d(in_channels=64, out_channels=64, kernel_size=(3,3), stride=(1,1), groups=64, bias=False)

    def forward(self, x):
        out = self.conv1(x)
        return out


if __name__ == '__main__':
    model = TestModel()

    data = create_img(5002, channels=64)

    out = model(data)
    pdb.set_trace()

和错误:

Traceback (most recent call last):
  File "test.py", line 26, in <module>
    out = model(data)
  File ".../pipenv/lib/python3.6/site-packages/torch/nn/modules/module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File "test.py", line 17, in forward
    out = self.conv1(x)
  File ".../pipenv/lib/python3.6/site-packages/torch/nn/modules/module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File ".../pipenv/lib/python3.6/site-packages/torch/nn/modules/conv.py", line 320, in forward
    self.padding, self.dilation, self.groups)
RuntimeError: offset is too big

我正在使用Python 3.6和Pytorch 1.0.0。奇怪的是,这适用于较小的图像。例如,将图像大小从5002更改为502。

1 个答案:

答案 0 :(得分:0)

已通过将Pytorch更新到1.3.0解决了

相关问题