快捷方式

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 图像解码为 CPU 或 CUDA 上的 3D RGB 或灰度 Tensor。

输出 Tensor 的值为 uint8 类型,范围在 0 到 255 之间。

注意

使用 CUDA 设备时,传递 Tensor 列表比重复调用 decode_jpeg 更高效。使用 CPU 时性能相当。此函数的 CUDA 版本经过专门设计,考虑了线程安全性。如果发生错误,此函数不会返回部分结果。

参数:
  • input (Tensor[1] or list[Tensor[1]]) – 包含 JPEG 图像原始字节的一维 uint8 Tensor(或 Tensor 列表)。无论 device 参数如何,这些 Tensor 都必须位于 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) – 对输出 Tensor 应用 EXIF 方向变换。默认值:False。仅在 CPU 上对 JPEG 格式实现。

返回值:

输出 Tensor 的值为 uint8 类型,范围在 0 到 255 之间。output.device 将被设置为指定的 device

返回类型:

output (Tensor[image_channels, image_height, image_width] or list[Tensor[image_channels, image_height, image_width]])

文档

查阅 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源