簡體   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