TorchScript 不支持的 PyTorch 构造 ¶
Torch 和 Tensor 不支持的属性 ¶
TorchScript 支持大多数在 torch
和 torch.Tensor
上定义的方法,但我们没有完全覆盖。以下是具体已知的操作和操作类别,它们在 Python 和 TorchScript 之间存在不同的行为。如果您遇到其他不支持的内容,请提交 GitHub 问题。已弃用的操作未列在下面。
不支持的张量方法 ¶
不支持的张量属性 ¶
在 Torch 上未正确绑定的函数 ¶
以下函数在 TorchScript 中使用时将失败,原因可能是它们未绑定在 torch 上,或者 Python 期望的 schema 与 TorchScript 不同。
火炬与 Python 之间具有不同模式的操作
以下类别的操作具有不同的模式:
从非张量输入构建张量的函数不支持 requires_grad 参数,除了 torch.tensor。这包括以下操作:
以下函数在 TorchScript 中需要 dtype、layout、device 作为参数,但在 Python 中这些参数是可选的。
PyTorch 不支持的模块和类
目前 TorchScript 无法编译许多其他常用的 PyTorch 构造。以下是 TorchScript 不支持的模块列表,以及不支持的 PyTorch 类的不完整列表。对于不支持的模块,我们建议使用 torch.jit.trace()
。
torch.autograd.enable_grad