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]] [原始碼]¶
在 CPU 或 CUDA 上將 JPEG 影像解碼為 3D RGB 或灰階張量。
輸出張量的值為 uint8,介於 0 到 255 之間。
注意
當使用 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 格式實作。
- 傳回:
輸出張量的值為 uint8,介於 0 到 255 之間。
output.device
將設定為指定的device
- 傳回類型:
output (Tensor[image_channels, image_height, image_width] 或 list[Tensor[image_channels, image_height, image_width]])