支援功能¶
每個 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 的詳細資訊,請參閱文件。