torch_dynamo

dynger_backend

experimental_experiment.torch_dynamo.dynger_backend(graph_module: GraphModule, args: List[Tensor | SymInt], optimize: bool = True, verbose: int | Tuple[int, int] = 0) Callable[source]

Eager backend for dynamo.

Parameters:
  • graph_module – graph to export

  • args – arguments

  • optimize – optimize or not, those optimization would be done on the graph module itself

  • verbose – adjust verbosity, if tuple, if gives different verbosity level to the exporter and the runtime

Returns:

Callable

onnx_debug_backend

experimental_experiment.torch_dynamo.onnx_debug_backend(graph_module: torch.fx.GraphModule, args: List[torch.Tensor | torch.SymInt], target_opset: int | None = None, backend: str | Callable[[ModelProto, bool | None], Any] = 'ort', verbose: int | Tuple[int, int] = 0, dump_prefix: None = None, dump_patterns: str | None = None, providers: Tuple[str] | None = None, raise_exc: bool = True, storage: Dict[str, Any] | None = None, raise_list: Set[str] | None = None, enable_pattern: str | List[str | type] | None = 'default', disable_pattern: str | List[str | type] | None = None, pre_ort_model_transforms: Callable[[ModelProto], ModelProto] | List[Callable[[ModelProto], ModelProto]] | None = None, ort_optimization_level: str | None = None, dispatcher: Dispatcher | None = None, rename_inputs: bool = True, optimize: bool = True, processor: str = 'CPU', order_algorithm: str | None = None) Callable[source]

Custom backend to export torch models into onnx (see torch.compiler). This backend is not meant to be efficient, it is more to check the conversion is ok. It relies either on onnxruntime or the python reference implementation.

Parameters:
  • graph_module – graph to export

  • args – arguments

  • target_opset – opset to use for the conversion

  • backend – after the conversion, the model is executed with a runtime, onnxruntime or the reference implementation, it must be a value among ‘ort’, ‘ref’ or a class, it can be a function as well which returns an object behaving the same way

  • verbose – adjust verbosity, if tuple, if gives different verbosity level to the exporter and the runtime

  • dump_prefix – prefix used to dump the model generated by the backend

  • dump_patterns – dump the patterns as well

  • providers – where to run the model, by default

  • raise_exc – raise an exception whenever something goes wrong

  • storage – to store any interesting objects during the process

  • raise_list – the builder stops any time a name falls into that list, this is a debbuging tool

  • enable_pattern – optimization patterns to enable

  • disable_pattern – optimization patterns to disable

  • pre_ort_model_transforms – list of transformations applied on the final ModelProto

  • ort_optimization_level – graph optimization level for onnxruntime, the default value is the same as what onnxruntime defines

  • dispatcher – see experimental_experiment.torch_interpreter.Dispatcher

  • rename_inputs – rename inputs into input_{i}

  • optimize – enable or disable the optimization

  • processor – specifies the processor it is optimized for

  • order_algorithm – algorithm optimizing the order the onnx node, none by default

Returns:

Callable

See 301: Compares LLAMA exporters for onnxrt backend for an example. If not empty, storage keeps the memory of the data generated, onnx models, graph module as well the inputs and outputs when the model is run.

onnx_custom_backend

experimental_experiment.torch_dynamo.onnx_custom_backend(graph_module: torch.fx.GraphModule, args: List[torch.Tensor], target_opset: int | None = None, backend: str = 'ort', verbose: int | Tuple[int, int] = 0, dump_prefix: None = None, dump_patterns: str | None = None, providers: Tuple[str] | None = None, raise_exc: bool = True, storage: Dict[str, Any] | None = None, enable_pattern: str | List[str | type] | None = 'default', disable_pattern: str | List[str | type] | None = None, pre_ort_model_transforms: Callable[[ModelProto], ModelProto] | List[Callable[[ModelProto], ModelProto]] | None = None, ort_optimization_level: str | None = None, dispatcher: Dispatcher | None = None, rename_inputs: bool = True, optimize: bool = True, exporter: str | None = None, processor: str = 'CPU', order_algorithm: str | None = None) Callable[source]

Custom backend to export torch models into onnx (see torch.compiler). This backend relies on onnxruntime and tries to be as efficient as possible.

Parameters:
  • graph_module – graph to export

  • args – arguments

  • target_opset – opset to use for the conversion

  • backend – only ‘ort’ is allowed

  • verbose – adjust verbosity, if tuple, if gives different verbosity level to the exporter and the runtime

  • dump_prefix – to dump the models and the inputs

  • dump_patterns – dump the patterns as well

  • providers – where to run the model, by default

  • raise_exc – raise an exception whenever something goes wrong

  • storage – to store any interesting objects during the process

  • enable_pattern – optimization patterns to enable

  • disable_pattern – optimization patterns to disable

  • pre_ort_model_transforms – list of transformations applied on the final ModelProto

  • ort_optimization_level – graph optimization level for onnxruntime, the default value is the same as what onnxruntime defines

  • dispatcher – see experimental_experiment.torch_interpreter.Dispatcher

  • rename_inputs – rename the inputs

  • optimize – enable or disable the optimization

  • exporter – use a different exporter

  • processor – optimization should be made for this processor or this list of processors (comma separated value)

  • order_algorithm – algorithm optimizing the order the onnx node, none by default

Returns:

Callable

See 301: Compares LLAMA exporters for onnxrt backend or 101: A custom backend for torch for examples. If not empty, storage keeps the memory of the data generated, onnx models, graph module as well the inputs and outputs when the model is run.

filter_decomposition_table

experimental_experiment.torch_dynamo.filter_decomposition_table(existing_table: Dict | None = None) Dict[source]

Returns the decomposition table when some conversions because their translation in ONNX is less efficient.

Parameters:

existing_table – dictionary of decompositions, by default, it is torch._decomp.decomposition_table.

Returns:

new table

import torch
from torch._dynamo.backends.common import aot_autograd
from experimental_experiment.torch_dynamo import filter_decomposition_table

aot_compiler = aot_autograd(fw_compiler=backend_debug, decompositions=filter_decomposition_table())

compiled_model = torch.compile(
    model,
    backend=aot_compiler,
    dynamic=dynamic,
    fullgraph=fullgraph,
)

The value is:

<<<

import pprint
from experimental_experiment.torch_dynamo import filter_decomposition_table

pprint.pprint(filter_decomposition_table())

