💡
原文英文,约900词,阅读约需3分钟。
📝
内容提要
本文介绍了如何将PIL图像转换为PyTorch张量并进行缩放。`ToTensor()`已被弃用,建议使用`Compose(transforms=[ToImage(), ToDtype(dtype=torch.float32, scale=True)])`。PIL图像和ndarray的值被缩放到[0.0, 1.0]范围内。
🎯
关键要点
- 本文介绍了如何将PIL图像转换为PyTorch张量并进行缩放。
- `ToTensor()`已被弃用,建议使用`Compose(transforms=[ToImage(), ToDtype(dtype=torch.float32, scale=True)])`。
- PIL图像和ndarray的值被缩放到[0.0, 1.0]范围内。
- PIL图像在特定模式下会被缩放到[0.0, 1.0]。
- ndarray在uint8格式下会被缩放到[0.0, 1.0]。
- PIL图像、图像或张量/ndarray的类型要求。
- 张量可以是0D或多维,ndarray必须是2D或3D。
- 示例代码展示了如何使用`ToImage()`和`ToTensor()`进行数据转换。
- 使用`OxfordIIITPet`数据集进行示例,展示了数据点的数量和转换后的张量形状。
- 展示了如何使用`matplotlib`可视化转换后的张量图像。
- 提供了多种数据类型的转换示例,包括整数、浮点数、复数和布尔值。
❓
延伸问答
如何将PIL图像转换为PyTorch张量?
可以使用`Compose(transforms=[ToImage(), ToDtype(dtype=torch.float32, scale=True)])`来转换PIL图像为PyTorch张量。
ToTensor()在PyTorch中有什么变化?
`ToTensor()`已被弃用,建议使用`Compose`替代。
PIL图像和ndarray的值如何缩放?
PIL图像和ndarray的值被缩放到[0.0, 1.0]范围内,PIL图像在特定模式下和uint8格式的ndarray都会进行此缩放。
在PyTorch中,张量和ndarray的维度要求是什么?
张量可以是0D或多维,而ndarray必须是2D或3D。
如何使用matplotlib可视化转换后的张量图像?
可以使用`plt.imshow()`函数来可视化转换后的张量图像,但需确保张量形状正确。
OxfordIIITPet数据集的转换示例是什么?
示例中展示了如何使用`ToImage()`和`ToTensor()`对OxfordIIITPet数据集进行转换,数据点数量为3680。
➡️