|
| 1 | +# ONNX-Tensorflow Support Status |
| 2 | +||| |
| 3 | +|-:|:-| |
| 4 | +|ONNX-Tensorflow Version|v1.6.0| |
| 5 | +|ONNX Version|v1.6.0| |
| 6 | +|Tensorflow Version|v2.2.0| |
| 7 | + |
| 8 | +Notes: |
| 9 | +* Values that are new or updated from a previous opset version are in bold. |
| 10 | +* -: not defined in corresponding ONNX opset version |
| 11 | +* \*: the operator is deprecated |
| 12 | +* :small_red_triangle:: not supported yet |
| 13 | +* :small_orange_diamond:: partially supported |
| 14 | +* the rest are all supported |
| 15 | + |
| 16 | +||||||||||||| |
| 17 | +|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| |
| 18 | +|**ONNX Operator**|**Opset 1**|**Opset 2**|**Opset 3**|**Opset 4**|**Opset 5**|**Opset 6**|**Opset 7**|**Opset 8**|**Opset 9**|**Opset 10**|**Opset 11**| |
| 19 | +|Abs|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 20 | +|Acos|-|-|-|-|-|-|**7**|7|7|7|7| |
| 21 | +|Acosh|-|-|-|-|-|-|-|-|**9**|9|9| |
| 22 | +|Add|**1**|1|1|1|1|**6**|**7**|7|7|7|7| |
| 23 | +|And|**1**|1|1|1|1|1|**7**|7|7|7|7| |
| 24 | +|ArgMax|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 25 | +|ArgMin|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 26 | +|Asin|-|-|-|-|-|-|**7**|7|7|7|7| |
| 27 | +|Asinh|-|-|-|-|-|-|-|-|**9**|9|9| |
| 28 | +|Atan|-|-|-|-|-|-|**7**|7|7|7|7| |
| 29 | +|Atanh|-|-|-|-|-|-|-|-|**9**|9|9| |
| 30 | +|AveragePool|**1**|1|1|1|1|1|**7**|7|7|**10**|**11**| |
| 31 | +|BatchNormalization|**1**|1|1|1|1|**6**|**7**|7|**9**|9|9| |
| 32 | +|BitShift|-|-|-|-|-|-|-|-|-|-|**11**| |
| 33 | +|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:| |
| 34 | +|Ceil|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 35 | +|Clip|**1**|1|1|1|1|**6**|6|6|6|6|**11**| |
| 36 | +|Compress|-|-|-|-|-|-|-|-|**9**|9|**11**| |
| 37 | +|Concat|**1**|1|1|**4**|4|4|4|4|4|4|**11**| |
| 38 | +|ConcatFromSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:| |
| 39 | +|Constant|**1**|1|1|1|1|1|1|1|**9**|9|**11**| |
| 40 | +|ConstantOfShape|-|-|-|-|-|-|-|-|**9**|9|9| |
| 41 | +|Conv|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 42 | +|ConvInteger|-|-|-|-|-|-|-|-|-|**10**|10| |
| 43 | +|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:| |
| 44 | +|Cos|-|-|-|-|-|-|**7**|7|7|7|7| |
| 45 | +|Cosh|-|-|-|-|-|-|-|-|**9**|9|9| |
| 46 | +|CumSum|-|-|-|-|-|-|-|-|-|-|**11**:small_orange_diamond:| |
| 47 | +|DepthToSpace|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 48 | +|DequantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10| |
| 49 | +|Det|-|-|-|-|-|-|-|-|-|-|**11**| |
| 50 | +|Div|**1**|1|1|1|1|**6**|**7**|7|7|7|7| |
| 51 | +|Dropout|**1**|1|1|1|1|**6**|**7**|7|7|**10**|10| |
| 52 | +|DynamicQuantizeLinear|-|-|-|-|-|-|-|-|-|-|**11**| |
| 53 | +|Elu|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 54 | +|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:| |
| 55 | +|Erf|-|-|-|-|-|-|-|-|**9**|9|9| |
| 56 | +|Exp|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 57 | +|Expand|-|-|-|-|-|-|-|**8**|8|8|8| |
| 58 | +|EyeLike|-|-|-|-|-|-|-|-|**9**|9|9| |
| 59 | +|Flatten|**1**|1|1|1|1|1|1|1|**9**|9|**11**| |
| 60 | +|Floor|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 61 | +|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:| |
| 62 | +|Gather|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 63 | +|GatherElements|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:| |
| 64 | +|GatherND|-|-|-|-|-|-|-|-|-|-|**11**| |
| 65 | +|Gemm|**1**|1|1|1|1|**6**|**7**|7|**9**|9|**11**| |
| 66 | +|GlobalAveragePool|**1**|1|1|1|1|1|1|1|1|1|1| |
| 67 | +|GlobalLpPool|**1**|**2**|2|2|2|2|2|2|2|2|2| |
| 68 | +|GlobalMaxPool|**1**|1|1|1|1|1|1|1|1|1|1| |
| 69 | +|Greater|**1**|1|1|1|1|1|**7**|7|**9**|9|9| |
| 70 | +|HardSigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 71 | +|Hardmax|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 72 | +|Identity|**1**|1|1|1|1|1|1|1|1|1|1| |
| 73 | +|If|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 74 | +|InstanceNormalization|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 75 | +|IsInf|-|-|-|-|-|-|-|-|-|**10**|10| |
| 76 | +|IsNaN|-|-|-|-|-|-|-|-|**9**|9|9| |
| 77 | +|LRN|**1**|1|1|1|1|1|1|1|1|1|1| |
| 78 | +|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:| |
| 79 | +|LeakyRelu|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 80 | +|Less|**1**|1|1|1|1|1|**7**|7|**9**|9|9| |
| 81 | +|Log|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 82 | +|LogSoftmax|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 83 | +|Loop|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 84 | +|LpNormalization|**1**|1|1|1|1|1|1|1|1|1|1| |
| 85 | +|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:|**11**:small_red_triangle:| |
| 86 | +|MatMul|**1**|1|1|1|1|1|1|1|**9**|9|9| |
| 87 | +|MatMulInteger|-|-|-|-|-|-|-|-|-|**10**|10| |
| 88 | +|Max|**1**|1|1|1|1|**6**|6|**8**|8|8|8| |
| 89 | +|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:| |
| 90 | +|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:| |
| 91 | +|MaxUnpool|-|-|-|-|-|-|-|-|**9**|9|**11**| |
| 92 | +|Mean|**1**|1|1|1|1|**6**|6|**8**|8|8|8| |
| 93 | +|MeanVarianceNormalization|-|-|-|-|-|-|-|-|**9**|9|9| |
| 94 | +|Min|**1**|1|1|1|1|**6**|6|**8**|8|8|8| |
| 95 | +|Mod|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|10:small_orange_diamond:| |
| 96 | +|Mul|**1**|1|1|1|1|**6**|**7**|7|7|7|7| |
| 97 | +|Multinomial|-|-|-|-|-|-|**7**:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:|7:small_red_triangle:| |
| 98 | +|Neg|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 99 | +|NonMaxSuppression|-|-|-|-|-|-|-|-|-|**10**|**11**| |
| 100 | +|NonZero|-|-|-|-|-|-|-|-|**9**|9|9| |
| 101 | +|Not|**1**|1|1|1|1|1|1|1|1|1|1| |
| 102 | +|OneHot|-|-|-|-|-|-|-|-|**9**:small_orange_diamond:|9:small_orange_diamond:|**11**:small_orange_diamond:| |
| 103 | +|Or|**1**|1|1|1|1|1|**7**|7|7|7|7| |
| 104 | +|PRelu|**1**|1|1|1|1|**6**|**7**|7|**9**|9|9| |
| 105 | +|Pad|**1**|**2**|2|2|2|2|2|2|2|2|**11**| |
| 106 | +|Pow|**1**|1|1|1|1|1|**7**|7|7|7|7| |
| 107 | +|QLinearConv|-|-|-|-|-|-|-|-|-|**10**|10| |
| 108 | +|QLinearMatMul|-|-|-|-|-|-|-|-|-|**10**|10| |
| 109 | +|QuantizeLinear|-|-|-|-|-|-|-|-|-|**10**|10| |
| 110 | +|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:| |
| 111 | +|RandomNormal|**1**|1|1|1|1|1|1|1|1|1|1| |
| 112 | +|RandomNormalLike|**1**|1|1|1|1|1|1|1|1|1|1| |
| 113 | +|RandomUniform|**1**|1|1|1|1|1|1|1|1|1|1| |
| 114 | +|RandomUniformLike|**1**|1|1|1|1|1|1|1|1|1|1| |
| 115 | +|Range|-|-|-|-|-|-|-|-|-|-|**11**| |
| 116 | +|Reciprocal|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 117 | +|ReduceL1|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 118 | +|ReduceL2|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 119 | +|ReduceLogSum|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 120 | +|ReduceLogSumExp|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 121 | +|ReduceMax|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 122 | +|ReduceMean|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 123 | +|ReduceMin|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 124 | +|ReduceProd|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 125 | +|ReduceSum|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 126 | +|ReduceSumSquare|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 127 | +|Relu|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 128 | +|Reshape|**1**|1|1|1|**5**|5|5|5|5|5|5| |
| 129 | +|Resize|-|-|-|-|-|-|-|-|-|**10**:small_orange_diamond:|**11**:small_red_triangle:| |
| 130 | +|ReverseSequence|-|-|-|-|-|-|-|-|-|**10**|10| |
| 131 | +|RoiAlign|-|-|-|-|-|-|-|-|-|**10**:small_red_triangle:|10:small_red_triangle:| |
| 132 | +|Round|-|-|-|-|-|-|-|-|-|-|**11**| |
| 133 | +|Scan|-|-|-|-|-|-|-|**8**|**9**|9|**11**| |
| 134 | +|Scatter|-|-|-|-|-|-|-|-|**9**|9|**11**\*| |
| 135 | +|ScatterElements|-|-|-|-|-|-|-|-|-|-|**11**| |
| 136 | +|ScatterND|-|-|-|-|-|-|-|-|-|-|**11**| |
| 137 | +|Selu|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 138 | +|SequenceAt|-|-|-|-|-|-|-|-|-|-|**11**| |
| 139 | +|SequenceConstruct|-|-|-|-|-|-|-|-|-|-|**11**| |
| 140 | +|SequenceEmpty|-|-|-|-|-|-|-|-|-|-|**11**| |
| 141 | +|SequenceErase|-|-|-|-|-|-|-|-|-|-|**11**| |
| 142 | +|SequenceInsert|-|-|-|-|-|-|-|-|-|-|**11**| |
| 143 | +|SequenceLength|-|-|-|-|-|-|-|-|-|-|**11**| |
| 144 | +|Shape|**1**|1|1|1|1|1|1|1|1|1|1| |
| 145 | +|Shrink|-|-|-|-|-|-|-|-|**9**|9|9| |
| 146 | +|Sigmoid|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 147 | +|Sign|-|-|-|-|-|-|-|-|**9**|9|9| |
| 148 | +|Sin|-|-|-|-|-|-|**7**|7|7|7|7| |
| 149 | +|Sinh|-|-|-|-|-|-|-|-|**9**|9|9| |
| 150 | +|Size|**1**|1|1|1|1|1|1|1|1|1|1| |
| 151 | +|Slice|**1**|1|1|1|1|1|1|1|1|**10**|**11**| |
| 152 | +|Softmax|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 153 | +|Softplus|**1**|1|1|1|1|1|1|1|1|1|1| |
| 154 | +|Softsign|**1**|1|1|1|1|1|1|1|1|1|1| |
| 155 | +|SpaceToDepth|**1**|1|1|1|1|1|1|1|1|1|1| |
| 156 | +|Split|**1**|**2**|2|2|2|2|2|2|2|2|**11**| |
| 157 | +|SplitToSequence|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:| |
| 158 | +|Sqrt|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 159 | +|Squeeze|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 160 | +|StringNormalizer|-|-|-|-|-|-|-|-|-|**10**:small_red_triangle:|10:small_red_triangle:| |
| 161 | +|Sub|**1**|1|1|1|1|**6**|**7**|7|7|7|7| |
| 162 | +|Sum|**1**|1|1|1|1|**6**|6|**8**|8|8|8| |
| 163 | +|Tan|-|-|-|-|-|-|**7**|7|7|7|7| |
| 164 | +|Tanh|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 165 | +|TfIdfVectorizer|-|-|-|-|-|-|-|-|**9**|9|9| |
| 166 | +|ThresholdedRelu|-|-|-|-|-|-|-|-|-|**10**|10| |
| 167 | +|Tile|**1**|1|1|1|1|**6**|6|6|6|6|6| |
| 168 | +|TopK|**1**|1|1|1|1|1|1|1|1|**10**|**11**| |
| 169 | +|Transpose|**1**|1|1|1|1|1|1|1|1|1|1| |
| 170 | +|Unique|-|-|-|-|-|-|-|-|-|-|**11**:small_red_triangle:| |
| 171 | +|Unsqueeze|**1**|1|1|1|1|1|1|1|1|1|**11**| |
| 172 | +|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\*| |
| 173 | +|Where|-|-|-|-|-|-|-|-|**9**|9|9| |
| 174 | +|Xor|**1**|1|1|1|1|1|**7**|7|7|7|7| |
| 175 | + |
| 176 | +ONNX-TF Supported Operators / ONNX Operators: 146 / 156 |
| 177 | + |
| 178 | +Notes: |
| 179 | +1. Cast: Cast string to float32/float64/int32/int64 are not supported in Tensorflow. |
| 180 | +2. ConvTranspose: ConvTranspose with dilations != 1, or transposed convolution for 4D or higher are not supported in Tensorflow. |
| 181 | +3. CumSum: CumSum inputs in uint32/uint64 are not supported in Tensorflow. |
| 182 | +4. Equal: Equal inputs in uint16/uint32/uint64 are not supported in Tensorflow. |
| 183 | +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. |
| 184 | +6. LSTM: LSTM not using sigmoid for `f`, or LSTM not using the same activation for `g` and `h` are not supported in Tensorflow. |
| 185 | +7. 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. |
| 186 | +8. Mod: Mod Dividend or Divisor in int8/int16/uint8/uint16/uint32/uint64 are not supported in Tensorflow. |
| 187 | +9. 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. |
| 188 | +10. RNN: RNN with clip is not supported in Tensorflow. |
| 189 | +11. Resize: Resize required 4D input in Tensorflow. |
| 190 | +12. Upsample: Upsample required 4D input in Tensorflow. |
0 commit comments