decode_jpeg¶
- torchvision.io.decode_jpeg(input: Union[Tensor, List[Tensor]], mode: ImageReadMode = ImageReadMode.UNCHANGED, device: Union[str, device] = 'cpu', apply_exif_orientation: bool = False) Union[Tensor, List[Tensor]] [source]¶
将 JPEG 图像(s) 解码为 3D RGB 或灰度 Tensor(s),在 CPU 或 CUDA 上。
输出张量的值是介于 0 和 255 之间的 uint8。
注意
当使用 CUDA 设备时,传递张量列表比重复单独调用
decode_jpeg
更有效。当使用 CPU 时,性能相同。此函数的 CUDA 版本已明确设计为考虑线程安全。如果发生错误,此函数不会返回部分结果。- 参数:
input (Tensor[1] or list[Tensor[1]]) – 一个 (或多个) 一维 uint8 张量,包含 JPEG 图像的原始字节。无论
device
参数如何,张量(s) 必须在 CPU 上。mode (str or ImageReadMode) – 将图像转换为的模式,例如“RGB”。默认为“UNCHANGED”。有关可用模式,请参阅
ImageReadMode
。device (str or 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 格式实现。
- 返回值:
输出张量(s) 的值是介于 0 和 255 之间的 uint8。
output.device
将设置为指定的device
- 返回类型:
output (Tensor[image_channels, image_height, image_width] or list[Tensor[image_channels, image_height, image_width]])