pytorch conv2d 值不能在没有溢出的情况下转换为类型 uint8_t

gar*_*y69 5 python conv-neural-network pytorch

我传递一个torch.Tensor带有dtypetorch.uint8一个nn.Conv2d模块,它是给错误

运行时错误:值无法在没有溢出的情况下转换为 uint8_t 类型:-0.0344873

我的 conv2d 被定义为self.conv1 = nn.Conv2d(3, 6, 5). 这个错误来自于我的forward方法,当我通过了张像模块self.conv1(x)。张量的形状为 (4, 3, 480, 640)。我不知道如何解决这个问题。这是堆栈跟踪

Traceback (most recent call last):

  File "cnn.py", line 54, in <module>

    outputs = net(inputs)

  File "/Users/my_repos/venv_projc/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in __call__

    result = self.forward(*input, **kwargs)

  File "cnn.py", line 24, in forward

    test = self.conv1(x)

  File "/Users/my_repos/venv_projc/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in __call__

    result = self.forward(*input, **kwargs)

  File "/Users/my_repos/venv_projc/lib/python3.7/site-packages/torch/nn/modules/conv.py", line 345, in forward

    return self.conv2d_forward(input, self.weight)

  File "/Users/my_repos/venv_projc/lib/python3.7/site-packages/torch/nn/modules/conv.py", line 342, in conv2d_forward

    self.padding, self.dilation, self.groups)

RuntimeError: value cannot be converted to type uint8_t without overflow: -0.0344873
Run Code Online (Sandbox Code Playgroud)

gar*_*y69 11

将张量转换为浮点数似乎可以解决它 self.conv1(x.float())