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 影像解碼為 3D RGB 或灰度 Tensor,可在 CPU 或 CUDA 上進行。
輸出 Tensor 的值是 0 到 255 之間的 uint8。
注意
使用 CUDA 裝置時,傳遞 Tensor 列表比多次單獨呼叫
decode_jpeg更高效。使用 CPU 時,效能等效。此函式的 CUDA 版本在設計時已明確考慮了執行緒安全性。此函式在出錯時不會返回部分結果。- 引數:
input (Tensor[1] 或 list[Tensor[1]]) – 包含 JPEG 影像原始位元組的(列表)一維 uint8 Tensor。Tensor 必須在 CPU 上,無論
device引數如何。mode (str 或 ImageReadMode) – 要轉換到的影像模式,例如“RGB”。預設為“UNCHANGED”。有關可用模式,請參見
ImageReadMode。device (str 或 torch.device) –
解碼影像將儲存到的裝置。如果指定了 CUDA 裝置,將使用 nvjpeg 解碼影像。這僅支援 CUDA 版本 >= 10.1。
警告
device 引數處於 Beta 階段,不保證向後相容性。
警告
nvjpeg 庫在 CUDA 版本 < 11.6 中存在記憶體洩漏。在使用
device="cuda"之前,請確保依賴 CUDA 11.6 或更高版本。apply_exif_orientation (bool) – 對輸出 Tensor 應用 EXIF 方向轉換。預設值:False。僅對 CPU 上的 JPEG 格式實現。
- 返回:
輸出 Tensor 的值是 0 到 255 之間的 uint8。
output.device將設定為指定的device。- 返回型別:
output (Tensor[image_channels, image_height, image_width] 或 list[Tensor[image_channels, image_height, image_width]])