From 72c81448bb17ca4adcd6c4f55e8e84ee0aef445a Mon Sep 17 00:00:00 2001 From: Degao Chu Date: Sat, 21 Aug 2021 00:06:42 +0800 Subject: [PATCH] Release 1.9.0 (#964) * release 1.9.0 Signed-off-by: degaochu * release 1.9.0 Signed-off-by: degaochu * release 1.9.0 Signed-off-by: degaochu * release 1.9.0 Signed-off-by: degaochu * release 1.9.0 Signed-off-by: degaochu * trigger CLA check Signed-off-by: degaochu --- .github/workflows/test-backend.yml | 14 +- .github/workflows/test-modelzoo.yml | 4 +- ONNX_VERSION_NUMBER | 2 +- README.md | 4 +- VERSION_NUMBER | 2 +- Versioning.md | 1 + doc/support_status.md | 352 ++++++++++++++-------------- doc/support_status_v1_9_0.md | 210 +++++++++++++++++ test/backend/test_model.py | 14 +- test/backend/test_onnx_backend.py | 3 + 10 files changed, 410 insertions(+), 196 deletions(-) create mode 100644 doc/support_status_v1_9_0.md diff --git a/.github/workflows/test-backend.yml b/.github/workflows/test-backend.yml index d48f4cac..9bc0c368 100644 --- a/.github/workflows/test-backend.yml +++ b/.github/workflows/test-backend.yml @@ -14,21 +14,21 @@ jobs: # - use oldest and latest supported python versions # - use pinned versions for current onnx-tf release os: [ubuntu-latest, windows-latest, macos-latest] - python-version: [3.6, 3.8] - onnx-version: ['onnx==1.8.0'] - tensorflow-version: ['tensorflow-cpu==2.4.1 tensorflow-addons==0.12.0'] + python-version: [3.8, 3.9] + onnx-version: ['onnx==1.9.0'] + tensorflow-version: ['tensorflow-cpu==2.6.0 tensorflow-addons==0.13.0'] include: - # Test previous versions on Linux only (regression) # - use pinned versions for previous onnx-tf release os: ubuntu-latest - python-version: 3.6 - onnx-version: 'onnx==1.8.0' - tensorflow-version: 'tensorflow==2.4.1 tensorflow-addons==0.12.0' + python-version: 3.8 + onnx-version: 'onnx==1.9.0' + tensorflow-version: 'tensorflow==2.6.0 tensorflow-addons==0.13.0' - # Test development versions on Linux only # - latest development versions # - allow failure via GitHub branch protection rule os: ubuntu-latest - python-version: 3.8 + python-version: 3.9 onnx-version: 'development' tensorflow-version: 'tensorflow-cpu tensorflow-addons' diff --git a/.github/workflows/test-modelzoo.yml b/.github/workflows/test-modelzoo.yml index 359075de..c262375a 100644 --- a/.github/workflows/test-modelzoo.yml +++ b/.github/workflows/test-modelzoo.yml @@ -28,10 +28,10 @@ jobs: path: wiki - uses: actions/setup-python@v2 with: - python-version: '3.6' + python-version: '3.8' - name: Install dependencies run: | - pip install onnx==1.8.0 tensorflow==2.4.1 tensorflow-addons==0.12.0 + pip install onnx==1.9.0 tensorflow==2.6.0 tensorflow-addons==0.13.0 pip install -e . - name: Run ModelZoo tests run: | diff --git a/ONNX_VERSION_NUMBER b/ONNX_VERSION_NUMBER index 27f9cd32..f8e233b2 100644 --- a/ONNX_VERSION_NUMBER +++ b/ONNX_VERSION_NUMBER @@ -1 +1 @@ -1.8.0 +1.9.0 diff --git a/README.md b/README.md index 0e9c0f83..1898a894 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ The specific ONNX release version that we support in the master branch of ONNX-T To install the latest version of ONNX-TF via pip, run `pip install onnx-tf`. -Because users often have their own preferences for which variant of TensorFlow to install (i.e., a GPU version instead of a CPU version), we do not explicitly require tensorflow in the installation script. It is therefore users' responsibility to ensure that the proper variant of TensorFlow is available to ONNX-TF. Moreover, we require TensorFlow version == 2.4.1. +Because users often have their own preferences for which variant of TensorFlow to install (i.e., a GPU version instead of a CPU version), we do not explicitly require tensorflow in the installation script. It is therefore users' responsibility to ensure that the proper variant of TensorFlow is available to ONNX-TF. Moreover, we require TensorFlow version == 2.6.0. ## Development @@ -53,7 +53,7 @@ Because users often have their own preferences for which variant of TensorFlow t ### Installation - Install ONNX master branch from source. -- Install TensorFlow >= 2.4.1 and tensorflow-addons. (Note TensorFlow 1.x is no longer supported) +- Install TensorFlow >= 2.6.0 and tensorflow-addons. (Note TensorFlow 1.x is no longer supported) - Run `git clone https://github.com/onnx/onnx-tensorflow.git && cd onnx-tensorflow`. - Run `pip install -e .`. diff --git a/VERSION_NUMBER b/VERSION_NUMBER index 27f9cd32..f8e233b2 100644 --- a/VERSION_NUMBER +++ b/VERSION_NUMBER @@ -1 +1 @@ -1.8.0 +1.9.0 diff --git a/Versioning.md b/Versioning.md index d6dcb6c6..a236db9d 100644 --- a/Versioning.md +++ b/Versioning.md @@ -10,3 +10,4 @@ ONNX-TensorFlow version|ONNX version|TensorFlow version 1.6.0|1.6.0 (opset 11)|2.2.0 1.7.0|1.7.0 (opset 12)|2.3.1 1.8.0|1.8.0 (opset 13)|2.4.1 +1.9.0|1.9.0 (opset 14)|2.6.0 diff --git a/doc/support_status.md b/doc/support_status.md index 92f5d5d8..98c0744d 100644 --- a/doc/support_status.md +++ b/doc/support_status.md @@ -1,9 +1,9 @@ # ONNX-Tensorflow Support Status ||| |-:|:-| -|ONNX-Tensorflow Version|Master ( commit id: a1005fbd2a95699a34f83d5d25fe20d5213860d3 )| -|ONNX Version|Master ( commit id: 1f63dcb7fcc3a8bf5c3c8e326867ecd6f5c43f35 )| -|Tensorflow Version|v2.5.0| +|ONNX-Tensorflow Version|Master ( commit id: 9d0eb58fc283037a0dc2cfd7a2346355f6798d62 )| +|ONNX Version|Master ( commit id: c24cd429c4ab47d2b057da8174788c39c60f8760 )| +|Tensorflow Version|v2.6.0| Notes: * Values that are new or updated from a previous opset version are in bold. @@ -13,180 +13,180 @@ Notes: * :small_orange_diamond:: partially supported * the rest are all supported -|||||||||||||||||| -|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| -|**ONNX Operator**|**Opset 1**|**Opset 2**|**Opset 3**|**Opset 4**|**Opset 5**|**Opset 6**|**Opset 7**|**Opset 8**|**Opset 9**|**Opset 10**|**Opset 11**|**Opset 12**|**Opset 13**|**Opset 14**|**Opset 15**|**ONNX Operator**| -|Abs|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|Abs| -|Acos|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|Acos| -|Acosh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|Acosh| -|Add|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|14|Add| -|And|**1**|1|1|1|1|1|**7**|7|7|7|7|7|7|7|7|And| -|ArgMax|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|13|ArgMax| -|ArgMin|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|13|ArgMin| -|Asin|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|Asin| -|Asinh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|Asinh| -|Atan|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|Atan| -|Atanh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|Atanh| -|AveragePool|**1**|1|1|1|1|1|**7**|7|7|**10**|**11**|11|11|11|11|AveragePool| -|BatchNormalization|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**6**:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|**9**:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|**14**:small_orange_diamond:|**15**:small_red_triangle:|BatchNormalization| -|Bernoulli|-|-|-|-|-|-|-|-|-|-|-|-|-|-|**15**:small_red_triangle:|Bernoulli| -|BitShift|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|BitShift| -|Cast|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**6**:small_orange_diamond:|6:small_orange_diamond:|6:small_orange_diamond:|**9**:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|**13**:small_orange_diamond:|13:small_orange_diamond:|13:small_orange_diamond:|Cast| -|CastLike|-|-|-|-|-|-|-|-|-|-|-|-|-|-|**15**:small_red_triangle:|CastLike| -|Ceil|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|Ceil| -|Celu|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|12|Celu| -|Clip|**1**|1|1|1|1|**6**|6|6|6|6|**11**|**12**|**13**|13|13|Clip| -|Compress|-|-|-|-|-|-|-|-|**9**|9|**11**|11|11|11|11|Compress| -|Concat|**1**|1|1|**4**|4|4|4|4|4|4|**11**|11|**13**|13|13|Concat| -|ConcatFromSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|ConcatFromSequence| -|Constant|**1**|1|1|1|1|1|1|1|**9**|9|**11**|**12**|**13**|13|13|Constant| -|ConstantOfShape|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|ConstantOfShape| -|Conv|**1**|1|1|1|1|1|1|1|1|1|**11**|11|11|11|11|Conv| -|ConvInteger|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|ConvInteger| -|ConvTranspose|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**11**:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|ConvTranspose| -|Cos|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|Cos| -|Cosh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|Cosh| -|CumSum|-|-|-|-|-|-|-|-|-|-|**11**|11|11|**14**|14|CumSum| -|DepthToSpace|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|DepthToSpace| -|DequantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10|10|**13**|13|13|DequantizeLinear| -|Det|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|Det| -|Div|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|14|Div| -|Dropout|**1**|1|1|1|1|**6**|**7**|7|7|**10**|10|**12**|**13**|13|13|Dropout| -|DynamicQuantizeLinear|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|DynamicQuantizeLinear| -|Einsum|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|12|Einsum| -|Elu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|6|Elu| -|Equal|**1**|1|1|1|1|1|**7**|7|7|7|**11**|11|**13**|13|13|Equal| -|Erf|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|13|Erf| -|Exp|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|Exp| -|Expand|-|-|-|-|-|-|-|**8**|8|8|8|8|**13**|13|13|Expand| -|EyeLike|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|EyeLike| -|Flatten|**1**|1|1|1|1|1|1|1|**9**|9|**11**|11|**13**|13|13|Flatten| -|Floor|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|Floor| -|GRU|**1**:small_orange_diamond:|1:small_orange_diamond:|**3**:small_orange_diamond:|3:small_orange_diamond:|3:small_orange_diamond:|3:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|**14**:small_orange_diamond:|14:small_orange_diamond:|GRU| -|Gather|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|Gather| -|GatherElements|-|-|-|-|-|-|-|-|-|-|**11**|11|**13**|13|13|GatherElements| -|GatherND|-|-|-|-|-|-|-|-|-|-|**11**|**12**|**13**|13|13|GatherND| -|Gemm|**1**|1|1|1|1|**6**|**7**|7|**9**|9|**11**|11|**13**|13|13|Gemm| -|GlobalAveragePool|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|GlobalAveragePool| -|GlobalLpPool|**1**|**2**|2|2|2|2|2|2|2|2|2|2|2|2|2|GlobalLpPool| -|GlobalMaxPool|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|GlobalMaxPool| -|Greater|**1**|1|1|1|1|1|**7**|7|**9**|9|9|9|**13**|13|13|Greater| -|GreaterOrEqual|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|12|GreaterOrEqual| -|HardSigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|6|HardSigmoid| -|HardSwish|-|-|-|-|-|-|-|-|-|-|-|-|-|**14**|14|HardSwish| -|Hardmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|Hardmax| -|Identity|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|**14**|14|Identity| -|If|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|If| -|InstanceNormalization|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|6|InstanceNormalization| -|IsInf|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|IsInf| -|IsNaN|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|13|IsNaN| -|LRN|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|13|LRN| -|LSTM|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|**14**:small_orange_diamond:|14:small_orange_diamond:|LSTM| -|LeakyRelu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|6|LeakyRelu| -|Less|**1**|1|1|1|1|1|**7**|7|**9**|9|9|9|**13**|13|13|Less| -|LessOrEqual|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|12|LessOrEqual| -|Log|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|Log| -|LogSoftmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|LogSoftmax| -|Loop|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|Loop| -|LpNormalization|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|LpNormalization| -|LpPool|**1**|**2**|2|2|2|2|2|2|2|2|**11**|11|11|11|11|LpPool| -|MatMul|**1**|1|1|1|1|1|1|1|**9**|9|9|9|**13**|13|13|MatMul| -|MatMulInteger|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|MatMulInteger| -|Max|**1**|1|1|1|1|**6**|6|**8**|8|8|8|**12**|**13**|13|13|Max| -|MaxPool|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**8**:small_orange_diamond:|8:small_orange_diamond:|**10**:small_orange_diamond:|**11**:small_orange_diamond:|**12**:small_orange_diamond:|12:small_orange_diamond:|12:small_orange_diamond:|12:small_orange_diamond:|MaxPool| -|MaxRoiPool|**1**:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|MaxRoiPool| -|MaxUnpool|-|-|-|-|-|-|-|-|**9**|9|**11**|11|11|11|11|MaxUnpool| -|Mean|**1**|1|1|1|1|**6**|6|**8**|8|8|8|8|**13**|13|13|Mean| -|MeanVarianceNormalization|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|13|MeanVarianceNormalization| -|Min|**1**|1|1|1|1|**6**|6|**8**|8|8|8|**12**|**13**|13|13|Min| -|Mod|-|-|-|-|-|-|-|-|-|**10**|10|10|**13**|13|13|Mod| -|Mul|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|14|Mul| -|Multinomial|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|Multinomial| -|Neg|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|Neg| -|NegativeLogLikelihoodLoss|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|**13**:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|NegativeLogLikelihoodLoss| -|NonMaxSuppression|-|-|-|-|-|-|-|-|-|**10**|**11**|11|11|11|11|NonMaxSuppression| -|NonZero|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|13|NonZero| -|Not|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|Not| -|OneHot|-|-|-|-|-|-|-|-|**9**|9|**11**|11|11|11|11|OneHot| -|Optional|-|-|-|-|-|-|-|-|-|-|-|-|-|-|**15**:small_red_triangle:|Optional| -|OptionalGetElement|-|-|-|-|-|-|-|-|-|-|-|-|-|-|**15**:small_red_triangle:|OptionalGetElement| -|OptionalHasElement|-|-|-|-|-|-|-|-|-|-|-|-|-|-|**15**:small_red_triangle:|OptionalHasElement| -|Or|**1**|1|1|1|1|1|**7**|7|7|7|7|7|7|7|7|Or| -|PRelu|**1**|1|1|1|1|**6**|**7**|7|**9**|9|9|9|9|9|9|PRelu| -|Pad|**1**|**2**|2|2|2|2|2|2|2|2|**11**|11|**13**|13|13|Pad| -|Pow|**1**|1|1|1|1|1|**7**|7|7|7|7|**12**|**13**|13|**15**:small_red_triangle:|Pow| -|QLinearConv|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|QLinearConv| -|QLinearMatMul|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|QLinearMatMul| -|QuantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10|10|**13**|13|13|QuantizeLinear| -|RNN|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|**14**:small_orange_diamond:|14:small_orange_diamond:|RNN| -|RandomNormal|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomNormal| -|RandomNormalLike|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomNormalLike| -|RandomUniform|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomUniform| -|RandomUniformLike|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomUniformLike| -|Range|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|Range| -|Reciprocal|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|Reciprocal| -|ReduceL1|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|ReduceL1| -|ReduceL2|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|ReduceL2| -|ReduceLogSum|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|ReduceLogSum| -|ReduceLogSumExp|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|ReduceLogSumExp| -|ReduceMax|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|13|ReduceMax| -|ReduceMean|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|ReduceMean| -|ReduceMin|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|13|ReduceMin| -|ReduceProd|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|ReduceProd| -|ReduceSum|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|ReduceSum| -|ReduceSumSquare|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|ReduceSumSquare| -|Relu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|**14**|14|Relu| -|Reshape|**1**|1|1|1|**5**|5|5|5|5|5|5|5|**13**|**14**|14|Reshape| -|Resize|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|**11**:small_orange_diamond:|11:small_orange_diamond:|**13**:small_orange_diamond:|13:small_orange_diamond:|13:small_orange_diamond:|Resize| -|ReverseSequence|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|ReverseSequence| -|RoiAlign|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|RoiAlign| -|Round|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|Round| -|Scan|-|-|-|-|-|-|-|**8**|**9**|9|**11**|11|11|11|11|Scan| -|Scatter|-|-|-|-|-|-|-|-|**9**|9|**11**\*|11\*|11\*|11\*|11\*|Scatter| -|ScatterElements|-|-|-|-|-|-|-|-|-|-|**11**|11|**13**|13|13|ScatterElements| -|ScatterND|-|-|-|-|-|-|-|-|-|-|**11**|11|**13**|13|13|ScatterND| -|Selu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|6|Selu| -|SequenceAt|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|SequenceAt| -|SequenceConstruct|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|SequenceConstruct| -|SequenceEmpty|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|SequenceEmpty| -|SequenceErase|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|SequenceErase| -|SequenceInsert|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|SequenceInsert| -|SequenceLength|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|SequenceLength| -|Shape|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|**15**:small_red_triangle:|Shape| -|Shrink|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|Shrink| -|Sigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|Sigmoid| -|Sign|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|13|Sign| -|Sin|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|Sin| -|Sinh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|Sinh| -|Size|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|13|Size| -|Slice|**1**|1|1|1|1|1|1|1|1|**10**|**11**|11|**13**|13|13|Slice| -|Softmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|Softmax| -|SoftmaxCrossEntropyLoss|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|**13**:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|SoftmaxCrossEntropyLoss| -|Softplus|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|Softplus| -|Softsign|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|Softsign| -|SpaceToDepth|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|13|SpaceToDepth| -|Split|**1**|**2**|2|2|2|2|2|2|2|2|**11**|11|**13**|13|13|Split| -|SplitToSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|SplitToSequence| -|Sqrt|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|Sqrt| -|Squeeze|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|Squeeze| -|StringNormalizer|-|-|-|-|-|-|-|-|-|**10**:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|StringNormalizer| -|Sub|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|14|Sub| -|Sum|**1**|1|1|1|1|**6**|6|**8**|8|8|8|8|**13**|13|13|Sum| -|Tan|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|Tan| -|Tanh|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|Tanh| -|TfIdfVectorizer|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|TfIdfVectorizer| -|ThresholdedRelu|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|ThresholdedRelu| -|Tile|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|Tile| -|TopK|**1**|1|1|1|1|1|1|1|1|**10**|**11**|11|11|11|11|TopK| -|Transpose|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|13|Transpose| -|Trilu|-|-|-|-|-|-|-|-|-|-|-|-|-|**14**|14|Trilu| -|Unique|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:|11:small_red_triangle:|11:small_red_triangle:|11:small_red_triangle:|11:small_red_triangle:|Unique| -|Unsqueeze|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|Unsqueeze| -|Upsample|**1**:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|**7**:small_orange_diamond:|7:small_orange_diamond:|**9**:small_orange_diamond:|**10**\*|10\*|10\*|10\*|10\*|10\*|Upsample| -|Where|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|Where| -|Xor|**1**|1|1|1|1|1|**7**|7|7|7|7|7|7|7|7|Xor| +||||||||||||||||||| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|**ONNX Operator**|**Opset 1**|**Opset 2**|**Opset 3**|**Opset 4**|**Opset 5**|**Opset 6**|**Opset 7**|**Opset 8**|**Opset 9**|**Opset 10**|**Opset 11**|**Opset 12**|**Opset 13**|**Opset 14**|**Opset 15**|**Opset 16**|**ONNX Operator**| +|Abs|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|13|Abs| +|Acos|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|7|Acos| +|Acosh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|9|Acosh| +|Add|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|14|14|Add| +|And|**1**|1|1|1|1|1|**7**|7|7|7|7|7|7|7|7|7|And| +|ArgMax|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|13|13|ArgMax| +|ArgMin|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|13|13|ArgMin| +|Asin|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|7|Asin| +|Asinh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|9|Asinh| +|Atan|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|7|Atan| +|Atanh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|9|Atanh| +|AveragePool|**1**|1|1|1|1|1|**7**|7|7|**10**|**11**|11|11|11|11|11|AveragePool| +|BatchNormalization|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**6**:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|**9**:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|**14**:small_orange_diamond:|**15**:small_red_triangle:|15:small_red_triangle:|BatchNormalization| +|Bernoulli|-|-|-|-|-|-|-|-|-|-|-|-|-|-|**15**:small_red_triangle:|15:small_red_triangle:|Bernoulli| +|BitShift|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|11|BitShift| +|Cast|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**6**:small_orange_diamond:|6:small_orange_diamond:|6:small_orange_diamond:|**9**:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|**13**:small_orange_diamond:|13:small_orange_diamond:|13:small_orange_diamond:|13:small_orange_diamond:|Cast| +|CastLike|-|-|-|-|-|-|-|-|-|-|-|-|-|-|**15**:small_red_triangle:|15:small_red_triangle:|CastLike| +|Ceil|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|13|Ceil| +|Celu|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|12|12|Celu| +|Clip|**1**|1|1|1|1|**6**|6|6|6|6|**11**|**12**|**13**|13|13|13|Clip| +|Compress|-|-|-|-|-|-|-|-|**9**|9|**11**|11|11|11|11|11|Compress| +|Concat|**1**|1|1|**4**|4|4|4|4|4|4|**11**|11|**13**|13|13|13|Concat| +|ConcatFromSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|ConcatFromSequence| +|Constant|**1**|1|1|1|1|1|1|1|**9**|9|**11**|**12**|**13**|13|13|13|Constant| +|ConstantOfShape|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|9|ConstantOfShape| +|Conv|**1**|1|1|1|1|1|1|1|1|1|**11**|11|11|11|11|11|Conv| +|ConvInteger|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|10|ConvInteger| +|ConvTranspose|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**11**:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|ConvTranspose| +|Cos|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|7|Cos| +|Cosh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|9|Cosh| +|CumSum|-|-|-|-|-|-|-|-|-|-|**11**|11|11|**14**|14|14|CumSum| +|DepthToSpace|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|DepthToSpace| +|DequantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10|10|**13**|13|13|13|DequantizeLinear| +|Det|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|11|Det| +|Div|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|14|14|Div| +|Dropout|**1**|1|1|1|1|**6**|**7**|7|7|**10**|10|**12**|**13**|13|13|13|Dropout| +|DynamicQuantizeLinear|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|11|DynamicQuantizeLinear| +|Einsum|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|12|12|Einsum| +|Elu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|6|6|Elu| +|Equal|**1**|1|1|1|1|1|**7**|7|7|7|**11**|11|**13**|13|13|13|Equal| +|Erf|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|13|13|Erf| +|Exp|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|13|Exp| +|Expand|-|-|-|-|-|-|-|**8**|8|8|8|8|**13**|13|13|13|Expand| +|EyeLike|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|9|EyeLike| +|Flatten|**1**|1|1|1|1|1|1|1|**9**|9|**11**|11|**13**|13|13|13|Flatten| +|Floor|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|13|Floor| +|GRU|**1**:small_orange_diamond:|1:small_orange_diamond:|**3**:small_orange_diamond:|3:small_orange_diamond:|3:small_orange_diamond:|3:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|**14**:small_orange_diamond:|14:small_orange_diamond:|14:small_orange_diamond:|GRU| +|Gather|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|Gather| +|GatherElements|-|-|-|-|-|-|-|-|-|-|**11**|11|**13**|13|13|13|GatherElements| +|GatherND|-|-|-|-|-|-|-|-|-|-|**11**|**12**|**13**|13|13|13|GatherND| +|Gemm|**1**|1|1|1|1|**6**|**7**|7|**9**|9|**11**|11|**13**|13|13|13|Gemm| +|GlobalAveragePool|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|GlobalAveragePool| +|GlobalLpPool|**1**|**2**|2|2|2|2|2|2|2|2|2|2|2|2|2|2|GlobalLpPool| +|GlobalMaxPool|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|GlobalMaxPool| +|Greater|**1**|1|1|1|1|1|**7**|7|**9**|9|9|9|**13**|13|13|13|Greater| +|GreaterOrEqual|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|12|12|GreaterOrEqual| +|HardSigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|6|6|HardSigmoid| +|HardSwish|-|-|-|-|-|-|-|-|-|-|-|-|-|**14**|14|14|HardSwish| +|Hardmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|Hardmax| +|Identity|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|**14**|14|14|Identity| +|If|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|If| +|InstanceNormalization|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|6|6|InstanceNormalization| +|IsInf|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|10|IsInf| +|IsNaN|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|13|13|IsNaN| +|LRN|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|13|13|LRN| +|LSTM|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|**14**:small_orange_diamond:|14:small_orange_diamond:|14:small_orange_diamond:|LSTM| +|LeakyRelu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|6|6|LeakyRelu| +|Less|**1**|1|1|1|1|1|**7**|7|**9**|9|9|9|**13**|13|13|13|Less| +|LessOrEqual|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|12|12|LessOrEqual| +|Log|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|13|Log| +|LogSoftmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|LogSoftmax| +|Loop|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|Loop| +|LpNormalization|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|LpNormalization| +|LpPool|**1**|**2**|2|2|2|2|2|2|2|2|**11**|11|11|11|11|11|LpPool| +|MatMul|**1**|1|1|1|1|1|1|1|**9**|9|9|9|**13**|13|13|13|MatMul| +|MatMulInteger|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|10|MatMulInteger| +|Max|**1**|1|1|1|1|**6**|6|**8**|8|8|8|**12**|**13**|13|13|13|Max| +|MaxPool|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**8**:small_orange_diamond:|8:small_orange_diamond:|**10**:small_orange_diamond:|**11**:small_orange_diamond:|**12**:small_orange_diamond:|12:small_orange_diamond:|12:small_orange_diamond:|12:small_orange_diamond:|12:small_orange_diamond:|MaxPool| +|MaxRoiPool|**1**:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|MaxRoiPool| +|MaxUnpool|-|-|-|-|-|-|-|-|**9**|9|**11**|11|11|11|11|11|MaxUnpool| +|Mean|**1**|1|1|1|1|**6**|6|**8**|8|8|8|8|**13**|13|13|13|Mean| +|MeanVarianceNormalization|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|13|13|MeanVarianceNormalization| +|Min|**1**|1|1|1|1|**6**|6|**8**|8|8|8|**12**|**13**|13|13|13|Min| +|Mod|-|-|-|-|-|-|-|-|-|**10**|10|10|**13**|13|13|13|Mod| +|Mul|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|14|14|Mul| +|Multinomial|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|7|Multinomial| +|Neg|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|13|Neg| +|NegativeLogLikelihoodLoss|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|**13**:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|NegativeLogLikelihoodLoss| +|NonMaxSuppression|-|-|-|-|-|-|-|-|-|**10**|**11**|11|11|11|11|11|NonMaxSuppression| +|NonZero|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|13|13|NonZero| +|Not|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|Not| +|OneHot|-|-|-|-|-|-|-|-|**9**|9|**11**|11|11|11|11|11|OneHot| +|Optional|-|-|-|-|-|-|-|-|-|-|-|-|-|-|**15**:small_red_triangle:|15:small_red_triangle:|Optional| +|OptionalGetElement|-|-|-|-|-|-|-|-|-|-|-|-|-|-|**15**:small_red_triangle:|15:small_red_triangle:|OptionalGetElement| +|OptionalHasElement|-|-|-|-|-|-|-|-|-|-|-|-|-|-|**15**:small_red_triangle:|15:small_red_triangle:|OptionalHasElement| +|Or|**1**|1|1|1|1|1|**7**|7|7|7|7|7|7|7|7|7|Or| +|PRelu|**1**|1|1|1|1|**6**|**7**|7|**9**|9|9|9|9|9|9|9|PRelu| +|Pad|**1**|**2**|2|2|2|2|2|2|2|2|**11**|11|**13**|13|13|13|Pad| +|Pow|**1**|1|1|1|1|1|**7**|7|7|7|7|**12**|**13**|13|**15**:small_red_triangle:|15:small_red_triangle:|Pow| +|QLinearConv|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|10|QLinearConv| +|QLinearMatMul|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|10|QLinearMatMul| +|QuantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10|10|**13**|13|13|13|QuantizeLinear| +|RNN|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|**14**:small_orange_diamond:|14:small_orange_diamond:|14:small_orange_diamond:|RNN| +|RandomNormal|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomNormal| +|RandomNormalLike|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomNormalLike| +|RandomUniform|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomUniform| +|RandomUniformLike|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomUniformLike| +|Range|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|11|Range| +|Reciprocal|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|13|Reciprocal| +|ReduceL1|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|ReduceL1| +|ReduceL2|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|ReduceL2| +|ReduceLogSum|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|ReduceLogSum| +|ReduceLogSumExp|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|ReduceLogSumExp| +|ReduceMax|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|13|13|ReduceMax| +|ReduceMean|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|ReduceMean| +|ReduceMin|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|13|13|ReduceMin| +|ReduceProd|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|ReduceProd| +|ReduceSum|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|ReduceSum| +|ReduceSumSquare|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|ReduceSumSquare| +|Relu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|**14**|14|14|Relu| +|Reshape|**1**|1|1|1|**5**|5|5|5|5|5|5|5|**13**|**14**|14|14|Reshape| +|Resize|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|**11**:small_orange_diamond:|11:small_orange_diamond:|**13**:small_orange_diamond:|13:small_orange_diamond:|13:small_orange_diamond:|13:small_orange_diamond:|Resize| +|ReverseSequence|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|10|ReverseSequence| +|RoiAlign|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|**16**:small_red_triangle:|RoiAlign| +|Round|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|11|Round| +|Scan|-|-|-|-|-|-|-|**8**|**9**|9|**11**|11|11|11|11|11|Scan| +|Scatter|-|-|-|-|-|-|-|-|**9**|9|**11**\*|11\*|11\*|11\*|11\*|11\*|Scatter| +|ScatterElements|-|-|-|-|-|-|-|-|-|-|**11**|11|**13**|13|13|13|ScatterElements| +|ScatterND|-|-|-|-|-|-|-|-|-|-|**11**|11|**13**|13|13|13|ScatterND| +|Selu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|6|6|Selu| +|SequenceAt|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|11|SequenceAt| +|SequenceConstruct|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|11|SequenceConstruct| +|SequenceEmpty|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|11|SequenceEmpty| +|SequenceErase|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|11|SequenceErase| +|SequenceInsert|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|11|SequenceInsert| +|SequenceLength|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|11|11|SequenceLength| +|Shape|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|**15**:small_red_triangle:|15:small_red_triangle:|Shape| +|Shrink|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|9|Shrink| +|Sigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|13|Sigmoid| +|Sign|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|13|13|Sign| +|Sin|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|7|Sin| +|Sinh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|9|Sinh| +|Size|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|13|13|Size| +|Slice|**1**|1|1|1|1|1|1|1|1|**10**|**11**|11|**13**|13|13|13|Slice| +|Softmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|13|13|Softmax| +|SoftmaxCrossEntropyLoss|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|**13**:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|SoftmaxCrossEntropyLoss| +|Softplus|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|Softplus| +|Softsign|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|Softsign| +|SpaceToDepth|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|13|13|SpaceToDepth| +|Split|**1**|**2**|2|2|2|2|2|2|2|2|**11**|11|**13**|13|13|13|Split| +|SplitToSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|SplitToSequence| +|Sqrt|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|13|Sqrt| +|Squeeze|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|Squeeze| +|StringNormalizer|-|-|-|-|-|-|-|-|-|**10**:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|StringNormalizer| +|Sub|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|14|14|Sub| +|Sum|**1**|1|1|1|1|**6**|6|**8**|8|8|8|8|**13**|13|13|13|Sum| +|Tan|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|7|7|Tan| +|Tanh|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|13|Tanh| +|TfIdfVectorizer|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|9|TfIdfVectorizer| +|ThresholdedRelu|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|10|10|ThresholdedRelu| +|Tile|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|13|13|Tile| +|TopK|**1**|1|1|1|1|1|1|1|1|**10**|**11**|11|11|11|11|11|TopK| +|Transpose|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|13|13|Transpose| +|Trilu|-|-|-|-|-|-|-|-|-|-|-|-|-|**14**|14|14|Trilu| +|Unique|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:|11:small_red_triangle:|11:small_red_triangle:|11:small_red_triangle:|11:small_red_triangle:|11:small_red_triangle:|Unique| +|Unsqueeze|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|13:small_red_triangle:|Unsqueeze| +|Upsample|**1**:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|**7**:small_orange_diamond:|7:small_orange_diamond:|**9**:small_orange_diamond:|**10**\*|10\*|10\*|10\*|10\*|10\*|10\*|Upsample| +|Where|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|9|9|Where| +|Xor|**1**|1|1|1|1|1|**7**|7|7|7|7|7|7|7|7|7|Xor| -ONNX-TF Supported Operators / ONNX Operators: 154 / 169 +ONNX-TF Supported Operators / ONNX Operators: 153 / 169 Notes: 1. BatchNormalization: BatchNormalization with training_mode=1 is not supported in Tensorflow converte. diff --git a/doc/support_status_v1_9_0.md b/doc/support_status_v1_9_0.md new file mode 100644 index 00000000..937c5638 --- /dev/null +++ b/doc/support_status_v1_9_0.md @@ -0,0 +1,210 @@ +# ONNX-Tensorflow Support Status +||| +|-:|:-| +|ONNX-Tensorflow Version|v1.9.0| +|ONNX Version|1.9.0| +|Tensorflow Version|v2.6.0| + +Notes: +* Values that are new or updated from a previous opset version are in bold. +* -: not defined in corresponding ONNX opset version +* \*: the operator is deprecated +* :small_red_triangle:: not supported yet +* :small_orange_diamond:: partially supported +* the rest are all supported + +||||||||||||||||| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|**ONNX Operator**|**Opset 1**|**Opset 2**|**Opset 3**|**Opset 4**|**Opset 5**|**Opset 6**|**Opset 7**|**Opset 8**|**Opset 9**|**Opset 10**|**Opset 11**|**Opset 12**|**Opset 13**|**Opset 14**|**ONNX Operator**| +|Abs|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|Abs| +|Acos|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|Acos| +|Acosh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|Acosh| +|Add|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|Add| +|And|**1**|1|1|1|1|1|**7**|7|7|7|7|7|7|7|And| +|ArgMax|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|ArgMax| +|ArgMin|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|ArgMin| +|Asin|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|Asin| +|Asinh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|Asinh| +|Atan|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|Atan| +|Atanh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|Atanh| +|AveragePool|**1**|1|1|1|1|1|**7**|7|7|**10**|**11**|11|11|11|AveragePool| +|BatchNormalization|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**6**:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|**9**:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|**14**:small_orange_diamond:|BatchNormalization| +|BitShift|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|BitShift| +|Cast|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**6**:small_orange_diamond:|6:small_orange_diamond:|6:small_orange_diamond:|**9**:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|9:small_orange_diamond:|**13**:small_orange_diamond:|13:small_orange_diamond:|Cast| +|Ceil|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|Ceil| +|Celu|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|Celu| +|Clip|**1**|1|1|1|1|**6**|6|6|6|6|**11**|**12**|**13**|13|Clip| +|Compress|-|-|-|-|-|-|-|-|**9**|9|**11**|11|11|11|Compress| +|Concat|**1**|1|1|**4**|4|4|4|4|4|4|**11**|11|**13**|13|Concat| +|ConcatFromSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|ConcatFromSequence| +|Constant|**1**|1|1|1|1|1|1|1|**9**|9|**11**|**12**|**13**|13|Constant| +|ConstantOfShape|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|ConstantOfShape| +|Conv|**1**|1|1|1|1|1|1|1|1|1|**11**|11|11|11|Conv| +|ConvInteger|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|ConvInteger| +|ConvTranspose|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**11**:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|ConvTranspose| +|Cos|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|Cos| +|Cosh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|Cosh| +|CumSum|-|-|-|-|-|-|-|-|-|-|**11**|11|11|**14**|CumSum| +|DepthToSpace|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|DepthToSpace| +|DequantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10|10|**13**|13|DequantizeLinear| +|Det|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|Det| +|Div|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|Div| +|Dropout|**1**|1|1|1|1|**6**|**7**|7|7|**10**|10|**12**|**13**|13|Dropout| +|DynamicQuantizeLinear|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|DynamicQuantizeLinear| +|Einsum|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|Einsum| +|Elu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|Elu| +|Equal|**1**|1|1|1|1|1|**7**|7|7|7|**11**|11|**13**|13|Equal| +|Erf|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|Erf| +|Exp|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|Exp| +|Expand|-|-|-|-|-|-|-|**8**|8|8|8|8|**13**|13|Expand| +|EyeLike|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|EyeLike| +|Flatten|**1**|1|1|1|1|1|1|1|**9**|9|**11**|11|**13**|13|Flatten| +|Floor|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|Floor| +|GRU|**1**:small_orange_diamond:|1:small_orange_diamond:|**3**:small_orange_diamond:|3:small_orange_diamond:|3:small_orange_diamond:|3:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|**14**:small_orange_diamond:|GRU| +|Gather|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|Gather| +|GatherElements|-|-|-|-|-|-|-|-|-|-|**11**|11|**13**|13|GatherElements| +|GatherND|-|-|-|-|-|-|-|-|-|-|**11**|**12**|**13**|13|GatherND| +|Gemm|**1**|1|1|1|1|**6**|**7**|7|**9**|9|**11**|11|**13**|13|Gemm| +|GlobalAveragePool|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|GlobalAveragePool| +|GlobalLpPool|**1**|**2**|2|2|2|2|2|2|2|2|2|2|2|2|GlobalLpPool| +|GlobalMaxPool|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|GlobalMaxPool| +|Greater|**1**|1|1|1|1|1|**7**|7|**9**|9|9|9|**13**|13|Greater| +|GreaterOrEqual|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|GreaterOrEqual| +|HardSigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|HardSigmoid| +|HardSwish|-|-|-|-|-|-|-|-|-|-|-|-|-|**14**|HardSwish| +|Hardmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|Hardmax| +|Identity|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|**14**|Identity| +|If|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|If| +|InstanceNormalization|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|InstanceNormalization| +|IsInf|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|IsInf| +|IsNaN|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|IsNaN| +|LRN|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|LRN| +|LSTM|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|**14**:small_orange_diamond:|LSTM| +|LeakyRelu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|LeakyRelu| +|Less|**1**|1|1|1|1|1|**7**|7|**9**|9|9|9|**13**|13|Less| +|LessOrEqual|-|-|-|-|-|-|-|-|-|-|-|**12**|12|12|LessOrEqual| +|Log|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|Log| +|LogSoftmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|LogSoftmax| +|Loop|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|Loop| +|LpNormalization|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|LpNormalization| +|LpPool|**1**|**2**|2|2|2|2|2|2|2|2|**11**|11|11|11|LpPool| +|MatMul|**1**|1|1|1|1|1|1|1|**9**|9|9|9|**13**|13|MatMul| +|MatMulInteger|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|MatMulInteger| +|Max|**1**|1|1|1|1|**6**|6|**8**|8|8|8|**12**|**13**|13|Max| +|MaxPool|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**8**:small_orange_diamond:|8:small_orange_diamond:|**10**:small_orange_diamond:|**11**:small_orange_diamond:|**12**:small_orange_diamond:|12:small_orange_diamond:|12:small_orange_diamond:|MaxPool| +|MaxRoiPool|**1**:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|MaxRoiPool| +|MaxUnpool|-|-|-|-|-|-|-|-|**9**|9|**11**|11|11|11|MaxUnpool| +|Mean|**1**|1|1|1|1|**6**|6|**8**|8|8|8|8|**13**|13|Mean| +|MeanVarianceNormalization|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|MeanVarianceNormalization| +|Min|**1**|1|1|1|1|**6**|6|**8**|8|8|8|**12**|**13**|13|Min| +|Mod|-|-|-|-|-|-|-|-|-|**10**|10|10|**13**|13|Mod| +|Mul|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|Mul| +|Multinomial|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|Multinomial| +|Neg|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|Neg| +|NegativeLogLikelihoodLoss|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|**13**:small_red_triangle:|13:small_red_triangle:|NegativeLogLikelihoodLoss| +|NonMaxSuppression|-|-|-|-|-|-|-|-|-|**10**|**11**|11|11|11|NonMaxSuppression| +|NonZero|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|NonZero| +|Not|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|Not| +|OneHot|-|-|-|-|-|-|-|-|**9**|9|**11**|11|11|11|OneHot| +|Or|**1**|1|1|1|1|1|**7**|7|7|7|7|7|7|7|Or| +|PRelu|**1**|1|1|1|1|**6**|**7**|7|**9**|9|9|9|9|9|PRelu| +|Pad|**1**|**2**|2|2|2|2|2|2|2|2|**11**|11|**13**|13|Pad| +|Pow|**1**|1|1|1|1|1|**7**|7|7|7|7|**12**|**13**|13|Pow| +|QLinearConv|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|QLinearConv| +|QLinearMatMul|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|QLinearMatMul| +|QuantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10|10|**13**|13|QuantizeLinear| +|RNN|**1**:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|1:small_orange_diamond:|**7**:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|7:small_orange_diamond:|**14**:small_orange_diamond:|RNN| +|RandomNormal|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomNormal| +|RandomNormalLike|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomNormalLike| +|RandomUniform|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomUniform| +|RandomUniformLike|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|RandomUniformLike| +|Range|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|Range| +|Reciprocal|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|Reciprocal| +|ReduceL1|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|ReduceL1| +|ReduceL2|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|ReduceL2| +|ReduceLogSum|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|ReduceLogSum| +|ReduceLogSumExp|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|ReduceLogSumExp| +|ReduceMax|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|ReduceMax| +|ReduceMean|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|ReduceMean| +|ReduceMin|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|**13**|13|ReduceMin| +|ReduceProd|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|ReduceProd| +|ReduceSum|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|ReduceSum| +|ReduceSumSquare|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|ReduceSumSquare| +|Relu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|**14**|Relu| +|Reshape|**1**|1|1|1|**5**|5|5|5|5|5|5|5|**13**|**14**|Reshape| +|Resize|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|**11**:small_orange_diamond:|11:small_orange_diamond:|**13**:small_orange_diamond:|13:small_orange_diamond:|Resize| +|ReverseSequence|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|ReverseSequence| +|RoiAlign|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|RoiAlign| +|Round|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|Round| +|Scan|-|-|-|-|-|-|-|**8**|**9**|9|**11**|11|11|11|Scan| +|Scatter|-|-|-|-|-|-|-|-|**9**|9|**11**\*|11\*|11\*|11\*|Scatter| +|ScatterElements|-|-|-|-|-|-|-|-|-|-|**11**|11|**13**|13|ScatterElements| +|ScatterND|-|-|-|-|-|-|-|-|-|-|**11**|11|**13**|13|ScatterND| +|Selu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|6|6|Selu| +|SequenceAt|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|SequenceAt| +|SequenceConstruct|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|SequenceConstruct| +|SequenceEmpty|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|SequenceEmpty| +|SequenceErase|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|SequenceErase| +|SequenceInsert|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|SequenceInsert| +|SequenceLength|-|-|-|-|-|-|-|-|-|-|**11**|11|11|11|SequenceLength| +|Shape|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|Shape| +|Shrink|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|Shrink| +|Sigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|Sigmoid| +|Sign|-|-|-|-|-|-|-|-|**9**|9|9|9|**13**|13|Sign| +|Sin|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|Sin| +|Sinh|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|Sinh| +|Size|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|Size| +|Slice|**1**|1|1|1|1|1|1|1|1|**10**|**11**|11|**13**|13|Slice| +|Softmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**|13|Softmax| +|SoftmaxCrossEntropyLoss|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|**13**:small_red_triangle:|13:small_red_triangle:|SoftmaxCrossEntropyLoss| +|Softplus|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|Softplus| +|Softsign|**1**|1|1|1|1|1|1|1|1|1|1|1|1|1|Softsign| +|SpaceToDepth|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|SpaceToDepth| +|Split|**1**|**2**|2|2|2|2|2|2|2|2|**11**|11|**13**|13|Split| +|SplitToSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|11:small_orange_diamond:|SplitToSequence| +|Sqrt|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|Sqrt| +|Squeeze|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**:small_red_triangle:|13:small_red_triangle:|Squeeze| +|StringNormalizer|-|-|-|-|-|-|-|-|-|**10**:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|StringNormalizer| +|Sub|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|**13**|**14**|Sub| +|Sum|**1**|1|1|1|1|**6**|6|**8**|8|8|8|8|**13**|13|Sum| +|Tan|-|-|-|-|-|-|**7**|7|7|7|7|7|7|7|Tan| +|Tanh|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|Tanh| +|TfIdfVectorizer|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|TfIdfVectorizer| +|ThresholdedRelu|-|-|-|-|-|-|-|-|-|**10**|10|10|10|10|ThresholdedRelu| +|Tile|**1**|1|1|1|1|**6**|6|6|6|6|6|6|**13**|13|Tile| +|TopK|**1**|1|1|1|1|1|1|1|1|**10**|**11**|11|11|11|TopK| +|Transpose|**1**|1|1|1|1|1|1|1|1|1|1|1|**13**|13|Transpose| +|Trilu|-|-|-|-|-|-|-|-|-|-|-|-|-|**14**|Trilu| +|Unique|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:|11:small_red_triangle:|11:small_red_triangle:|11:small_red_triangle:|Unique| +|Unsqueeze|**1**|1|1|1|1|1|1|1|1|1|**11**|11|**13**:small_red_triangle:|13:small_red_triangle:|Unsqueeze| +|Upsample|**1**:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|1:small_red_triangle:|**7**:small_orange_diamond:|7:small_orange_diamond:|**9**:small_orange_diamond:|**10**\*|10\*|10\*|10\*|10\*|Upsample| +|Where|-|-|-|-|-|-|-|-|**9**|9|9|9|9|9|Where| +|Xor|**1**|1|1|1|1|1|**7**|7|7|7|7|7|7|7|Xor| + +ONNX-TF Supported Operators / ONNX Operators: 157 / 164 + +Notes: +1. BatchNormalization: BatchNormalization with training_mode=1 is not supported in Tensorflow converte. +2. Cast: Cast string to data types other than float32/float64/int32/int64 is not supported in Tensorflow +3. ConcatFromSequence: new_axis=1 not supported in Tensorflow. +4. ConvTranspose: ConvTranspose with dilations != 1, or transposed convolution for 4D or higher are not supported in Tensorflow. +5. GRU: GRU with clip or GRU with linear_before_reset, or GRU not using sigmoid for z and r, or GRU using Elu as the activation function with alpha != 1, or GRU using HardSigmoid as the activation function with alpha != 0.2 or beta != 0.5 are not supported in TensorFlow. +6. LSTM: LSTM not using sigmoid for `f`, or LSTM not using the same activation for `g` and `h` are not supported in Tensorflow. +7. MaxPool: MaxPoolWithArgmax with pad is None or incompatible mode, or MaxPoolWithArgmax with 4D or higher input, or MaxPoolWithArgmax with column major are not supported in Tensorflow. +8. RNN: RNN with clip is not supported in Tensorflow. +9. Resize: Resize required 4D input in Tensorflow. For opset 11, only the following attributes and inputs conbination are supported in Tensorflow: + 1. mode=nearest, coordinate_transformation_mode=align_corners, nearest_mode=round_prefer_ceil, can use scales(*) or sizes. + 2. mode=nearest, coordinate_transformation_mode=asymmetric, nearest_mode=floor, can use scales(*) or sizes. + 3. mode=nearest, coordinate_transformation_mode=tf_half_pixel_for_nn, nearest_mode=floor, can use scales(*) or sizes. + 4. mode=linear, coordinate_transformation_mode=align_corners, can use scales(*) or sizes. + 5. mode=linear, coordinate_transformation_mode=asymmetric, can use scales(*) or sizes. + 6. mode=linear, coordinate_transformation_mode=half_pixel, can use scales(*) or sizes. + 7. mode=cubic, coordinate_transformation_mode=align_corners, cubic_coeff_a=-0.5, exclude_outside=1, can use scales(*) or sizes. + 8. mode=cubic, coordinate_transformation_mode=asymmetric, cubic_coeff_a=-0.5, exclude_outside=1, can use scales(*) or sizes. + 9. mode=cubic, coordinate_transformation_mode=half_pixel, cubic_coeff_a=-0.5, exclude_outside=1, can use scales(*) or sizes. + 10. mode=nearest, coordinate_transformation_mode=tf_crop_and_resize, extrapolation_value=any_float_value, nearest_mode=round_prefer_ceil, can use scales or sizes. + 11. mode=linear, coordinate_transformation_mode=tf_crop_and_resize, extrapolation_value=any_float_value, can use scales or sizes. + - Note (*): The accuracy of your model will go down, if the height and the width of the new sizes(scales * origial sizes) are not in whole numbers. +10. RoiAlign: sampling_ratio <= 0 is not fully supported. +11. SplitToSequence: Scalar as the split input not supported. +12. Upsample: Upsample required 4D input in Tensorflow. diff --git a/test/backend/test_model.py b/test/backend/test_model.py index 49a4d410..959b3d9e 100644 --- a/test/backend/test_model.py +++ b/test/backend/test_model.py @@ -331,14 +331,14 @@ def test_if_with_sequence(self): b_in = helper.make_tensor_value_info('b', onnx.TensorProto.FLOAT, [1, 1, 2]) c_in = helper.make_tensor_value_info('c', onnx.TensorProto.FLOAT, [3, 1, 2]) cond_in = helper.make_tensor_value_info('cond', TensorProto.BOOL, []) - s_in = helper.make_tensor_sequence_value_info('S', TensorProto.FLOAT, + s_in = helper.make_sequence_value_info('S', TensorProto.FLOAT, [None, None, None, None]) - sb_out = helper.make_tensor_sequence_value_info('Sb', TensorProto.FLOAT, + sb_out = helper.make_sequence_value_info('Sb', TensorProto.FLOAT, [None, None, None, None]) - sc_out = helper.make_tensor_sequence_value_info('Sc', TensorProto.FLOAT, + sc_out = helper.make_sequence_value_info('Sc', TensorProto.FLOAT, [None, None, None, None]) - s_final_out = helper.make_tensor_sequence_value_info( + s_final_out = helper.make_sequence_value_info( 'S_final', TensorProto.FLOAT, [None, None, None, None]) then_graph = helper.make_graph(nodes=[seq_insert_node1], @@ -437,14 +437,14 @@ def test_loop_with_sequence(self): iter_count_in = helper.make_tensor_value_info('iter_count', TensorProto.INT64, []) cond_in = helper.make_tensor_value_info('cond', TensorProto.BOOL, []) - s_in = helper.make_tensor_sequence_value_info('S', TensorProto.FLOAT, + s_in = helper.make_sequence_value_info('S', TensorProto.FLOAT, [None, None, None, None]) cond_out = helper.make_tensor_value_info('cond', TensorProto.BOOL, []) - s_out = helper.make_tensor_sequence_value_info('Updated_S', + s_out = helper.make_sequence_value_info('Updated_S', TensorProto.FLOAT, [None, None, None, None]) - s_final_out = helper.make_tensor_sequence_value_info( + s_final_out = helper.make_sequence_value_info( 'S_final', TensorProto.FLOAT, [None, None, None, None]) body_graph = helper.make_graph(nodes=[seq_insert_node], diff --git a/test/backend/test_onnx_backend.py b/test/backend/test_onnx_backend.py index c3a26d78..b4a2e1da 100644 --- a/test/backend/test_onnx_backend.py +++ b/test/backend/test_onnx_backend.py @@ -157,6 +157,9 @@ def get_onnx_supported_ops(): backend_test.exclude(r'test_batchnorm_epsilon_training_mode[a-z,_]*') backend_test.exclude(r'test_batchnorm_example_training_mode[a-z,_]*') +# ONNX 1.9.0 test case does not support sequence +backend_test.exclude(r'[a-z,_]*identity_sequence_[a-z,_]*') + # import all test cases at global scope to make them visible to python.unittest globals().update(backend_test.enable_report().test_cases)