| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- """This file exports ONNX ops for opset 16.
- Note [ONNX Operators that are added/updated in opset 16]
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- https://github.com/onnx/onnx/blob/main/docs/Changelog.md#version-16-of-the-default-onnx-operator-set
- New operators:
- GridSample https://github.com/onnx/onnx/pull/3557
- Updated operators:
- Identity
- If
- LeakyRelu
- Loop
- PRelu
- RoiAlign
- Scan
- ScatterElemenets
- ScatterND
- Where
- GreaterOrEqual
- LessOrEqual
- SequenceMap
- """
- # EDITING THIS FILE? READ THIS FIRST!
- # see Note [Edit Symbolic Files] in symbolic_helper.py
- from torch.nn.functional import (
- GRID_SAMPLE_INTERPOLATION_MODES,
- GRID_SAMPLE_PADDING_MODES,
- )
- from torch.onnx import symbolic_helper
- # note (mkozuki): Why `grid_sampler` instead of `grid_sample`?
- # Because `torch.nn.functional.grid_sample` calls `torch.grid_sampler`.
- @symbolic_helper.parse_args("v", "v", "i", "i", "b")
- def grid_sampler(g, input, grid, mode_enum, padding_mode_enum, align_corners):
- mode_s = {v: k for k, v in GRID_SAMPLE_INTERPOLATION_MODES.items()}[mode_enum] # type: ignore[call-arg]
- padding_mode_s = {v: k for k, v in GRID_SAMPLE_PADDING_MODES.items()}[padding_mode_enum] # type: ignore[call-arg]
- return g.op(
- "GridSample",
- input,
- grid,
- align_corners_i=int(align_corners),
- mode_s=mode_s,
- padding_mode_s=padding_mode_s,
- )
|