Commit Graph

455 Commits

Author SHA1 Message Date
Justin Chu
c8b9b6266b [ONNX] Fix arg type in _set_training_mode (#78583)
When `TrainingMode.PRESERVE` is set for export, the exporter used to change the model's training mode based on some logic. Now we respect the option and not touch the model's training state.

- Previously `_set_training_mode`'s behavior doesn't match what the global variable expects. This PR removes the deprecated `_set_training_mode` and makes the type correct.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/78583
Approved by: https://github.com/BowenBao
2022-06-15 23:47:12 +00:00
Jane Xu
d2fbfe7fce [ONNX] subscribe onnx to our custom test infra (#79546)
Remove as many references as can be easily done of unittest in favor of our custom infra.

Left a todo where I could not easily replace unittest.main with run_tests()
Pull Request resolved: https://github.com/pytorch/pytorch/pull/79546
Approved by: https://github.com/seemethere
2022-06-15 15:00:04 +00:00
Justin Chu
d3ef5c3fa3 [ONNX] Clean up __init__ in torch.onnx (#78446)
- Move definitions in `__init__` to internal classes and expose them by importing to init (prevent circular dependencies): https://github.com/pytorch/pytorch/wiki/torch.onnx-Namespacing
  - Context classes and enums are moved to `_exporter_states.py`
  - Exceptions are moved to `errors.py`
- Define `__all__` for torch.onnx. https://github.com/pytorch/pytorch/wiki/Public-API-definition-and-documentation
- Moved `utils.__IN_ONNX_EXPORT` to `GLOBALS.in_onnx_export`
- Deprecated `torch.onnx._export`

Precedes #78231

Using this as an aid for finding public functions:

```python
list(filter(lambda x: not x.startswith("_"), torch.onnx.utils.__dict__.keys()))
```
Pull Request resolved: https://github.com/pytorch/pytorch/pull/78446
Approved by: https://github.com/BowenBao
2022-06-14 04:35:06 +00:00
qqaatw
1a845579b6 [ONNX] Fix inconsistent rand dtype (#79193)
ONNX export of torch.rand produced different data type. This PR makes the type correct

Fixes #77845

Pull Request resolved: https://github.com/pytorch/pytorch/pull/79193
Approved by: https://github.com/justinchuby, https://github.com/garymm
2022-06-14 03:06:39 +00:00
qqaatw
2bafb42a0a Add onnx support for movedim and moveaxis (#78931)
Fixes #68918

Pull Request resolved: https://github.com/pytorch/pytorch/pull/78931
Approved by: https://github.com/BowenBao
2022-06-09 19:41:09 +00:00
shubhambhokare1
d26c575ff5 [ONNX] Enable script tests based on recent exporter changes (#77254)
Pull Request resolved: https://github.com/pytorch/pytorch/pull/77254
Approved by: https://github.com/justinchuby, https://github.com/BowenBao
2022-06-08 17:18:49 +00:00
Li-Huai (Allan) Lin
b45d303dac Add onnx support for torch.lerp (#78891)
Fixes #68384

Pull Request resolved: https://github.com/pytorch/pytorch/pull/78891
Approved by: https://github.com/BowenBao
2022-06-08 17:16:45 +00:00
qqaatw
e4c3e98a48 Add onnx support for torch.tensor_split (#77437)
Fixes #73454

Pull Request resolved: https://github.com/pytorch/pytorch/pull/77437
Approved by: https://github.com/garymm
2022-06-08 06:06:34 +00:00
Justin Chu
def778527e [ONNX] Quantization support for five ops (#78103)
- Add quantization support for `interpolate`, `avgpool`, `sigmoid` and `add_relu`
- Return the inputs to ListUnpack if the previous node is ListConstruct so that `ListConstruct` and `ListUnpack` are canceled and removed in the jit passes. ONNX doesn't support them.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/78103
Approved by: https://github.com/garymm
2022-06-03 20:22:07 +00:00
Jinkun Lin
0f05e39870 [ONNX] Fix shape inconsistency when exporting scalar log2 (#78701)
This is a simple fix addressing the exportation when the input to `torch.log2` is scalar. `log2(x)` will be exported as `log(x) / log(2)`, which creates a `log` node followed by a `div` node that divides it by a constant. The constant is constructed not as a scalar but as a tensor of shape `[1]`, so a scalar input here will get broadcasted creating the output tensor with shape `[1]`, while originally the torch model's output is a scalar.

```python
import torch
import onnx
import numpy as np

class Model(torch.nn.Module):
    def forward(self, x):
        return torch.log2(x)

x = torch.tensor(1.)  # scalar
model = Model()
torch.onnx.export(model, (x, ), "output.onnx", opset_version=14,
                  output_names=['o0'], input_names=['i0'])
y_trh = model(x).numpy()

model = onnx.load("output.onnx")
print(model.graph.output[0])

import onnxruntime as ort
sess = ort.InferenceSession(
    "output.onnx", providers=['CPUExecutionProvider'])
y_ort = sess.run(['o0'], {'i0': x.numpy()})[0]
assert y_ort.shape == y_trh.shape, 'shape mismatch, ORT is `{}` but PyTorch is `{}`'.format(
    y_ort.shape, y_trh.shape)

```
The resulting ONNX model has an output of shape `[1]` and causes shape mismatch between ORT and PyTorch. The output:
```
name: "o0"
type {
  tensor_type {
    elem_type: 1
    shape {
      dim {
        dim_value: 1
      }
    }
  }
}

Traceback (most recent call last):
  File "test.py", line 501, in <module>
    y_ort.shape, y_trh.shape)
AssertionError: shape mismatch, ORT is `(1,)` but PyTorch is `()`
```
After the fix, the output becomes:
```
name: "o0"
type {
  tensor_type {
    elem_type: 1
    shape {
    }
  }
}
```

Pull Request resolved: https://github.com/pytorch/pytorch/pull/78701
Approved by: https://github.com/justinchuby, https://github.com/BowenBao
2022-06-03 18:41:17 +00:00
Gary Miguel
fb7a761ffd [ONNX] reduce log spam when exporting dropout in training mode (#78309)
The default for `torch.onnx.export` is `TrainingMode.EVAL`:
0d76299ff7/torch/onnx/__init__.py (L63)

That means that this warning is only printed when the caller overrides
that and explicitly specifies that they want training ops like Dropout.
We should assume the user knows what they're doing and not warn.

Also set `do_constant_folding=False` in the dropout related training tests. Without this, warnings are printed like:
```
UserWarning: It is recommended that constant folding be turned off ('do_constant_folding=False') when exporting the model in training-amenable mode
```
Pull Request resolved: https://github.com/pytorch/pytorch/pull/78309
Approved by: https://github.com/justinchuby, https://github.com/BowenBao
2022-06-03 18:41:07 +00:00
BowenBao
cfc968956c [ONNX] Update CI test script to run parallel by default (#78200)
Also update default process count to auto, matching the CI machine
cpu core count.

Fixes #77678

Pull Request resolved: https://github.com/pytorch/pytorch/pull/78200
Approved by: https://github.com/garymm
2022-06-02 00:25:17 +00:00
BowenBao
6883b0ce9f [ONNX][WIP] Refactor verification.py
* Rename arguments, code clean up.
* Refactor functions to smaller reusable functions.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/77289

Approved by: https://github.com/justinchuby, https://github.com/garymm
2022-05-31 18:49:39 +00:00
Mike Ruberry
089203f8bc Updates floor_divide to perform floor division (#78411)
Fixes https://github.com/pytorch/pytorch/issues/43874

This PR changes floor_divide to perform floor division instead of truncation division.

This is a BC-breaking change, but it's a "bug fix," and we've already warned users for several releases this behavior would change.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/78411
Approved by: https://github.com/ngimel
2022-05-29 21:28:45 +00:00
BowenBao
483bb4f0cb [ONNX] Extract export verification as standalone api from unittest
The verification logic is refactored and extracted from
`test_pytorch_onnx_onnxruntime.py`.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/76929

Approved by: https://github.com/justinchuby, https://github.com/garymm
2022-05-26 19:49:19 +00:00
Justin Chu
161e931156 [ONNX] Modernize python syntax (#77935)
Use pyupgrade(https://github.com/asottile/pyupgrade) and flynt to modernize python syntax

```sh
pyupgrade --py36-plus --keep-runtime-typing torch/onnx/**/*.py
pyupgrade --py36-plus --keep-runtime-typing test/onnx/**/*.py
flynt torch/onnx/ --line-length 120
```

- Use f-strings for string formatting
- Use the new `super()` syntax for class initialization
- Use dictionary / set comprehension
Pull Request resolved: https://github.com/pytorch/pytorch/pull/77935
Approved by: https://github.com/BowenBao
2022-05-24 22:52:37 +00:00
Xiang Gao
f274558018 Bitwise ops improvements (#77621)
- Bitwise shift remove floating point support
- Bitwise and, or, xor add (scalar, tensor) overload
- Use `test_ops.py` to test these ops, including error cases
Pull Request resolved: https://github.com/pytorch/pytorch/pull/77621
Approved by: https://github.com/ngimel
2022-05-17 21:16:42 +00:00
Gary Miguel
bdacc0856c [ONNX] handle equality checks on devices (#77203)
Previously the newly added `test_device_eq` would fail since the inputs
to `Equal` were invalid. Handle this by replacing its inputs with a
fixed tensor `Constant`. This is OK since ONNX doesn't have the concept
of different devices.

Discovered during investigation of
https://github.com/microsoft/onnx-converters-private/issues/9
Pull Request resolved: https://github.com/pytorch/pytorch/pull/77203
Approved by: https://github.com/BowenBao
2022-05-13 21:41:31 +00:00
Justin Chu
1dd7336441 [ONNX] Add quantization support for maxpool (#77393)
Support quantization for maxpool exporting to ONNX.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/77393
Approved by: https://github.com/BowenBao
2022-05-13 00:32:25 +00:00
Xiang Gao
cc9d0f309e lshift and rshift stop support floating types (#77146)
Fixes #74358

Pull Request resolved: https://github.com/pytorch/pytorch/pull/77146
Approved by: https://github.com/ngimel
2022-05-11 22:29:30 +00:00
Justin Chu
5dd1c67776 [ONNX] Format ONNX python with black
Format all onnx python code with black and isort with

```sh
isort torch/onnx/ test/onnx
black torch/onnx/ test/onnx
```

Updated lintrunner config to include these paths.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/76754
Approved by: https://github.com/suo, https://github.com/BowenBao
2022-05-05 00:19:22 +00:00
BowenBao
679fc90cdb [ONNX] Support optional type (#68793) (#73284)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/73284

Some important ops won't support optional type until opset 16,
so we can't fully test things end-to-end, but I believe this should
be all that's needed. Once ONNX Runtime supports opset 16,
we can do more testing and fix any remaining bugs.

Test Plan: Imported from OSS

Reviewed By: albanD

Differential Revision: D34625646

Pulled By: malfet

fbshipit-source-id: 537fcbc1e9d87686cc61f5bd66a997e99cec287b

Co-authored-by: BowenBao <bowbao@microsoft.com>
Co-authored-by: neginraoof <neginmr@utexas.edu>
Co-authored-by: Nikita Shulga <nshulga@fb.com>
(cherry picked from commit 822e79f31ae54d73407f34f166b654f4ba115ea5)
2022-05-04 20:24:30 +00:00
Masaki Kozuki
0ae3aa648e [torch.onnx] support torch.nn.functional.grid_sample
summary

- Adds `F.grid_sample` support
- Adds a test case

Fixes #27212
Pull Request resolved: https://github.com/pytorch/pytorch/pull/76159
Approved by: https://github.com/justinchuby, https://github.com/BowenBao
2022-05-02 22:07:58 +00:00
BowenBao
8d31706b9e [ONNX] Support restricted quantized range for activation.
PyTorch restricts activations to be in the range (0, 127).
In ONNX, the supported ranges are (0, 255) and (-128, 127),
respectfully, uint8 and int8. This PR extends support for range
(0, 127), by adding additional clipping when detected.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/76055

Approved by: https://github.com/garymm
2022-04-25 01:17:21 +00:00
BowenBao
cada2cd3ae [ONNX] Support per channel quantization
Extending the support for quantization with per channel quantization.
An extra attribute `axis` can be found for per channel quantized tensors,
most commonly in quantized weight of Convolution or Linear module.
The PR adds support to correctly parse the `axis` attribute, and map to
ONNX representation in `QuantizeLinear` and `DequantizeLinear`.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/76002

Approved by: https://github.com/garymm
2022-04-25 01:14:57 +00:00
BowenBao
2c748b7573 [ONNX] Trace model if quantization is detected
Previously pre-tracing model is required for exporting quantized model.
e.g. calling `traced_m = torch.jit.trace(model, inputs)` and export `traced_m`.
The reason was quantized weights are stored in a unique `PackedParam` structure,
and they need to be handled by tracing to be exportable.
This PR enables export api to call tracing underneath if it detects quantization
in the model.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/75921

Approved by: https://github.com/garymm
2022-04-22 17:27:32 +00:00
shubhambhokare1
e0c1786587 [onnx] Add support for torch.cross and torch.cdist
Add support for following operators:
- torch.cross
- torch.linalg.cross
- torch.cdist
- torch.nn.pairwisedistance
Pull Request resolved: https://github.com/pytorch/pytorch/pull/75278
Approved by: https://github.com/BowenBao
2022-04-21 20:35:25 +00:00
BowenBao
45a7ae1929 [ONNX] Add verbose option to onnx unittests
Makes it more convenient to view exported graphs when debugging
unittest cases.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/75919

Approved by: https://github.com/garymm
2022-04-19 21:26:19 +00:00
Jay Zhang
166568d49f Enhance exporting torch.minimum() function to ONNX so it can handle parameters with different dtype.
Handle the case that the parameters of torch.minimum() have different dtypes. Add tests as well.

Fixes #76022
Pull Request resolved: https://github.com/pytorch/pytorch/pull/75861
Approved by: https://github.com/thiagocrepaldi, https://github.com/garymm
2022-04-19 16:36:10 +00:00
BowenBao
7545e2a4d6 [ONNX] Add constant fold for onnx::ReduceProd
One of the origins for `onnx::ReduceProd` is `aten::numel`.
Adding constant fold support for `onnx::ReduceProd` closes the gap
and enables symbolic shape inference for `aten::numel` nodes that
has static shape input.

One example is `torch.nn.EmbeddingBag` when input is 2d. An `Offset`
tensor will be created by `tensor.numel()`. This `Offset` can be
properly exported as constant now, if the input has static shape.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/74082

Approved by: https://github.com/garymm
2022-04-13 22:36:02 +00:00
BowenBao
aa51ee2345 Enable numel tracing
clang-format

resolve onnx test failure

update expect file

Pull Request resolved: https://github.com/pytorch/pytorch/pull/74081

Approved by: https://github.com/garymm, https://github.com/eellison, https://github.com/malfet
2022-04-13 22:23:41 +00:00
BowenBao
f78e0fc956 [ONNX] Support aminmax
Support exporting `torch.aminmax`.
One of the use case is exporting fake quantized models. The observer calls 1601a4dc9f/torch/ao/quantization/observer.py (L447).

Pull Request resolved: https://github.com/pytorch/pytorch/pull/75714
Approved by: https://github.com/garymm
2022-04-13 19:18:46 +00:00
BowenBao
6305e572ed [ONNX] Support dynamic scale & zero_point for fake_quantize_per_tensor_affine
Dynamic scale & zero_point requires opset 13 `ONNX::QuantizeLinear`
and `ONNX::DequantizeLinear`.
Improved error message when scale is not constant for opset 10 symbolic function.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/75697
Approved by: https://github.com/garymm
2022-04-13 19:17:58 +00:00
ganler
c1f0e6e763 [ONNX] Make Non-Float Op Exportation Compatible to Avoid Invalid ONNX Models
There are a few ONNX operators do not support non-float (e.g., integer) inputs at early versions. For example, Clip supports non-float types until [opset 12](https://github.com/onnx/onnx/blob/main/docs/Changelog.md#type-constraints-280), that said older versions like [opset 6](https://github.com/onnx/onnx/blob/main/docs/Changelog.md#type-constraints-107) cannot deal with integer types.

I initially find such a bug in Clip (https://github.com/pytorch/pytorch/pull/70584), but later found more:
1. Clip < 12;
2. Min/Max < 12;
3. ReLU < 14;
4. Pad < 11;

In PyTorch, if we export Max-11 with integer inputs, actually the exportation will succeed; however, fail when imported by other frameworks like ONNXRuntime.

```python
import torch

class Net(torch.nn.Module):
    def __init__(self) -> None:
        super().__init__()

    def forward(self, x: torch.Tensor):
        return torch.max(x, x + 1)

net = Net()
onnx_model = 'test.onnx'

torch.onnx.export(net, (torch.zeros((3, 3), dtype=torch.int32),),
                  onnx_model, verbose=True, opset_version=11)
```

This is an unexpected behavior as we want to ensure that every model exported by PyTorch is valid (https://github.com/pytorch/pytorch/pull/70584#issuecomment-1020636579). Theoretically, we can simply forbid such cases (e.g., `Clip<int>` < 12, `ReLU<int>` < 14). But actually we can enhance the compatibility and flexibility of PyTorch by simply casting inputs of those operators into float tensors, which allows the float operator functions, and then casting it back to original types.

This PR implements the second approach to achieve better compatibility in PyTorch.

@garymm  @thiagocrepaldi

Pull Request resolved: https://github.com/pytorch/pytorch/pull/72401
Approved by: https://github.com/garymm, https://github.com/thiagocrepaldi
2022-04-11 23:26:44 +00:00
Eugene Lyapustin
d88a116015 Fix exporting models to ONNX without allow_tf32 in _convolution call
Fixes #75098
Pull Request resolved: https://github.com/pytorch/pytorch/pull/75099
Approved by: https://github.com/BowenBao
2022-04-08 17:23:36 +00:00
BowenBao
e60c403b2f [ONNX] Use fixed test input for flaky test
Fixes #74501

Random weight and input sometimes result in slight output mismatch
between PyTorch and ONNX model. This is expected as the ONNX
model is executed in QDQ format.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/75285
Approved by: https://github.com/garymm
2022-04-07 18:53:25 +00:00
BowenBao
50b6959c0f [ONNX] Support torch.amax and torch.amin
Fixes #75167

Pull Request resolved: https://github.com/pytorch/pytorch/pull/75268
Approved by: https://github.com/garymm
2022-04-07 00:16:26 +00:00
Gary Miguel
ca374773b4 [ONNX] update default opset_version to 13 (#73898)
Summary:
And add a new tool to update it in the future, which follows the policy
of using "latest as of 18 months ago". This policy is meant to balance:
* recent enough to increase the odds of being able to successfully
  export
* old enough to increase the odds of exported model being runnable by
  different ONNX implementations

Related changes:

* test_models.py: explicitly fix opset_version to 9 rather than relying on default. Caffe2 doesn't support newer versions.
* symbolic_helper.py:
  * Remove a misleading comment
  * Remove unnecessary check in `_set_opset_version`
  * Use a range to define `_onnx_stable_opsets`
* test_pytorch_common.py:
  * Rename a variable from min -> max. I think it was a copy-paste error.
  * Make skip test messages more informative.
  * Remove unused `skipIfONNXShapeInference`. More on that below.
* test_pytorch_onnx_onnxruntime.py:
  * Make all the `TestCase` classes explicitly specify opset version.
  * Make `test_unsupported_pad` respect `opset_version` by using `run_test`
  * Unrelated simplification: make it obvious that all tests run with `onnx_shape_inference=True`. AFAICT this was already the case.
  * There was one test that was entirely disabled (test_tolist) because it was asking to be skipped whenever `onnx_shape_inference=True`, but it was always True. I changed the model being tested so as to preserve the intended test coverage but still have the test actually pass.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/73898

Reviewed By: msaroufim

Differential Revision: D35264615

Pulled By: malfet

fbshipit-source-id: cda8fbdffe4cc8210d8d96e659e3a9adf1b5f1d2
(cherry picked from commit b5e639e88828d34442282d0b50c977e610a2ba3a)
2022-04-07 00:02:31 +00:00
shubhambhokare1
ef41201d4a [ONNX] Add bucketize symbolic
Add support for torch.bucketize
Pull Request resolved: https://github.com/pytorch/pytorch/pull/74856
Approved by: https://github.com/garymm
2022-04-06 20:13:45 +00:00
BowenBao
2ba496bc23 [ONNX] Fix 1d case flatten export
Fixes #74142

Previous check `dim is not None and end_dim == dim - 2` didn't consider `end_dim` being negative. However the error only occurs when input tensor has rank 1, and the rank is known to symbolic function. So a better fix is to return `input` directly when rank is 1.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/74595
Approved by: https://github.com/garymm
2022-03-23 23:50:51 +00:00
shubhambhokare1
d8c31a819d [ONNX] Modify int[] listConstruct to support tensor arg
Avoid creating unsqueeze nodes for ListConstruct Int[] ouput case with tensor inputs
For example, if the listConstruct is (tensor[2], 1, 5), avoid adding unsqueeze nodes for tensor[2]

Pull Request resolved: https://github.com/pytorch/pytorch/pull/73927
Approved by: https://github.com/garymm
2022-03-23 17:43:43 +00:00
Vasilis Vryniotis
ea56b9d92d Passing explicit pretrained_backbone (#74372)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/74372

In preparation to the multi-weight support porting, we pass explicitly the pretrained_blackbone value. We use the default value `True` for most cases, except for when the use-case is clearly a test and thus should avoid downloading the weights of the backbone.

Test Plan: running project unit-tests

Reviewed By: jdsgomes

Differential Revision: D34961147

fbshipit-source-id: cf29e42545302716a7cd3f3eb0d69e44d5fb6c73
(cherry picked from commit c4613b7abacd106d097de1b73b13af92132e1739)
2022-03-22 18:36:47 +00:00
Michael Suo
7ccfc114b5 skip flaky onnx quantized test
see: https://github.com/pytorch/pytorch/issues/74501

Pull Request resolved: https://github.com/pytorch/pytorch/pull/74502

Approved by: https://github.com/BowenBao, https://github.com/malfet
2022-03-21 22:33:28 +00:00
BowenBao
57c7bf7fee [ONNX] Remove redundant warning for reshape
Fixes #73129.

The warning is not actionable and seems to be potentially false alarming.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/73265
Approved by: https://github.com/shubhambhokare1, https://github.com/garymm
2022-03-14 20:58:26 +00:00
BowenBao
b553e73c01 [ONNX] Enable topk export with non-int64 k
Pull Request resolved: https://github.com/pytorch/pytorch/pull/73761
Approved by: https://github.com/garymm
2022-03-10 19:32:22 +00:00
BowenBao
97ae431e3e [ONNX] Add symbolic support for torch.nn.cosinesimilarity (#72128) (#73283)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/73283

* Add support for torch.nn.cosine_similarity

* Remove fallback logic

* Fix onnx test failures

* Fix opset version

* Modify rtol

* Add aten fallback mode

* fix mypy

* gate with caffe2 fallback

Test Plan: Imported from OSS

Reviewed By: jbschlosser

Differential Revision: D34625650

Pulled By: malfet

fbshipit-source-id: bf15d32b1d7055d0ca166d9941ba90b5c8e81cc2
(cherry picked from commit 7086031c52e1bea9bead6966d44e2635060194db)
2022-03-09 14:26:18 +00:00
BowenBao
95b1232752 [ONNX] use onnxruntime 1.10 in CI (#69271) (#73282)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/73282

Enable tests that are fixed by ORT 1.10

Test Plan: Imported from OSS

Reviewed By: jbschlosser

Differential Revision: D34625649

Pulled By: malfet

fbshipit-source-id: 103ae5275f3a7eb891ad4dd2b606ebf198a800fe
(cherry picked from commit e0ddeb4205678e993d744efa06939b0977463a76)
2022-03-09 14:26:18 +00:00
BowenBao
6c26bf0e72 [ONNX] Fix repeat interleave when repeats and dim is 1
Fixes #62936

Root cause is `Split` in `_repeat_interleave_split_helper` returns single element when `outputs=1`, instead of list if otherwise.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/73760
Approved by: https://github.com/garymm
2022-03-07 20:44:35 +00:00
BowenBao
4a74285e97 [ONNX] Rewrite linspace symbolic
Original symbolic relies on ONNX Range with float inputs. The results are unstable due to precision issues.

Fixes #73559

Pull Request resolved: https://github.com/pytorch/pytorch/pull/73610
Approved by: https://github.com/fatcat-z, https://github.com/garymm
2022-03-04 21:45:52 +00:00
BowenBao
8280919fe6 [ONNX] Export bias requantize steps to ONNX
Original `bias` is float in PyTorch. Quantization is applied in kernel.
To mimic behavior in ONNX, export the `bias` quantization step,
then append the dequantization step to ready `bias` for unquantized operators.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/73336
2022-03-01 01:01:23 +00:00