繁体   English   中英

pytorch int32 到 int64 转换

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM