本文介绍了pytorch conv2d值不能转换为uint8_t类型而不会溢出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在传递 torch.Tensor
,其中 dtype
是 torch.uint8
到 nn.Conv2d
模块,它给出了错误
I'm passing a torch.Tensor
with a dtype
of torch.uint8
to an nn.Conv2d
module and it is giving the error
我的conv2d定义为 self.conv1 = nn.Conv2d(3,6,5)
。当我将张量传递给 self.conv1(x)
之类的模块时,错误出现在我的 forward
方法中。张量具有形状(4、3、480、640)。我不确定如何解决此问题。这是堆栈跟踪
My conv2d is defined as self.conv1 = nn.Conv2d(3, 6, 5)
. The error comes in my forward
method when I pass the tensor to the module like self.conv1(x)
. The tensor has shape (4, 3, 480, 640). I'm not sure how to fix this. Here is the stack trace
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
推荐答案
将张量转换为浮点数似乎可以解决它 self.conv1(x.float())
Converting the tensor to a float seemed to fix it self.conv1(x.float())
这篇关于pytorch conv2d值不能转换为uint8_t类型而不会溢出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!