decode_jpeg¶
- torchvision.io.decode_jpeg(input: Union[Tensor, list[torch.Tensor]], mode: ImageReadMode = ImageReadMode.UNCHANGED, device: Union[str, device] = 'cpu', apply_exif_orientation: bool = False) Union[Tensor, list[torch.Tensor]] [源代码]¶
将 JPEG 图像解码为 CPU 或 CUDA 上的 3D RGB 或灰度张量。
输出张量的值是在 0 到 255 之间的 uint8。
注意
当使用 CUDA 设备时,传递张量列表比重复单独调用
decode_jpeg
更高效。使用 CPU 时,性能是等效的。此函数的 CUDA 版本在设计时已特别考虑了线程安全性。在发生错误时,此函数不会返回部分结果。- 参数:
input (Tensor[1] 或 list[Tensor[1]]) – 包含 JPEG 图像原始字节的(一个或多个)一维 uint8 张量。无论
device
参数如何,张量都必须在 CPU 上。mode (str 或 ImageReadMode) – 要转换到的图像模式,例如 “RGB”。默认为 “UNCHANGED”。有关可用模式,请参见
ImageReadMode
。device (str 或 torch.device) –
解码后的图像将存储在其上。如果指定了 CUDA 设备,则将使用 nvjpeg 解码图像。这仅支持 CUDA 版本 >= 10.1。
警告
device 参数处于 Beta 阶段,不保证向后兼容。
警告
对于 CUDA 版本 < 11.6,nvjpeg 库存在内存泄漏。在使用
device="cuda"
之前,请确保依赖 CUDA 11.6 或更高版本。apply_exif_orientation (bool) – 对输出张量应用 EXIF 方向变换。默认值:False。仅对 CPU 上的 JPEG 格式实现。
- 返回:
输出张量的值是在 0 到 255 之间的 uint8。
output.device
将设置为指定的device
。- 返回类型:
output (Tensor[image_channels, image_height, image_width] 或 list[Tensor[image_channels, image_height, image_width]])