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