add pt2tf tool
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
ONNX-Tensorflow API
|
||||
======
|
||||
|
||||
#### `onnx_tf.backend.prepare`
|
||||
|
||||
<details>
|
||||
<summary>Prepare an ONNX model for Tensorflow Backend.
|
||||
|
||||
</summary>
|
||||
This function converts an ONNX model to an internel representation
|
||||
of the computational graph called TensorflowRep and returns
|
||||
the converted representation.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
_params_:
|
||||
|
||||
`model` : The ONNX model to be converted.
|
||||
|
||||
|
||||
`device` : The device to execute this model on.
|
||||
|
||||
|
||||
`strict` : Whether to enforce semantic equivalence between the original model
|
||||
and the converted tensorflow model, defaults to True (yes, enforce semantic equivalence).
|
||||
Changing to False is strongly discouraged.
|
||||
Currently, the strict flag only affects the behavior of MaxPool and AveragePool ops.
|
||||
|
||||
|
||||
`logging_level` : The logging level, default is INFO. Change it to DEBUG
|
||||
to see more conversion details or to WARNING to see less
|
||||
|
||||
|
||||
_returns_:
|
||||
|
||||
A TensorflowRep class object representing the ONNX model
|
||||
|
||||
#### `onnx_tf.backend_rep.TensorflowRep.export_graph`
|
||||
|
||||
<details>
|
||||
<summary>Export backend representation to a Tensorflow proto file.
|
||||
|
||||
</summary>
|
||||
This function obtains the graph proto corresponding to the ONNX
|
||||
model associated with the backend representation and serializes
|
||||
to a protobuf file.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
_params_:
|
||||
|
||||
`path` : The path to the output TF protobuf file.
|
||||
|
||||
|
||||
_returns_:
|
||||
|
||||
none.
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
ONNX-Tensorflow Command Line Interface
|
||||
======
|
||||
|
||||
## Available commands:
|
||||
- convert
|
||||
|
||||
More information: `onnx-tf -h`
|
||||
```
|
||||
usage: onnx-tf [-h] {convert}
|
||||
|
||||
ONNX-Tensorflow Command Line Interface
|
||||
|
||||
positional arguments:
|
||||
{convert} Available commands.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
```
|
||||
|
||||
## Usage:
|
||||
|
||||
### Convert:
|
||||
|
||||
#### From ONNX to Tensorflow:
|
||||
`onnx-tf convert -i /path/to/input.onnx -o /path/to/output.pb`
|
||||
|
||||
More information: `onnx-tf convert -h`
|
||||
```
|
||||
usage: onnx-tf [-h] --infile INFILE --outfile OUTFILE [--device DEVICE]
|
||||
[--strict STRICT] [--logging_level LOGGING_LEVEL]
|
||||
|
||||
This is the converter for converting protocol buffer between tf and onnx.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
--infile INFILE, -i INFILE
|
||||
Input file path.
|
||||
--outfile OUTFILE, -o OUTFILE
|
||||
Output file path.
|
||||
|
||||
backend arguments (onnx -> tf):
|
||||
--device DEVICE The device to execute this model on. (from
|
||||
onnx_tf.backend.prepare)
|
||||
--strict STRICT Whether to enforce semantic equivalence between the
|
||||
original model and the converted tensorflow model,
|
||||
defaults to True (yes, enforce semantic equivalence).
|
||||
Changing to False is strongly discouraged. Currently,
|
||||
the strict flag only affects the behavior of MaxPool
|
||||
and AveragePool ops. (from onnx_tf.backend.prepare)
|
||||
--logging_level LOGGING_LEVEL
|
||||
The logging level, default is INFO. Change it to DEBUG
|
||||
to see more conversion details or to WARNING to see
|
||||
less (from onnx_tf.backend.prepare)
|
||||
```
|
||||
@@ -0,0 +1,22 @@
|
||||
ONNX-Tensorflow Command Line Interface
|
||||
======
|
||||
|
||||
## Available commands:
|
||||
- convert
|
||||
|
||||
More information: `onnx-tf -h`
|
||||
```
|
||||
{onnx-tf -h}
|
||||
```
|
||||
|
||||
## Usage:
|
||||
|
||||
### Convert:
|
||||
|
||||
#### From ONNX to Tensorflow:
|
||||
`onnx-tf convert -i /path/to/input.onnx -o /path/to/output.pb`
|
||||
|
||||
More information: `onnx-tf convert -h`
|
||||
```
|
||||
{onnx-tf convert -h}
|
||||
```
|
||||
@@ -0,0 +1,22 @@
|
||||
How to implement new op
|
||||
======
|
||||
|
||||
When you get `{} op is not implemented`, you can follow next steps to implement.
|
||||
Customize op can also be implemented in similar way.
|
||||
|
||||
### Backend
|
||||
|
||||
1. Verify the latest master version of ONNX is installed on your environment
|
||||
2. Find specification from [onnx/Operators](https://github.com/onnx/onnx/blob/master/docs/Operators.md).
|
||||
3. Implement the handler. All inputs and attrs could get from step 2.
|
||||
```
|
||||
- add handler to /onnx_tf/handlers/backend/
|
||||
- in the new handler define a classmethod called version_{version}
|
||||
|
||||
* version is the number of since version, which can get from operator's specification
|
||||
```
|
||||
4. From within the `onnx_tf` directory, run `gen_opset.py`.
|
||||
5. From within the `onnx_tf` directory, run `gen_status.py`.
|
||||
6. From within the `onnx_tf` directory, run `gen_doc.py` if there is any update to CLI or API.
|
||||
7. Verify the operator's test cases in `test/backend/test_onnx_backend.py` all pass.
|
||||
8. Add any additional test cases to `test/backend/test_node.py`.
|
||||
@@ -0,0 +1,209 @@
|
||||
# ONNX-Tensorflow Support Status
|
||||
|||
|
||||
|-:|:-|
|
||||
|ONNX-Tensorflow Version|Master ( commit id: 8fea59a976e2d65eab2ab021864e2cab038bb7d5 )|
|
||||
|ONNX Version|v1.7.0|
|
||||
|Tensorflow Version|v1.15.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**|**ONNX Operator**|
|
||||
|Abs|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Abs|
|
||||
|Acos|-|-|-|-|-|-|**7**|7|7|7|7|7|Acos|
|
||||
|Acosh|-|-|-|-|-|-|-|-|**9**|9|9|9|Acosh|
|
||||
|Add|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|Add|
|
||||
|And|**1**|1|1|1|1|1|**7**|7|7|7|7|7|And|
|
||||
|ArgMax|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|ArgMax|
|
||||
|ArgMin|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|ArgMin|
|
||||
|Asin|-|-|-|-|-|-|**7**|7|7|7|7|7|Asin|
|
||||
|Asinh|-|-|-|-|-|-|-|-|**9**|9|9|9|Asinh|
|
||||
|Atan|-|-|-|-|-|-|**7**|7|7|7|7|7|Atan|
|
||||
|Atanh|-|-|-|-|-|-|-|-|**9**|9|9|9|Atanh|
|
||||
|AveragePool|**1**|1|1|1|1|1|**7**|7|7|**10**|**11**|11|AveragePool|
|
||||
|BatchNormalization|**1**|1|1|1|1|**6**|**7**|7|**9**|9|9|9|BatchNormalization|
|
||||
|BitShift|-|-|-|-|-|-|-|-|-|-|**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:|Cast|
|
||||
|Ceil|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Ceil|
|
||||
|Celu|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|Celu|
|
||||
|Clip|**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:|6:small_orange_diamond:|6:small_orange_diamond:|**11**:small_orange_diamond:|**12**:small_orange_diamond:|Clip|
|
||||
|Compress|-|-|-|-|-|-|-|-|**9**|9|**11**|11|Compress|
|
||||
|Concat|**1**|1|1|**4**|4|4|4|4|4|4|**11**|11|Concat|
|
||||
|ConcatFromSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:|11:small_red_triangle:|ConcatFromSequence|
|
||||
|Constant|**1**|1|1|1|1|1|1|1|**9**|9|**11**|**12**|Constant|
|
||||
|ConstantOfShape|-|-|-|-|-|-|-|-|**9**|9|9|9|ConstantOfShape|
|
||||
|Conv|**1**|1|1|1|1|1|1|1|1|1|**11**|11|Conv|
|
||||
|ConvInteger|-|-|-|-|-|-|-|-|-|**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:|ConvTranspose|
|
||||
|Cos|-|-|-|-|-|-|**7**|7|7|7|7|7|Cos|
|
||||
|Cosh|-|-|-|-|-|-|-|-|**9**|9|9|9|Cosh|
|
||||
|CumSum|-|-|-|-|-|-|-|-|-|-|**11**:small_orange_diamond:|11:small_orange_diamond:|CumSum|
|
||||
|DepthToSpace|**1**|1|1|1|1|1|1|1|1|1|**11**|11|DepthToSpace|
|
||||
|DequantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10|10|DequantizeLinear|
|
||||
|Det|-|-|-|-|-|-|-|-|-|-|**11**|11|Det|
|
||||
|Div|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|Div|
|
||||
|Dropout|**1**|1|1|1|1|**6**|**7**|7|7|**10**|10|**12**:small_red_triangle:|Dropout|
|
||||
|DynamicQuantizeLinear|-|-|-|-|-|-|-|-|-|-|**11**|11|DynamicQuantizeLinear|
|
||||
|Einsum|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|Einsum|
|
||||
|Elu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Elu|
|
||||
|Equal|**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:|**11**:small_orange_diamond:|11:small_orange_diamond:|Equal|
|
||||
|Erf|-|-|-|-|-|-|-|-|**9**|9|9|9|Erf|
|
||||
|Exp|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Exp|
|
||||
|Expand|-|-|-|-|-|-|-|**8**|8|8|8|8|Expand|
|
||||
|EyeLike|-|-|-|-|-|-|-|-|**9**|9|9|9|EyeLike|
|
||||
|Flatten|**1**|1|1|1|1|1|1|1|**9**|9|**11**|11|Flatten|
|
||||
|Floor|**1**|1|1|1|1|**6**|6|6|6|6|6|6|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:|GRU|
|
||||
|Gather|**1**|1|1|1|1|1|1|1|1|1|**11**|11|Gather|
|
||||
|GatherElements|-|-|-|-|-|-|-|-|-|-|**11**|11|GatherElements|
|
||||
|GatherND|-|-|-|-|-|-|-|-|-|-|**11**|**12**:small_red_triangle:|GatherND|
|
||||
|Gemm|**1**|1|1|1|1|**6**|**7**|7|**9**|9|**11**|11|Gemm|
|
||||
|GlobalAveragePool|**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|GlobalLpPool|
|
||||
|GlobalMaxPool|**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|Greater|
|
||||
|GreaterOrEqual|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|GreaterOrEqual|
|
||||
|HardSigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6|6|HardSigmoid|
|
||||
|Hardmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|Hardmax|
|
||||
|Identity|**1**|1|1|1|1|1|1|1|1|1|1|1|Identity|
|
||||
|If|**1**|1|1|1|1|1|1|1|1|1|**11**|11|If|
|
||||
|InstanceNormalization|**1**|1|1|1|1|**6**|6|6|6|6|6|6|InstanceNormalization|
|
||||
|IsInf|-|-|-|-|-|-|-|-|-|**10**|10|10|IsInf|
|
||||
|IsNaN|-|-|-|-|-|-|-|-|**9**|9|9|9|IsNaN|
|
||||
|LRN|**1**|1|1|1|1|1|1|1|1|1|1|1|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:|LSTM|
|
||||
|LeakyRelu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|LeakyRelu|
|
||||
|Less|**1**|1|1|1|1|1|**7**|7|**9**|9|9|9|Less|
|
||||
|LessOrEqual|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|LessOrEqual|
|
||||
|Log|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Log|
|
||||
|LogSoftmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|LogSoftmax|
|
||||
|Loop|**1**|1|1|1|1|1|1|1|1|1|**11**|11|Loop|
|
||||
|LpNormalization|**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|LpPool|
|
||||
|MatMul|**1**|1|1|1|1|1|1|1|**9**|9|9|9|MatMul|
|
||||
|MatMulInteger|-|-|-|-|-|-|-|-|-|**10**|10|10|MatMulInteger|
|
||||
|Max|**1**|1|1|1|1|**6**|6|**8**|8|8|8|**12**:small_red_triangle:|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:|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:|MaxRoiPool|
|
||||
|MaxUnpool|-|-|-|-|-|-|-|-|**9**|9|**11**|11|MaxUnpool|
|
||||
|Mean|**1**|1|1|1|1|**6**|6|**8**|8|8|8|8|Mean|
|
||||
|MeanVarianceNormalization|-|-|-|-|-|-|-|-|**9**|9|9|9|MeanVarianceNormalization|
|
||||
|Min|**1**|1|1|1|1|**6**|6|**8**|8|8|8|**12**:small_red_triangle:|Min|
|
||||
|Mod|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|10:small_orange_diamond:|10:small_orange_diamond:|Mod|
|
||||
|Mul|**1**|1|1|1|1|**6**|**7**|7|7|7|7|7|Mul|
|
||||
|Multinomial|-|-|-|-|-|-|**7**:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:|Multinomial|
|
||||
|Neg|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Neg|
|
||||
|NegativeLogLikelihoodLoss|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|NegativeLogLikelihoodLoss|
|
||||
|NonMaxSuppression|-|-|-|-|-|-|-|-|-|**10**|**11**|11|NonMaxSuppression|
|
||||
|NonZero|-|-|-|-|-|-|-|-|**9**|9|9|9|NonZero|
|
||||
|Not|**1**|1|1|1|1|1|1|1|1|1|1|1|Not|
|
||||
|OneHot|-|-|-|-|-|-|-|-|**9**:small_orange_diamond:|9:small_orange_diamond:|**11**:small_orange_diamond:|11:small_orange_diamond:|OneHot|
|
||||
|Or|**1**|1|1|1|1|1|**7**|7|7|7|7|7|Or|
|
||||
|PRelu|**1**|1|1|1|1|**6**|**7**|7|**9**|9|9|9|PRelu|
|
||||
|Pad|**1**|**2**|2|2|2|2|2|2|2|2|**11**|11|Pad|
|
||||
|Pow|**1**|1|1|1|1|1|**7**|7|7|7|7|**12**:small_red_triangle:|Pow|
|
||||
|QLinearConv|-|-|-|-|-|-|-|-|-|**10**|10|10|QLinearConv|
|
||||
|QLinearMatMul|-|-|-|-|-|-|-|-|-|**10**|10|10|QLinearMatMul|
|
||||
|QuantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10|10|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:|RNN|
|
||||
|RandomNormal|**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|RandomNormalLike|
|
||||
|RandomUniform|**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|RandomUniformLike|
|
||||
|Range|-|-|-|-|-|-|-|-|-|-|**11**|11|Range|
|
||||
|Reciprocal|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Reciprocal|
|
||||
|ReduceL1|**1**|1|1|1|1|1|1|1|1|1|**11**|11|ReduceL1|
|
||||
|ReduceL2|**1**|1|1|1|1|1|1|1|1|1|**11**|11|ReduceL2|
|
||||
|ReduceLogSum|**1**|1|1|1|1|1|1|1|1|1|**11**|11|ReduceLogSum|
|
||||
|ReduceLogSumExp|**1**|1|1|1|1|1|1|1|1|1|**11**|11|ReduceLogSumExp|
|
||||
|ReduceMax|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|ReduceMax|
|
||||
|ReduceMean|**1**|1|1|1|1|1|1|1|1|1|**11**|11|ReduceMean|
|
||||
|ReduceMin|**1**|1|1|1|1|1|1|1|1|1|**11**|**12**|ReduceMin|
|
||||
|ReduceProd|**1**|1|1|1|1|1|1|1|1|1|**11**|11|ReduceProd|
|
||||
|ReduceSum|**1**|1|1|1|1|1|1|1|1|1|**11**|11|ReduceSum|
|
||||
|ReduceSumSquare|**1**|1|1|1|1|1|1|1|1|1|**11**|11|ReduceSumSquare|
|
||||
|Relu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Relu|
|
||||
|Reshape|**1**|1|1|1|**5**|5|5|5|5|5|5|5|Reshape|
|
||||
|Resize|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|**11**:small_orange_diamond:|11:small_orange_diamond:|Resize|
|
||||
|ReverseSequence|-|-|-|-|-|-|-|-|-|**10**|10|10|ReverseSequence|
|
||||
|RoiAlign|-|-|-|-|-|-|-|-|-|**10**:small_red_triangle:|10:small_red_triangle:|10:small_red_triangle:|RoiAlign|
|
||||
|Round|-|-|-|-|-|-|-|-|-|-|**11**|11|Round|
|
||||
|Scan|-|-|-|-|-|-|-|**8**|**9**|9|**11**|11|Scan|
|
||||
|Scatter|-|-|-|-|-|-|-|-|**9**|9|**11**\*|11\*|Scatter|
|
||||
|ScatterElements|-|-|-|-|-|-|-|-|-|-|**11**|11|ScatterElements|
|
||||
|ScatterND|-|-|-|-|-|-|-|-|-|-|**11**|11|ScatterND|
|
||||
|Selu|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Selu|
|
||||
|SequenceAt|-|-|-|-|-|-|-|-|-|-|**11**|11|SequenceAt|
|
||||
|SequenceConstruct|-|-|-|-|-|-|-|-|-|-|**11**|11|SequenceConstruct|
|
||||
|SequenceEmpty|-|-|-|-|-|-|-|-|-|-|**11**|11|SequenceEmpty|
|
||||
|SequenceErase|-|-|-|-|-|-|-|-|-|-|**11**|11|SequenceErase|
|
||||
|SequenceInsert|-|-|-|-|-|-|-|-|-|-|**11**|11|SequenceInsert|
|
||||
|SequenceLength|-|-|-|-|-|-|-|-|-|-|**11**|11|SequenceLength|
|
||||
|Shape|**1**|1|1|1|1|1|1|1|1|1|1|1|Shape|
|
||||
|Shrink|-|-|-|-|-|-|-|-|**9**|9|9|9|Shrink|
|
||||
|Sigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Sigmoid|
|
||||
|Sign|-|-|-|-|-|-|-|-|**9**|9|9|9|Sign|
|
||||
|Sin|-|-|-|-|-|-|**7**|7|7|7|7|7|Sin|
|
||||
|Sinh|-|-|-|-|-|-|-|-|**9**|9|9|9|Sinh|
|
||||
|Size|**1**|1|1|1|1|1|1|1|1|1|1|1|Size|
|
||||
|Slice|**1**|1|1|1|1|1|1|1|1|**10**|**11**|11|Slice|
|
||||
|Softmax|**1**|1|1|1|1|1|1|1|1|1|**11**|11|Softmax|
|
||||
|SoftmaxCrossEntropyLoss|-|-|-|-|-|-|-|-|-|-|-|**12**:small_red_triangle:|SoftmaxCrossEntropyLoss|
|
||||
|Softplus|**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|Softsign|
|
||||
|SpaceToDepth|**1**|1|1|1|1|1|1|1|1|1|1|1|SpaceToDepth|
|
||||
|Split|**1**|**2**|2|2|2|2|2|2|2|2|**11**|11|Split|
|
||||
|SplitToSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:|11:small_red_triangle:|SplitToSequence|
|
||||
|Sqrt|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Sqrt|
|
||||
|Squeeze|**1**|1|1|1|1|1|1|1|1|1|**11**|11|Squeeze|
|
||||
|StringNormalizer|-|-|-|-|-|-|-|-|-|**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|Sub|
|
||||
|Sum|**1**|1|1|1|1|**6**|6|**8**|8|8|8|8|Sum|
|
||||
|Tan|-|-|-|-|-|-|**7**|7|7|7|7|7|Tan|
|
||||
|Tanh|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Tanh|
|
||||
|TfIdfVectorizer|-|-|-|-|-|-|-|-|**9**|9|9|9|TfIdfVectorizer|
|
||||
|ThresholdedRelu|-|-|-|-|-|-|-|-|-|**10**|10|10|ThresholdedRelu|
|
||||
|Tile|**1**|1|1|1|1|**6**|6|6|6|6|6|6|Tile|
|
||||
|TopK|**1**|1|1|1|1|1|1|1|1|**10**|**11**|11|TopK|
|
||||
|Transpose|**1**|1|1|1|1|1|1|1|1|1|1|1|Transpose|
|
||||
|Unique|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:|11:small_red_triangle:|Unique|
|
||||
|Unsqueeze|**1**|1|1|1|1|1|1|1|1|1|**11**|11|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\*|Upsample|
|
||||
|Where|-|-|-|-|-|-|-|-|**9**|9|9|9|Where|
|
||||
|Xor|**1**|1|1|1|1|1|**7**|7|7|7|7|7|Xor|
|
||||
|
||||
ONNX-TF Supported Operators / ONNX Operators: 144 / 162
|
||||
|
||||
Notes:
|
||||
1. Cast: Cast string to float32/float64/int32/int64 are not supported in Tensorflow.
|
||||
2. Clip: Clip input in uint64 is not supported in Tensorflow.
|
||||
3. ConvTranspose: ConvTranspose with dilations != 1, or transposed convolution for 4D or higher are not supported in Tensorflow.
|
||||
4. CumSum: CumSum inputs in uint32/uint64 are not supported in Tensorflow.
|
||||
5. Equal: Equal inputs in uint16/uint32/uint64 are not supported in Tensorflow.
|
||||
6. 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.
|
||||
7. LSTM: LSTM not using sigmoid for `f`, or LSTM not using the same activation for `g` and `h` are not supported in Tensorflow.
|
||||
8. MaxPool: MaxPoolWithArgmax with pad is None or incompatible mode, or MaxPoolWithArgmax with 4D or higher input, orMaxPoolWithArgmax with column major are not supported in Tensorflow.
|
||||
9. Mod: Mod Dividend or Divisor in int8/int16/uint8/uint16/uint32/uint64 are not supported in Tensorflow.
|
||||
10. OneHot: OneHot indices in uint16/uint32/uint64/int8/int16/float16/float/double, or OneHot depth in uint8/uint16/uint32/uint64/int8/int16/int64/float16/float/double are not supported in Tensorflow.
|
||||
11. RNN: RNN with clip is not supported in Tensorflow.
|
||||
12. 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.
|
||||
13. Upsample: Upsample required 4D input in Tensorflow.
|
||||
@@ -0,0 +1,170 @@
|
||||
# ONNX-Tensorflow Support Status
|
||||
|||
|
||||
|-:|:-|
|
||||
|ONNX-Tensorflow Version|v1.5.0|
|
||||
|ONNX Version|v1.5.0|
|
||||
|Tensorflow Version|v1.15.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**|
|
||||
|Abs|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|Acos|-|-|-|-|-|-|**7**|7|7|7|
|
||||
|Acosh|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Add|**1**|1|1|1|1|**6**|**7**|7|7|7|
|
||||
|And|**1**|1|1|1|1|1|**7**|7|7|7|
|
||||
|ArgMax|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|ArgMin|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Asin|-|-|-|-|-|-|**7**|7|7|7|
|
||||
|Asinh|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Atan|-|-|-|-|-|-|**7**|7|7|7|
|
||||
|Atanh|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|AveragePool|**1**|1|1|1|1|1|**7**|7|7|**10**|
|
||||
|BatchNormalization|**1**|1|1|1|1|**6**|**7**|7|**9**|9|
|
||||
|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:|
|
||||
|Ceil|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|Clip|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|Compress|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Concat|**1**|1|1|**4**|4|4|4|4|4|4|
|
||||
|Constant|**1**|1|1|1|1|1|1|1|**9**|9|
|
||||
|ConstantOfShape|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Conv|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|ConvInteger|-|-|-|-|-|-|-|-|-|**10**|
|
||||
|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:|
|
||||
|Cos|-|-|-|-|-|-|**7**|7|7|7|
|
||||
|Cosh|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|DepthToSpace|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|DequantizeLinear|-|-|-|-|-|-|-|-|-|**10**|
|
||||
|Div|**1**|1|1|1|1|**6**|**7**|7|7|7|
|
||||
|Dropout|**1**|1|1|1|1|**6**|**7**|7|7|**10**|
|
||||
|Elu|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|Equal|**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:|
|
||||
|Erf|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Exp|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|Expand|-|-|-|-|-|-|-|**8**|8|8|
|
||||
|EyeLike|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Flatten|**1**|1|1|1|1|1|1|1|**9**|9|
|
||||
|Floor|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|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:|
|
||||
|Gather|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Gemm|**1**|1|1|1|1|**6**|**7**|7|**9**|9|
|
||||
|GlobalAveragePool|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|GlobalLpPool|**1**|**2**|2|2|2|2|2|2|2|2|
|
||||
|GlobalMaxPool|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Greater|**1**|1|1|1|1|1|**7**|7|**9**|9|
|
||||
|HardSigmoid|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|Hardmax|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Identity|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|If|**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:|
|
||||
|InstanceNormalization|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|IsInf|-|-|-|-|-|-|-|-|-|**10**|
|
||||
|IsNaN|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|LRN|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|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:|
|
||||
|LeakyRelu|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|Less|**1**|1|1|1|1|1|**7**|7|**9**|9|
|
||||
|Log|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|LogSoftmax|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Loop|**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:|
|
||||
|LpNormalization|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|LpPool|**1**:small_red_triangle:|**2**:small_red_triangle:|2:small_red_triangle:|2:small_red_triangle:|2:small_red_triangle:|2:small_red_triangle:|2:small_red_triangle:|2:small_red_triangle:|2:small_red_triangle:|2:small_red_triangle:|
|
||||
|MatMul|**1**|1|1|1|1|1|1|1|**9**|9|
|
||||
|MatMulInteger|-|-|-|-|-|-|-|-|-|**10**|
|
||||
|Max|**1**|1|1|1|1|**6**|6|**8**|8|8|
|
||||
|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:|
|
||||
|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:|
|
||||
|MaxUnpool|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Mean|**1**|1|1|1|1|**6**|6|**8**|8|8|
|
||||
|MeanVarianceNormalization|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Min|**1**|1|1|1|1|**6**|6|**8**|8|8|
|
||||
|Mod|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|
|
||||
|Mul|**1**|1|1|1|1|**6**|**7**|7|7|7|
|
||||
|Multinomial|-|-|-|-|-|-|**7**:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:|
|
||||
|Neg|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|NonMaxSuppression|-|-|-|-|-|-|-|-|-|**10**|
|
||||
|NonZero|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Not|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|OneHot|-|-|-|-|-|-|-|-|**9**:small_orange_diamond:|9:small_orange_diamond:|
|
||||
|Or|**1**|1|1|1|1|1|**7**|7|7|7|
|
||||
|PRelu|**1**|1|1|1|1|**6**|**7**|7|**9**|9|
|
||||
|Pad|**1**|**2**|2|2|2|2|2|2|2|2|
|
||||
|Pow|**1**|1|1|1|1|1|**7**|7|7|7|
|
||||
|QLinearConv|-|-|-|-|-|-|-|-|-|**10**|
|
||||
|QLinearMatMul|-|-|-|-|-|-|-|-|-|**10**|
|
||||
|QuantizeLinear|-|-|-|-|-|-|-|-|-|**10**|
|
||||
|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:|
|
||||
|RandomNormal|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|RandomNormalLike|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|RandomUniform|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|RandomUniformLike|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Reciprocal|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|ReduceL1|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|ReduceL2|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|ReduceLogSum|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|ReduceLogSumExp|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|ReduceMax|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|ReduceMean|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|ReduceMin|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|ReduceProd|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|ReduceSum|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|ReduceSumSquare|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Relu|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|Reshape|**1**|1|1|1|**5**|5|5|5|5|5|
|
||||
|Resize|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|
|
||||
|ReverseSequence|-|-|-|-|-|-|-|-|-|**10**|
|
||||
|RoiAlign|-|-|-|-|-|-|-|-|-|**10**:small_red_triangle:|
|
||||
|Scan|-|-|-|-|-|-|-|**8**|**9**|9|
|
||||
|Scatter|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Selu|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|Shape|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Shrink|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Sigmoid|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|Sign|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Sin|-|-|-|-|-|-|**7**|7|7|7|
|
||||
|Sinh|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Size|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Slice|**1**|1|1|1|1|1|1|1|1|**10**|
|
||||
|Softmax|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Softplus|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Softsign|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|SpaceToDepth|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Split|**1**|**2**|2|2|2|2|2|2|2|2|
|
||||
|Sqrt|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|Squeeze|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|StringNormalizer|-|-|-|-|-|-|-|-|-|**10**:small_red_triangle:|
|
||||
|Sub|**1**|1|1|1|1|**6**|**7**|7|7|7|
|
||||
|Sum|**1**|1|1|1|1|**6**|6|**8**|8|8|
|
||||
|Tan|-|-|-|-|-|-|**7**|7|7|7|
|
||||
|Tanh|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|TfIdfVectorizer|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|ThresholdedRelu|-|-|-|-|-|-|-|-|-|**10**|
|
||||
|Tile|**1**|1|1|1|1|**6**|6|6|6|6|
|
||||
|TopK|**1**|1|1|1|1|1|1|1|1|**10**|
|
||||
|Transpose|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|Unsqueeze|**1**|1|1|1|1|1|1|1|1|1|
|
||||
|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**\*|
|
||||
|Where|-|-|-|-|-|-|-|-|**9**|9|
|
||||
|Xor|**1**|1|1|1|1|1|**7**|7|7|7|
|
||||
|
||||
ONNX-TF Supported Operators / ONNX Operators: 130 / 137
|
||||
|
||||
Notes:
|
||||
1. Cast: Cast string to float32/float64/int32/int64 are not supported in Tensorflow.
|
||||
2. ConvTranspose: ConvTranspose with dilations != 1, or transposed convolution for 4D or higher are not supported in Tensorflow.
|
||||
3. Equal: Equal inputs in uint16/uint32/uint64 are not supported in Tensorflow.
|
||||
4. 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.
|
||||
5. LSTM: LSTM not using sigmoid for `f`, or LSTM not using the same activation for `g` and `h` are not supported in Tensorflow.
|
||||
6. MaxPool: MaxPoolWithArgmax with pad is None or incompatible mode, or MaxPoolWithArgmax with 4D or higher input, orMaxPoolWithArgmax with column major are not supported in Tensorflow.
|
||||
7. Mod: Mod Dividend or Divisor in int8/int16/uint8/uint16/uint32/uint64 are not supported in Tensorflow.
|
||||
8. OneHot: OneHot indices in uint16/uint32/uint64/int8/int16/float16/float/double, or OneHot depth in uint8/uint16/uint32/uint64/int8/int16/int64/float16/float/double are not supported in Tensorflow.
|
||||
9. RNN: RNN with clip is not supported in Tensorflow.
|
||||
10. Resize: Resize required 4D input in Tensorflow.
|
||||
11. Upsample: Upsample required 4D input in Tensorflow.
|
||||
@@ -0,0 +1,203 @@
|
||||
# ONNX-Tensorflow Support Status
|
||||
|||
|
||||
|-:|:-|
|
||||
|ONNX-Tensorflow Version|v1.6.0|
|
||||
|ONNX Version|v1.6.0|
|
||||
|Tensorflow Version|v1.15.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**|**ONNX Operator**|
|
||||
|Abs|**1**|1|1|1|1|**6**|6|6|6|6|6|Abs|
|
||||
|Acos|-|-|-|-|-|-|**7**|7|7|7|7|Acos|
|
||||
|Acosh|-|-|-|-|-|-|-|-|**9**|9|9|Acosh|
|
||||
|Add|**1**|1|1|1|1|**6**|**7**|7|7|7|7|Add|
|
||||
|And|**1**|1|1|1|1|1|**7**|7|7|7|7|And|
|
||||
|ArgMax|**1**|1|1|1|1|1|1|1|1|1|**11**|ArgMax|
|
||||
|ArgMin|**1**|1|1|1|1|1|1|1|1|1|**11**|ArgMin|
|
||||
|Asin|-|-|-|-|-|-|**7**|7|7|7|7|Asin|
|
||||
|Asinh|-|-|-|-|-|-|-|-|**9**|9|9|Asinh|
|
||||
|Atan|-|-|-|-|-|-|**7**|7|7|7|7|Atan|
|
||||
|Atanh|-|-|-|-|-|-|-|-|**9**|9|9|Atanh|
|
||||
|AveragePool|**1**|1|1|1|1|1|**7**|7|7|**10**|**11**|AveragePool|
|
||||
|BatchNormalization|**1**|1|1|1|1|**6**|**7**|7|**9**|9|9|BatchNormalization|
|
||||
|BitShift|-|-|-|-|-|-|-|-|-|-|**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:|Cast|
|
||||
|Ceil|**1**|1|1|1|1|**6**|6|6|6|6|6|Ceil|
|
||||
|Clip|**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:|6:small_orange_diamond:|6:small_orange_diamond:|**11**:small_orange_diamond:|Clip|
|
||||
|Compress|-|-|-|-|-|-|-|-|**9**|9|**11**|Compress|
|
||||
|Concat|**1**|1|1|**4**|4|4|4|4|4|4|**11**|Concat|
|
||||
|ConcatFromSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:|ConcatFromSequence|
|
||||
|Constant|**1**|1|1|1|1|1|1|1|**9**|9|**11**|Constant|
|
||||
|ConstantOfShape|-|-|-|-|-|-|-|-|**9**|9|9|ConstantOfShape|
|
||||
|Conv|**1**|1|1|1|1|1|1|1|1|1|**11**|Conv|
|
||||
|ConvInteger|-|-|-|-|-|-|-|-|-|**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:|ConvTranspose|
|
||||
|Cos|-|-|-|-|-|-|**7**|7|7|7|7|Cos|
|
||||
|Cosh|-|-|-|-|-|-|-|-|**9**|9|9|Cosh|
|
||||
|CumSum|-|-|-|-|-|-|-|-|-|-|**11**:small_orange_diamond:|CumSum|
|
||||
|DepthToSpace|**1**|1|1|1|1|1|1|1|1|1|**11**|DepthToSpace|
|
||||
|DequantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10|DequantizeLinear|
|
||||
|Det|-|-|-|-|-|-|-|-|-|-|**11**|Det|
|
||||
|Div|**1**|1|1|1|1|**6**|**7**|7|7|7|7|Div|
|
||||
|Dropout|**1**|1|1|1|1|**6**|**7**|7|7|**10**|10|Dropout|
|
||||
|DynamicQuantizeLinear|-|-|-|-|-|-|-|-|-|-|**11**|DynamicQuantizeLinear|
|
||||
|Elu|**1**|1|1|1|1|**6**|6|6|6|6|6|Elu|
|
||||
|Equal|**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:|**11**:small_orange_diamond:|Equal|
|
||||
|Erf|-|-|-|-|-|-|-|-|**9**|9|9|Erf|
|
||||
|Exp|**1**|1|1|1|1|**6**|6|6|6|6|6|Exp|
|
||||
|Expand|-|-|-|-|-|-|-|**8**|8|8|8|Expand|
|
||||
|EyeLike|-|-|-|-|-|-|-|-|**9**|9|9|EyeLike|
|
||||
|Flatten|**1**|1|1|1|1|1|1|1|**9**|9|**11**|Flatten|
|
||||
|Floor|**1**|1|1|1|1|**6**|6|6|6|6|6|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:|GRU|
|
||||
|Gather|**1**|1|1|1|1|1|1|1|1|1|**11**|Gather|
|
||||
|GatherElements|-|-|-|-|-|-|-|-|-|-|**11**|GatherElements|
|
||||
|GatherND|-|-|-|-|-|-|-|-|-|-|**11**|GatherND|
|
||||
|Gemm|**1**|1|1|1|1|**6**|**7**|7|**9**|9|**11**|Gemm|
|
||||
|GlobalAveragePool|**1**|1|1|1|1|1|1|1|1|1|1|GlobalAveragePool|
|
||||
|GlobalLpPool|**1**|**2**|2|2|2|2|2|2|2|2|2|GlobalLpPool|
|
||||
|GlobalMaxPool|**1**|1|1|1|1|1|1|1|1|1|1|GlobalMaxPool|
|
||||
|Greater|**1**|1|1|1|1|1|**7**|7|**9**|9|9|Greater|
|
||||
|HardSigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6|HardSigmoid|
|
||||
|Hardmax|**1**|1|1|1|1|1|1|1|1|1|**11**|Hardmax|
|
||||
|Identity|**1**|1|1|1|1|1|1|1|1|1|1|Identity|
|
||||
|If|**1**|1|1|1|1|1|1|1|1|1|**11**|If|
|
||||
|InstanceNormalization|**1**|1|1|1|1|**6**|6|6|6|6|6|InstanceNormalization|
|
||||
|IsInf|-|-|-|-|-|-|-|-|-|**10**|10|IsInf|
|
||||
|IsNaN|-|-|-|-|-|-|-|-|**9**|9|9|IsNaN|
|
||||
|LRN|**1**|1|1|1|1|1|1|1|1|1|1|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:|LSTM|
|
||||
|LeakyRelu|**1**|1|1|1|1|**6**|6|6|6|6|6|LeakyRelu|
|
||||
|Less|**1**|1|1|1|1|1|**7**|7|**9**|9|9|Less|
|
||||
|Log|**1**|1|1|1|1|**6**|6|6|6|6|6|Log|
|
||||
|LogSoftmax|**1**|1|1|1|1|1|1|1|1|1|**11**|LogSoftmax|
|
||||
|Loop|**1**|1|1|1|1|1|1|1|1|1|**11**|Loop|
|
||||
|LpNormalization|**1**|1|1|1|1|1|1|1|1|1|1|LpNormalization|
|
||||
|LpPool|**1**|**2**|2|2|2|2|2|2|2|2|**11**|LpPool|
|
||||
|MatMul|**1**|1|1|1|1|1|1|1|**9**|9|9|MatMul|
|
||||
|MatMulInteger|-|-|-|-|-|-|-|-|-|**10**|10|MatMulInteger|
|
||||
|Max|**1**|1|1|1|1|**6**|6|**8**|8|8|8|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:|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:|MaxRoiPool|
|
||||
|MaxUnpool|-|-|-|-|-|-|-|-|**9**|9|**11**|MaxUnpool|
|
||||
|Mean|**1**|1|1|1|1|**6**|6|**8**|8|8|8|Mean|
|
||||
|MeanVarianceNormalization|-|-|-|-|-|-|-|-|**9**|9|9|MeanVarianceNormalization|
|
||||
|Min|**1**|1|1|1|1|**6**|6|**8**|8|8|8|Min|
|
||||
|Mod|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|10:small_orange_diamond:|Mod|
|
||||
|Mul|**1**|1|1|1|1|**6**|**7**|7|7|7|7|Mul|
|
||||
|Multinomial|-|-|-|-|-|-|**7**:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:|Multinomial|
|
||||
|Neg|**1**|1|1|1|1|**6**|6|6|6|6|6|Neg|
|
||||
|NonMaxSuppression|-|-|-|-|-|-|-|-|-|**10**|**11**|NonMaxSuppression|
|
||||
|NonZero|-|-|-|-|-|-|-|-|**9**|9|9|NonZero|
|
||||
|Not|**1**|1|1|1|1|1|1|1|1|1|1|Not|
|
||||
|OneHot|-|-|-|-|-|-|-|-|**9**:small_orange_diamond:|9:small_orange_diamond:|**11**:small_orange_diamond:|OneHot|
|
||||
|Or|**1**|1|1|1|1|1|**7**|7|7|7|7|Or|
|
||||
|PRelu|**1**|1|1|1|1|**6**|**7**|7|**9**|9|9|PRelu|
|
||||
|Pad|**1**|**2**|2|2|2|2|2|2|2|2|**11**|Pad|
|
||||
|Pow|**1**|1|1|1|1|1|**7**|7|7|7|7|Pow|
|
||||
|QLinearConv|-|-|-|-|-|-|-|-|-|**10**|10|QLinearConv|
|
||||
|QLinearMatMul|-|-|-|-|-|-|-|-|-|**10**|10|QLinearMatMul|
|
||||
|QuantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10|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:|RNN|
|
||||
|RandomNormal|**1**|1|1|1|1|1|1|1|1|1|1|RandomNormal|
|
||||
|RandomNormalLike|**1**|1|1|1|1|1|1|1|1|1|1|RandomNormalLike|
|
||||
|RandomUniform|**1**|1|1|1|1|1|1|1|1|1|1|RandomUniform|
|
||||
|RandomUniformLike|**1**|1|1|1|1|1|1|1|1|1|1|RandomUniformLike|
|
||||
|Range|-|-|-|-|-|-|-|-|-|-|**11**|Range|
|
||||
|Reciprocal|**1**|1|1|1|1|**6**|6|6|6|6|6|Reciprocal|
|
||||
|ReduceL1|**1**|1|1|1|1|1|1|1|1|1|**11**|ReduceL1|
|
||||
|ReduceL2|**1**|1|1|1|1|1|1|1|1|1|**11**|ReduceL2|
|
||||
|ReduceLogSum|**1**|1|1|1|1|1|1|1|1|1|**11**|ReduceLogSum|
|
||||
|ReduceLogSumExp|**1**|1|1|1|1|1|1|1|1|1|**11**|ReduceLogSumExp|
|
||||
|ReduceMax|**1**|1|1|1|1|1|1|1|1|1|**11**|ReduceMax|
|
||||
|ReduceMean|**1**|1|1|1|1|1|1|1|1|1|**11**|ReduceMean|
|
||||
|ReduceMin|**1**|1|1|1|1|1|1|1|1|1|**11**|ReduceMin|
|
||||
|ReduceProd|**1**|1|1|1|1|1|1|1|1|1|**11**|ReduceProd|
|
||||
|ReduceSum|**1**|1|1|1|1|1|1|1|1|1|**11**|ReduceSum|
|
||||
|ReduceSumSquare|**1**|1|1|1|1|1|1|1|1|1|**11**|ReduceSumSquare|
|
||||
|Relu|**1**|1|1|1|1|**6**|6|6|6|6|6|Relu|
|
||||
|Reshape|**1**|1|1|1|**5**|5|5|5|5|5|5|Reshape|
|
||||
|Resize|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|**11**:small_orange_diamond:|Resize|
|
||||
|ReverseSequence|-|-|-|-|-|-|-|-|-|**10**|10|ReverseSequence|
|
||||
|RoiAlign|-|-|-|-|-|-|-|-|-|**10**:small_red_triangle:|10:small_red_triangle:|RoiAlign|
|
||||
|Round|-|-|-|-|-|-|-|-|-|-|**11**|Round|
|
||||
|Scan|-|-|-|-|-|-|-|**8**|**9**|9|**11**|Scan|
|
||||
|Scatter|-|-|-|-|-|-|-|-|**9**|9|**11**\*|Scatter|
|
||||
|ScatterElements|-|-|-|-|-|-|-|-|-|-|**11**|ScatterElements|
|
||||
|ScatterND|-|-|-|-|-|-|-|-|-|-|**11**|ScatterND|
|
||||
|Selu|**1**|1|1|1|1|**6**|6|6|6|6|6|Selu|
|
||||
|SequenceAt|-|-|-|-|-|-|-|-|-|-|**11**|SequenceAt|
|
||||
|SequenceConstruct|-|-|-|-|-|-|-|-|-|-|**11**|SequenceConstruct|
|
||||
|SequenceEmpty|-|-|-|-|-|-|-|-|-|-|**11**|SequenceEmpty|
|
||||
|SequenceErase|-|-|-|-|-|-|-|-|-|-|**11**|SequenceErase|
|
||||
|SequenceInsert|-|-|-|-|-|-|-|-|-|-|**11**|SequenceInsert|
|
||||
|SequenceLength|-|-|-|-|-|-|-|-|-|-|**11**|SequenceLength|
|
||||
|Shape|**1**|1|1|1|1|1|1|1|1|1|1|Shape|
|
||||
|Shrink|-|-|-|-|-|-|-|-|**9**|9|9|Shrink|
|
||||
|Sigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6|Sigmoid|
|
||||
|Sign|-|-|-|-|-|-|-|-|**9**|9|9|Sign|
|
||||
|Sin|-|-|-|-|-|-|**7**|7|7|7|7|Sin|
|
||||
|Sinh|-|-|-|-|-|-|-|-|**9**|9|9|Sinh|
|
||||
|Size|**1**|1|1|1|1|1|1|1|1|1|1|Size|
|
||||
|Slice|**1**|1|1|1|1|1|1|1|1|**10**|**11**|Slice|
|
||||
|Softmax|**1**|1|1|1|1|1|1|1|1|1|**11**|Softmax|
|
||||
|Softplus|**1**|1|1|1|1|1|1|1|1|1|1|Softplus|
|
||||
|Softsign|**1**|1|1|1|1|1|1|1|1|1|1|Softsign|
|
||||
|SpaceToDepth|**1**|1|1|1|1|1|1|1|1|1|1|SpaceToDepth|
|
||||
|Split|**1**|**2**|2|2|2|2|2|2|2|2|**11**|Split|
|
||||
|SplitToSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:|SplitToSequence|
|
||||
|Sqrt|**1**|1|1|1|1|**6**|6|6|6|6|6|Sqrt|
|
||||
|Squeeze|**1**|1|1|1|1|1|1|1|1|1|**11**|Squeeze|
|
||||
|StringNormalizer|-|-|-|-|-|-|-|-|-|**10**:small_red_triangle:|10:small_red_triangle:|StringNormalizer|
|
||||
|Sub|**1**|1|1|1|1|**6**|**7**|7|7|7|7|Sub|
|
||||
|Sum|**1**|1|1|1|1|**6**|6|**8**|8|8|8|Sum|
|
||||
|Tan|-|-|-|-|-|-|**7**|7|7|7|7|Tan|
|
||||
|Tanh|**1**|1|1|1|1|**6**|6|6|6|6|6|Tanh|
|
||||
|TfIdfVectorizer|-|-|-|-|-|-|-|-|**9**|9|9|TfIdfVectorizer|
|
||||
|ThresholdedRelu|-|-|-|-|-|-|-|-|-|**10**|10|ThresholdedRelu|
|
||||
|Tile|**1**|1|1|1|1|**6**|6|6|6|6|6|Tile|
|
||||
|TopK|**1**|1|1|1|1|1|1|1|1|**10**|**11**|TopK|
|
||||
|Transpose|**1**|1|1|1|1|1|1|1|1|1|1|Transpose|
|
||||
|Unique|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:|Unique|
|
||||
|Unsqueeze|**1**|1|1|1|1|1|1|1|1|1|**11**|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\*|Upsample|
|
||||
|Where|-|-|-|-|-|-|-|-|**9**|9|9|Where|
|
||||
|Xor|**1**|1|1|1|1|1|**7**|7|7|7|7|Xor|
|
||||
|
||||
ONNX-TF Supported Operators / ONNX Operators: 149 / 156
|
||||
|
||||
Notes:
|
||||
1. Cast: Cast string to float32/float64/int32/int64 are not supported in Tensorflow.
|
||||
2. Clip: Clip input in uint64 is not supported in Tensorflow.
|
||||
3. ConvTranspose: ConvTranspose with dilations != 1, or transposed convolution for 4D or higher are not supported in Tensorflow.
|
||||
4. CumSum: CumSum inputs in uint32/uint64 are not supported in Tensorflow.
|
||||
5. Equal: Equal inputs in uint16/uint32/uint64 are not supported in Tensorflow.
|
||||
6. 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.
|
||||
7. LSTM: LSTM not using sigmoid for `f`, or LSTM not using the same activation for `g` and `h` are not supported in Tensorflow.
|
||||
8. MaxPool: MaxPoolWithArgmax with pad is None or incompatible mode, or MaxPoolWithArgmax with 4D or higher input, orMaxPoolWithArgmax with column major are not supported in Tensorflow.
|
||||
9. Mod: Mod Dividend or Divisor in int8/int16/uint8/uint16/uint32/uint64 are not supported in Tensorflow.
|
||||
10. OneHot: OneHot indices in uint16/uint32/uint64/int8/int16/float16/float/double, or OneHot depth in uint8/uint16/uint32/uint64/int8/int16/int64/float16/float/double are not supported in Tensorflow.
|
||||
11. RNN: RNN with clip is not supported in Tensorflow.
|
||||
12. 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.
|
||||
13. Upsample: Upsample required 4D input in Tensorflow.
|
||||
Reference in New Issue
Block a user