支持的功能¶
每个 TorchAudio API 支持 PyTorch 的一部分功能,例如 设备和数据类型。 支持的功能在 API 参考中以如下方式标明:
这些图标表示它们已通过自动化测试验证。
注意
缺失的功能图标表示这些功能尚未经过测试,这可能意味着不同的事情,具体取决于 API。
该 API 与该功能兼容,但未经过测试。
该 API 与该功能不兼容。
在第二种情况下,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 的 TorchAudio API 可以正确地反向传播梯度。
有关autograd的基础知识,请参阅此教程。
注意
没有此标记的 API 在反向传播过程中可能会或可能不会引发错误。 在反向传播过程中未引发错误并不一定意味着梯度是正确的。
TorchScript¶
支持 TorchScript 的 TorchAudio API 可以被序列化,并在非 Python 环境中执行。
有关TorchScript的详细信息,请参阅文档。