[tmva][sofie] Status of the support of ONNX operators
This issue should track the status of the support of ONNX operators in TMVA/SOFIE.
Supported :
- [x] Add
- [x] AveragePool
- [x] BatchNormalization
- [x] Conv
- [x] Gemm
- [x] GlobalAveragePool
- [x] GRU
- [x] LSTM
- [x] MaxPool
- [x] Pool
- [x] Relu
- [x] Reshape
- [x] RNN
- [x] Selu
- [x] Sigmoid
- [x] Slice
- [x] Transpose
Work in progress :
- [x] Softmax, #10315
- [x] Identity, #10315
- [ ] Concat, #10315 and #9311
- [ ] InstanceNormalization, #8885
Missing :
- [x] Abs
- [ ] Acos
- [ ] Acosh
- [x] And
- [ ] ArgMax
- [ ] ArgMin
- [ ] Asin
- [ ] Asinh
- [ ] Atan
- [ ] Atanh
- [ ] BitShift
- [x] Cast
- [ ] Ceil
- [ ] Clip
- [ ] Compress
- [ ] ConcatFromSequence
- [x] Constant
- [x] ConstantOfShape
- [ ] ConvInteger
- [x] ConvTranspose
- [x] Cos
- [ ] Cosh
- [ ] CumSum
- [ ] DepthToSpace
- [ ] DequantizeLinear
- [ ] Det
- [x] Div
- [x] Dropout
- [x] Einsum
- [x] Elu
- [x] Equal
- [x] Erf
- [x] Exp
- [x] Expand
- [x] EyeLike
- [x] Flatten
- [x] Floor
- [x] Gather
- [x] GatherElements
- [x] GatherND
- [ ] GlobalLpPool
- [x] GlobalMaxPool
- [x] Greater
- [ ] GridSample
- [ ] HardSigmoid
- [ ] Hardmax
- [x] Identity
- [x] If
- [ ] IsInf
- [ ] IsNaN
- [ ] LRN
- [x] LeakyRelu
- [x] Less
- [x] Log
- [ ] Loop
- [ ] LpNormalization
- [ ] LpPool
- [x] MatMul
- [ ] MatMulInteger
- [x] Max
- [ ] MaxRoiPool
- [ ] MaxUnpool
- [x] Mean
- [x] Min
- [x] Mod
- [x] Mul
- [ ] Multinomial
- [x] Neg
- [ ] NonMaxSuppression
- [ ] NonZero
- [ ] OneHot
- [ ] Optional
- [ ] OptionalGetElement
- [ ] OptionalHasElement
- [ ] Or
- [ ] PRelu
- [x] Pad
- [x] Pow
- [ ] QLinearConv
- [ ] QLinearMatMul
- [ ] QuantizeLinear
- [x] RandomNormal
- [ ] RandomNormalLike
- [ ] RandomUniform
- [ ] RandomUniformLike
- [ ] Reciprocal
- [ ] ReduceL1
- [ ] ReduceL2
- [ ] ReduceLogSum
- [x] ReduceLogSumExp
- [x] ReduceMax
- [x] ReduceMean
- [x] ReduceMin
- [x] ReduceSum
- [ ] ReduceSumSquare
- [ ] Resize
- [ ] ReverseSequence
- [ ] RoiAlign
- [x] Round
- [ ] Scan
- [x] ScatterElements
- [ ] ScatterND
- [ ] SequenceAt
- [ ] SequenceConstruct
- [ ] SequenceEmpty
- [ ] SequenceErase
- [ ] SequenceInsert
- [ ] SequenceLength
- [x] Shape
- [ ] Shrink
- [x] Sign
- [x] Sin
- [ ] Sinh
- [ ] Size
- [x] Softplus
- [ ] Softsign
- [ ] SpaceToDepth
- [x] Split
- [ ] SplitToSequence
- [x] Sqrt
- [ ] StringNormalizer
- [ ] Sub
- [x] Sum
- [x] Tan
- [x] Tanh
- [ ] TfldfVectorizer
- [ ] ThresholdedRelu
- [x] Tile
- [x] TopK
- [ ] Trilu
- [ ] Unique
- [x] Unsqueeze
- [x] Where
- [ ] Xor
Do we have the plan to support "MatMul" ?
MatMul is now supported in both master and 6.30, see
https://github.com/root-project/root/pull/12894
This above list needs to be updated with the new supported operator
Do we have a plan to support "Split" ?
We can plan to support it if needed. It might take a little bit of time, since we need to support in SOFIE sequence of tensors which are the output of Split. For which type of model do you need Split?
MatMul is now supported in both master and 6.30, see
#12894
This above list needs to be updated with the new supported operator
thanks
We can plan to support it if needed. It might take a little bit of time, since we need to support in SOFIE sequence of tensors which are the output of Split. For which type of model do you need Split?
I want to convert my model to the raw code to improve the prediction speed. As I saw from your slide the raw code generated through tmva has better performance than the original onnx runtime.