Supported ONNX operators
The table shows which Open Neural Network Exchange (ONNX) operators Sentis supports, and which data types Sentis supports for each back end type.
When you import a model, each ONNX operator in the model graph becomes a Sentis layer. A Sentis layer has the same name as the ONNX operator, unless the table shows the operator maps to a different layer. Refer to How Sentis optimizes a model for more information.
If you use a GPU Worker and the model has a layer that isn't supported, or has a layer that uses an input tensor data type that isn't supported, Sentis falls back to using BackendType.CPU
for the layer, which uses Burst. If BackendType.CPU
isn't supported, Sentis falls back to using a slower CPU implementation of the layer that doesn't use Burst.
Refer to the API reference for more information on each Sentis layer.
Supported operators
ONNX operators
Name | Supported data types with BackendType.CPU |
Supported data types with BackendType.GPUCompute |
Supported data types with BackendType.GPUPixel |
Notes |
---|---|---|---|---|
Abs | float, int | float, int | float | |
Acos | float | float | float | |
Acosh | float | float | float | |
Add | float, int | float, int | float | |
And | int | int | Not supported | |
ArgMax | float, int | float, int | Not supported | |
ArgMin | float, int | float, int | Not supported | |
Asin | float | float | float | |
Asinh | float | float | float | |
Atan | float | float | float | |
Atanh | float | float | float | |
AveragePool | float | float (1D and 2D only) | float (2D only) | The ceil_mode and count_include_pad parameters aren't supported. |
BatchNormalization | float | float | float | The epsilon , momentum , spatial and training_mode parameters aren't supported. |
Bernoulli | float | float | Not supported | |
Cast | float, int | float, int | Not supported | |
CastLike | float, int | float, int | Not supported | |
Ceil | float | float | float | |
Celu | float | float | float | |
Clip | float | float | float | |
Compress | float, int | Not supported | Not supported | |
Concat | float, int | float, int | float | |
Constant | - | - | - | The sparse_value parameter isn't supported. |
ConstantOfShape | float, int | float, int | float | |
Conv | float | float (1D, 2D and 3D) | float (2D only) | The kernel_shape parameter isn't supported. |
ConvTranspose | float | float (2D only) | float (2D only) | The dilations , group , kernel_shape and output_shape parameters aren't supported. |
Cos | float | float | float | |
Cosh | float | float | float | |
CumSum | float, int | float, int | Not supported | |
DepthToSpace | float | float | float | |
Div | float, int | float, int | float | |
Dropout | - | - | - | The operator maps to the Sentis layer Identity |
Einsum | float | float (1 or 2 inputs only) | Not supported | |
Elu | float | float | float | |
Equal | float, int | float, int | Not supported | |
Erf | float | float | float | |
Exp | float | float | float | |
Expand | float, int | float, int | float | |
Flatten | float, int | float, int | float | |
Floor | float | float | float | |
Gather | float, int | float, int | Not supported | |
GatherElements | float, int | float, int | Not supported | |
GatherND | float, int | float, int | Not supported | |
Gemm | float | float | float | |
GlobalAveragePool | float | float | float | |
GlobalMaxPool | float | float | float | |
Greater | float, int | float, int | Not supported | |
GreaterOrEqual | float, int | float, int | Not supported | |
Hardmax | float | float | Not supported | |
HardSigmoid | float | float | float | |
HardSwish | float | float | float | |
Identity | float, int | float, int | float | |
InstanceNormalization | float | float | Not supported | |
IsInf | float | float | Not supported | |
IsNaN | float | float | Not supported | |
LeakyRelu | float | float | float | |
Less | float, int | float, int | Not supported | |
LessOrEqual | float, int | float, int | Not supported | |
Log | float | float | float | |
LogSoftmax | float | float | float | |
LRN | float | Not supported | Not supported | |
LSTM | float | float | Not supported | |
MatMul | float | float | float (2D only) | |
Max | float, int | float, int | float | |
MaxPool | float | float (1D and 2D only) | float (2D only) | The ceil_mode , dilations and storage_order parameters aren't supported. |
Mean | float | float | float | |
Min | float, int | float, int | float | |
Mod | float, int | float, int | float | |
Mul | float, int | float, int | float | |
Multinomial | float | Not supported | Not supported | |
Neg | float, int | float, int | float | |
NonMaxSuppression | float | Not supported | Not supported | |
NonZero | float, int | Not supported | Not supported | |
Not | int | int | Not supported | |
OneHot | (int, int, int) - outputs int | (int, int, int) - outputs int | Not supported | |
Or | int | int | Not supported | |
Pad | float | float | float | |
Pow | (float float) or (float, int) | (float float) or (float, int) | float | |
PRelu | float | float | Not supported | |
RandomNormal | float | float | Not supported | |
RandomNormalLike | float | float | Not supported | |
RandomUniform | float | float | Not supported | |
RandomUniformLike | float | float | Not supported | |
Range | float | float | Not supported | |
Reciprocal | float | float | float | |
ReduceL1 | float, int | float, int | float | |
ReduceL2 | float | float | float | |
ReduceLogSum | float | float | float | |
ReduceLogSumExp | float | float | float | |
ReduceMax | float, int | float, int | float | |
ReduceMean | float | float | float | |
ReduceMin | float, int | float, int | float | |
ReduceProd | float, int | float, int | float | |
ReduceSum | float, int | float, int | float | |
ReduceSumSquare | float, int | float, int | float | |
Relu | float | float | float | |
Reshape | float, int | float, int | float | |
Resize | float | float (2D and 3D only) | float (2D only) | The cubic_coeff_a , exclude_outside , extrapolation_value and roi parameters aren't supported. |
RoiAlign | float | float | Not supported | The coordinate_transformation_mode and mode parameters aren't supported. |
Round | float | float | float | |
Scatter (deprecated) | float, int | float, int | Not supported | The operator maps to the Sentis layer ScatterElements . |
ScatterElements | float, int | float, int (no ScatterReductionMode) | Not supported | |
ScatterND | float | float | Not supported | |
Selu | float | float | float | |
Shape | - | - | - | |
Shrink | float | float | Not supported | |
Sigmoid | float | float | float | |
Sign | float, int | float, int | Not supported | |
Sin | float | float | float | |
Sinh | float | float | float | |
Size | - | - | - | |
Slice | float, int | float, int | float | |
Softmax | float | float | float | |
Softplus | float | float | float | |
Softsign | float | float | float | |
SpaceToDepth | float | float | float | |
Split | float, int | float, int | float | |
Sqrt | float | float | float | |
Squeeze | float, int | float, int | float | |
Sub | float, int | float, int | float | |
Sum | float, int | float, int | Not supported | |
Tan | float | float | float | |
Tanh | float | float | float | |
ThresholdedRelu | float | float | float | |
Tile | float, int | float, int | Not supported | |
TopK | float | Not supported | Not supported | |
Transpose | float, int | float, int | float | |
Trilu | float, int | float, int | Not supported | |
Unsqueeze | float, int | float, int | float | |
Upsample (deprecated) | float | float (2D and 3D only) | float (2D only) | The operator maps to the Sentis layer Resize . |
Where | (int, float, float) - outputs float, (int, int, int) - outputs int | (int, float, float) - outputs float, (int, int, int) - outputs int | Not supported | |
Xor | int | int | Not supported |
Sentis-only layers
Sentis might create the following layers when it optimizes the model.
Name | Supported data types with BackendType.CPU |
Supported data types with BackendType.GPUCompute |
Supported data types with BackendType.GPUPixel |
---|---|---|---|
Dense | float | float | Not supported |
MatMul2D | float | float | float |
Relu6 | float | float | float |
Square | float | float | float |
Swish | float | float | float |
Unsupported operators
The following ONNX operators aren't supported in the current version of Sentis.
- BitShift
- ConcatFromSequence
- ConvInteger
- DequantizeLinear
- Det
- DynamicQuantizeLinear
- EyeLike
- If
- GRU
- Loop
- LpPool
- MatMulInteger
- MaxUnpool
- MeanVarianceNormalization
- NegativeLogLikelihoodLoss
- Optional
- OptionalGetElement
- OptionalHasElement
- QLinearConv
- QLinearMatMul
- QuantizeLinear
- ReverseSequence
- RNN
- Scan
- SequenceAt
- SequenceConstruct
- SequenceEmpty
- SequenceErase
- SequenceInsert
- SequenceLength
- SoftmaxCrossEntropyLoss
- SplitToSequence
- StringNormalizer
- TfIdfVectorizer
- Unique