[英]pytorch int32 to int64 conversion
我正在尝试将简单的图像掩码转换为int64
image = np.array([[1, 2], [3, 4]], dtype='int32')
transform = Compose([
torch.from_numpy,
ConvertImageDtype(torch.int64)
])
但是, transform(image)
产生
tensor([[ 4294967296, 8589934592],
[12884901888, 17179869184]])
有什么问题,还是我从根本上误解了转换应该如何工作?
如果您跳过火炬的转换,则图像将正确转换。
image = np.array([[1, 2], [3, 4]], dtype='int64')
transform = Compose([
torch.from_numpy
])
transform(image)
# tensor([[1, 2],
# [3, 4]])
当从较小的转换为较大的 integer dtype
时,最大值未精确映射。 如果来回转换,这种不匹配没有影响。[文档]
int32
转换为int64
:
image = np.array([[1, 2], [3, 4]], dtype='int32')
transform = Compose([
torch.from_numpy,
ConvertImageDtype(torch.int64)
])
image = transform(image)
image
:
tensor([[ 4294967296, 8589934592],
[12884901888, 17179869184]])
int64
转换为int32
::
transform = Compose([
ConvertImageDtype(torch.int32)
])
transform(image)
image
:
tensor([[1, 2],
[3, 4]], dtype=torch.int32)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.