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