支援的功能¶
每個 TorchAudio API 都支援 PyTorch 功能的一個子集,例如裝置和資料型別。支援的功能在 API 參考中會以下列方式標明
這些圖標表示它們已透過自動化測試驗證。
注意
缺失的功能圖示意味著它們尚未經過測試,這可能根據 API 的不同而有不同的含義。
該 API 與該功能相容,但尚未測試。
該 API 與該功能不相容。
對於第 2 種情況,API 可能會顯式地丟擲錯誤,但這並不保證。例如,沒有 Autograd 標記的 API 在反向傳播過程中可能會丟擲錯誤,或悄悄地返回錯誤的梯度。
如果您使用的 API 尚未標記為支援某個功能,您可能需要先驗證該功能是否正常工作。
裝置¶
CPU¶
支援 CPU 的 TorchAudio API 可以在 CPU 張量上執行計算。
CUDA¶
支援 CUDA 的 TorchAudio API 可以在 CUDA 裝置上執行計算。
對於函式,在將張量引數傳遞給函式之前,將其移動到 CUDA 裝置上。
例如
cuda = torch.device("cuda")
waveform = waveform.to(cuda)
spectrogram = torchaudio.functional.spectrogram(waveform)
支援 CUDA 的類使用 torch.nn.Module() 實現。在傳遞 CUDA 張量之前,也需要將例項移動到 CUDA 裝置上。
例如
cuda = torch.device("cuda")
resampler = torchaudio.transforms.Resample(8000, 16000)
resampler.to(cuda)
waveform.to(cuda)
resampled = resampler(waveform)
屬性¶
自動微分 (Autograd)¶
支援 Autograd 的 TorchAudio API 可以正確地反向傳播梯度。
關於 Autograd 的基礎知識,請參考此教程。
注意
沒有此標記的 API 在反向傳播期間可能會或可能不會引發錯誤。反向傳播期間未引發錯誤並不一定意味著梯度是正確的。
TorchScript¶
支援 TorchScript 的 TorchAudio API 可以序列化並在非 Python 環境中執行。
有關 TorchScript 的詳細資訊,請參考文件。