>>>

    {<torch._higher_order_ops.out_dtype.OutDtypeOperator object at 0x7fc7c3eb60b0>: <function out_dtype_decomp at 0x7fc7c3d8d6c0>,
     <OpOverload(op='aten.fft_hfft', overload='default')>: <function hfft at 0x7fc7c3bfc160>,
     <OpOverload(op='aten.fft_hfft', overload='out')>: <function hfft at 0x7fc7c3bfc160>,
     <OpOverload(op='aten.fft_ihfft', overload='default')>: <function ihfft at 0x7fc7c3bfc310>,
     <OpOverload(op='aten.fft_ihfft', overload='out')>: <function ihfft at 0x7fc7c3bfc310>,
     <OpOverload(op='aten.fft_fftn', overload='default')>: <function fftn at 0x7fc7c3bfc9d0>,
     <OpOverload(op='aten.fft_fftn', overload='out')>: <function fftn at 0x7fc7c3bfc9d0>,
     <OpOverload(op='aten.fft_ifftn', overload='default')>: <function ifftn at 0x7fc7c3bfcb80>,
     <OpOverload(op='aten.fft_ifftn', overload='out')>: <function ifftn at 0x7fc7c3bfcb80>,
     <OpOverload(op='aten.fft_rfftn', overload='default')>: <function rfftn at 0x7fc7c3bfcd30>,
     <OpOverload(op='aten.fft_rfftn', overload='out')>: <function rfftn at 0x7fc7c3bfcd30>,
     <OpOverload(op='aten.fft_ihfftn', overload='default')>: <function ihfftn at 0x7fc7c3bfcee0>,
     <OpOverload(op='aten.fft_ihfftn', overload='out')>: <function ihfftn at 0x7fc7c3bfcee0>,
     <OpOverload(op='aten.fft_irfftn', overload='out')>: <function irfftn at 0x7fc7c3bfd510>,
     <OpOverload(op='aten.fft_irfftn', overload='default')>: <function irfftn at 0x7fc7c3bfd510>,
     <OpOverload(op='aten.fft_hfftn', overload='default')>: <function hfftn at 0x7fc7c3bfd6c0>,
     <OpOverload(op='aten.fft_hfftn', overload='out')>: <function hfftn at 0x7fc7c3bfd6c0>,
     <OpOverload(op='aten.fft_fft2', overload='default')>: <function fft2 at 0x7fc7c3bfd870>,
     <OpOverload(op='aten.fft_fft2', overload='out')>: <function fft2 at 0x7fc7c3bfd870>,
     <OpOverload(op='aten.fft_ifft2', overload='default')>: <function ifft2 at 0x7fc7c3bfda20>,
     <OpOverload(op='aten.fft_ifft2', overload='out')>: <function ifft2 at 0x7fc7c3bfda20>,
     <OpOverload(op='aten.fft_rfft2', overload='default')>: <function rfft2 at 0x7fc7c3bfdbd0>,
     <OpOverload(op='aten.fft_rfft2', overload='out')>: <function rfft2 at 0x7fc7c3bfdbd0>,
     <OpOverload(op='aten.fft_irfft2', overload='default')>: <function irfft2 at 0x7fc7c3bfdd80>,
     <OpOverload(op='aten.fft_irfft2', overload='out')>: <function irfft2 at 0x7fc7c3bfdd80>,
     <OpOverload(op='aten.fft_hfft2', overload='default')>: <function hfft2 at 0x7fc7c3bfdf30>,
     <OpOverload(op='aten.fft_hfft2', overload='out')>: <function hfft2 at 0x7fc7c3bfdf30>,
     <OpOverload(op='aten.fft_ihfft2', overload='default')>: <function ihfft2 at 0x7fc7c3bfe0e0>,
     <OpOverload(op='aten.fft_ihfft2', overload='out')>: <function ihfft2 at 0x7fc7c3bfe0e0>,
     <OpOverload(op='aten.fft_fftshift', overload='default')>: <function fftshift at 0x7fc7c3bfe170>,
     <OpOverload(op='aten.fft_ifftshift', overload='default')>: <function ifftshift at 0x7fc7c3bfe200>,
     <OpOverload(op='aten.linalg_cross', overload='default')>: <function cross at 0x7fc7c3bfe7a0>,
     <OpOverload(op='aten.linalg_cross', overload='out')>: <function cross at 0x7fc7c3bfe7a0>,
     <OpOverload(op='aten.linalg_vector_norm', overload='default')>: <function vector_norm at 0x7fc7c3bfea70>,
     <OpOverload(op='aten.linalg_vector_norm', overload='out')>: <function vector_norm at 0x7fc7c3bfea70>,
     <OpOverload(op='aten.alpha_dropout', overload='default')>: <function alpha_dropout at 0x7fc7c3a2c1f0>,
     <OpOverload(op='aten.celu', overload='default')>: <function celu at 0x7fc7c3a2c3a0>,
     <OpOverload(op='aten.celu', overload='out')>: <function celu at 0x7fc7c3a2c3a0>,
     <OpOverload(op='aten.elu', overload='default')>: <function elu at 0x7fc7c3a2c8b0>,
     <OpOverload(op='aten.elu', overload='out')>: <function elu at 0x7fc7c3a2c8b0>,
     <OpOverload(op='aten.relu', overload='default')>: <function relu at 0x7fc7c3a2cc10>,
     <OpOverload(op='aten.relu', overload='out')>: <function relu at 0x7fc7c3a2cc10>,
     <OpOverload(op='aten.leaky_relu', overload='default')>: <function leaky_relu at 0x7fc7c3a2d090>,
     <OpOverload(op='aten.leaky_relu', overload='out')>: <function leaky_relu at 0x7fc7c3a2d090>,
     <OpOverload(op='aten.mish', overload='default')>: <function mish at 0x7fc7c3a2d360>,
     <OpOverload(op='aten.mish', overload='out')>: <function mish at 0x7fc7c3a2d360>,
     <OpOverload(op='aten.selu', overload='default')>: <function selu at 0x7fc7c3a2d630>,
     <OpOverload(op='aten.hardshrink', overload='default')>: <function hardshrink at 0x7fc7c3a2dea0>,
     <OpOverload(op='aten.softplus', overload='default')>: <function softplus at 0x7fc7c3a2da20>,
     <OpOverload(op='aten.softplus', overload='out')>: <function softplus at 0x7fc7c3a2da20>,
     <OpOverload(op='aten.softshrink', overload='default')>: <function softshrink at 0x7fc7c3a2e050>,
     <OpOverload(op='aten.hardshrink', overload='out')>: <function hardshrink at 0x7fc7c3a2dea0>,
     <OpOverload(op='aten.softshrink', overload='out')>: <function softshrink at 0x7fc7c3a2e050>,
     <OpOverload(op='aten.margin_ranking_loss', overload='default')>: <function margin_ranking_loss at 0x7fc7c3a2e560>,
     <OpOverload(op='aten.hinge_embedding_loss', overload='default')>: <function hinge_embedding_loss at 0x7fc7c3a2e710>,
     <OpOverload(op='aten.nll_loss', overload='default')>: <function nll_loss at 0x7fc7c3a2ea70>,
     <OpOverload(op='aten.nll_loss', overload='out')>: <function nll_loss at 0x7fc7c3a2ea70>,
     <OpOverload(op='aten.huber_loss', overload='default')>: <function huber_loss at 0x7fc7c3a2ecb0>,
     <OpOverload(op='aten.huber_loss', overload='out')>: <function huber_loss at 0x7fc7c3a2ecb0>,
     <OpOverload(op='aten.threshold', overload='default')>: <function threshold at 0x7fc7c3a2eef0>,
     <OpOverload(op='aten.threshold', overload='out')>: <function threshold at 0x7fc7c3a2eef0>,
     <OpOverload(op='aten.hardtanh', overload='default')>: <function hardtanh at 0x7fc7c3a2f2e0>,
     <OpOverload(op='aten.hardtanh', overload='out')>: <function hardtanh at 0x7fc7c3a2f2e0>,
     <OpOverload(op='aten.gelu', overload='default')>: <function gelu at 0x7fc7c3a2f880>,
     <OpOverload(op='aten.gelu', overload='out')>: <function gelu at 0x7fc7c3a2f880>,
     <OpOverload(op='aten.prelu', overload='default')>: <function prelu at 0x7fc7c3a2fa30>,
     <OpOverload(op='aten.relu6', overload='default')>: <function relu6 at 0x7fc7c3a2fb50>,
     <OpOverload(op='aten.glu', overload='default')>: <function glu at 0x7fc7c3a2ff40>,
     <OpOverload(op='aten.glu', overload='out')>: <function glu at 0x7fc7c3a2ff40>,
     <OpOverload(op='aten.pairwise_distance', overload='default')>: <function pairwise_distance at 0x7fc7c3a5c160>,
     <OpOverload(op='aten.pdist', overload='default')>: <function pdist at 0x7fc7c3a5c3a0>,
     <OpOverload(op='aten.pixel_shuffle', overload='default')>: <function pixel_shuffle at 0x7fc7c3a5c550>,
     <OpOverload(op='aten.pixel_shuffle', overload='out')>: <function pixel_shuffle at 0x7fc7c3a5c550>,
     <OpOverload(op='aten.pixel_unshuffle', overload='default')>: <function pixel_unshuffle at 0x7fc7c3a5c700>,
     <OpOverload(op='aten.pixel_unshuffle', overload='out')>: <function pixel_unshuffle at 0x7fc7c3a5c700>,
     <OpOverload(op='aten.celu_', overload='default')>: <function celu at 0x7fc7c3a2f910>,
     <OpOverload(op='aten.elu_', overload='default')>: <function elu at 0x7fc7c3a5c5e0>,
     <OpOverload(op='aten.mish_', overload='default')>: <function mish at 0x7fc7c3a5c790>,
     <OpOverload(op='aten.selu_', overload='default')>: <function selu at 0x7fc7c3a5c820>,
     <OpOverload(op='aten.threshold_', overload='default')>: <function threshold at 0x7fc7c3a5c8b0>,
     <OpOverload(op='aten.special_bessel_j0', overload='default')>: <function bessel_j0 at 0x7fc7c3a5cee0>,
     <OpOverload(op='aten.special_bessel_j0', overload='out')>: <function bessel_j0 at 0x7fc7c3a5cee0>,
     <OpOverload(op='aten.special_bessel_j1', overload='default')>: <function bessel_j1 at 0x7fc7c3a5d240>,
     <OpOverload(op='aten.special_bessel_j1', overload='out')>: <function bessel_j1 at 0x7fc7c3a5d240>,
     <OpOverload(op='aten.special_entr', overload='default')>: <function entr at 0x7fc7c3a5d480>,
     <OpOverload(op='aten.special_entr', overload='out')>: <function entr at 0x7fc7c3a5d480>,
     <OpOverload(op='aten.special_erfcx', overload='default')>: <function erfcx at 0x7fc7c3a5d6c0>,
     <OpOverload(op='aten.special_erfcx', overload='out')>: <function erfcx at 0x7fc7c3a5d6c0>,
     <OpOverload(op='aten.special_i0e', overload='default')>: <function i0e at 0x7fc7c3a5dab0>,
     <OpOverload(op='aten.special_i0e', overload='out')>: <function i0e at 0x7fc7c3a5dab0>,
     <OpOverload(op='aten.special_i1', overload='default')>: <function i1 at 0x7fc7c3a5de10>,
     <OpOverload(op='aten.special_i1', overload='out')>: <function i1 at 0x7fc7c3a5de10>,
     <OpOverload(op='aten.special_i1e', overload='default')>: <function i1e at 0x7fc7c3a5e170>,
     <OpOverload(op='aten.special_i1e', overload='out')>: <function i1e at 0x7fc7c3a5e170>,
     <OpOverload(op='aten.special_log_ndtr', overload='default')>: <function log_ndtr at 0x7fc7c3a5e3b0>,
     <OpOverload(op='aten.special_log_ndtr', overload='out')>: <function log_ndtr at 0x7fc7c3a5e3b0>,
     <OpOverload(op='aten.logit', overload='default')>: <function logit at 0x7fc7c3a5e5f0>,
     <OpOverload(op='aten.logit', overload='out')>: <function logit at 0x7fc7c3a5e5f0>,
     <OpOverload(op='aten.special_xlog1py', overload='default')>: <function xlog1py at 0x7fc7c3a5e830>,
     <OpOverload(op='aten.special_xlog1py', overload='other_scalar')>: <function xlog1py at 0x7fc7c3a5e830>,
     <OpOverload(op='aten.special_xlog1py', overload='self_scalar')>: <function xlog1py at 0x7fc7c3a5e830>,
     <OpOverload(op='aten.special_xlog1py', overload='out')>: <function xlog1py at 0x7fc7c3a5e830>,
     <OpOverload(op='aten.special_xlog1py', overload='self_scalar_out')>: <function xlog1py at 0x7fc7c3a5e830>,
     <OpOverload(op='aten.special_xlog1py', overload='other_scalar_out')>: <function xlog1py at 0x7fc7c3a5e830>,
     <OpOverload(op='aten.mvlgamma', overload='default')>: <function multigammaln at 0x7fc7c3a5ea70>,
     <OpOverload(op='aten.mvlgamma', overload='out')>: <function multigammaln at 0x7fc7c3a5ea70>,
     <OpOverload(op='aten.special_ndtr', overload='default')>: <function ndtr at 0x7fc7c3a5ecb0>,
     <OpOverload(op='aten.special_ndtr', overload='out')>: <function ndtr at 0x7fc7c3a5ecb0>,
     <OpOverload(op='aten.special_ndtri', overload='default')>: <function ndtri at 0x7fc7c3a5eef0>,
     <OpOverload(op='aten.special_ndtri', overload='out')>: <function ndtri at 0x7fc7c3a5eef0>,
     <OpOverload(op='aten.special_spherical_bessel_j0', overload='default')>: <function spherical_bessel_j0 at 0x7fc7c3a5f370>,
     <OpOverload(op='aten.special_spherical_bessel_j0', overload='out')>: <function spherical_bessel_j0 at 0x7fc7c3a5f370>,
     <OpOverload(op='aten.special_zeta', overload='default')>: <function zeta at 0x7fc7c3a5f640>,
     <OpOverload(op='aten.special_zeta', overload='other_scalar')>: <function zeta at 0x7fc7c3a5f640>,
     <OpOverload(op='aten.special_zeta', overload='self_scalar')>: <function zeta at 0x7fc7c3a5f640>,
     <OpOverload(op='aten.special_zeta', overload='out')>: <function zeta at 0x7fc7c3a5f640>,
     <OpOverload(op='aten.special_zeta', overload='self_scalar_out')>: <function zeta at 0x7fc7c3a5f640>,
     <OpOverload(op='aten.special_zeta', overload='other_scalar_out')>: <function zeta at 0x7fc7c3a5f640>,
     <OpOverload(op='aten.addcdiv', overload='default')>: <function addcdiv at 0x7fc7c3ced510>,
     <OpOverload(op='aten.addcdiv', overload='out')>: <function addcdiv at 0x7fc7c3ced510>,
     <OpOverload(op='aten.addcmul', overload='default')>: <function addcmul at 0x7fc7c3ced750>,
     <OpOverload(op='aten.addcmul', overload='out')>: <function addcmul at 0x7fc7c3ced750>,
     <OpOverload(op='aten.clamp', overload='default')>: <function clamp at 0x7fc7c3ced990>,
     <OpOverload(op='aten.clamp', overload='Tensor')>: <function clamp at 0x7fc7c3ced990>,
     <OpOverload(op='aten.clamp', overload='out')>: <function clamp at 0x7fc7c3ced990>,
     <OpOverload(op='aten.clamp', overload='Tensor_out')>: <function clamp at 0x7fc7c3ced990>,
     <OpOverload(op='aten.clamp_min', overload='default')>: <function clamp_min at 0x7fc7c3cedb40>,
     <OpOverload(op='aten.clamp_min', overload='Tensor')>: <function clamp_min at 0x7fc7c3cedb40>,
     <OpOverload(op='aten.clamp_min', overload='out')>: <function clamp_min at 0x7fc7c3cedb40>,
     <OpOverload(op='aten.clamp_min', overload='Tensor_out')>: <function clamp_min at 0x7fc7c3cedb40>,
     <OpOverload(op='aten.clamp_max', overload='default')>: <function clamp_max at 0x7fc7c3cede10>,
     <OpOverload(op='aten.clamp_max', overload='Tensor')>: <function clamp_max at 0x7fc7c3cede10>,
     <OpOverload(op='aten.clamp_max', overload='out')>: <function clamp_max at 0x7fc7c3cede10>,
     <OpOverload(op='aten.clamp_max', overload='Tensor_out')>: <function clamp_max at 0x7fc7c3cede10>,
     <OpOverload(op='aten.where', overload='self')>: <function where at 0x7fc7c3cee050>,
     <OpOverload(op='aten.where', overload='ScalarOther')>: <function where at 0x7fc7c3cee050>,
     <OpOverload(op='aten.where', overload='ScalarSelf')>: <function where at 0x7fc7c3cee050>,
     <OpOverload(op='aten.where', overload='Scalar')>: <function where at 0x7fc7c3cee050>,
     <OpOverload(op='aten.where', overload='default')>: <function where at 0x7fc7c3cee050>,
     <OpOverload(op='aten.where', overload='self_out')>: <function where at 0x7fc7c3cee050>,
     <OpOverload(op='aten.clone', overload='default')>: <function clone at 0x7fc7c3cee200>,
     <OpOverload(op='aten.clone', overload='out')>: <function clone at 0x7fc7c3cee200>,
     <OpOverload(op='aten.item', overload='default')>: <function item at 0x7fc7c3cee290>,
     <OpOverload(op='aten.sum', overload='dim_IntList')>: <function sum at 0x7fc7c3ceee60>,
     <OpOverload(op='aten.all', overload='default')>: <function all at 0x7fc7c3ceedd0>,
     <OpOverload(op='aten.all', overload='dim')>: <function all at 0x7fc7c3ceedd0>,
     <OpOverload(op='aten.all', overload='dims')>: <function all at 0x7fc7c3ceedd0>,
     <OpOverload(op='aten.all', overload='out')>: <function all at 0x7fc7c3ceedd0>,
     <OpOverload(op='aten.all', overload='dims_out')>: <function all at 0x7fc7c3ceedd0>,
     <OpOverload(op='aten.all', overload='all_out')>: <function all at 0x7fc7c3ceedd0>,
     <OpOverload(op='aten.all', overload='dimname')>: <function all at 0x7fc7c3ceedd0>,
     <OpOverload(op='aten.all', overload='dimname_out')>: <function all at 0x7fc7c3ceedd0>,
     <OpOverload(op='aten.sum', overload='IntList_out')>: <function sum at 0x7fc7c3ceee60>,
     <OpOverload(op='aten.any', overload='default')>: <function any at 0x7fc7c3ceef80>,
     <OpOverload(op='aten.any', overload='dim')>: <function any at 0x7fc7c3ceef80>,
     <OpOverload(op='aten.any', overload='dims')>: <function any at 0x7fc7c3ceef80>,
     <OpOverload(op='aten.any', overload='out')>: <function any at 0x7fc7c3ceef80>,
     <OpOverload(op='aten.any', overload='dims_out')>: <function any at 0x7fc7c3ceef80>,
     <OpOverload(op='aten.any', overload='all_out')>: <function any at 0x7fc7c3ceef80>,
     <OpOverload(op='aten.any', overload='dimname')>: <function any at 0x7fc7c3ceef80>,
     <OpOverload(op='aten.any', overload='dimname_out')>: <function any at 0x7fc7c3ceef80>,
     <OpOverload(op='aten.prod', overload='default')>: <function prod at 0x7fc7c3cef0a0>,
     <OpOverload(op='aten.prod', overload='dim_int')>: <function prod at 0x7fc7c3cef0a0>,
     <OpOverload(op='aten.prod', overload='dim_Dimname')>: <function prod at 0x7fc7c3cef0a0>,
     <OpOverload(op='aten.prod', overload='Dimname_out')>: <function prod at 0x7fc7c3cef0a0>,
     <OpOverload(op='aten.prod', overload='int_out')>: <function prod at 0x7fc7c3cef0a0>,
     <OpOverload(op='aten.prod', overload='out')>: <function prod at 0x7fc7c3cef0a0>,
     <OpOverload(op='aten.amin', overload='default')>: <function amin at 0x7fc7c3cef130>,
     <OpOverload(op='aten.amin', overload='out')>: <function amin at 0x7fc7c3cef130>,
     <OpOverload(op='aten.amax', overload='default')>: <function amax at 0x7fc7c3cef1c0>,
     <OpOverload(op='aten.amax', overload='out')>: <function amax at 0x7fc7c3cef1c0>,
     <OpOverload(op='aten.var', overload='default')>: <function var at 0x7fc7c3cef490>,
     <OpOverload(op='aten.var', overload='dim')>: <function var at 0x7fc7c3cef490>,
     <OpOverload(op='aten.var', overload='correction')>: <function var at 0x7fc7c3cef490>,
     <OpOverload(op='aten.var', overload='names_dim')>: <function var at 0x7fc7c3cef490>,
     <OpOverload(op='aten.var', overload='names_out')>: <function var at 0x7fc7c3cef490>,
     <OpOverload(op='aten.var', overload='out')>: <function var at 0x7fc7c3cef490>,
     <OpOverload(op='aten.var', overload='correction_out')>: <function var at 0x7fc7c3cef490>,
     <OpOverload(op='aten.var', overload='correction_names')>: <function var at 0x7fc7c3cef490>,
     <OpOverload(op='aten.var', overload='correction_names_out')>: <function var at 0x7fc7c3cef490>,
     <OpOverload(op='aten.std', overload='default')>: <function std at 0x7fc7c3cef640>,
     <OpOverload(op='aten.std', overload='dim')>: <function std at 0x7fc7c3cef640>,
     <OpOverload(op='aten.std', overload='correction')>: <function std at 0x7fc7c3cef640>,
     <OpOverload(op='aten.std', overload='names_dim')>: <function std at 0x7fc7c3cef640>,
     <OpOverload(op='aten.std', overload='names_out')>: <function std at 0x7fc7c3cef640>,
     <OpOverload(op='aten.std', overload='out')>: <function std at 0x7fc7c3cef640>,
     <OpOverload(op='aten.std', overload='correction_out')>: <function std at 0x7fc7c3cef640>,
     <OpOverload(op='aten.std', overload='correction_names')>: <function std at 0x7fc7c3cef640>,
     <OpOverload(op='aten.std', overload='correction_names_out')>: <function std at 0x7fc7c3cef640>,
     <OpOverload(op='aten.mean', overload='default')>: <function mean at 0x7fc7c3cef520>,
     <OpOverload(op='aten.mean', overload='dim')>: <function mean at 0x7fc7c3cef520>,
     <OpOverload(op='aten.mean', overload='names_dim')>: <function mean at 0x7fc7c3cef520>,
     <OpOverload(op='aten.mean', overload='names_out')>: <function mean at 0x7fc7c3cef520>,
     <OpOverload(op='aten.mean', overload='out')>: <function mean at 0x7fc7c3cef520>,
     <OpOverload(op='aten.std_mean', overload='correction_out')>: <function std_mean at 0x7fc7c3cef760>,
     <OpOverload(op='aten.std_mean', overload='correction_names')>: <function std_mean at 0x7fc7c3cef760>,
     <OpOverload(op='aten.std_mean', overload='names_dim')>: <function std_mean at 0x7fc7c3cef760>,
     <OpOverload(op='aten.std_mean', overload='correction')>: <function std_mean at 0x7fc7c3cef760>,
     <OpOverload(op='aten.std_mean', overload='dim')>: <function std_mean at 0x7fc7c3cef760>,
     <OpOverload(op='aten.std_mean', overload='default')>: <function std_mean at 0x7fc7c3cef760>,
     <OpOverload(op='aten.var_mean', overload='correction_names')>: <function var_mean at 0x7fc7c3cefd90>,
     <OpOverload(op='aten.var_mean', overload='names_dim')>: <function var_mean at 0x7fc7c3cefd90>,
     <OpOverload(op='aten.var_mean', overload='correction')>: <function var_mean at 0x7fc7c3cefd90>,
     <OpOverload(op='aten.var_mean', overload='dim')>: <function var_mean at 0x7fc7c3cefd90>,
     <OpOverload(op='aten.var_mean', overload='default')>: <function var_mean at 0x7fc7c3cefd90>,
     <OpOverload(op='aten.var_mean', overload='correction_out')>: <function var_mean at 0x7fc7c3cefd90>,
     <OpOverload(op='aten.addr', overload='default')>: <function addr at 0x7fc7c3b345e0>,
     <OpOverload(op='aten.addr', overload='out')>: <function addr at 0x7fc7c3b345e0>,
     <OpOverload(op='aten.as_strided_scatter', overload='out')>: <function as_strided_scatter at 0x7fc7c3b34a60>,
     <OpOverload(op='aten.cat', overload='default')>: <function cat at 0x7fc7c3b34e50>,
     <OpOverload(op='aten.cat', overload='names')>: <function cat at 0x7fc7c3b34e50>,
     <OpOverload(op='aten.cat', overload='names_out')>: <function cat at 0x7fc7c3b34e50>,
     <OpOverload(op='aten.cat', overload='out')>: <function cat at 0x7fc7c3b34e50>,
     <OpOverload(op='aten.constant_pad_nd', overload='default')>: <function constant_pad_nd at 0x7fc7c3b35240>,
     <OpOverload(op='aten.constant_pad_nd', overload='out')>: <function constant_pad_nd at 0x7fc7c3b35240>,
     <OpOverload(op='aten.expand', overload='default')>: <function expand at 0x7fc7c3b35480>,
     <OpOverload(op='aten.flip', overload='default')>: <function flip at 0x7fc7c3b35870>,
     <OpOverload(op='aten.flip', overload='out')>: <function flip at 0x7fc7c3b35870>,
     <OpOverload(op='aten.native_group_norm', overload='default')>: <function native_group_norm at 0x7fc7c3b35cf0>,
     <OpOverload(op='aten.narrow_copy', overload='default')>: <function _make_copy_from_view.<locals>._fn at 0x7fc7c3b35a20>,
     <OpOverload(op='aten.narrow_copy', overload='out')>: <function _make_copy_from_view.<locals>._fn at 0x7fc7c3b35a20>,
     <OpOverload(op='aten.permute', overload='default')>: <function permute at 0x7fc7c3b363b0>,
     <OpOverload(op='aten.native_layer_norm', overload='out')>: <function native_layer_norm at 0x7fc7c3b35e10>,
     <OpOverload(op='aten.native_layer_norm', overload='default')>: <function native_layer_norm at 0x7fc7c3b35e10>,
     <OpOverload(op='aten.renorm', overload='default')>: <function renorm at 0x7fc7c3b365f0>,
     <OpOverload(op='aten.renorm', overload='out')>: <function renorm at 0x7fc7c3b365f0>,
     <OpOverload(op='aten.repeat', overload='default')>: <function repeat at 0x7fc7c3b36950>,
     <OpOverload(op='aten.repeat', overload='out')>: <function repeat at 0x7fc7c3b36950>,
     <OpOverload(op='aten.roll', overload='default')>: <function roll at 0x7fc7c3b36cb0>,
     <OpOverload(op='aten.roll', overload='out')>: <function roll at 0x7fc7c3b36cb0>,
     <OpOverload(op='aten.rot90', overload='default')>: <function rot90 at 0x7fc7c3b36e60>,
     <OpOverload(op='aten.rot90', overload='out')>: <function rot90 at 0x7fc7c3b36e60>,
     <OpOverload(op='aten.stack', overload='default')>: <function stack at 0x7fc7c3b370a0>,
     <OpOverload(op='aten.stack', overload='out')>: <function stack at 0x7fc7c3b370a0>,
     <OpOverload(op='aten.unbind', overload='int')>: <function unbind at 0x7fc7c3b37640>,
     <OpOverload(op='aten.unbind', overload='Dimname')>: <function unbind at 0x7fc7c3b37640>,
     <OpOverload(op='aten.index_fill', overload='int_Tensor')>: <function index_fill at 0x7fc7c3b37ac0>,
     <OpOverload(op='aten.index_fill', overload='int_Scalar')>: <function index_fill at 0x7fc7c3b37ac0>,
     <OpOverload(op='aten.index_fill', overload='Dimname_Scalar')>: <function index_fill at 0x7fc7c3b37ac0>,
     <OpOverload(op='aten.index_fill', overload='Dimname_Tensor')>: <function index_fill at 0x7fc7c3b37ac0>,
     <OpOverload(op='aten.index_fill', overload='int_Scalar_out')>: <function index_fill at 0x7fc7c3b37ac0>,
     <OpOverload(op='aten.index_fill', overload='int_Tensor_out')>: <function index_fill at 0x7fc7c3b37ac0>,
     <OpOverload(op='aten.index_fill_', overload='int_Tensor')>: <function index_fill_ at 0x7fc7c3b379a0>,
     <OpOverload(op='aten.index_fill_', overload='int_Scalar')>: <function index_fill_ at 0x7fc7c3b379a0>,
     <OpOverload(op='aten.index_fill_', overload='Dimname_Scalar')>: <function index_fill_ at 0x7fc7c3b379a0>,
     <OpOverload(op='aten.index_fill_', overload='Dimname_Tensor')>: <function index_fill_ at 0x7fc7c3b379a0>,
     <OpOverload(op='aten.squeeze', overload='dims')>: <function squeeze at 0x7fc7c3b37e20>,
     <OpOverload(op='aten.index_select', overload='default')>: <function index_select at 0x7fc7c3b37f40>,
     <OpOverload(op='aten.index_select', overload='out')>: <function index_select at 0x7fc7c3b37f40>,
     <OpOverload(op='aten.index_select', overload='dimname')>: <function index_select at 0x7fc7c3b37f40>,
     <OpOverload(op='aten.index_select', overload='dimname_out')>: <function index_select at 0x7fc7c3b37f40>,
     <OpOverload(op='aten.diag', overload='out')>: <function diag at 0x7fc7c3b583a0>,
     <OpOverload(op='aten.diagonal_scatter', overload='out')>: <function diagonal_scatter at 0x7fc7c3b58550>,
     <OpOverload(op='aten.diagonal', overload='Dimname')>: <function diagonal at 0x7fc7c3b58430>,
     <OpOverload(op='aten.t', overload='default')>: <function t at 0x7fc7c3b58c10>,
     <OpOverload(op='aten.diagonal_copy', overload='default')>: <function _make_copy_from_view.<locals>._fn at 0x7fc7c3b585e0>,
     <OpOverload(op='aten.diagonal_copy', overload='out')>: <function _make_copy_from_view.<locals>._fn at 0x7fc7c3b585e0>,
     <OpOverload(op='aten.diag_embed', overload='default')>: <function diag_embed at 0x7fc7c3b58940>,
     <OpOverload(op='aten.diag_embed', overload='out')>: <function diag_embed at 0x7fc7c3b58940>,
     <OpOverload(op='aten.block_diag', overload='default')>: <function _block_diag_iterable at 0x7fc7c3b58af0>,
     <OpOverload(op='aten.block_diag', overload='out')>: <function _block_diag_iterable at 0x7fc7c3b58af0>,
     <OpOverload(op='aten.alias', overload='default')>: <function alias at 0x7fc7c3b58d30>,
     <OpOverload(op='aten.transpose', overload='int')>: <function transpose at 0x7fc7c3b58dc0>,
     <OpOverload(op='aten.transpose', overload='Dimname')>: <function transpose at 0x7fc7c3b58dc0>,
     <OpOverload(op='aten.unfold', overload='default')>: <function unfold at 0x7fc7c3b58e50>,
     <OpOverload(op='aten.view', overload='default')>: <function view at 0x7fc7c3b592d0>,
     <OpOverload(op='aten.unfold_copy', overload='default')>: <function unfold_copy at 0x7fc7c3b59090>,
     <OpOverload(op='aten.unfold_copy', overload='out')>: <function unfold_copy at 0x7fc7c3b59090>,
     <OpOverload(op='aten.cumsum', overload='default')>: <function cumsum at 0x7fc7c3b59120>,
     <OpOverload(op='aten.cumsum', overload='dimname')>: <function cumsum at 0x7fc7c3b59120>,
     <OpOverload(op='aten.cumsum', overload='dimname_out')>: <function cumsum at 0x7fc7c3b59120>,
     <OpOverload(op='aten.cumsum', overload='out')>: <function cumsum at 0x7fc7c3b59120>,
     <OpOverload(op='aten.cumprod', overload='default')>: <function cumprod at 0x7fc7c3b591b0>,
     <OpOverload(op='aten.cumprod', overload='dimname')>: <function cumprod at 0x7fc7c3b591b0>,
     <OpOverload(op='aten.cumprod', overload='dimname_out')>: <function cumprod at 0x7fc7c3b591b0>,
     <OpOverload(op='aten.cumprod', overload='out')>: <function cumprod at 0x7fc7c3b591b0>,
     <OpOverload(op='aten.unsqueeze', overload='default')>: <function unsqueeze at 0x7fc7c3b59240>,
     <OpOverload(op='aten.arange', overload='start_step')>: <function arange at 0x7fc7c3b5a8c0>,
     <OpOverload(op='aten.ones', overload='default')>: <function ones at 0x7fc7c3b5a200>,
     <OpOverload(op='aten.arange', overload='start_out')>: <function arange at 0x7fc7c3b5a8c0>,
     <OpOverload(op='aten.lerp', overload='Scalar')>: <function lerp at 0x7fc7c3b5ab00>,
     <OpOverload(op='aten.lerp', overload='Tensor')>: <function lerp at 0x7fc7c3b5ab00>,
     <OpOverload(op='aten.lerp', overload='Scalar_out')>: <function lerp at 0x7fc7c3b5ab00>,
     <OpOverload(op='aten.lerp', overload='Tensor_out')>: <function lerp at 0x7fc7c3b5ab00>,
     <OpOverload(op='aten.linspace', overload='Tensor_Tensor')>: <function linspace at 0x7fc7c3b5acb0>,
     <OpOverload(op='aten.linspace', overload='Tensor_Scalar')>: <function linspace at 0x7fc7c3b5acb0>,
     <OpOverload(op='aten.linspace', overload='Scalar_Tensor')>: <function linspace at 0x7fc7c3b5acb0>,
     <OpOverload(op='aten.linspace', overload='default')>: <function linspace at 0x7fc7c3b5acb0>,
     <OpOverload(op='aten.linspace', overload='out')>: <function linspace at 0x7fc7c3b5acb0>,
     <OpOverload(op='aten.linspace', overload='Tensor_Tensor_out')>: <function linspace at 0x7fc7c3b5acb0>,
     <OpOverload(op='aten.linspace', overload='Tensor_Scalar_out')>: <function linspace at 0x7fc7c3b5acb0>,
     <OpOverload(op='aten.linspace', overload='Scalar_Tensor_out')>: <function linspace at 0x7fc7c3b5acb0>,
     <OpOverload(op='aten.logspace', overload='Tensor_Tensor')>: <function logspace at 0x7fc7c3b5ae60>,
     <OpOverload(op='aten.logspace', overload='Tensor_Scalar')>: <function logspace at 0x7fc7c3b5ae60>,
     <OpOverload(op='aten.logspace', overload='Scalar_Tensor')>: <function logspace at 0x7fc7c3b5ae60>,
     <OpOverload(op='aten.logspace', overload='default')>: <function logspace at 0x7fc7c3b5ae60>,
     <OpOverload(op='aten.logspace', overload='out')>: <function logspace at 0x7fc7c3b5ae60>,
     <OpOverload(op='aten.logspace', overload='Tensor_Tensor_out')>: <function logspace at 0x7fc7c3b5ae60>,
     <OpOverload(op='aten.logspace', overload='Tensor_Scalar_out')>: <function logspace at 0x7fc7c3b5ae60>,
     <OpOverload(op='aten.logspace', overload='Scalar_Tensor_out')>: <function logspace at 0x7fc7c3b5ae60>,
     <OpOverload(op='aten.meshgrid', overload='default')>: <function meshgrid at 0x7fc7c3b5ad40>,
     <OpOverload(op='aten.meshgrid', overload='indexing')>: <function meshgrid at 0x7fc7c3b5ad40>,
     <OpOverload(op='aten.empty_strided', overload='out')>: <function empty_strided at 0x7fc7c3b5b130>,
     <OpOverload(op='aten.full', overload='out')>: <function full at 0x7fc7c3b5b490>,
     <OpOverload(op='aten.full', overload='default')>: <function full at 0x7fc7c3b5b490>,
     <OpOverload(op='aten.eye', overload='default')>: <function eye at 0x7fc7c3b5b2e0>,
     <OpOverload(op='aten.eye', overload='m')>: <function eye at 0x7fc7c3b5b2e0>,
     <OpOverload(op='aten.eye', overload='out')>: <function eye at 0x7fc7c3b5b2e0>,
     <OpOverload(op='aten.eye', overload='m_out')>: <function eye at 0x7fc7c3b5b2e0>,
     <OpOverload(op='aten.randn', overload='default')>: <function randn at 0x7fc7c3b5ba30>,
     <OpOverload(op='aten.masked_fill', overload='Scalar')>: <function masked_fill at 0x7fc7c3b5bd90>,
     <OpOverload(op='aten.masked_fill', overload='Tensor')>: <function masked_fill at 0x7fc7c3b5bd90>,
     <OpOverload(op='aten.masked_fill', overload='Scalar_out')>: <function masked_fill at 0x7fc7c3b5bd90>,
     <OpOverload(op='aten.masked_fill', overload='Tensor_out')>: <function masked_fill at 0x7fc7c3b5bd90>,
     <OpOverload(op='aten.masked_fill_', overload='Scalar')>: <function masked_fill_ at 0x7fc7c3b5bc70>,
     <OpOverload(op='aten.masked_fill_', overload='Tensor')>: <function masked_fill_ at 0x7fc7c3b5bc70>,
     <OpOverload(op='aten.norm', overload='Scalar')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.norm', overload='ScalarOpt_dim')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.norm', overload='names_ScalarOpt_dim')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.norm', overload='ScalarOpt_dim_dtype')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.norm', overload='dtype_out')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.norm', overload='out')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.norm', overload='ScalarOpt_dtype')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.norm', overload='ScalarOpt_dtype_out')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.norm', overload='Scalar_out')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.norm', overload='names_ScalarOpt_dim_dtype')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.norm', overload='names_dtype_out')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.norm', overload='names_out')>: <function norm at 0x7fc7c3b84280>,
     <OpOverload(op='aten.trace', overload='default')>: <function trace at 0x7fc7c3b84430>,
     <OpOverload(op='aten.trace', overload='out')>: <function trace at 0x7fc7c3b84430>,
     <OpOverload(op='aten.triu', overload='default')>: <function triu at 0x7fc7c3b84820>,
     <OpOverload(op='aten.triu', overload='out')>: <function triu at 0x7fc7c3b84820>,
     <OpOverload(op='aten.tril', overload='default')>: <function tril at 0x7fc7c3b849d0>,
     <OpOverload(op='aten.tril', overload='out')>: <function tril at 0x7fc7c3b849d0>,
     <OpOverload(op='aten.tril_indices', overload='default')>: <function tril_indices at 0x7fc7c3b84ca0>,
     <OpOverload(op='aten.tril_indices', overload='out')>: <function tril_indices at 0x7fc7c3b84ca0>,
     <OpOverload(op='aten.triu_indices', overload='default')>: <function triu_indices at 0x7fc7c3b84ee0>,
     <OpOverload(op='aten.triu_indices', overload='out')>: <function triu_indices at 0x7fc7c3b84ee0>,
     <OpOverload(op='aten.bucketize', overload='Tensor')>: <function bucketize at 0x7fc7c3b85090>,
     <OpOverload(op='aten.bucketize', overload='Scalar')>: <function bucketize at 0x7fc7c3b85090>,
     <OpOverload(op='aten.bucketize', overload='Tensor_out')>: <function bucketize at 0x7fc7c3b85090>,
     <OpOverload(op='aten.bucketize', overload='Scalar_out')>: <function bucketize at 0x7fc7c3b85090>,
     <OpOverload(op='aten.cauchy', overload='default')>: <function cauchy at 0x7fc7c3b852d0>,
     <OpOverload(op='aten.cauchy', overload='out')>: <function cauchy at 0x7fc7c3b852d0>,
     <OpOverload(op='aten.exponential', overload='default')>: <function exponential at 0x7fc7c3b85510>,
     <OpOverload(op='aten.exponential', overload='out')>: <function exponential at 0x7fc7c3b85510>,
     <OpOverload(op='aten.geometric', overload='default')>: <function geometric at 0x7fc7c3b85750>,
     <OpOverload(op='aten.geometric', overload='out')>: <function geometric at 0x7fc7c3b85750>,
     <OpOverload(op='aten.log_normal', overload='default')>: <function log_normal at 0x7fc7c3b85990>,
     <OpOverload(op='aten.log_normal', overload='out')>: <function log_normal at 0x7fc7c3b85990>,
     <OpOverload(op='aten.normal', overload='Tensor_float')>: <function normal at 0x7fc7c3b85bd0>,
     <OpOverload(op='aten.normal', overload='Tensor_float_out')>: <function normal at 0x7fc7c3b85bd0>,
     <OpOverload(op='aten.normal', overload='float_Tensor_out')>: <function normal at 0x7fc7c3b85bd0>,
     <OpOverload(op='aten.normal', overload='float_Tensor')>: <function normal at 0x7fc7c3b85bd0>,
     <OpOverload(op='aten.normal', overload='Tensor_Tensor')>: <function normal at 0x7fc7c3b85bd0>,
     <OpOverload(op='aten.normal', overload='Tensor_Tensor_out')>: <function normal at 0x7fc7c3b85bd0>,
     <OpOverload(op='aten.normal', overload='float_float')>: <function normal at 0x7fc7c3b85bd0>,
     <OpOverload(op='aten.normal', overload='float_float_out')>: <function normal at 0x7fc7c3b85bd0>,
     <OpOverload(op='aten.normal', overload='out')>: <function normal at 0x7fc7c3b85bd0>,
     <OpOverload(op='aten.normal_', overload='default')>: <function normal_ at 0x7fc7c3b85a20>,
     <OpOverload(op='aten.rad2deg', overload='default')>: <function rad2deg at 0x7fc7c3b85fc0>,
     <OpOverload(op='aten.rad2deg', overload='out')>: <function rad2deg at 0x7fc7c3b85fc0>,
     <OpOverload(op='aten.deg2rad', overload='default')>: <function deg2rad at 0x7fc7c3b86320>,
     <OpOverload(op='aten.deg2rad', overload='out')>: <function deg2rad at 0x7fc7c3b86320>,
     <OpOverload(op='aten.count_nonzero', overload='dim_IntList')>: <function count_nonzero at 0x7fc7c3b864d0>,
     <OpOverload(op='aten.count_nonzero', overload='dim_IntList_out')>: <function count_nonzero at 0x7fc7c3b864d0>,
     <OpOverload(op='aten.count_nonzero', overload='default')>: <function count_nonzero at 0x7fc7c3b864d0>,
     <OpOverload(op='aten.count_nonzero', overload='out')>: <function count_nonzero at 0x7fc7c3b864d0>,
     <OpOverload(op='aten.dot', overload='default')>: <function dot at 0x7fc7c3b867a0>,
     <OpOverload(op='aten.dot', overload='out')>: <function dot at 0x7fc7c3b867a0>,
     <OpOverload(op='aten.vdot', overload='default')>: <function vdot at 0x7fc7c3b869e0>,
     <OpOverload(op='aten.vdot', overload='out')>: <function vdot at 0x7fc7c3b869e0>,
     <OpOverload(op='aten.abs_', overload='default')>: <function abs at 0x7fc7c3b863b0>,
     <OpOverload(op='aten.acos_', overload='default')>: <function acos at 0x7fc7c3b86830>,
     <OpOverload(op='aten.acosh_', overload='default')>: <function acosh at 0x7fc7c3b86a70>,
     <OpOverload(op='aten.add_', overload='Tensor')>: <function add at 0x7fc7c3b86b00>,
     <OpOverload(op='aten.add_', overload='Scalar')>: <function add at 0x7fc7c3b86b00>,
     <OpOverload(op='aten.addcmul_', overload='default')>: <function addcmul at 0x7fc7c3b86b90>,
     <OpOverload(op='aten.addcdiv_', overload='default')>: <function addcdiv at 0x7fc7c3b86c20>,
     <OpOverload(op='aten.asin_', overload='default')>: <function asin at 0x7fc7c3b86cb0>,
     <OpOverload(op='aten.asinh_', overload='default')>: <function asinh at 0x7fc7c3b86d40>,
     <OpOverload(op='aten.atan_', overload='default')>: <function atan at 0x7fc7c3b86dd0>,
     <OpOverload(op='aten.atanh_', overload='default')>: <function atanh at 0x7fc7c3b86e60>,
     <OpOverload(op='aten.atan2_', overload='default')>: <function atan2 at 0x7fc7c3b86ef0>,
     <OpOverload(op='aten.bitwise_and_', overload='Tensor')>: <function bitwise_and at 0x7fc7c3b86f80>,
     <OpOverload(op='aten.bitwise_and_', overload='Scalar')>: <function bitwise_and at 0x7fc7c3b86f80>,
     <OpOverload(op='aten.bitwise_left_shift_', overload='Tensor_Scalar')>: <function bitwise_left_shift at 0x7fc7c3b87010>,
     <OpOverload(op='aten.bitwise_left_shift_', overload='Tensor')>: <function bitwise_left_shift at 0x7fc7c3b87010>,
     <OpOverload(op='aten.bitwise_not_', overload='default')>: <function bitwise_not at 0x7fc7c3b870a0>,
     <OpOverload(op='aten.bitwise_or_', overload='Tensor')>: <function bitwise_or at 0x7fc7c3b87130>,
     <OpOverload(op='aten.bitwise_or_', overload='Scalar')>: <function bitwise_or at 0x7fc7c3b87130>,
     <OpOverload(op='aten.bitwise_right_shift_', overload='Tensor_Scalar')>: <function bitwise_right_shift at 0x7fc7c3b871c0>,
     <OpOverload(op='aten.bitwise_right_shift_', overload='Tensor')>: <function bitwise_right_shift at 0x7fc7c3b871c0>,
     <OpOverload(op='aten.bitwise_xor_', overload='Tensor')>: <function bitwise_xor at 0x7fc7c3b87250>,
     <OpOverload(op='aten.bitwise_xor_', overload='Scalar')>: <function bitwise_xor at 0x7fc7c3b87250>,
     <OpOverload(op='aten.ceil_', overload='default')>: <function ceil at 0x7fc7c3b872e0>,
     <OpOverload(op='aten.clamp_', overload='default')>: <function clamp at 0x7fc7c3b87370>,
     <OpOverload(op='aten.clamp_', overload='Tensor')>: <function clamp at 0x7fc7c3b87370>,
     <OpOverload(op='aten.clamp_min_', overload='default')>: <function clamp_min at 0x7fc7c3b87400>,
     <OpOverload(op='aten.clamp_min_', overload='Tensor')>: <function clamp_min at 0x7fc7c3b87400>,
     <OpOverload(op='aten.clamp_max_', overload='default')>: <function clamp_max at 0x7fc7c3b87490>,
     <OpOverload(op='aten.clamp_max_', overload='Tensor')>: <function clamp_max at 0x7fc7c3b87490>,
     <OpOverload(op='aten.conj_physical_', overload='default')>: <function conj_physical at 0x7fc7c3b87520>,
     <OpOverload(op='aten.copysign_', overload='Tensor')>: <function copysign at 0x7fc7c3b875b0>,
     <OpOverload(op='aten.copysign_', overload='Scalar')>: <function copysign at 0x7fc7c3b875b0>,
     <OpOverload(op='aten.cos_', overload='default')>: <function cos at 0x7fc7c3b87640>,
     <OpOverload(op='aten.cosh_', overload='default')>: <function cosh at 0x7fc7c3b876d0>,
     <OpOverload(op='aten.cumsum_', overload='default')>: <function cumsum at 0x7fc7c3b87760>,
     <OpOverload(op='aten.cumsum_', overload='dimname')>: <function cumsum at 0x7fc7c3b87760>,
     <OpOverload(op='aten.cumprod_', overload='default')>: <function cumprod at 0x7fc7c3b877f0>,
     <OpOverload(op='aten.cumprod_', overload='dimname')>: <function cumprod at 0x7fc7c3b877f0>,
     <OpOverload(op='aten.deg2rad_', overload='default')>: <function deg2rad at 0x7fc7c3b87880>,
     <OpOverload(op='aten.digamma_', overload='default')>: <function digamma at 0x7fc7c3b87910>,
     <OpOverload(op='aten.div_', overload='Tensor')>: <function div at 0x7fc7c3b879a0>,
     <OpOverload(op='aten.div_', overload='Tensor_mode')>: <function div at 0x7fc7c3b879a0>,
     <OpOverload(op='aten.div_', overload='Scalar')>: <function div at 0x7fc7c3b879a0>,
     <OpOverload(op='aten.div_', overload='Scalar_mode')>: <function div at 0x7fc7c3b879a0>,
     <OpOverload(op='aten.eq_', overload='Scalar')>: <function eq at 0x7fc7c3b87a30>,
     <OpOverload(op='aten.eq_', overload='Tensor')>: <function eq at 0x7fc7c3b87a30>,
     <OpOverload(op='aten.erf_', overload='default')>: <function erf at 0x7fc7c3b87ac0>,
     <OpOverload(op='aten.erfc_', overload='default')>: <function erfc at 0x7fc7c3b87b50>,
     <OpOverload(op='aten.erfinv_', overload='default')>: <function erfinv at 0x7fc7c3b87be0>,
     <OpOverload(op='aten.exp_', overload='default')>: <function exp at 0x7fc7c3b87c70>,
     <OpOverload(op='aten.exp2_', overload='default')>: <function exp2 at 0x7fc7c3b87d00>,
     <OpOverload(op='aten.expm1_', overload='default')>: <function expm1 at 0x7fc7c3b87d90>,
     <OpOverload(op='aten.float_power_', overload='Tensor')>: <function float_power at 0x7fc7c3b87e20>,
     <OpOverload(op='aten.float_power_', overload='Scalar')>: <function float_power at 0x7fc7c3b87e20>,
     <OpOverload(op='aten.floor_', overload='default')>: <function floor at 0x7fc7c3b87eb0>,
     <OpOverload(op='aten.floor_divide_', overload='Scalar')>: <function floor_divide at 0x7fc7c3b87f40>,
     <OpOverload(op='aten.floor_divide_', overload='Tensor')>: <function floor_divide at 0x7fc7c3b87f40>,
     <OpOverload(op='aten.fmod_', overload='Tensor')>: <function fmod at 0x7fc7c3bcc040>,
     <OpOverload(op='aten.fmod_', overload='Scalar')>: <function fmod at 0x7fc7c3bcc040>,
     <OpOverload(op='aten.frac_', overload='default')>: <function frac at 0x7fc7c3bcc0d0>,
     <OpOverload(op='aten.gcd_', overload='default')>: <function gcd at 0x7fc7c3bcc160>,
     <OpOverload(op='aten.ge_', overload='Scalar')>: <function ge at 0x7fc7c3bcc1f0>,
     <OpOverload(op='aten.ge_', overload='Tensor')>: <function ge at 0x7fc7c3bcc1f0>,
     <OpOverload(op='aten.gt_', overload='Scalar')>: <function gt at 0x7fc7c3bcc280>,
     <OpOverload(op='aten.gt_', overload='Tensor')>: <function gt at 0x7fc7c3bcc280>,
     <OpOverload(op='aten.heaviside_', overload='default')>: <function heaviside at 0x7fc7c3bcc310>,
     <OpOverload(op='aten.hypot_', overload='default')>: <function hypot at 0x7fc7c3bcc3a0>,
     <OpOverload(op='aten.igamma_', overload='default')>: <function igamma at 0x7fc7c3bcc430>,
     <OpOverload(op='aten.igammac_', overload='default')>: <function igammac at 0x7fc7c3bcc4c0>,
     <OpOverload(op='aten.i0_', overload='default')>: <function i0 at 0x7fc7c3bcc550>,
     <OpOverload(op='aten.lcm_', overload='default')>: <function lcm at 0x7fc7c3bcc5e0>,
     <OpOverload(op='aten.le_', overload='Scalar')>: <function le at 0x7fc7c3bcc670>,
     <OpOverload(op='aten.le_', overload='Tensor')>: <function le at 0x7fc7c3bcc670>,
     <OpOverload(op='aten.lerp_', overload='Scalar')>: <function lerp at 0x7fc7c3bcc700>,
     <OpOverload(op='aten.lerp_', overload='Tensor')>: <function lerp at 0x7fc7c3bcc700>,
     <OpOverload(op='aten.lgamma_', overload='default')>: <function lgamma at 0x7fc7c3bcc790>,
     <OpOverload(op='aten.log10_', overload='default')>: <function log10 at 0x7fc7c3bcc820>,
     <OpOverload(op='aten.log1p_', overload='default')>: <function log1p at 0x7fc7c3bcc8b0>,
     <OpOverload(op='aten.log2_', overload='default')>: <function log2 at 0x7fc7c3bcc940>,
     <OpOverload(op='aten.log_', overload='default')>: <function log at 0x7fc7c3bcc9d0>,
     <OpOverload(op='aten.logical_and_', overload='default')>: <function logical_and at 0x7fc7c3bcca60>,
     <OpOverload(op='aten.logical_not_', overload='default')>: <function logical_not at 0x7fc7c3bccaf0>,
     <OpOverload(op='aten.logical_or_', overload='default')>: <function logical_or at 0x7fc7c3bccb80>,
     <OpOverload(op='aten.logical_xor_', overload='default')>: <function logical_xor at 0x7fc7c3bccc10>,
     <OpOverload(op='aten.lt_', overload='Scalar')>: <function lt at 0x7fc7c3bccca0>,
     <OpOverload(op='aten.lt_', overload='Tensor')>: <function lt at 0x7fc7c3bccca0>,
     <OpOverload(op='aten.mul_', overload='Tensor')>: <function mul at 0x7fc7c3bccd30>,
     <OpOverload(op='aten.mul_', overload='Scalar')>: <function mul at 0x7fc7c3bccd30>,
     <OpOverload(op='aten.mvlgamma_', overload='default')>: <function _make_alias.<locals>._fn at 0x7fc7c3bccdc0>,
     <OpOverload(op='aten.nan_to_num_', overload='default')>: <function nan_to_num at 0x7fc7c3bcce50>,
     <OpOverload(op='aten.ne_', overload='Scalar')>: <function ne at 0x7fc7c3bccee0>,
     <OpOverload(op='aten.ne_', overload='Tensor')>: <function ne at 0x7fc7c3bccee0>,
     <OpOverload(op='aten.neg_', overload='default')>: <function neg at 0x7fc7c3bccf70>,
     <OpOverload(op='aten.nextafter_', overload='default')>: <function nextafter at 0x7fc7c3bcd000>,
     <OpOverload(op='aten.pow_', overload='Scalar')>: <function pow at 0x7fc7c3bcd090>,
     <OpOverload(op='aten.pow_', overload='Tensor')>: <function pow at 0x7fc7c3bcd090>,
     <OpOverload(op='aten.rad2deg_', overload='default')>: <function rad2deg at 0x7fc7c3bcd120>,
     <OpOverload(op='aten.reciprocal_', overload='default')>: <function reciprocal at 0x7fc7c3bcd1b0>,
     <OpOverload(op='aten.remainder_', overload='Tensor')>: <function remainder at 0x7fc7c3bcd240>,
     <OpOverload(op='aten.remainder_', overload='Scalar')>: <function remainder at 0x7fc7c3bcd240>,
     <OpOverload(op='aten.rsqrt_', overload='default')>: <function rsqrt at 0x7fc7c3bcd2d0>,
     <OpOverload(op='aten.sgn_', overload='default')>: <function sgn at 0x7fc7c3bcd360>,
     <OpOverload(op='aten.sigmoid_', overload='default')>: <function sigmoid at 0x7fc7c3bcd3f0>,
     <OpOverload(op='aten.sign_', overload='default')>: <function sign at 0x7fc7c3bcd480>,
     <OpOverload(op='aten.sin_', overload='default')>: <function sin at 0x7fc7c3bcd510>,
     <OpOverload(op='aten.sinc_', overload='default')>: <function sinc at 0x7fc7c3bcd5a0>,
     <OpOverload(op='aten.sinh_', overload='default')>: <function sinh at 0x7fc7c3bcd630>,
     <OpOverload(op='aten.sqrt_', overload='default')>: <function sqrt at 0x7fc7c3bcd6c0>,
     <OpOverload(op='aten.square_', overload='default')>: <function square at 0x7fc7c3bcd750>,
     <OpOverload(op='aten.sub_', overload='Tensor')>: <function sub at 0x7fc7c3bcd7e0>,
     <OpOverload(op='aten.sub_', overload='Scalar')>: <function sub at 0x7fc7c3bcd7e0>,
     <OpOverload(op='aten.tan_', overload='default')>: <function tan at 0x7fc7c3bcd870>,
     <OpOverload(op='aten.tanh_', overload='default')>: <function tanh at 0x7fc7c3bcd900>,
     <OpOverload(op='aten.tril_', overload='default')>: <function tril at 0x7fc7c3bcd990>,
     <OpOverload(op='aten.triu_', overload='default')>: <function triu at 0x7fc7c3bcda20>,
     <OpOverload(op='aten.true_divide_', overload='Tensor')>: <function true_divide at 0x7fc7c3bcdab0>,
     <OpOverload(op='aten.true_divide_', overload='Scalar')>: <function true_divide at 0x7fc7c3bcdab0>,
     <OpOverload(op='aten.trunc_', overload='default')>: <function trunc at 0x7fc7c3bcdb40>,
     <OpOverload(op='aten.xlogy_', overload='Tensor')>: <function xlogy at 0x7fc7c3bcdbd0>,
     <OpOverload(op='aten.xlogy_', overload='Scalar_Other')>: <function xlogy at 0x7fc7c3bcdbd0>,
     <OpOverload(op='aten.cauchy_', overload='default')>: <function cauchy at 0x7fc7c3bcdc60>,
     <OpOverload(op='aten.exponential_', overload='default')>: <function exponential at 0x7fc7c3bcdcf0>,
     <OpOverload(op='aten.geometric_', overload='default')>: <function geometric at 0x7fc7c3bcdd80>,
     <OpOverload(op='aten.log_normal_', overload='default')>: <function log_normal at 0x7fc7c3bcde10>,
     <OpOverload(op='aten.zero_', overload='default')>: <function zero at 0x7fc7c3bcdea0>,
     <OpOverload(op='aten.complex', overload='default')>: <function complex at 0x7fc7c3bced40>,
     <OpOverload(op='aten.complex', overload='out')>: <function complex at 0x7fc7c3bced40>,
     <OpOverload(op='aten.polar', overload='default')>: <function polar at 0x7fc7c3bceef0>,
     <OpOverload(op='aten.polar', overload='out')>: <function polar at 0x7fc7c3bceef0>,
     <OpOverload(op='aten.fft_fft', overload='default')>: <function fft at 0x7fc7c3bcfa30>,
     <OpOverload(op='aten.fft_fft', overload='out')>: <function fft at 0x7fc7c3bcfa30>,
     <OpOverload(op='aten.fft_ifft', overload='default')>: <function ifft at 0x7fc7c3bcfbe0>,
     <OpOverload(op='aten.fft_ifft', overload='out')>: <function ifft at 0x7fc7c3bcfbe0>,
     <OpOverload(op='aten.fft_rfft', overload='default')>: <function rfft at 0x7fc7c3bcfd90>,
     <OpOverload(op='aten.fft_rfft', overload='out')>: <function rfft at 0x7fc7c3bcfd90>,
     <OpOverload(op='aten.fft_irfft', overload='default')>: <function irfft at 0x7fc7c3bcff40>,
     <OpOverload(op='aten.fft_irfft', overload='out')>: <function irfft at 0x7fc7c3bcff40>,
     <OpOverload(op='aten.abs', overload='default')>: <function abs at 0x7fc7c3dd64d0>,
     <OpOverload(op='aten.abs', overload='out')>: <function abs at 0x7fc7c3dd64d0>,
     <OpOverload(op='aten.acos', overload='default')>: <function acos at 0x7fc7c3dd6830>,
     <OpOverload(op='aten.acos', overload='out')>: <function acos at 0x7fc7c3dd6830>,
     <OpOverload(op='aten.acosh', overload='default')>: <function acosh at 0x7fc7c3dd6b90>,
     <OpOverload(op='aten.acosh', overload='out')>: <function acosh at 0x7fc7c3dd6b90>,
     <OpOverload(op='aten.asin', overload='default')>: <function asin at 0x7fc7c3dd6ef0>,
     <OpOverload(op='aten.asin', overload='out')>: <function asin at 0x7fc7c3dd6ef0>,
     <OpOverload(op='aten.asinh', overload='default')>: <function asinh at 0x7fc7c3dd7250>,
     <OpOverload(op='aten.asinh', overload='out')>: <function asinh at 0x7fc7c3dd7250>,
     <OpOverload(op='aten.atan', overload='default')>: <function atan at 0x7fc7c3dd75b0>,
     <OpOverload(op='aten.atan', overload='out')>: <function atan at 0x7fc7c3dd75b0>,
     <OpOverload(op='aten.atanh', overload='default')>: <function atanh at 0x7fc7c3dd7910>,
     <OpOverload(op='aten.atanh', overload='out')>: <function atanh at 0x7fc7c3dd7910>,
     <OpOverload(op='aten.bitwise_not', overload='default')>: <function bitwise_not at 0x7fc7c3dd7c70>,
     <OpOverload(op='aten.bitwise_not', overload='out')>: <function bitwise_not at 0x7fc7c3dd7c70>,
     <OpOverload(op='aten.ceil', overload='default')>: <function ceil at 0x7fc7c3c1c040>,
     <OpOverload(op='aten.ceil', overload='out')>: <function ceil at 0x7fc7c3c1c040>,
     <OpOverload(op='aten.is_complex', overload='default')>: <function is_complex at 0x7fc7c3dd7d90>,
     <OpOverload(op='aten.conj_physical', overload='default')>: <function conj_physical at 0x7fc7c3c1c280>,
     <OpOverload(op='aten.conj_physical', overload='out')>: <function conj_physical at 0x7fc7c3c1c280>,
     <OpOverload(op='aten.cos', overload='default')>: <function cos at 0x7fc7c3c1c5e0>,
     <OpOverload(op='aten.cos', overload='out')>: <function cos at 0x7fc7c3c1c5e0>,
     <OpOverload(op='aten.cosh', overload='default')>: <function cosh at 0x7fc7c3c1c940>,
     <OpOverload(op='aten.cosh', overload='out')>: <function cosh at 0x7fc7c3c1c940>,
     <OpOverload(op='aten.digamma', overload='default')>: <function digamma at 0x7fc7c3c1cca0>,
     <OpOverload(op='aten.digamma', overload='out')>: <function digamma at 0x7fc7c3c1cca0>,
     <OpOverload(op='aten.erf', overload='default')>: <function erf at 0x7fc7c3c1d000>,
     <OpOverload(op='aten.erf', overload='out')>: <function erf at 0x7fc7c3c1d000>,
     <OpOverload(op='aten.erfinv', overload='default')>: <function erfinv at 0x7fc7c3c1d360>,
     <OpOverload(op='aten.erfinv', overload='out')>: <function erfinv at 0x7fc7c3c1d360>,
     <OpOverload(op='aten.erfc', overload='default')>: <function erfc at 0x7fc7c3c1d6c0>,
     <OpOverload(op='aten.erfc', overload='out')>: <function erfc at 0x7fc7c3c1d6c0>,
     <OpOverload(op='aten.exp', overload='default')>: <function exp at 0x7fc7c3c1da20>,
     <OpOverload(op='aten.exp', overload='out')>: <function exp at 0x7fc7c3c1da20>,
     <OpOverload(op='aten.expm1', overload='default')>: <function expm1 at 0x7fc7c3c1dd80>,
     <OpOverload(op='aten.expm1', overload='out')>: <function expm1 at 0x7fc7c3c1dd80>,
     <OpOverload(op='aten.exp2', overload='default')>: <function exp2 at 0x7fc7c3c1e0e0>,
     <OpOverload(op='aten.exp2', overload='out')>: <function exp2 at 0x7fc7c3c1e0e0>,
     <OpOverload(op='aten.zero', overload='default')>: <function zero at 0x7fc7c3c1e560>,
     <OpOverload(op='aten.zero', overload='out')>: <function zero at 0x7fc7c3c1e560>,
     <OpOverload(op='aten.floor', overload='default')>: <function floor at 0x7fc7c3c1e8c0>,
     <OpOverload(op='aten.floor', overload='out')>: <function floor at 0x7fc7c3c1e8c0>,
     <OpOverload(op='aten.frac', overload='default')>: <function frac at 0x7fc7c3c1ec20>,
     <OpOverload(op='aten.frac', overload='out')>: <function frac at 0x7fc7c3c1ec20>,
     <OpOverload(op='aten.isinf', overload='default')>: <function isinf at 0x7fc7c3c1f370>,
     <OpOverload(op='aten.isinf', overload='out')>: <function isinf at 0x7fc7c3c1f370>,
     <OpOverload(op='aten.isposinf', overload='default')>: <function isposinf at 0x7fc7c3c1f6d0>,
     <OpOverload(op='aten.isposinf', overload='out')>: <function isposinf at 0x7fc7c3c1f6d0>,
     <OpOverload(op='aten.isneginf', overload='default')>: <function isneginf at 0x7fc7c3c1fa30>,
     <OpOverload(op='aten.isneginf', overload='out')>: <function isneginf at 0x7fc7c3c1fa30>,
     <OpOverload(op='aten.isnan', overload='default')>: <function isnan at 0x7fc7c3c1fd90>,
     <OpOverload(op='aten.isnan', overload='out')>: <function isnan at 0x7fc7c3c1fd90>,
     <OpOverload(op='aten.i0', overload='default')>: <function i0 at 0x7fc7c3c48550>,
     <OpOverload(op='aten.i0', overload='out')>: <function i0 at 0x7fc7c3c48550>,
     <OpOverload(op='aten.lgamma', overload='default')>: <function lgamma at 0x7fc7c3c488b0>,
     <OpOverload(op='aten.lgamma', overload='out')>: <function lgamma at 0x7fc7c3c488b0>,
     <OpOverload(op='aten.log', overload='default')>: <function log at 0x7fc7c3c48c10>,
     <OpOverload(op='aten.log', overload='out')>: <function log at 0x7fc7c3c48c10>,
     <OpOverload(op='aten.log1p', overload='default')>: <function log1p at 0x7fc7c3c48f70>,
     <OpOverload(op='aten.log1p', overload='out')>: <function log1p at 0x7fc7c3c48f70>,
     <OpOverload(op='aten.log2', overload='default')>: <function log2 at 0x7fc7c3c492d0>,
     <OpOverload(op='aten.log2', overload='out')>: <function log2 at 0x7fc7c3c492d0>,
     <OpOverload(op='aten.log10', overload='default')>: <function log10 at 0x7fc7c3c49630>,
     <OpOverload(op='aten.log10', overload='out')>: <function log10 at 0x7fc7c3c49630>,
     <OpOverload(op='aten.logsumexp', overload='default')>: <function logsumexp at 0x7fc7c3c49a20>,
     <OpOverload(op='aten.logsumexp', overload='names')>: <function logsumexp at 0x7fc7c3c49a20>,
     <OpOverload(op='aten.logsumexp', overload='names_out')>: <function logsumexp at 0x7fc7c3c49a20>,
     <OpOverload(op='aten.logsumexp', overload='out')>: <function logsumexp at 0x7fc7c3c49a20>,
     <OpOverload(op='aten.nan_to_num', overload='default')>: <function nan_to_num at 0x7fc7c3c49bd0>,
     <OpOverload(op='aten.nan_to_num', overload='out')>: <function nan_to_num at 0x7fc7c3c49bd0>,
     <OpOverload(op='aten.neg', overload='default')>: <function neg at 0x7fc7c3c49fc0>,
     <OpOverload(op='aten.neg', overload='out')>: <function neg at 0x7fc7c3c49fc0>,
     <OpOverload(op='aten.reciprocal', overload='default')>: <function reciprocal at 0x7fc7c3c4a440>,
     <OpOverload(op='aten.reciprocal', overload='out')>: <function reciprocal at 0x7fc7c3c4a440>,
     <OpOverload(op='aten.round', overload='default')>: <function round at 0x7fc7c3c4a680>,
     <OpOverload(op='aten.round', overload='decimals')>: <function round at 0x7fc7c3c4a680>,
     <OpOverload(op='aten.round', overload='out')>: <function round at 0x7fc7c3c4a680>,
     <OpOverload(op='aten.round', overload='decimals_out')>: <function round at 0x7fc7c3c4a680>,
     <OpOverload(op='aten.rsqrt', overload='default')>: <function rsqrt at 0x7fc7c3c4a9e0>,
     <OpOverload(op='aten.rsqrt', overload='out')>: <function rsqrt at 0x7fc7c3c4a9e0>,
     <OpOverload(op='aten.sigmoid', overload='default')>: <function sigmoid at 0x7fc7c3c4ad40>,
     <OpOverload(op='aten.sigmoid', overload='out')>: <function sigmoid at 0x7fc7c3c4ad40>,
     <OpOverload(op='aten.sgn', overload='default')>: <function sgn at 0x7fc7c3c4b0a0>,
     <OpOverload(op='aten.sgn', overload='out')>: <function sgn at 0x7fc7c3c4b0a0>,
     <OpOverload(op='aten.sign', overload='default')>: <function sign at 0x7fc7c3c4b400>,
     <OpOverload(op='aten.sign', overload='out')>: <function sign at 0x7fc7c3c4b400>,
     <OpOverload(op='aten.signbit', overload='default')>: <function signbit at 0x7fc7c3c4b760>,
     <OpOverload(op='aten.signbit', overload='out')>: <function signbit at 0x7fc7c3c4b760>,
     <OpOverload(op='aten.sin', overload='default')>: <function sin at 0x7fc7c3c4bac0>,
     <OpOverload(op='aten.sin', overload='out')>: <function sin at 0x7fc7c3c4bac0>,
     <OpOverload(op='aten.sinc', overload='default')>: <function sinc at 0x7fc7c3c4be20>,
     <OpOverload(op='aten.sinc', overload='out')>: <function sinc at 0x7fc7c3c4be20>,
     <OpOverload(op='aten.sinh', overload='default')>: <function sinh at 0x7fc7c3c741f0>,
     <OpOverload(op='aten.sinh', overload='out')>: <function sinh at 0x7fc7c3c741f0>,
     <OpOverload(op='aten.sqrt', overload='default')>: <function sqrt at 0x7fc7c3c74550>,
     <OpOverload(op='aten.sqrt', overload='out')>: <function sqrt at 0x7fc7c3c74550>,
     <OpOverload(op='aten.tan', overload='default')>: <function tan at 0x7fc7c3c74c10>,
     <OpOverload(op='aten.tan', overload='out')>: <function tan at 0x7fc7c3c74c10>,
     <OpOverload(op='aten.tanh', overload='default')>: <function tanh at 0x7fc7c3c74f70>,
     <OpOverload(op='aten.tanh', overload='out')>: <function tanh at 0x7fc7c3c74f70>,
     <OpOverload(op='aten.trunc', overload='default')>: <function trunc at 0x7fc7c3c752d0>,
     <OpOverload(op='aten.trunc', overload='out')>: <function trunc at 0x7fc7c3c752d0>,
     <OpOverload(op='aten.add', overload='Tensor')>: <function add at 0x7fc7c3c75630>,
     <OpOverload(op='aten.add', overload='Scalar')>: <function add at 0x7fc7c3c75630>,
     <OpOverload(op='aten.add', overload='out')>: <function add at 0x7fc7c3c75630>,
     <OpOverload(op='aten.add', overload='Scalar_out')>: <function add at 0x7fc7c3c75630>,
     <OpOverload(op='aten.atan2', overload='default')>: <function atan2 at 0x7fc7c3c75900>,
     <OpOverload(op='aten.atan2', overload='out')>: <function atan2 at 0x7fc7c3c75900>,
     <OpOverload(op='aten.bitwise_and', overload='Tensor')>: <function bitwise_and at 0x7fc7c3c75bd0>,
     <OpOverload(op='aten.bitwise_and', overload='Scalar')>: <function bitwise_and at 0x7fc7c3c75bd0>,
     <OpOverload(op='aten.bitwise_and', overload='Scalar_Tensor')>: <function bitwise_and at 0x7fc7c3c75bd0>,
     <OpOverload(op='aten.bitwise_and', overload='Tensor_out')>: <function bitwise_and at 0x7fc7c3c75bd0>,
     <OpOverload(op='aten.bitwise_and', overload='Scalar_out')>: <function bitwise_and at 0x7fc7c3c75bd0>,
     <OpOverload(op='aten.bitwise_and', overload='Scalar_Tensor_out')>: <function bitwise_and at 0x7fc7c3c75bd0>,
     <OpOverload(op='aten.bitwise_left_shift', overload='Tensor')>: <function bitwise_left_shift at 0x7fc7c3c75ea0>,
     <OpOverload(op='aten.bitwise_left_shift', overload='Tensor_Scalar')>: <function bitwise_left_shift at 0x7fc7c3c75ea0>,
     <OpOverload(op='aten.bitwise_left_shift', overload='Scalar_Tensor')>: <function bitwise_left_shift at 0x7fc7c3c75ea0>,
     <OpOverload(op='aten.bitwise_left_shift', overload='Tensor_out')>: <function bitwise_left_shift at 0x7fc7c3c75ea0>,
     <OpOverload(op='aten.bitwise_left_shift', overload='Tensor_Scalar_out')>: <function bitwise_left_shift at 0x7fc7c3c75ea0>,
     <OpOverload(op='aten.bitwise_left_shift', overload='Scalar_Tensor_out')>: <function bitwise_left_shift at 0x7fc7c3c75ea0>,
     <OpOverload(op='aten.bitwise_or', overload='Tensor')>: <function bitwise_or at 0x7fc7c3c76170>,
     <OpOverload(op='aten.bitwise_or', overload='Scalar')>: <function bitwise_or at 0x7fc7c3c76170>,
     <OpOverload(op='aten.bitwise_or', overload='Scalar_Tensor')>: <function bitwise_or at 0x7fc7c3c76170>,
     <OpOverload(op='aten.bitwise_or', overload='Tensor_out')>: <function bitwise_or at 0x7fc7c3c76170>,
     <OpOverload(op='aten.bitwise_or', overload='Scalar_out')>: <function bitwise_or at 0x7fc7c3c76170>,
     <OpOverload(op='aten.bitwise_or', overload='Scalar_Tensor_out')>: <function bitwise_or at 0x7fc7c3c76170>,
     <OpOverload(op='aten.bitwise_right_shift', overload='Tensor')>: <function bitwise_right_shift at 0x7fc7c3c76440>,
     <OpOverload(op='aten.bitwise_right_shift', overload='Tensor_Scalar')>: <function bitwise_right_shift at 0x7fc7c3c76440>,
     <OpOverload(op='aten.bitwise_right_shift', overload='Scalar_Tensor')>: <function bitwise_right_shift at 0x7fc7c3c76440>,
     <OpOverload(op='aten.bitwise_right_shift', overload='Tensor_out')>: <function bitwise_right_shift at 0x7fc7c3c76440>,
     <OpOverload(op='aten.bitwise_right_shift', overload='Tensor_Scalar_out')>: <function bitwise_right_shift at 0x7fc7c3c76440>,
     <OpOverload(op='aten.bitwise_right_shift', overload='Scalar_Tensor_out')>: <function bitwise_right_shift at 0x7fc7c3c76440>,
     <OpOverload(op='aten.bitwise_xor', overload='Tensor')>: <function bitwise_xor at 0x7fc7c3c76710>,
     <OpOverload(op='aten.bitwise_xor', overload='Scalar')>: <function bitwise_xor at 0x7fc7c3c76710>,
     <OpOverload(op='aten.bitwise_xor', overload='Scalar_Tensor')>: <function bitwise_xor at 0x7fc7c3c76710>,
     <OpOverload(op='aten.bitwise_xor', overload='Tensor_out')>: <function bitwise_xor at 0x7fc7c3c76710>,
     <OpOverload(op='aten.bitwise_xor', overload='Scalar_out')>: <function bitwise_xor at 0x7fc7c3c76710>,
     <OpOverload(op='aten.bitwise_xor', overload='Scalar_Tensor_out')>: <function bitwise_xor at 0x7fc7c3c76710>,
     <OpOverload(op='aten.copysign', overload='Tensor')>: <function copysign at 0x7fc7c3c769e0>,
     <OpOverload(op='aten.copysign', overload='Scalar')>: <function copysign at 0x7fc7c3c769e0>,
     <OpOverload(op='aten.copysign', overload='out')>: <function copysign at 0x7fc7c3c769e0>,
     <OpOverload(op='aten.copysign', overload='Scalar_out')>: <function copysign at 0x7fc7c3c769e0>,
     <OpOverload(op='aten.div', overload='Tensor_mode')>: <function div at 0x7fc7c3c76b90>,
     <OpOverload(op='aten.div', overload='Scalar_mode')>: <function div at 0x7fc7c3c76b90>,
     <OpOverload(op='aten.div', overload='out')>: <function div at 0x7fc7c3c76b90>,
     <OpOverload(op='aten.div', overload='out_mode')>: <function div at 0x7fc7c3c76b90>,
     <OpOverload(op='aten.div', overload='Scalar_out')>: <function div at 0x7fc7c3c76b90>,
     <OpOverload(op='aten.div', overload='Scalar_mode_out')>: <function div at 0x7fc7c3c76b90>,
     <OpOverload(op='aten.eq', overload='Tensor')>: <function eq at 0x7fc7c3c76e60>,
     <OpOverload(op='aten.eq', overload='Scalar')>: <function eq at 0x7fc7c3c76e60>,
     <OpOverload(op='aten.eq', overload='Scalar_out')>: <function eq at 0x7fc7c3c76e60>,
     <OpOverload(op='aten.eq', overload='Tensor_out')>: <function eq at 0x7fc7c3c76e60>,
     <OpOverload(op='aten.pow', overload='Tensor_Tensor')>: <function pow at 0x7fc7c3c77130>,
     <OpOverload(op='aten.pow', overload='Tensor_Scalar')>: <function pow at 0x7fc7c3c77130>,
     <OpOverload(op='aten.pow', overload='Scalar')>: <function pow at 0x7fc7c3c77130>,
     <OpOverload(op='aten.pow', overload='Scalar_out')>: <function pow at 0x7fc7c3c77130>,
     <OpOverload(op='aten.pow', overload='Tensor_Scalar_out')>: <function pow at 0x7fc7c3c77130>,
     <OpOverload(op='aten.pow', overload='Tensor_Tensor_out')>: <function pow at 0x7fc7c3c77130>,
     <OpOverload(op='aten.fmax', overload='default')>: <function fmax at 0x7fc7c3c779a0>,
     <OpOverload(op='aten.fmax', overload='out')>: <function fmax at 0x7fc7c3c779a0>,
     <OpOverload(op='aten.fmin', overload='default')>: <function fmin at 0x7fc7c3c77c70>,
     <OpOverload(op='aten.fmin', overload='out')>: <function fmin at 0x7fc7c3c77c70>,
     <OpOverload(op='aten.fmod', overload='Tensor')>: <function fmod at 0x7fc7c3c77f40>,
     <OpOverload(op='aten.fmod', overload='Scalar')>: <function fmod at 0x7fc7c3c77f40>,
     <OpOverload(op='aten.fmod', overload='Tensor_out')>: <function fmod at 0x7fc7c3c77f40>,
     <OpOverload(op='aten.fmod', overload='Scalar_out')>: <function fmod at 0x7fc7c3c77f40>,
     <OpOverload(op='aten.frexp', overload='Tensor_out')>: <function frexp at 0x7fc7c3cbc040>,
     <OpOverload(op='aten.frexp', overload='Tensor')>: <function frexp at 0x7fc7c3cbc040>,
     <OpOverload(op='aten.gcd', overload='default')>: <function gcd at 0x7fc7c3cbc8b0>,
     <OpOverload(op='aten.gcd', overload='out')>: <function gcd at 0x7fc7c3cbc8b0>,
     <OpOverload(op='aten.ge', overload='Tensor')>: <function ge at 0x7fc7c3cbcb80>,
     <OpOverload(op='aten.ge', overload='Scalar')>: <function ge at 0x7fc7c3cbcb80>,
     <OpOverload(op='aten.ge', overload='Scalar_out')>: <function ge at 0x7fc7c3cbcb80>,
     <OpOverload(op='aten.ge', overload='Tensor_out')>: <function ge at 0x7fc7c3cbcb80>,
     <OpOverload(op='aten.gt', overload='Tensor')>: <function gt at 0x7fc7c3cbce50>,
     <OpOverload(op='aten.gt', overload='Scalar')>: <function gt at 0x7fc7c3cbce50>,
     <OpOverload(op='aten.gt', overload='Scalar_out')>: <function gt at 0x7fc7c3cbce50>,
     <OpOverload(op='aten.gt', overload='Tensor_out')>: <function gt at 0x7fc7c3cbce50>,
     <OpOverload(op='aten.heaviside', overload='default')>: <function heaviside at 0x7fc7c3cbd120>,
     <OpOverload(op='aten.heaviside', overload='out')>: <function heaviside at 0x7fc7c3cbd120>,
     <OpOverload(op='aten.hypot', overload='default')>: <function hypot at 0x7fc7c3cbd3f0>,
     <OpOverload(op='aten.hypot', overload='out')>: <function hypot at 0x7fc7c3cbd3f0>,
     <OpOverload(op='aten.igamma', overload='default')>: <function igamma at 0x7fc7c3cbd6c0>,
     <OpOverload(op='aten.igamma', overload='out')>: <function igamma at 0x7fc7c3cbd6c0>,
     <OpOverload(op='aten.igammac', overload='default')>: <function igammac at 0x7fc7c3cbd990>,
     <OpOverload(op='aten.igammac', overload='out')>: <function igammac at 0x7fc7c3cbd990>,
     <OpOverload(op='aten.lcm', overload='default')>: <function lcm at 0x7fc7c3cbdea0>,
     <OpOverload(op='aten.lcm', overload='out')>: <function lcm at 0x7fc7c3cbdea0>,
     <OpOverload(op='aten.le', overload='Tensor')>: <function le at 0x7fc7c3cbe170>,
     <OpOverload(op='aten.le', overload='Scalar')>: <function le at 0x7fc7c3cbe170>,
     <OpOverload(op='aten.le', overload='Scalar_out')>: <function le at 0x7fc7c3cbe170>,
     <OpOverload(op='aten.le', overload='Tensor_out')>: <function le at 0x7fc7c3cbe170>,
     <OpOverload(op='aten.logaddexp', overload='default')>: <function logaddexp at 0x7fc7c3cbe440>,
     <OpOverload(op='aten.logaddexp', overload='out')>: <function logaddexp at 0x7fc7c3cbe440>,
     <OpOverload(op='aten.logaddexp2', overload='default')>: <function logaddexp2 at 0x7fc7c3cbe710>,
     <OpOverload(op='aten.logaddexp2', overload='out')>: <function logaddexp2 at 0x7fc7c3cbe710>,
     <OpOverload(op='aten.logical_and', overload='default')>: <function logical_and at 0x7fc7c3cbe9e0>,
     <OpOverload(op='aten.logical_and', overload='out')>: <function logical_and at 0x7fc7c3cbe9e0>,
     <OpOverload(op='aten.logical_not', overload='default')>: <function logical_not at 0x7fc7c3cbed40>,
     <OpOverload(op='aten.logical_not', overload='out')>: <function logical_not at 0x7fc7c3cbed40>,
     <OpOverload(op='aten.logical_or', overload='default')>: <function logical_or at 0x7fc7c3cbf010>,
     <OpOverload(op='aten.logical_or', overload='out')>: <function logical_or at 0x7fc7c3cbf010>,
     <OpOverload(op='aten.logical_xor', overload='default')>: <function logical_xor at 0x7fc7c3cbf2e0>,
     <OpOverload(op='aten.logical_xor', overload='out')>: <function logical_xor at 0x7fc7c3cbf2e0>,
     <OpOverload(op='aten.lt', overload='Tensor')>: <function lt at 0x7fc7c3cbf5b0>,
     <OpOverload(op='aten.lt', overload='Scalar')>: <function lt at 0x7fc7c3cbf5b0>,
     <OpOverload(op='aten.lt', overload='Scalar_out')>: <function lt at 0x7fc7c3cbf5b0>,
     <OpOverload(op='aten.lt', overload='Tensor_out')>: <function lt at 0x7fc7c3cbf5b0>,
     <OpOverload(op='aten.maximum', overload='default')>: <function maximum at 0x7fc7c3cbf880>,
     <OpOverload(op='aten.maximum', overload='out')>: <function maximum at 0x7fc7c3cbf880>,
     <OpOverload(op='aten.minimum', overload='default')>: <function minimum at 0x7fc7c3cbfb50>,
     <OpOverload(op='aten.minimum', overload='out')>: <function minimum at 0x7fc7c3cbfb50>,
     <OpOverload(op='aten.mul', overload='out')>: <function mul at 0x7fc7c3cbfe20>,
     <OpOverload(op='aten.mul', overload='Scalar_out')>: <function mul at 0x7fc7c3cbfe20>,
     <OpOverload(op='aten.ne', overload='Tensor')>: <function ne at 0x7fc7c3cec160>,
     <OpOverload(op='aten.ne', overload='Scalar')>: <function ne at 0x7fc7c3cec160>,
     <OpOverload(op='aten.ne', overload='Scalar_out')>: <function ne at 0x7fc7c3cec160>,
     <OpOverload(op='aten.ne', overload='Tensor_out')>: <function ne at 0x7fc7c3cec160>,
     <OpOverload(op='aten.nextafter', overload='default')>: <function nextafter at 0x7fc7c3cec430>,
     <OpOverload(op='aten.nextafter', overload='out')>: <function nextafter at 0x7fc7c3cec430>,
     <OpOverload(op='aten.remainder', overload='Tensor')>: <function remainder at 0x7fc7c3cec700>,
     <OpOverload(op='aten.remainder', overload='Scalar')>: <function remainder at 0x7fc7c3cec700>,
     <OpOverload(op='aten.remainder', overload='Scalar_Tensor')>: <function remainder at 0x7fc7c3cec700>,
     <OpOverload(op='aten.remainder', overload='Tensor_out')>: <function remainder at 0x7fc7c3cec700>,
     <OpOverload(op='aten.remainder', overload='Scalar_out')>: <function remainder at 0x7fc7c3cec700>,
     <OpOverload(op='aten.remainder', overload='Scalar_Tensor_out')>: <function remainder at 0x7fc7c3cec700>,
     <OpOverload(op='aten.rsub', overload='Tensor')>: <function rsub at 0x7fc7c3cec8b0>,
     <OpOverload(op='aten.rsub', overload='Scalar')>: <function rsub at 0x7fc7c3cec8b0>,
     <OpOverload(op='aten.rsub', overload='Tensor_out')>: <function rsub at 0x7fc7c3cec8b0>,
     <OpOverload(op='aten.rsub', overload='Scalar_out')>: <function rsub at 0x7fc7c3cec8b0>,
     <OpOverload(op='aten.sub', overload='Tensor')>: <function sub at 0x7fc7c3cecaf0>,
     <OpOverload(op='aten.sub', overload='Scalar')>: <function sub at 0x7fc7c3cecaf0>,
     <OpOverload(op='aten.sub', overload='out')>: <function sub at 0x7fc7c3cecaf0>,
     <OpOverload(op='aten.sub', overload='Scalar_out')>: <function sub at 0x7fc7c3cecaf0>,
     <OpOverload(op='aten.xlogy', overload='Tensor')>: <function xlogy at 0x7fc7c3ced000>,
     <OpOverload(op='aten.xlogy', overload='Scalar_Other')>: <function xlogy at 0x7fc7c3ced000>,
     <OpOverload(op='aten.xlogy', overload='Scalar_Self')>: <function xlogy at 0x7fc7c3ced000>,
     <OpOverload(op='aten.xlogy', overload='OutTensor')>: <function xlogy at 0x7fc7c3ced000>,
     <OpOverload(op='aten.xlogy', overload='OutScalar_Self')>: <function xlogy at 0x7fc7c3ced000>,
     <OpOverload(op='aten.xlogy', overload='OutScalar_Other')>: <function xlogy at 0x7fc7c3ced000>,
     <OpOverload(op='aten.log_sigmoid_backward', overload='grad_input')>: <function log_sigmoid_backward at 0x7fc7c3ee2b00>,
     <OpOverload(op='aten.mse_loss', overload='default')>: <function mse_loss at 0x7fc7c3ee30a0>,
     <OpOverload(op='aten.mse_loss', overload='out')>: <function mse_loss at 0x7fc7c3ee30a0>,
     <OpOverload(op='aten.mse_loss_backward', overload='default')>: <function mse_loss_backward at 0x7fc7c3ee3130>,
     <OpOverload(op='aten.mse_loss_backward', overload='grad_input')>: <function mse_loss_backward at 0x7fc7c3ee3130>,
     <OpOverload(op='aten.smooth_l1_loss_backward', overload='default')>: <function smooth_l1_loss_backward at 0x7fc7c3ee3640>,
     <OpOverload(op='aten.smooth_l1_loss', overload='default')>: <function smooth_l1_loss at 0x7fc7c3ee35b0>,
     <OpOverload(op='aten.smooth_l1_loss_backward', overload='grad_input')>: <function smooth_l1_loss_backward_out at 0x7fc7c3ee3760>,
     <OpOverload(op='aten.smooth_l1_loss', overload='out')>: <function smooth_l1_loss at 0x7fc7c3ee35b0>,
     <OpOverload(op='aten.huber_loss_backward', overload='default')>: <function huber_loss_backward at 0x7fc7c3ee3880>,
     <OpOverload(op='aten.huber_loss_backward', overload='out')>: <function huber_loss_backward_out at 0x7fc7c3ee39a0>,
     <OpOverload(op='aten.glu_backward', overload='default')>: <function glu_backward at 0x7fc7c3ee3b50>,
     <OpOverload(op='aten.glu_backward', overload='grad_input')>: <function glu_backward at 0x7fc7c3ee3b50>,
     <OpOverload(op='aten.nll_loss_backward', overload='default')>: <function nll_loss_backward at 0x7fc7c3ee3e20>,
     <OpOverload(op='aten.nll_loss_backward', overload='grad_input')>: <function nll_loss_backward at 0x7fc7c3ee3e20>,
     <OpOverload(op='aten.nll_loss2d_backward', overload='default')>: <function nll_loss2d_backward at 0x7fc7c3d100d0>,
     <OpOverload(op='aten.nll_loss2d_backward', overload='grad_input')>: <function nll_loss2d_backward at 0x7fc7c3d100d0>,
     <OpOverload(op='aten.binary_cross_entropy', overload='default')>: <function binary_cross_entropy at 0x7fc7c3d104c0>,
     <OpOverload(op='aten.binary_cross_entropy', overload='out')>: <function binary_cross_entropy at 0x7fc7c3d104c0>,
     <OpOverload(op='aten.binary_cross_entropy_backward', overload='default')>: <function binary_cross_entropy_backward at 0x7fc7c3d10550>,
     <OpOverload(op='aten.binary_cross_entropy_backward', overload='grad_input')>: <function binary_cross_entropy_backward at 0x7fc7c3d10550>,
     <OpOverload(op='aten.soft_margin_loss', overload='default')>: <function soft_margin_loss at 0x7fc7c3d109d0>,
     <OpOverload(op='aten.soft_margin_loss', overload='out')>: <function soft_margin_loss at 0x7fc7c3d109d0>,
     <OpOverload(op='aten.soft_margin_loss_backward', overload='default')>: <function soft_margin_loss_backward at 0x7fc7c3d10a60>,
     <OpOverload(op='aten.soft_margin_loss_backward', overload='grad_input')>: <function soft_margin_loss_backward at 0x7fc7c3d10a60>,
     <OpOverload(op='aten.dist', overload='default')>: <function dist at 0x7fc7c3d10e50>,
     <OpOverload(op='aten.dist', overload='out')>: <function dist at 0x7fc7c3d10e50>,
     <OpOverload(op='aten._euclidean_dist', overload='default')>: <function _euclidean_dist at 0x7fc7c3d11000>,
     <OpOverload(op='aten._euclidean_dist', overload='out')>: <function _euclidean_dist at 0x7fc7c3d11000>,
     <OpOverload(op='aten.slice_backward', overload='out')>: <function slice_backward at 0x7fc7c3d111b0>,
     <OpOverload(op='aten.select_backward', overload='default')>: <function select_backward at 0x7fc7c3d113f0>,
     <OpOverload(op='aten.diagonal_backward', overload='default')>: <function diagonal_backward at 0x7fc7c3d115a0>,
     <OpOverload(op='aten.diagonal_backward', overload='out')>: <function diagonal_backward at 0x7fc7c3d115a0>,
     <OpOverload(op='aten._softmax_backward_data', overload='default')>: <function _softmax_backward_data at 0x7fc7c3d116c0>,
     <OpOverload(op='aten._softmax_backward_data', overload='out')>: <function _softmax_backward_data at 0x7fc7c3d116c0>,
     <OpOverload(op='aten._log_softmax_backward_data', overload='default')>: <function _log_softmax_backward_data at 0x7fc7c3d11b40>,
     <OpOverload(op='aten._log_softmax_backward_data', overload='out')>: <function _log_softmax_backward_data at 0x7fc7c3d11b40>,
     <OpOverload(op='aten.im2col', overload='default')>: <function im2col at 0x7fc7c3d11d80>,
     <OpOverload(op='aten.im2col', overload='out')>: <function im2col at 0x7fc7c3d11d80>,
     <OpOverload(op='aten.col2im', overload='default')>: <function col2im at 0x7fc7c3d11fc0>,
     <OpOverload(op='aten.col2im', overload='out')>: <function col2im at 0x7fc7c3d11fc0>,
     <OpOverload(op='aten.logit_backward', overload='default')>: <function logit_backward at 0x7fc7c3d123b0>,
     <OpOverload(op='aten.native_dropout_backward', overload='default')>: <function native_dropout_backward at 0x7fc7c3d12170>,
     <OpOverload(op='aten.native_dropout_backward', overload='out')>: <function native_dropout_backward at 0x7fc7c3d12170>,
     <OpOverload(op='aten.unfold_backward', overload='default')>: <function unfold_backward at 0x7fc7c3d12320>,
     <OpOverload(op='aten.unfold_backward', overload='out')>: <function unfold_backward at 0x7fc7c3d12320>,
     <OpOverload(op='aten.native_dropout', overload='out')>: <function native_dropout at 0x7fc7c3d124d0>,
     <OpOverload(op='aten.native_dropout', overload='default')>: <function native_dropout at 0x7fc7c3d124d0>,
     <OpOverload(op='aten._softmax', overload='default')>: <function _softmax at 0x7fc7c3d12cb0>,
     <OpOverload(op='aten._softmax', overload='out')>: <function _softmax at 0x7fc7c3d12cb0>,
     <OpOverload(op='aten._log_softmax', overload='default')>: <function _log_softmax at 0x7fc7c3d12e60>,
     <OpOverload(op='aten._log_softmax', overload='out')>: <function _log_softmax at 0x7fc7c3d12e60>,
     <OpOverload(op='aten._chunk_cat', overload='default')>: <function _chunk_cat at 0x7fc7c3d13490>,
     <OpOverload(op='aten.embedding', overload='default')>: <function embedding at 0x7fc7c3d13010>,
     <OpOverload(op='aten.embedding', overload='out')>: <function embedding at 0x7fc7c3d13010>,
     <OpOverload(op='aten._chunk_cat', overload='out')>: <function _chunk_cat at 0x7fc7c3d13490>,
     <OpOverload(op='aten.embedding_dense_backward', overload='default')>: <function embedding_dense_backward at 0x7fc7c3d131c0>,
     <OpOverload(op='aten.embedding_dense_backward', overload='out')>: <function embedding_dense_backward at 0x7fc7c3d131c0>,
     <OpOverload(op='aten.split_with_sizes_copy', overload='out')>: <function split_with_sizes_copy at 0x7fc7c3d135b0>,
     <OpOverload(op='aten.split_with_sizes_copy', overload='default')>: <function split_with_sizes_copy at 0x7fc7c3d135b0>,
     <OpOverload(op='aten.split_with_sizes', overload='default')>: <function split_with_sizes at 0x7fc7c3d13520>,
     <OpOverload(op='aten.unsafe_split', overload='Tensor')>: <function unsafe_split at 0x7fc7c3d13640>,
     <OpOverload(op='aten.unsafe_split_with_sizes', overload='default')>: <function unsafe_split_with_sizes at 0x7fc7c3d136d0>,
     <OpOverload(op='aten.split', overload='Tensor')>: <function split at 0x7fc7c3d13760>,
     <OpOverload(op='aten.addmm', overload='default')>: <function addmm at 0x7fc7c3d13ac0>,
     <OpOverload(op='aten.addmm', overload='out')>: <function addmm at 0x7fc7c3d13ac0>,
     <OpOverload(op='aten.native_group_norm_backward', overload='default')>: <function native_group_norm_backward at 0x7fc7c3d40040>,
     <OpOverload(op='aten._addmm_activation', overload='default')>: <function _addmm_activation at 0x7fc7c3d13d00>,
     <OpOverload(op='aten._addmm_activation', overload='out')>: <function _addmm_activation at 0x7fc7c3d13d00>,
     <OpOverload(op='aten.native_group_norm_backward', overload='out')>: <function native_group_norm_backward_out at 0x7fc7c3d400d0>,
     <OpOverload(op='aten.addmv', overload='default')>: <function addmv at 0x7fc7c3d13f40>,
     <OpOverload(op='aten.addmv', overload='out')>: <function addmv at 0x7fc7c3d13f40>,
     <OpOverload(op='aten.native_layer_norm_backward', overload='default')>: <function native_layer_norm_backward at 0x7fc7c3d401f0>,
     <OpOverload(op='aten.native_layer_norm_backward', overload='out')>: <function native_layer_norm_backward_out at 0x7fc7c3d40280>,
     <OpOverload(op='aten._batch_norm_with_update', overload='default')>: <function _batch_norm_with_update at 0x7fc7c3d40e50>,
     <OpOverload(op='aten._native_batch_norm_legit_functional', overload='default')>: <function _native_batch_norm_legit_functional at 0x7fc7c3d40d30>,
     <OpOverload(op='aten._native_batch_norm_legit', overload='no_stats')>: <function _native_batch_norm_legit_no_stats at 0x7fc7c3d40ca0>,
     <OpOverload(op='aten._native_batch_norm_legit', overload='default')>: <function _native_batch_norm_legit at 0x7fc7c3d40c10>,
     <OpOverload(op='aten._native_batch_norm_legit_no_training', overload='default')>: <function _native_batch_norm_legit_no_training at 0x7fc7c3d40b80>,
     <OpOverload(op='aten.native_batch_norm', overload='out')>: <function native_batch_norm at 0x7fc7c3d40430>,
     <OpOverload(op='aten._batch_norm_with_update_functional', overload='default')>: <function _batch_norm_with_update_functional at 0x7fc7c3d40ee0>,
     <OpOverload(op='aten._batch_norm_no_update', overload='default')>: <function _batch_norm_no_update at 0x7fc7c3d40f70>,
     <OpOverload(op='aten._to_copy', overload='default')>: <function _to_copy at 0x7fc7c3d41900>,
     <OpOverload(op='aten.batch_norm_backward', overload='default')>: <function batch_norm_backward at 0x7fc7c3d42170>,
     <OpOverload(op='aten._fused_dropout', overload='out')>: <function _fused_dropout_decomposition at 0x7fc7c3d41090>,
     <OpOverload(op='aten._fused_dropout', overload='default')>: <function _fused_dropout_decomposition at 0x7fc7c3d41090>,
     <OpOverload(op='aten._to_copy', overload='out')>: <function _to_copy at 0x7fc7c3d41900>,
     <OpOverload(op='aten.lift', overload='default')>: <function nop_decomposition at 0x7fc7c3d41ab0>,
     <OpOverload(op='aten.lift', overload='out')>: <function nop_decomposition at 0x7fc7c3d41ab0>,
     <OpOverload(op='aten.native_batch_norm_backward', overload='default')>: <function native_batch_norm_backward at 0x7fc7c3d42200>,
     <OpOverload(op='aten.cudnn_batch_norm', overload='out')>: <function cudnn_batch_norm at 0x7fc7c3d41bd0>,
     <OpOverload(op='aten.native_batch_norm_backward', overload='out')>: <function native_batch_norm_backward_out at 0x7fc7c3d42290>,
     <OpOverload(op='aten.cudnn_batch_norm_backward', overload='out')>: <function cudnn_batch_norm_backward at 0x7fc7c3d423b0>,
     <OpOverload(op='aten.cudnn_batch_norm_backward', overload='default')>: <function cudnn_batch_norm_backward at 0x7fc7c3d423b0>,
     <OpOverload(op='aten._adaptive_avg_pool2d', overload='default')>: <function adaptive_avg_pool2d at 0x7fc7c3d42b90>,
     <OpOverload(op='aten._adaptive_avg_pool2d', overload='out')>: <function adaptive_avg_pool2d at 0x7fc7c3d42b90>,
     <OpOverload(op='aten.pad_sequence', overload='default')>: <function pad_sequence at 0x7fc7c3d42ef0>,
     <OpOverload(op='aten.index_add_', overload='default')>: <function index_add_ at 0x7fc7c3d429e0>,
     <OpOverload(op='aten.index_add', overload='default')>: <function index_add at 0x7fc7c3d42dd0>,
     <OpOverload(op='aten.index_add', overload='out')>: <function index_add at 0x7fc7c3d42dd0>,
     <OpOverload(op='aten.index_add', overload='dimname')>: <function index_add at 0x7fc7c3d42dd0>,
     <OpOverload(op='aten.index_copy_', overload='default')>: <function index_copy_ at 0x7fc7c3d42e60>,
     <OpOverload(op='aten.index_copy_', overload='dimname')>: <function index_copy_ at 0x7fc7c3d42e60>,
     <OpOverload(op='aten.index_copy', overload='default')>: <function index_copy at 0x7fc7c3d43130>,
     <OpOverload(op='aten.index_copy', overload='dimname')>: <function index_copy at 0x7fc7c3d43130>,
     <OpOverload(op='aten.index_copy', overload='out')>: <function index_copy at 0x7fc7c3d43130>,
     <OpOverload(op='aten.upsample_nearest1d', overload='vec')>: <function _upsample_nearest_vec at 0x7fc7c3d680d0>,
     <OpOverload(op='aten.log_sigmoid_forward', overload='output')>: <function log_sigmoid_forward at 0x7fc7c3d43250>,
     <OpOverload(op='aten.log_sigmoid_forward', overload='default')>: <function log_sigmoid_forward at 0x7fc7c3d43250>,
     <OpOverload(op='aten.uniform', overload='default')>: <function uniform at 0x7fc7c3d43a30>,
     <OpOverload(op='aten.uniform', overload='out')>: <function uniform at 0x7fc7c3d43a30>,
     <OpOverload(op='aten.uniform_', overload='default')>: <function uniform_ at 0x7fc7c3d43910>,
     <OpOverload(op='aten.upsample_nearest2d', overload='vec')>: <function _upsample_nearest_vec at 0x7fc7c3d680d0>,
     <OpOverload(op='aten._upsample_nearest_exact1d', overload='vec')>: <function _upsample_nearest_exact_vec at 0x7fc7c3d68160>,
     <OpOverload(op='aten.upsample_nearest1d', overload='default')>: <function upsample_nearest1d at 0x7fc7c3d43f40>,
     <OpOverload(op='aten.upsample_nearest3d', overload='vec')>: <function _upsample_nearest_vec at 0x7fc7c3d680d0>,
     <OpOverload(op='aten._upsample_nearest_exact2d', overload='vec')>: <function _upsample_nearest_exact_vec at 0x7fc7c3d68160>,
     <OpOverload(op='aten.upsample_nearest1d', overload='out')>: <function upsample_nearest1d at 0x7fc7c3d43f40>,
     <OpOverload(op='aten._upsample_nearest_exact3d', overload='vec')>: <function _upsample_nearest_exact_vec at 0x7fc7c3d68160>,
     <OpOverload(op='aten._upsample_nearest_exact1d', overload='default')>: <function upsample_nearest_exact1d at 0x7fc7c3d68280>,
     <OpOverload(op='aten._upsample_nearest_exact1d', overload='out')>: <function upsample_nearest_exact1d at 0x7fc7c3d68280>,
     <OpOverload(op='aten.upsample_nearest2d', overload='default')>: <function upsample_nearest2d at 0x7fc7c3d68430>,
     <OpOverload(op='aten._upsample_nearest_exact2d', overload='default')>: <function _upsample_nearest_exact2d at 0x7fc7c3d685e0>,
     <OpOverload(op='aten.upsample_nearest2d', overload='out')>: <function upsample_nearest2d at 0x7fc7c3d68430>,
     <OpOverload(op='aten._upsample_nearest_exact2d', overload='out')>: <function _upsample_nearest_exact2d at 0x7fc7c3d685e0>,
     <OpOverload(op='aten.upsample_nearest3d', overload='default')>: <function upsample_nearest3d at 0x7fc7c3d68820>,
     <OpOverload(op='aten._upsample_nearest_exact3d', overload='default')>: <function _upsample_nearest_exact3d at 0x7fc7c3d689d0>,
     <OpOverload(op='aten.upsample_nearest3d', overload='out')>: <function upsample_nearest3d at 0x7fc7c3d68820>,
     <OpOverload(op='aten._upsample_nearest_exact3d', overload='out')>: <function _upsample_nearest_exact3d at 0x7fc7c3d689d0>,
     <OpOverload(op='aten.rnn_tanh', overload='input')>: <function rnn_tanh_input at 0x7fc7c3d69090>,
     <OpOverload(op='aten.rnn_relu', overload='input')>: <function rnn_relu_input at 0x7fc7c3d69120>,
     <OpOverload(op='aten.rnn_relu', overload='data')>: <function rnn_relu_data at 0x7fc7c3d691b0>,
     <OpOverload(op='aten.rnn_tanh', overload='data')>: <function rnn_tanh_data at 0x7fc7c3d69240>,
     <OpOverload(op='aten.lstm', overload='input')>: <function lstm_impl at 0x7fc7c3d69510>,
     <OpOverload(op='aten.lstm', overload='data')>: <function lstm_data_impl at 0x7fc7c3d695a0>,
     <OpOverload(op='aten.gru', overload='data')>: <function gru_impl_data at 0x7fc7c3d69750>,
     <OpOverload(op='aten.gru', overload='input')>: <function gru_impl at 0x7fc7c3d697e0>,
     <OpOverload(op='aten._upsample_bilinear2d_aa', overload='vec')>: <function upsample_bilinear2d_aa_vec at 0x7fc7c3d69870>,
     <OpOverload(op='aten._upsample_bicubic2d_aa', overload='vec')>: <function upsample_bicubic2d_aa_vec at 0x7fc7c3d69900>,
     <OpOverload(op='aten.upsample_bilinear2d', overload='vec')>: <function _upsample_linear_vec at 0x7fc7c3d69c60>,
     <OpOverload(op='aten.upsample_linear1d', overload='default')>: <function upsample_linear1d at 0x7fc7c3d69a20>,
     <OpOverload(op='aten.upsample_trilinear3d', overload='vec')>: <function _upsample_linear_vec at 0x7fc7c3d69c60>,
     <OpOverload(op='aten.upsample_linear1d', overload='out')>: <function upsample_linear1d at 0x7fc7c3d69a20>,
     <OpOverload(op='aten.upsample_bilinear2d', overload='default')>: <function upsample_bilinear2d at 0x7fc7c3d69cf0>,
     <OpOverload(op='aten.upsample_trilinear3d', overload='default')>: <function upsample_trilinear3d at 0x7fc7c3d69e10>,
     <OpOverload(op='aten.upsample_bilinear2d', overload='out')>: <function upsample_bilinear2d at 0x7fc7c3d69cf0>,
     <OpOverload(op='aten.upsample_trilinear3d', overload='out')>: <function upsample_trilinear3d at 0x7fc7c3d69e10>,
     <OpOverload(op='aten.is_same_size', overload='default')>: <function is_same_size at 0x7fc7c3d6a170>,
     <OpOverload(op='aten._reshape_alias', overload='default')>: <function _reshape_alias at 0x7fc7c3d6a3b0>,
     <OpOverload(op='aten._unsafe_view', overload='default')>: <function _reshape_alias at 0x7fc7c3d6a3b0>,
     <OpOverload(op='aten._unsafe_view', overload='out')>: <function _reshape_alias at 0x7fc7c3d6a3b0>,
     <OpOverload(op='aten._unsafe_index', overload='Tensor')>: <function _index at 0x7fc7c3d6a290>,
     <OpOverload(op='aten.nll_loss_forward', overload='output')>: <function nll_loss_forward at 0x7fc7c3d6a560>,
     <OpOverload(op='aten.nll_loss_forward', overload='default')>: <function nll_loss_forward at 0x7fc7c3d6a560>,
     <OpOverload(op='aten.nll_loss2d_forward', overload='output')>: <function nll_loss2d_forward at 0x7fc7c3d6ac20>,
     <OpOverload(op='aten.nll_loss2d_forward', overload='default')>: <function nll_loss2d_forward at 0x7fc7c3d6ac20>,
     <OpOverload(op='aten.affine_grid_generator', overload='default')>: <function affine_grid_generator at 0x7fc7c3d6b9a0>,
     <OpOverload(op='aten.affine_grid_generator', overload='out')>: <function affine_grid_generator at 0x7fc7c3d6b9a0>,
     <OpOverload(op='aten.grid_sampler_2d', overload='default')>: <function grid_sampler_2d at 0x7fc7c3d6bc70>,
     <OpOverload(op='aten.grid_sampler_2d', overload='out')>: <function grid_sampler_2d at 0x7fc7c3d6bc70>,
     <OpOverload(op='aten.mv', overload='default')>: <function mv at 0x7fc7c3d6beb0>,
     <OpOverload(op='aten.mv', overload='out')>: <function mv at 0x7fc7c3d6beb0>,
     <OpOverload(op='aten.binary_cross_entropy_with_logits', overload='default')>: <function binary_cross_entropy_with_logits at 0x7fc7c3d8c0d0>,
     <OpOverload(op='aten.binary_cross_entropy_with_logits', overload='out')>: <function binary_cross_entropy_with_logits at 0x7fc7c3d8c0d0>,
     <OpOverload(op='aten.upsample_bicubic2d', overload='default')>: <function upsample_bicubic2d_default at 0x7fc7c3d8c5e0>,
     <OpOverload(op='aten.upsample_bicubic2d', overload='vec')>: <function upsample_bicubic2d_vec at 0x7fc7c3d8c8b0>,
     <OpOverload(op='aten.upsample_bicubic2d', overload='out')>: <function upsample_bicubic2d_default at 0x7fc7c3d8c5e0>,
     <OpOverload(op='aten.reflection_pad1d', overload='default')>: <function _reflection_pad at 0x7fc7c3d8c940>,
     <OpOverload(op='aten.reflection_pad2d', overload='default')>: <function _reflection_pad at 0x7fc7c3d8c940>,
     <OpOverload(op='aten.reflection_pad3d', overload='default')>: <function _reflection_pad at 0x7fc7c3d8c940>,
     <OpOverload(op='aten.reflection_pad3d', overload='out')>: <function _reflection_pad at 0x7fc7c3d8c940>,
     <OpOverload(op='aten.reflection_pad2d', overload='out')>: <function _reflection_pad at 0x7fc7c3d8c940>,
     <OpOverload(op='aten.reflection_pad1d', overload='out')>: <function _reflection_pad at 0x7fc7c3d8c940>,
     <OpOverload(op='aten.replication_pad1d', overload='default')>: <function _replication_pad at 0x7fc7c3d8cb80>,
     <OpOverload(op='aten.replication_pad2d', overload='default')>: <function _replication_pad at 0x7fc7c3d8cb80>,
     <OpOverload(op='aten.replication_pad3d', overload='default')>: <function _replication_pad at 0x7fc7c3d8cb80>,
     <OpOverload(op='aten.replication_pad3d', overload='out')>: <function _replication_pad at 0x7fc7c3d8cb80>,
     <OpOverload(op='aten.replication_pad2d', overload='out')>: <function _replication_pad at 0x7fc7c3d8cb80>,
     <OpOverload(op='aten.replication_pad1d', overload='out')>: <function _replication_pad at 0x7fc7c3d8cb80>,
     <OpOverload(op='aten.nansum', overload='default')>: <function nansum at 0x7fc7c3d8d480>,
     <OpOverload(op='aten.arange', overload='default')>: <function arange_default at 0x7fc7c3d8d630>,
     <OpOverload(op='aten.arange', overload='out')>: <function arange_default at 0x7fc7c3d8d630>,
     <OpOverload(op='aten.aminmax', overload='out')>: <function aminmax at 0x7fc7c3d8cd30>,
     <OpOverload(op='aten.aminmax', overload='default')>: <function aminmax at 0x7fc7c3d8cd30>,
     <OpOverload(op='aten.nansum', overload='out')>: <function nansum at 0x7fc7c3d8d480>,
     <OpOverload(op='aten.arange', overload='start')>: <function arange_start at 0x7fc7c3d8d510>,
     <OpOverload(op='aten.multi_margin_loss', overload='default')>: <function multi_margin_loss at 0x7fc7c3d8d990>,
     <OpOverload(op='aten.multi_margin_loss', overload='out')>: <function multi_margin_loss at 0x7fc7c3d8d990>,
     <OpOverload(op='aten.multilabel_margin_loss_forward', overload='default')>: <function multilabel_margin_loss_forward at 0x7fc7c3d8d750>,
     <OpOverload(op='aten._scaled_dot_product_flash_attention_for_cpu', overload='default')>: <function scaled_dot_product_flash_attention_for_cpu at 0x7fc7c3d8da20>,
     <OpOverload(op='aten.multilabel_margin_loss_forward', overload='output')>: <function multilabel_margin_loss_forward at 0x7fc7c3d8d750>,
     <OpOverload(op='aten.sum', overload='default')>: <function sum_default at 0x7fc7c3d8e560>,
     <OpOverload(op='aten.baddbmm', overload='default')>: <function baddbmm at 0x7fc7c3d8e320>,
     <OpOverload(op='aten.baddbmm', overload='out')>: <function baddbmm at 0x7fc7c3d8e320>,
     <OpOverload(op='aten.sum', overload='out')>: <function sum_default at 0x7fc7c3d8e560>,
     <OpOverload(op='aten.floor_divide', overload='default')>: <function floor_divide at 0x7fc7c3d8e4d0>,
     <OpOverload(op='aten.floor_divide', overload='Scalar')>: <function floor_divide at 0x7fc7c3d8e4d0>,
     <OpOverload(op='aten.floor_divide', overload='out')>: <function floor_divide at 0x7fc7c3d8e4d0>,
     <OpOverload(op='aten.floor_divide', overload='Scalar_out')>: <function floor_divide at 0x7fc7c3d8e4d0>,
     <OpOverload(op='aten.squeeze', overload='default')>: <function squeeze_default at 0x7fc7c3d8e5f0>,
     <OpOverload(op='aten.squeeze', overload='dim')>: <function squeeze_default at 0x7fc7c3d8e5f0>,
     <OpOverload(op='aten._weight_norm_interface', overload='default')>: <function _weight_norm_interface at 0x7fc7c3d8e680>,
     <OpOverload(op='aten._weight_norm_interface', overload='out')>: <function _weight_norm_interface at 0x7fc7c3d8e680>,
     <OpOverload(op='aten.isin', overload='Tensor_Tensor')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.isin', overload='Tensor_Tensor_out')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.isin', overload='Tensor_Scalar')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.isin', overload='Tensor_Scalar_out')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.isin', overload='Scalar_Tensor')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.isin', overload='Scalar_Tensor_out')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.take', overload='default')>: <function take at 0x7fc7c3d8eb90>,
     <OpOverload(op='aten.take', overload='out')>: <function take at 0x7fc7c3d8eb90>,
     <OpOverload(op='aten.resize_as', overload='default')>: <function resize_as at 0x7fc7c3d8ea70>,
     <OpOverload(op='aten.resize_as', overload='out')>: <function resize_as at 0x7fc7c3d8ea70>,
     <OpOverload(op='aten.addbmm_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ec20>,
     <OpOverload(op='aten.addmm_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ecb0>,
     <OpOverload(op='aten.addmv_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ed40>,
     <OpOverload(op='aten.baddbmm_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8edd0>,
     <OpOverload(op='aten.fill_', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ee60>,
     <OpOverload(op='aten.fill_', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ee60>,
     <OpOverload(op='aten.gelu_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8eef0>,
     <OpOverload(op='aten.hardswish_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ef80>,
     <OpOverload(op='aten.hardtanh_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f010>,
     <OpOverload(op='aten.hardsigmoid_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f0a0>,
     <OpOverload(op='aten.__iand__', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f130>,
     <OpOverload(op='aten.__iand__', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f130>,
     <OpOverload(op='aten.__ilshift__', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f1c0>,
     <OpOverload(op='aten.__ilshift__', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f1c0>,
     <OpOverload(op='aten.index_reduce_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f2e0>,
     <OpOverload(op='aten.__ior__', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f370>,
     <OpOverload(op='aten.__ior__', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f370>,
     <OpOverload(op='aten.__irshift__', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f400>,
     <OpOverload(op='aten.__irshift__', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f400>,
     <OpOverload(op='aten.__ixor__', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f490>,
     <OpOverload(op='aten.__ixor__', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f490>,
     <OpOverload(op='aten.leaky_relu_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f520>,
     <OpOverload(op='aten.logit_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f5b0>,
     <OpOverload(op='aten.relu_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f640>,
     <OpOverload(op='aten.renorm_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f6d0>,
     <OpOverload(op='aten.round_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f760>,
     <OpOverload(op='aten.round_', overload='decimals')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f760>,
     <OpOverload(op='aten.scatter_', overload='src')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f7f0>,
     <OpOverload(op='aten.scatter_', overload='value')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f7f0>,
     <OpOverload(op='aten.scatter_', overload='reduce')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f7f0>,
     <OpOverload(op='aten.scatter_', overload='value_reduce')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f7f0>,
     <OpOverload(op='aten.scatter_add_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f880>,
     <OpOverload(op='aten.scatter_reduce_', overload='two')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f910>,
     <OpOverload(op='aten.silu_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f9a0>,
     <OpOverload(op='aten.mul', overload='Tensor')>: <function mul at 0x7fc7c3cbfe20>,
     <OpOverload(op='aten.mul', overload='Scalar')>: <function mul at 0x7fc7c3cbfe20>,
     <OpOverload(op='aten.div', overload='Tensor')>: <function div at 0x7fc7c3c76b90>,
     <OpOverload(op='aten.div', overload='Scalar')>: <function div at 0x7fc7c3c76b90>,
     <OpOverload(op='aten.tanh_backward', overload='default')>: <function tanh_backward at 0x7fc7c3ebbd90>,
     <OpOverload(op='aten.tanh_backward', overload='grad_input')>: <function tanh_backward at 0x7fc7c3ebbd90>,
     <OpOverload(op='aten.sigmoid_backward', overload='default')>: <function sigmoid_backward at 0x7fc7c3ee00d0>,
     <OpOverload(op='aten.sigmoid_backward', overload='grad_input')>: <function sigmoid_backward at 0x7fc7c3ee00d0>,
     <OpOverload(op='aten.fill', overload='Scalar')>: <function fill_scalar at 0x7fc7c3ee08b0>,
     <OpOverload(op='aten.softplus_backward', overload='default')>: <function softplus_backward at 0x7fc7c3ee03a0>,
     <OpOverload(op='aten.softplus_backward', overload='grad_input')>: <function softplus_backward at 0x7fc7c3ee03a0>,
     <OpOverload(op='aten.fill', overload='Tensor')>: <function fill_tensor at 0x7fc7c3ee0940>,
     <OpOverload(op='aten.elu_backward', overload='default')>: <function elu_backward at 0x7fc7c3ee0670>,
     <OpOverload(op='aten.elu_backward', overload='grad_input')>: <function elu_backward at 0x7fc7c3ee0670>,
     <OpOverload(op='aten.hardsigmoid', overload='default')>: <function hardsigmoid at 0x7fc7c3ee0c10>,
     <OpOverload(op='aten.hardsigmoid', overload='out')>: <function hardsigmoid at 0x7fc7c3ee0c10>,
     <OpOverload(op='aten.hardsigmoid_backward', overload='default')>: <function hardsigmoid_backward at 0x7fc7c3ee0ca0>,
     <OpOverload(op='aten.hardsigmoid_backward', overload='grad_input')>: <function hardsigmoid_backward at 0x7fc7c3ee0ca0>,
     <OpOverload(op='aten.hardtanh_backward', overload='default')>: <function hardtanh_backward at 0x7fc7c3ee0f70>,
     <OpOverload(op='aten.hardtanh_backward', overload='grad_input')>: <function hardtanh_backward at 0x7fc7c3ee0f70>,
     <OpOverload(op='aten.hardswish', overload='default')>: <function hardswish at 0x7fc7c3ee1360>,
     <OpOverload(op='aten.hardswish', overload='out')>: <function hardswish at 0x7fc7c3ee1360>,
     <OpOverload(op='aten.hardswish_backward', overload='default')>: <function hardswish_backward at 0x7fc7c3ee15a0>,
     <OpOverload(op='aten.hardswish_backward', overload='out')>: <function hardswish_backward at 0x7fc7c3ee15a0>,
     <OpOverload(op='aten.threshold_backward', overload='default')>: <function threshold_backward at 0x7fc7c3ee1630>,
     <OpOverload(op='aten.threshold_backward', overload='grad_input')>: <function threshold_backward at 0x7fc7c3ee1630>,
     <OpOverload(op='aten.leaky_relu_backward', overload='default')>: <function leaky_relu_backward at 0x7fc7c3ee1870>,
     <OpOverload(op='aten.leaky_relu_backward', overload='grad_input')>: <function leaky_relu_backward at 0x7fc7c3ee1870>,
     <OpOverload(op='aten.gelu_backward', overload='default')>: <function gelu_backward at 0x7fc7c3ee1b40>,
     <OpOverload(op='aten.gelu_backward', overload='grad_input')>: <function gelu_backward at 0x7fc7c3ee1b40>,
     <OpOverload(op='aten.mish_backward', overload='default')>: <function mish_backward at 0x7fc7c3ee1e10>,
     <OpOverload(op='aten.silu', overload='default')>: <function silu at 0x7fc7c3ee20e0>,
     <OpOverload(op='aten.silu', overload='out')>: <function silu at 0x7fc7c3ee20e0>,
     <OpOverload(op='aten.silu_backward', overload='default')>: <function silu_backward at 0x7fc7c3ee2170>,
     <OpOverload(op='aten.silu_backward', overload='grad_input')>: <function silu_backward at 0x7fc7c3ee2170>,
     <OpOverload(op='aten._prelu_kernel', overload='default')>: <function _prelu_kernel at 0x7fc7c3ee23b0>,
     <OpOverload(op='aten._prelu_kernel_backward', overload='default')>: <function _prelu_kernel_backward at 0x7fc7c3ee2440>,
     <OpOverload(op='aten.rrelu_with_noise', overload='default')>: <function rrelu_with_noise at 0x7fc7c3ee27a0>,
     <OpOverload(op='aten.rrelu_with_noise', overload='out')>: <function rrelu_with_noise at 0x7fc7c3ee27a0>,
     <OpOverload(op='aten.rrelu_with_noise_', overload='default')>: <function rrelu_with_noise_ at 0x7fc7c3ee2830>,
     <OpOverload(op='aten.rrelu_with_noise_backward', overload='default')>: <function rrelu_with_noise_backward at 0x7fc7c3ee2a70>,
     <OpOverload(op='aten.rrelu_with_noise_backward', overload='out')>: <function rrelu_with_noise_backward at 0x7fc7c3ee2a70>,
     <OpOverload(op='aten.log_sigmoid_backward', overload='default')>: <function log_sigmoid_backward at 0x7fc7c3ee2b00>,
     <OpOverload(op='aten.diagonal_scatter', overload='default')>: <function diagonal_scatter at 0x7fc7c3b58550>,
     <OpOverload(op='aten.diagonal', overload='default')>: <function diagonal at 0x7fc7c3b58430>,
     <OpOverload(op='aten.sym_numel', overload='default')>: <function sym_numel at 0x7fc7c3d8e3b0>,
     <OpOverload(op='aten.dropout', overload='default')>: <function dropout at 0x7fc7c3d12560>,
     <OpOverload(op='aten.native_batch_norm', overload='default')>: <function native_batch_norm at 0x7fc7c3d40430>,
     <OpOverload(op='aten.cudnn_batch_norm', overload='default')>: <function cudnn_batch_norm at 0x7fc7c3d41bd0>,
     <OpOverload(op='aten.zeros_like', overload='out')>: <function zeros_like at 0x7fc7c3b5b6d0>,
     <OpOverload(op='aten.new_ones', overload='out')>: <function new_ones at 0x7fc7c3b5a3b0>,
     <OpOverload(op='aten.new_full', overload='default')>: <function new_full at 0x7fc7c3b5a560>,
     <OpOverload(op='aten.new_empty', overload='out')>: <function new_empty at 0x7fc7c3b59b40>,
     <OpOverload(op='aten.new_empty_strided', overload='default')>: <function new_empty_strided at 0x7fc7c3b59cf0>,
     <OpOverload(op='aten.new_empty_strided', overload='out')>: <function new_empty_strided at 0x7fc7c3b59cf0>,
     <OpOverload(op='aten.new_full', overload='out')>: <function new_full at 0x7fc7c3b5a560>,
     <OpOverload(op='aten.new_zeros', overload='default')>: <function new_zeros at 0x7fc7c3b5a050>,
     <OpOverload(op='aten.zeros_like', overload='default')>: <function zeros_like at 0x7fc7c3b5b6d0>,
     <OpOverload(op='aten.new_ones', overload='default')>: <function new_ones at 0x7fc7c3b5a3b0>,
     <OpOverload(op='aten.new_zeros', overload='out')>: <function new_zeros at 0x7fc7c3b5a050>,
     <OpOverload(op='aten.new_empty', overload='default')>: <function new_empty at 0x7fc7c3b59b40>,
     <OpOverload(op='aten.as_strided_scatter', overload='default')>: <function as_strided_scatter at 0x7fc7c3b34a60>,
     <OpOverload(op='aten.empty_like', overload='default')>: <function empty_like at 0x7fc7c3b5a710>,
     <OpOverload(op='aten.empty_like', overload='out')>: <function empty_like at 0x7fc7c3b5a710>,
     <OpOverload(op='aten.lift_fresh', overload='default')>: <function nop_decomposition at 0x7fc7c3d41ab0>,
     <OpOverload(op='aten.empty_strided', overload='default')>: <function empty_strided at 0x7fc7c3b5b130>,
     <OpOverload(op='aten.ones_like', overload='out')>: <function ones_like at 0x7fc7c3b5b880>,
     <OpOverload(op='aten.ones_like', overload='default')>: <function ones_like at 0x7fc7c3b5b880>,
     <OpOverload(op='aten.detach', overload='default')>: <function nop_decomposition at 0x7fc7c3d41ab0>,
     <OpOverload(op='aten.zeros', overload='default')>: <function zeros at 0x7fc7c3b59ea0>,
     <OpOverload(op='aten.index_put_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f250>}

get_decomposition_table

experimental_experiment.torch_dynamo.get_decomposition_table()[source]

Returns the decomposition table needed to translate backward graph into onnx. It should used as follows:

import torch
from torch._dynamo.backends.common import aot_autograd
from experimental_experiment.torch_dynamo import get_decomposition_table

aot_compiler = aot_autograd(fw_compiler=backend_debug, decompositions=get_decomposition_table())

compiled_model = torch.compile(
    model,
    backend=aot_compiler,
    dynamic=dynamic,
    fullgraph=fullgraph,
)

The value is:

<<<

import pprint
from experimental_experiment.torch_dynamo import get_decomposition_table

pprint.pprint(get_decomposition_table())

>>>

    {<OpOverload(op='aten.embedding_dense_backward', overload='default')>: <function embedding_dense_backward at 0x7fc7c3d131c0>,
     <OpOverload(op='aten.native_layer_norm_backward', overload='default')>: <function native_layer_norm_backward at 0x7fc7c3d401f0>,
     <OpOverload(op='aten.rrelu_with_noise', overload='default')>: <function rrelu_with_noise at 0x7fc7c3ee27a0>}

get_decomposition_table_dynamo

experimental_experiment.torch_dynamo.get_decomposition_table_dynamo(onnx_registry=None)[source]

Returns the decomposition table needed for the dynamo exporter.

Parameters:

onnx_registry – instance of class torch.onnx._internal.exporter.OnnxRegistry

The value is:

<<<

import pprint
from experimental_experiment.torch_dynamo import get_decomposition_table_dynamo

pprint.pprint(get_decomposition_table_dynamo())

>>>

    /home/xadupre/.local/lib/python3.10/site-packages/torch/onnx/_internal/exporter.py:137: UserWarning: torch.onnx.dynamo_export only implements opset version 18 for now. If you need to use a different opset version, please register them with register_custom_op.
      warnings.warn(
    {<torch._higher_order_ops.out_dtype.OutDtypeOperator object at 0x7fc7c3eb60b0>: <function out_dtype_decomp at 0x7fc7c3d8d6c0>,
     <OpOverload(op='aten.log_sigmoid_backward', overload='grad_input')>: <function log_sigmoid_backward at 0x7fc7c3ee2b00>,
     <OpOverload(op='aten.mse_loss_backward', overload='default')>: <function mse_loss_backward at 0x7fc7c3ee3130>,
     <OpOverload(op='aten.mse_loss_backward', overload='grad_input')>: <function mse_loss_backward at 0x7fc7c3ee3130>,
     <OpOverload(op='aten.smooth_l1_loss_backward', overload='default')>: <function smooth_l1_loss_backward at 0x7fc7c3ee3640>,
     <OpOverload(op='aten.smooth_l1_loss', overload='default')>: <function smooth_l1_loss at 0x7fc7c3ee35b0>,
     <OpOverload(op='aten.smooth_l1_loss_backward', overload='grad_input')>: <function smooth_l1_loss_backward_out at 0x7fc7c3ee3760>,
     <OpOverload(op='aten.smooth_l1_loss', overload='out')>: <function smooth_l1_loss at 0x7fc7c3ee35b0>,
     <OpOverload(op='aten.huber_loss_backward', overload='default')>: <function huber_loss_backward at 0x7fc7c3ee3880>,
     <OpOverload(op='aten.huber_loss_backward', overload='out')>: <function huber_loss_backward_out at 0x7fc7c3ee39a0>,
     <OpOverload(op='aten.glu_backward', overload='default')>: <function glu_backward at 0x7fc7c3ee3b50>,
     <OpOverload(op='aten.glu_backward', overload='grad_input')>: <function glu_backward at 0x7fc7c3ee3b50>,
     <OpOverload(op='aten.nll_loss_backward', overload='default')>: <function nll_loss_backward at 0x7fc7c3ee3e20>,
     <OpOverload(op='aten.nll_loss_backward', overload='grad_input')>: <function nll_loss_backward at 0x7fc7c3ee3e20>,
     <OpOverload(op='aten.nll_loss2d_backward', overload='default')>: <function nll_loss2d_backward at 0x7fc7c3d100d0>,
     <OpOverload(op='aten.nll_loss2d_backward', overload='grad_input')>: <function nll_loss2d_backward at 0x7fc7c3d100d0>,
     <OpOverload(op='aten.binary_cross_entropy', overload='default')>: <function binary_cross_entropy at 0x7fc7c3d104c0>,
     <OpOverload(op='aten.binary_cross_entropy', overload='out')>: <function binary_cross_entropy at 0x7fc7c3d104c0>,
     <OpOverload(op='aten.binary_cross_entropy_backward', overload='default')>: <function binary_cross_entropy_backward at 0x7fc7c3d10550>,
     <OpOverload(op='aten.binary_cross_entropy_backward', overload='grad_input')>: <function binary_cross_entropy_backward at 0x7fc7c3d10550>,
     <OpOverload(op='aten.soft_margin_loss', overload='default')>: <function soft_margin_loss at 0x7fc7c3d109d0>,
     <OpOverload(op='aten.soft_margin_loss', overload='out')>: <function soft_margin_loss at 0x7fc7c3d109d0>,
     <OpOverload(op='aten.soft_margin_loss_backward', overload='default')>: <function soft_margin_loss_backward at 0x7fc7c3d10a60>,
     <OpOverload(op='aten.soft_margin_loss_backward', overload='grad_input')>: <function soft_margin_loss_backward at 0x7fc7c3d10a60>,
     <OpOverload(op='aten.dist', overload='default')>: <function dist at 0x7fc7c3d10e50>,
     <OpOverload(op='aten.dist', overload='out')>: <function dist at 0x7fc7c3d10e50>,
     <OpOverload(op='aten._euclidean_dist', overload='default')>: <function _euclidean_dist at 0x7fc7c3d11000>,
     <OpOverload(op='aten._euclidean_dist', overload='out')>: <function _euclidean_dist at 0x7fc7c3d11000>,
     <OpOverload(op='aten.slice_backward', overload='default')>: <function slice_backward at 0x7fc7c3d111b0>,
     <OpOverload(op='aten.slice_backward', overload='out')>: <function slice_backward at 0x7fc7c3d111b0>,
     <OpOverload(op='aten.select_backward', overload='default')>: <function select_backward at 0x7fc7c3d113f0>,
     <OpOverload(op='aten.select_backward', overload='out')>: <function select_backward at 0x7fc7c3d113f0>,
     <OpOverload(op='aten.diagonal_backward', overload='default')>: <function diagonal_backward at 0x7fc7c3d115a0>,
     <OpOverload(op='aten.diagonal_backward', overload='out')>: <function diagonal_backward at 0x7fc7c3d115a0>,
     <OpOverload(op='aten._softmax_backward_data', overload='default')>: <function _softmax_backward_data at 0x7fc7c3d116c0>,
     <OpOverload(op='aten._softmax_backward_data', overload='out')>: <function _softmax_backward_data at 0x7fc7c3d116c0>,
     <OpOverload(op='aten._log_softmax_backward_data', overload='default')>: <function _log_softmax_backward_data at 0x7fc7c3d11b40>,
     <OpOverload(op='aten._log_softmax_backward_data', overload='out')>: <function _log_softmax_backward_data at 0x7fc7c3d11b40>,
     <OpOverload(op='aten.im2col', overload='default')>: <function im2col at 0x7fc7c3d11d80>,
     <OpOverload(op='aten.im2col', overload='out')>: <function im2col at 0x7fc7c3d11d80>,
     <OpOverload(op='aten.logit_backward', overload='default')>: <function logit_backward at 0x7fc7c3d123b0>,
     <OpOverload(op='aten.native_dropout_backward', overload='default')>: <function native_dropout_backward at 0x7fc7c3d12170>,
     <OpOverload(op='aten.native_dropout_backward', overload='out')>: <function native_dropout_backward at 0x7fc7c3d12170>,
     <OpOverload(op='aten.unfold_backward', overload='default')>: <function unfold_backward at 0x7fc7c3d12320>,
     <OpOverload(op='aten.unfold_backward', overload='out')>: <function unfold_backward at 0x7fc7c3d12320>,
     <OpOverload(op='aten._chunk_cat', overload='default')>: <function _chunk_cat at 0x7fc7c3d13490>,
     <OpOverload(op='aten._chunk_cat', overload='out')>: <function _chunk_cat at 0x7fc7c3d13490>,
     <OpOverload(op='aten.embedding_dense_backward', overload='default')>: <function embedding_dense_backward at 0x7fc7c3d131c0>,
     <OpOverload(op='aten.embedding_dense_backward', overload='out')>: <function embedding_dense_backward at 0x7fc7c3d131c0>,
     <OpOverload(op='aten.split_with_sizes_copy', overload='out')>: <function split_with_sizes_copy at 0x7fc7c3d135b0>,
     <OpOverload(op='aten.split_with_sizes_copy', overload='default')>: <function split_with_sizes_copy at 0x7fc7c3d135b0>,
     <OpOverload(op='aten.unsafe_split', overload='Tensor')>: <function unsafe_split at 0x7fc7c3d13640>,
     <OpOverload(op='aten.unsafe_split_with_sizes', overload='default')>: <function unsafe_split_with_sizes at 0x7fc7c3d136d0>,
     <OpOverload(op='aten.native_group_norm_backward', overload='default')>: <function native_group_norm_backward at 0x7fc7c3d40040>,
     <OpOverload(op='aten._addmm_activation', overload='default')>: <function _addmm_activation at 0x7fc7c3d13d00>,
     <OpOverload(op='aten._addmm_activation', overload='out')>: <function _addmm_activation at 0x7fc7c3d13d00>,
     <OpOverload(op='aten.native_group_norm_backward', overload='out')>: <function native_group_norm_backward_out at 0x7fc7c3d400d0>,
     <OpOverload(op='aten.native_layer_norm_backward', overload='default')>: <function native_layer_norm_backward at 0x7fc7c3d401f0>,
     <OpOverload(op='aten.native_layer_norm_backward', overload='out')>: <function native_layer_norm_backward_out at 0x7fc7c3d40280>,
     <OpOverload(op='aten._batch_norm_with_update', overload='default')>: <function _batch_norm_with_update at 0x7fc7c3d40e50>,
     <OpOverload(op='aten._batch_norm_with_update_functional', overload='default')>: <function _batch_norm_with_update_functional at 0x7fc7c3d40ee0>,
     <OpOverload(op='aten._batch_norm_no_update', overload='default')>: <function _batch_norm_no_update at 0x7fc7c3d40f70>,
     <OpOverload(op='aten.batch_norm_backward', overload='default')>: <function batch_norm_backward at 0x7fc7c3d42170>,
     <OpOverload(op='aten._fused_dropout', overload='out')>: <function _fused_dropout_decomposition at 0x7fc7c3d41090>,
     <OpOverload(op='aten._fused_dropout', overload='default')>: <function _fused_dropout_decomposition at 0x7fc7c3d41090>,
     <OpOverload(op='aten.lift', overload='default')>: <function nop_decomposition at 0x7fc7c3d41ab0>,
     <OpOverload(op='aten.lift', overload='out')>: <function nop_decomposition at 0x7fc7c3d41ab0>,
     <OpOverload(op='aten.native_batch_norm_backward', overload='default')>: <function native_batch_norm_backward at 0x7fc7c3d42200>,
     <OpOverload(op='aten.cudnn_batch_norm', overload='out')>: <function cudnn_batch_norm at 0x7fc7c3d41bd0>,
     <OpOverload(op='aten.native_batch_norm_backward', overload='out')>: <function native_batch_norm_backward_out at 0x7fc7c3d42290>,
     <OpOverload(op='aten.cudnn_batch_norm_backward', overload='out')>: <function cudnn_batch_norm_backward at 0x7fc7c3d423b0>,
     <OpOverload(op='aten.cudnn_batch_norm_backward', overload='default')>: <function cudnn_batch_norm_backward at 0x7fc7c3d423b0>,
     <OpOverload(op='aten._adaptive_avg_pool2d', overload='default')>: <function adaptive_avg_pool2d at 0x7fc7c3d42b90>,
     <OpOverload(op='aten._adaptive_avg_pool2d', overload='out')>: <function adaptive_avg_pool2d at 0x7fc7c3d42b90>,
     <OpOverload(op='aten.pad_sequence', overload='default')>: <function pad_sequence at 0x7fc7c3d42ef0>,
     <OpOverload(op='aten.index_add_', overload='default')>: <function index_add_ at 0x7fc7c3d429e0>,
     <OpOverload(op='aten.index_add', overload='default')>: <function index_add at 0x7fc7c3d42dd0>,
     <OpOverload(op='aten.index_add', overload='out')>: <function index_add at 0x7fc7c3d42dd0>,
     <OpOverload(op='aten.index_add', overload='dimname')>: <function index_add at 0x7fc7c3d42dd0>,
     <OpOverload(op='aten.index_copy_', overload='default')>: <function index_copy_ at 0x7fc7c3d42e60>,
     <OpOverload(op='aten.index_copy_', overload='dimname')>: <function index_copy_ at 0x7fc7c3d42e60>,
     <OpOverload(op='aten.index_copy', overload='default')>: <function index_copy at 0x7fc7c3d43130>,
     <OpOverload(op='aten.index_copy', overload='dimname')>: <function index_copy at 0x7fc7c3d43130>,
     <OpOverload(op='aten.index_copy', overload='out')>: <function index_copy at 0x7fc7c3d43130>,
     <OpOverload(op='aten.log_sigmoid_forward', overload='output')>: <function log_sigmoid_forward at 0x7fc7c3d43250>,
     <OpOverload(op='aten.log_sigmoid_forward', overload='default')>: <function log_sigmoid_forward at 0x7fc7c3d43250>,
     <OpOverload(op='aten.uniform', overload='default')>: <function uniform at 0x7fc7c3d43a30>,
     <OpOverload(op='aten.uniform', overload='out')>: <function uniform at 0x7fc7c3d43a30>,
     <OpOverload(op='aten.uniform_', overload='default')>: <function uniform_ at 0x7fc7c3d43910>,
     <OpOverload(op='aten._upsample_nearest_exact1d', overload='vec')>: <function _upsample_nearest_exact_vec at 0x7fc7c3d68160>,
     <OpOverload(op='aten._upsample_nearest_exact2d', overload='vec')>: <function _upsample_nearest_exact_vec at 0x7fc7c3d68160>,
     <OpOverload(op='aten._upsample_nearest_exact3d', overload='vec')>: <function _upsample_nearest_exact_vec at 0x7fc7c3d68160>,
     <OpOverload(op='aten._upsample_nearest_exact1d', overload='default')>: <function upsample_nearest_exact1d at 0x7fc7c3d68280>,
     <OpOverload(op='aten._upsample_nearest_exact1d', overload='out')>: <function upsample_nearest_exact1d at 0x7fc7c3d68280>,
     <OpOverload(op='aten._upsample_nearest_exact2d', overload='default')>: <function _upsample_nearest_exact2d at 0x7fc7c3d685e0>,
     <OpOverload(op='aten._upsample_nearest_exact2d', overload='out')>: <function _upsample_nearest_exact2d at 0x7fc7c3d685e0>,
     <OpOverload(op='aten._upsample_nearest_exact3d', overload='default')>: <function _upsample_nearest_exact3d at 0x7fc7c3d689d0>,
     <OpOverload(op='aten._upsample_nearest_exact3d', overload='out')>: <function _upsample_nearest_exact3d at 0x7fc7c3d689d0>,
     <OpOverload(op='aten.rnn_tanh', overload='input')>: <function rnn_tanh_input at 0x7fc7c3d69090>,
     <OpOverload(op='aten.rnn_relu', overload='input')>: <function rnn_relu_input at 0x7fc7c3d69120>,
     <OpOverload(op='aten.rnn_relu', overload='data')>: <function rnn_relu_data at 0x7fc7c3d691b0>,
     <OpOverload(op='aten.rnn_tanh', overload='data')>: <function rnn_tanh_data at 0x7fc7c3d69240>,
     <OpOverload(op='aten.lstm', overload='input')>: <function lstm_impl at 0x7fc7c3d69510>,
     <OpOverload(op='aten.lstm', overload='data')>: <function lstm_data_impl at 0x7fc7c3d695a0>,
     <OpOverload(op='aten.gru', overload='data')>: <function gru_impl_data at 0x7fc7c3d69750>,
     <OpOverload(op='aten.gru', overload='input')>: <function gru_impl at 0x7fc7c3d697e0>,
     <OpOverload(op='aten._upsample_bilinear2d_aa', overload='vec')>: <function upsample_bilinear2d_aa_vec at 0x7fc7c3d69870>,
     <OpOverload(op='aten._upsample_bicubic2d_aa', overload='vec')>: <function upsample_bicubic2d_aa_vec at 0x7fc7c3d69900>,
     <OpOverload(op='aten._reshape_alias', overload='default')>: <function _reshape_alias at 0x7fc7c3d6a3b0>,
     <OpOverload(op='aten._unsafe_view', overload='default')>: <function _reshape_alias at 0x7fc7c3d6a3b0>,
     <OpOverload(op='aten._unsafe_view', overload='out')>: <function _reshape_alias at 0x7fc7c3d6a3b0>,
     <OpOverload(op='aten.nll_loss_forward', overload='output')>: <function nll_loss_forward at 0x7fc7c3d6a560>,
     <OpOverload(op='aten.nll_loss_forward', overload='default')>: <function nll_loss_forward at 0x7fc7c3d6a560>,
     <OpOverload(op='aten.nll_loss2d_forward', overload='output')>: <function nll_loss2d_forward at 0x7fc7c3d6ac20>,
     <OpOverload(op='aten.nll_loss2d_forward', overload='default')>: <function nll_loss2d_forward at 0x7fc7c3d6ac20>,
     <OpOverload(op='aten.affine_grid_generator', overload='default')>: <function affine_grid_generator at 0x7fc7c3d6b9a0>,
     <OpOverload(op='aten.affine_grid_generator', overload='out')>: <function affine_grid_generator at 0x7fc7c3d6b9a0>,
     <OpOverload(op='aten.mv', overload='default')>: <function mv at 0x7fc7c3d6beb0>,
     <OpOverload(op='aten.mv', overload='out')>: <function mv at 0x7fc7c3d6beb0>,
     <OpOverload(op='aten.binary_cross_entropy_with_logits', overload='default')>: <function binary_cross_entropy_with_logits at 0x7fc7c3d8c0d0>,
     <OpOverload(op='aten.binary_cross_entropy_with_logits', overload='out')>: <function binary_cross_entropy_with_logits at 0x7fc7c3d8c0d0>,
     <OpOverload(op='aten.reflection_pad3d', overload='default')>: <function _reflection_pad at 0x7fc7c3d8c940>,
     <OpOverload(op='aten.reflection_pad3d', overload='out')>: <function _reflection_pad at 0x7fc7c3d8c940>,
     <OpOverload(op='aten.nansum', overload='default')>: <function nansum at 0x7fc7c3d8d480>,
     <OpOverload(op='aten.aminmax', overload='out')>: <function aminmax at 0x7fc7c3d8cd30>,
     <OpOverload(op='aten.aminmax', overload='default')>: <function aminmax at 0x7fc7c3d8cd30>,
     <OpOverload(op='aten.nansum', overload='out')>: <function nansum at 0x7fc7c3d8d480>,
     <OpOverload(op='aten.multi_margin_loss', overload='default')>: <function multi_margin_loss at 0x7fc7c3d8d990>,
     <OpOverload(op='aten.multi_margin_loss', overload='out')>: <function multi_margin_loss at 0x7fc7c3d8d990>,
     <OpOverload(op='aten.multilabel_margin_loss_forward', overload='default')>: <function multilabel_margin_loss_forward at 0x7fc7c3d8d750>,
     <OpOverload(op='aten._scaled_dot_product_flash_attention_for_cpu', overload='default')>: <function scaled_dot_product_flash_attention_for_cpu at 0x7fc7c3d8da20>,
     <OpOverload(op='aten.multilabel_margin_loss_forward', overload='output')>: <function multilabel_margin_loss_forward at 0x7fc7c3d8d750>,
     <OpOverload(op='aten._weight_norm_interface', overload='default')>: <function _weight_norm_interface at 0x7fc7c3d8e680>,
     <OpOverload(op='aten._weight_norm_interface', overload='out')>: <function _weight_norm_interface at 0x7fc7c3d8e680>,
     <OpOverload(op='aten.isin', overload='Tensor_Tensor')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.isin', overload='Tensor_Tensor_out')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.isin', overload='Tensor_Scalar')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.isin', overload='Tensor_Scalar_out')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.isin', overload='Scalar_Tensor')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.isin', overload='Scalar_Tensor_out')>: <function isin at 0x7fc7c3d8e8c0>,
     <OpOverload(op='aten.take', overload='default')>: <function take at 0x7fc7c3d8eb90>,
     <OpOverload(op='aten.take', overload='out')>: <function take at 0x7fc7c3d8eb90>,
     <OpOverload(op='aten.resize_as', overload='default')>: <function resize_as at 0x7fc7c3d8ea70>,
     <OpOverload(op='aten.resize_as', overload='out')>: <function resize_as at 0x7fc7c3d8ea70>,
     <OpOverload(op='aten.addbmm_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ec20>,
     <OpOverload(op='aten.addmm_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ecb0>,
     <OpOverload(op='aten.addmv_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ed40>,
     <OpOverload(op='aten.baddbmm_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8edd0>,
     <OpOverload(op='aten.fill_', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ee60>,
     <OpOverload(op='aten.fill_', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ee60>,
     <OpOverload(op='aten.gelu_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8eef0>,
     <OpOverload(op='aten.hardswish_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8ef80>,
     <OpOverload(op='aten.hardtanh_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f010>,
     <OpOverload(op='aten.hardsigmoid_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f0a0>,
     <OpOverload(op='aten.__iand__', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f130>,
     <OpOverload(op='aten.__iand__', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f130>,
     <OpOverload(op='aten.__ilshift__', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f1c0>,
     <OpOverload(op='aten.__ilshift__', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f1c0>,
     <OpOverload(op='aten.index_reduce_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f2e0>,
     <OpOverload(op='aten.__ior__', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f370>,
     <OpOverload(op='aten.__ior__', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f370>,
     <OpOverload(op='aten.__irshift__', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f400>,
     <OpOverload(op='aten.__irshift__', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f400>,
     <OpOverload(op='aten.__ixor__', overload='Tensor')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f490>,
     <OpOverload(op='aten.__ixor__', overload='Scalar')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f490>,
     <OpOverload(op='aten.leaky_relu_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f520>,
     <OpOverload(op='aten.logit_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f5b0>,
     <OpOverload(op='aten.relu_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f640>,
     <OpOverload(op='aten.renorm_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f6d0>,
     <OpOverload(op='aten.round_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f760>,
     <OpOverload(op='aten.round_', overload='decimals')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f760>,
     <OpOverload(op='aten.scatter_', overload='src')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f7f0>,
     <OpOverload(op='aten.scatter_', overload='value')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f7f0>,
     <OpOverload(op='aten.scatter_', overload='reduce')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f7f0>,
     <OpOverload(op='aten.scatter_', overload='value_reduce')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f7f0>,
     <OpOverload(op='aten.scatter_add_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f880>,
     <OpOverload(op='aten.scatter_reduce_', overload='two')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f910>,
     <OpOverload(op='aten.silu_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f9a0>,
     <OpOverload(op='aten.tanh_backward', overload='default')>: <function tanh_backward at 0x7fc7c3ebbd90>,
     <OpOverload(op='aten.tanh_backward', overload='grad_input')>: <function tanh_backward at 0x7fc7c3ebbd90>,
     <OpOverload(op='aten.sigmoid_backward', overload='default')>: <function sigmoid_backward at 0x7fc7c3ee00d0>,
     <OpOverload(op='aten.sigmoid_backward', overload='grad_input')>: <function sigmoid_backward at 0x7fc7c3ee00d0>,
     <OpOverload(op='aten.softplus_backward', overload='default')>: <function softplus_backward at 0x7fc7c3ee03a0>,
     <OpOverload(op='aten.softplus_backward', overload='grad_input')>: <function softplus_backward at 0x7fc7c3ee03a0>,
     <OpOverload(op='aten.elu_backward', overload='default')>: <function elu_backward at 0x7fc7c3ee0670>,
     <OpOverload(op='aten.elu_backward', overload='grad_input')>: <function elu_backward at 0x7fc7c3ee0670>,
     <OpOverload(op='aten.hardsigmoid_backward', overload='default')>: <function hardsigmoid_backward at 0x7fc7c3ee0ca0>,
     <OpOverload(op='aten.hardsigmoid_backward', overload='grad_input')>: <function hardsigmoid_backward at 0x7fc7c3ee0ca0>,
     <OpOverload(op='aten.hardtanh_backward', overload='default')>: <function hardtanh_backward at 0x7fc7c3ee0f70>,
     <OpOverload(op='aten.hardtanh_backward', overload='grad_input')>: <function hardtanh_backward at 0x7fc7c3ee0f70>,
     <OpOverload(op='aten.hardswish_backward', overload='default')>: <function hardswish_backward at 0x7fc7c3ee15a0>,
     <OpOverload(op='aten.hardswish_backward', overload='out')>: <function hardswish_backward at 0x7fc7c3ee15a0>,
     <OpOverload(op='aten.threshold_backward', overload='default')>: <function threshold_backward at 0x7fc7c3ee1630>,
     <OpOverload(op='aten.threshold_backward', overload='grad_input')>: <function threshold_backward at 0x7fc7c3ee1630>,
     <OpOverload(op='aten.leaky_relu_backward', overload='default')>: <function leaky_relu_backward at 0x7fc7c3ee1870>,
     <OpOverload(op='aten.leaky_relu_backward', overload='grad_input')>: <function leaky_relu_backward at 0x7fc7c3ee1870>,
     <OpOverload(op='aten.gelu_backward', overload='default')>: <function gelu_backward at 0x7fc7c3ee1b40>,
     <OpOverload(op='aten.gelu_backward', overload='grad_input')>: <function gelu_backward at 0x7fc7c3ee1b40>,
     <OpOverload(op='aten.mish_backward', overload='default')>: <function mish_backward at 0x7fc7c3ee1e10>,
     <OpOverload(op='aten.silu', overload='default')>: <function silu at 0x7fc7c3ee20e0>,
     <OpOverload(op='aten.silu', overload='out')>: <function silu at 0x7fc7c3ee20e0>,
     <OpOverload(op='aten.silu_backward', overload='default')>: <function silu_backward at 0x7fc7c3ee2170>,
     <OpOverload(op='aten.silu_backward', overload='grad_input')>: <function silu_backward at 0x7fc7c3ee2170>,
     <OpOverload(op='aten._prelu_kernel', overload='default')>: <function _prelu_kernel at 0x7fc7c3ee23b0>,
     <OpOverload(op='aten._prelu_kernel_backward', overload='default')>: <function _prelu_kernel_backward at 0x7fc7c3ee2440>,
     <OpOverload(op='aten.rrelu_with_noise', overload='default')>: <function rrelu_with_noise at 0x7fc7c3ee27a0>,
     <OpOverload(op='aten.rrelu_with_noise', overload='out')>: <function rrelu_with_noise at 0x7fc7c3ee27a0>,
     <OpOverload(op='aten.rrelu_with_noise_', overload='default')>: <function rrelu_with_noise_ at 0x7fc7c3ee2830>,
     <OpOverload(op='aten.rrelu_with_noise_backward', overload='default')>: <function rrelu_with_noise_backward at 0x7fc7c3ee2a70>,
     <OpOverload(op='aten.rrelu_with_noise_backward', overload='out')>: <function rrelu_with_noise_backward at 0x7fc7c3ee2a70>,
     <OpOverload(op='aten.log_sigmoid_backward', overload='default')>: <function log_sigmoid_backward at 0x7fc7c3ee2b00>,
     <OpOverload(op='aten.sym_numel', overload='default')>: <function sym_numel at 0x7fc7c3d8e3b0>,
     <OpOverload(op='aten.cudnn_batch_norm', overload='default')>: <function cudnn_batch_norm at 0x7fc7c3d41bd0>,
     <OpOverload(op='aten.lift_fresh', overload='default')>: <function nop_decomposition at 0x7fc7c3d41ab0>,
     <OpOverload(op='aten.index_put_', overload='default')>: <function register_inplace.<locals>.inplace_op at 0x7fc7c3d8f250>}

OrtBackend

experimental_experiment.torch_dynamo.fast_backend.OrtBackend(sess: onnxruntime.InferenceSession, run_options: onnxruntime.RunOptions | None = None, devices: Dict[int, Any] | None = None, input_names: List[str] | None = None, output_names: List[str] | None = None, is_dimension_in: List[Tuple[bool, int, str]] | None = None, is_dimension_out: List[Tuple[bool, int, str | None]] | None = None, dump_first_inputs: str | None = None, stor: Dict[str, Any] | None = None, onnx_model: ModelProto | None = None)[source]

Wraps method run_with_ortvaluevector from InferenceSession to implement a backend for torch.dynamo.