Значение conv2d pytorch не может быть преобразовано в тип uint8_t без переполнения - PullRequest
0 голосов
/ 17 февраля 2020

Я передаю torch.Tensor с dtype из torch.uint8 в модуль nn.Conv2d и выдает ошибку

RuntimeError: значение не может быть преобразовано в тип 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

1 Ответ

4 голосов
/ 17 февраля 2020

Преобразование тензора в число с плавающей запятой, казалось, исправило это self.conv1(x.float())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...