Table of Contents
Shortcuts

# python.builtin

## dynamic_shape_round

Note

Tags: python.builtin, torch.dynamic-shape

Support Level: NOT_SUPPORTED_YET

Original source code:

    import torch

    from torch._export import dynamic_dim

    x = torch.ones(3, 2)
    dynamic_constraint = dynamic_dim(x, 0)

    def dynamic_shape_round(x):
        """
        Calling round on dynamic shapes is not supported.
        """
        return x[: round(x.shape[0] / 2)]

Result:

    Unsupported: Calling round() on symbolic value is not supported. You can use floor() to implement this functionality

## tensor_setattr

Note

Tags: python.builtin

Support Level: SUPPORTED

Original source code:

    import torch

    def tensor_setattr(x, attr):
        """
        setattr() call onto tensors is not supported.
        """
        setattr(x, attr, torch.randn(3, 2))
        return x + 4

Result:

    ExportedProgram:
        class GraphModule(torch.nn.Module):
            def forward(self, arg0_1: f32[3, 2], arg1_1):
                #
                add: f32[3, 2] = torch.ops.aten.add.Tensor(arg0_1, 4);  arg0_1 = None
                return (add,)

    Graph Signature: ExportGraphSignature(parameters=[], buffers=[], user_inputs=['arg0_1', 'arg1_1'], user_outputs=['add'], inputs_to_parameters={}, inputs_to_buffers={}, buffers_to_mutate={}, backward_signature=None, assertion_dep_token=None)
    Symbol to range: {}

## type_reflection_method

Note

Tags: python.builtin

Support Level: NOT_SUPPORTED_YET

Original source code:

    import torch

    class A:
        @classmethod
        def func(cls, x):
            return 1 + x

    def type_reflection_method(x):
        """
        type() calls on custom objects followed by method calls are not allowed
        due to its overly dynamic nature.
        """
        a = A()
        return type(a).func(x)

Result:

    Unsupported: Can't call type() on generated custom object. Please use __class__ instead

You can rewrite the example above to something like the following:

    def type_reflection_method_rewrite(x):
        """
        Custom object class methods will be inlined.
        """
        return A.func(x)

## Docs

Access comprehensive developer documentation for PyTorch

View Docs

## Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

## Resources

Find development resources and get your questions answered

View Resources

To analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available controls: Cookies Policy.