支持的功能¶
每个 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 的详细信息,请参考文档。