92 lines
2.8 KiB
ReStructuredText
92 lines
2.8 KiB
ReStructuredText
.. _jit_unsupported:
|
|
|
|
TorchScript Unsupported PyTorch Constructs
|
|
============================================
|
|
|
|
Torch and Tensor Unsupported Attributes
|
|
------------------------------------------
|
|
|
|
|
|
TorchScript supports most methods defined on ``torch`` and ``torch.Tensor``, but we do not have full coverage.
|
|
Here are specific known ops and categories of ops which have diverging behavior between
|
|
Python and TorchScript. If you encounter something else that is not supported please
|
|
file a GitHub issue. Deprecated ops are not listed below.
|
|
|
|
|
|
|
|
.. automodule:: torch.jit.unsupported_tensor_ops
|
|
|
|
|
|
Functions Not Correctly Bound on Torch
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The following functions will fail if used in TorchScript, either because they
|
|
are not bound on `torch` or because Python expects a different schema than
|
|
TorchScript.
|
|
|
|
* :func:`torch.tensordot`
|
|
* :func:`torch.nn.init.calculate_gain`
|
|
* :func:`torch.nn.init.eye_`
|
|
* :func:`torch.nn.init.dirac_`
|
|
* :func:`torch.nn.init.kaiming_normal_`
|
|
* :func:`torch.nn.init.orthogonal_`
|
|
* :func:`torch.nn.init.sparse`
|
|
|
|
|
|
Ops With Divergent Schemas Between Torch & Python
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The following categories of ops have divergent schemas:
|
|
|
|
Functions which construct tensors from non-tensor inputs do not support the `requires_grad`
|
|
argument, except for `torch.tensor`. This covers the following ops:
|
|
|
|
* :func:`torch.norm`
|
|
* :func:`torch.bartlett_window`
|
|
* :func:`torch.blackman_window`
|
|
* :func:`torch.empty`
|
|
* :func:`torch.empty_like`
|
|
* :func:`torch.empty_strided`
|
|
* :func:`torch.eye`
|
|
* :func:`torch.full`
|
|
* :func:`torch.full_like`
|
|
* :func:`torch.hamming_window`
|
|
* :func:`torch.hann_window`
|
|
* :func:`torch.linspace`
|
|
* :func:`torch.logspace`
|
|
* :func:`torch.normal`
|
|
* :func:`torch.ones`
|
|
* :func:`torch.rand`
|
|
* :func:`torch.rand_like`
|
|
* :func:`torch.randint_like`
|
|
* :func:`torch.randn`
|
|
* :func:`torch.randn_like`
|
|
* :func:`torch.randperm`
|
|
* :func:`torch.tril_indices`
|
|
* :func:`torch.triu_indices`
|
|
* :func:`torch.vander`
|
|
* :func:`torch.zeros`
|
|
* :func:`torch.zeros_like`
|
|
|
|
The following functions require `dtype`, `layout`, `device` as parameters in TorchScript,
|
|
but these parameters are optional in Python.
|
|
|
|
* :func:`torch.randint`
|
|
* :func:`torch.sparse_coo_tensor`
|
|
* :meth:`~torch.Tensor.to`
|
|
|
|
|
|
PyTorch Unsupported Modules and Classes
|
|
------------------------------------------
|
|
|
|
TorchScript cannot currently compile a number of other commonly used PyTorch
|
|
constructs. Below are listed the modules that TorchScript does not support, and
|
|
an incomplete list of PyTorch classes that are not supported. For unsupported modules
|
|
we suggest using :meth:`torch.jit.trace`.
|
|
|
|
* :class:`torch.nn.RNN`
|
|
* :class:`torch.nn.AdaptiveLogSoftmaxWithLoss`
|
|
* :class:`torch.autograd.Function`
|
|
* :class:`torch.autograd.enable_grad`
|
|
* :class:`torch.Generator`
|