ArgMax ArgMin 
ARG_MAX ARG_MIN 
ARGMAX ARGMIN 
Support at most 4D I/O
Do not support batch axis

Input: Asym U8 / Asym I8
Output: Int32

Not support 
AvgPooling 
AVERAGE_POOL_2D 
AVERAGE_POOL_2D 
I/O must be 4D
Weight W, H = [1:128]
Stride W = H
Stride W, H = [1:8] if it is NOT global pooling
Support requantization
Support PAD/RELU/RELU1/RELU6 fusion

Input: Asym U8 / Asym I8
Weight: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
BboxTransform 

AXIS_ALIGNED_BBOX_TRANSFORM 
Supports NNAPI v1.2 behavior
Number of rois should be in [1:128]
Number of classes should be in [1:100]

Input Roi: Asym U16 with scale = 0.125, zero point = 0
Input Bounding Box: Asym U8 / Asym I8
Input batch: Int32
Input image info: Asym U16 with scale = 0.125, zero point = 0
Output: Asym U16 with scale = 0.125, zero point = 0

Input Roi: FP16
Input Bounding Box: FP16
Input batch: Int32
Input image info: FP16
Output: FP16

BatchToSpace 
BATCH_TO_SPACE_ND 
BATCH_TO_SPACE_ND 
Support at most 4D I/O
Do not support crop
I/O must be in the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
BoxNmsLimit 

BOX_WITH_NMS_LIMIT 
Supports NNAPI v1.2 behavior 
Input Score: Asym U8 / Asym I8
Input Bounding Box: Asym U16 with scale = 0.125, zero point = 0
Input Batch: Int32
Output Score: Asym U8 / Asym I8
Output Bounding Box: Asym U16 with scale = 0.125, zero point = 0
Output Class ID: Int32
Output Batch Index: Int32

Input Score: FP16
Input Bounding Box: FP16
Input Batch: Int32
Output Score: FP16
Output Bounding Box: FP16
Output Class ID: Int32
Output Batch Index: Int32

Cast 
CAST 
CAST 
Support at most 4D I/O
Input should not be a constant

Input: Asym U8 / Asym I8 / Int32
Output: Asym U8 / Asym I8 / Int32

Not support 
ChannelShuffle 

CHANNEL_SHUFFLE 
Support at most 4D I/O

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Concat 
CONCATENATION 
CONCATENATION 
Support at most 4D I/O
MAX input number is six
Support inputs in different scale and zeropoints
Do not support all inputs as constant

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Conv2D 
CONV_2D 
CONV_2D 
I/O must be 4D
Weight, bias must be constant
Dilation W = H
 Dilation rate = [1:36]
Weight H, W = [1:16] when dilation rate = 1
Weight H, W = [1:8] when dilation rate > 1
 Stride W = H
Stride W, H = 1, 2, 4 when dilation rate = 1
Stride W, H = [1:4] when dilation rate > 1
 Support perchannel quantization
Weight must be Sym I8 or Asym I8 with zero point = 0
Support PAD/RELU/RELU1/RELU6 fusion

Input: Asym U8 / Asym I8
Weight: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
DepthwiseConv2D 
DEPTHWISE_CONV_2D 
DEPTHWISE_CONV_2D 
I/O must be 4D
Weight, bias must be constant
Dilation W = H
 Dilation rate = [1:36]
Weight H, W = [1:16] when dilation rate = 1
Weight H, W = [1:8] when dilation rate > 1
 Stride W = H
Stride W, H = 1, 2, 4 when dilation rate = 1
Stride W, H = [1:4] when dilation rate > 1
 Support perchannel quantization
Weight must be Sym I8 or Asym I8 with zero point = 0
Depth multiplier = 1
Support PAD/RELU/RELU1/RELU6 fusion

Input: Asym U8 / Asym I8
Weight: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
DepthToSpace 
DEPTH_TO_SPACE 
DEPTH_TO_SPACE 
I/O must be 4D
Block size >= 1
I/O must be in the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Dequantize 
DEQUANTIZE 
DEQUANTIZE 
Support at most 4D I/O
Input and Output should have the same shape
Input scale must be greater than 0
Perchannel quantization is not supported

Not support 
Input: Asym U8 / Asym I8
Output: FP16

ElementWiseAdd 
ADD 
ADD 
Support at most 4D I/O
Support broadcast operation
Support requantization
One of input tensors can be constant
Only support inputScale / (2 * maxInputScale) < 1

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Input: FP16
Output: FP16

ElementWiseDiv 
DIV 
DIV 
Support at most 4D I/O
Support broadcast operation

Not support 
Input: FP16
Output: FP16

ElementWiseMul 
MUL 
MUL 
Support at most 4D I/O
Support broadcast operation
Support requantization
One of input tensors can be constant
Only support inputProdScale / outputScale < 1

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Input: FP16
Output: FP16

ElementWiseSub 
SUB 
SUB 
Support at most 4D I/O
Support broadcast operation
Support requantization
One of input tensors can be constant
Only support inputScale / (2 * maxInputScale) < 1

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Equal NotEqual Greater GreaterEqual Less LessEqual 
EQUAL NOT_EQUAL GREATER GREATER_EQUAL LESS LESS_EQUAL 
EQUAL NOT_EQUAL GREATER GREATER_EQUAL LESS LESS_EQUAL 
Support at most 4D I/O
Support broadcast operation

Input: Asym U8 / Asym I8 / Bool 8 / Int32
Output: Bool 8

Not support 
Fill 
FILL 
FILL 
Support larger than 4D I/O
Output data type should be equal to value data type
Input shape tensor should be a constant

Input Shape: Int32
Input Value: Asym U8 / Aysm I8 / Asym U16 / Sym I8 / Sym I16 / Int32
Output: Asym U8 / Aysm I8 / Asym U16 / Sym I8 / Sym I16 / Int32

Input Shape: Int32
Input Value: FP16 / FP32
Output: FP16 / FP32

FullyConnected 
FULLY_CONNECTED 
FULLY_CONNECTED 
Support at most 4D
Bias must be constant when weight is constant
Support PAD/RELU/RELU1/RELU6 fusion

Input: Asym U8 / Asym I8
Weight: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Gather 
GATHER 
GATHER 
Support at most 4D I/O
I/O must be in the same scale and zero point
Only support single batch.
Do not support gathering in batch axis
Axis should be smaller than input rank
Indices should be a constant

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
GroupConv2D 
Composite pattern of CONV_2D 
GROUPED_CONV_2D 
I/O must be 4D
Weight, bias must be constant
Dilation rate = 1
Perchannel quantization is not supported
Weight H, W = [1:16]
Stride W = H
Stride W, H = 1, 2, 4
Support PAD/RELU/RELU1/RELU6 fusion

Input: Asym U8 / Asym I8
Weight: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
HardSwish 
HARD_SWISH 
HARD_SWISH 
Support at most 4D I/O
Input and Output should have the same dimension

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
HeatmapMaxKey 

HEATMAP_MAX_KEYPOINT 
Supports NNAPI v1.2 behavior
(inputScale / ((1 << 20) * outputScale) need to be smaller than 1
Dynamic heatmap sizes and dynamic number of keypoints are not supported

Input Heatmap: Asym U8 / Asym I8
Input Bounding Box: Asym U16
Output Score: Asym U8 / Asym I8
Output Keypoint Location: Asym U16

Input Heatmap: FP16
Input Bounding Box: FP16
Output Score: FP16
Output Keypoint Location: FP16

InstanceNorm 

INSTANCE_NORMALIZATION 
Support at most 4D I/O

Not support 
Input: FP16
Input Gamma: FP16
Input Beta: FP16
Output: FP16

L2Norm 
L2_NORMALIZATION 
L2_NORMALIZATION 
Support at most 4D I/O
Axis must be constant
Only support single axis, and axis can not be batch dimension

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
MaxPooling 
MAX_POOL_2D 
MAX_POOL_2D 
I/O must be 4D
Weight W, H = [1:16]
Stride W = H
Support requantization
Support PAD/RELU/RELU1/RELU6 fusion

Input: Asym U8 / Asym I8
Weight: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Maximum 
MAXIMUM 
MAXIMUM 
Support at most 4D I/O
Support broadcast operation
Support requantization
One of input tensors can be constant
Only support inputScale / (2 * maxInputScale) < 1

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Mean 
MEAN 
MEAN 
Support at most 4D I/O

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Minimum 
MINIIMUM 
MINIIMUM 
Support at most 4D I/O
Support broadcast operation
Support requantization
One of input tensors can be constant
Only support inputScale / (2 * maxInputScale) < 1

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Pack 
PACK 

Reuse CONCATENATION
Input rank must be smaller than 3
Output rank must be smaller than 4
The number of inputs should be in range [1:6]
I/O must be in the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Pad 
PAD PADV2 
PAD PAD_V2 
Support at most 4D I/O
Pad value is by default zero in constant
I/O must be in the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Pow 
POW 
POW 
Support larger than 4D I/O
Only support constant exponent
Only support exponent size = 1, value = 0.5

Not support 
Input: FP16
Input Exponent: FP16
Output: FP16

PRelu 
PRELU 
PRELU 
Support at most 4D I/O
Alpha should be a constant tensor
The size of alpha should be equal to its channel size
Support common slope or perchannel slope in depth
InputScale * AlphaScale < OutputScale

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
QLSTM 
LSTM 
QUANTIZED_16BIT_LSTM 
Supports NNAPI v1.2 behavior 
Input: Asym U8
Output Cell State: Sym I16
Output Value: Asym U8

Not support 
QLSTMV2 
LSTM 
QUANTIZED_LSTM 
Supports NNAPI v1.3 behavior
Optional tensor Input2InputWeight should not be a input tensor
Optional tensor Recurrent2InputWeight should not be a input tensor
Optional tensor InputGateBias should not be a input tensor
Optional tensor ProjectionWeight should not be a input tensor
Optional tensor ProjectionBias should not be a input tensor
Optional tensor InNormWeight should not be a input tensor
Optional tensor ForgetNormWeight should not be a input tensor
Optional tensor CellNormWeight should not be a input tensor
Optional tensor OutNormWeight should not be a input tensor

Data type follow NNAPI v1.3 spec, with allowing I/O as Asym U8 or Asym I8 
Not support 
Quantize 
QUANTIZE 
QUANTIZE 
Support at most 4D I/O
Input and Output should have the same shape
Output scale must be greater than 0
Perchannel quantization is not supported

Not support 
Input: FP16
Output: Asym U8 / Asym I8

ReduceAny 
REDUCE_ANY 
REDUCE_ANY 
Support at most 4D I/O
Do not support reduce in batch, width, and height at the same time

Input: Bool 8
Output: Bool 8

Not support 
ReduceMax ReduceMin 
REDUCE_MAX REDUCE_MIN 
REDUCE_MAX REDUCE_MIN 
Support at most 4D I/O
Do not support reduce in batch, width, and height at the same time
Input and output should have the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
ReLU ReLU1 ReLU6 
RELU RELU_N1_TO_1 RELU6 
RELU RELU1 RELU6 
I/O must be in the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Reshape 
RESHAPE 
RESHAPE 
Support at most 4D I/O

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Resize::BILINEAR 
RESIZE_BILINEAR 
RESIZE_BILINEAR 
I/O must be 4D
(HalfPixelCenters == true) is not support

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Resize::NEAREST 
RESIZE_NEAREST_NEIGHBOR 
RESIZE_NEAREST_NEIGHBOR 
I/O must be 4D
I/O must be in the same scale and zero point
(HalfPixelCenters == true) is not support
(AlignCorners == true) is not support

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
RoiAlign 

ROI_ALIGN 
Input must be 4D and nonconstant
Sampling W, H must be specified as [1:16]

Input: Asym U8 / Asym I8
Input Location: Asym U16
Input Batch index: Int32
Output: Asym U8 / Asym I8

Input: FP16
Input Location: FP16
Input Batch index: Int32
Output: FP16

RSqrt 
RSQRT 
RSQRT 
Support larger than 4D I/O
Input and Output should have the same dimension

Not support 
Input: FP16
Output: FP16

Select 
SELECT 
SELECT 
Support at most 4D I/O
I/O must be the same shape
One of input tensors can be constant

Input: Asym U8 / Asym I8
Input condition: Bool 8
Output: Asym U8 / Asym I8

Not support 
Sigmoid 
LOGISTIC 
LOGISTIC 
Support at most 4D I/O
Output scale = 1/256, Output zeropoint = 0 for Asym U8
Output scale = 1/256, Output zeropoint = 128 for Asym I8

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Slice 
SLICE 
SLICE 
Support at most 4D I/O
I/O must be in the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
SoftMax 
SOFTMAX 
SOFTMAX 
Support 2D/4D output
Cannot support axis is batch
Axis should be smaller than output rank
Beta > 0
inputBetaMultiplier > 1
Support RESHAPE fusion

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Input: FP16
Output: FP16

SpaceToBatch 
SPACE_TO_BATCH_ND 
SPACE_TO_BATCH_ND 
Support at most 4D I/O
Do not support crop
I/O must be in the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
SpaceToDepth 
SPACE_TO_DEPTH 
SPACE_TO_DEPTH 
I/O must be 4D
Block size >= 1
I/O must be in the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Split 
SPLIT 
SPLIT 
Support at most 4D I/O
MAX output number is six
I/O must be in the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Sqrt 
SQRT 
SQRT 
Support larger than 4D I/O
Input and Output should have the same dimension

Not support 
Input: FP16
Output: FP16

Square 
SQUARE 

Support larger than 4D I/O
Input and Output should have the same dimension

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Input: FP16
Output: FP16

StridedSlice 
STRIDED_SLICE 
STRIDED_SLICE 
Circular slice is not supported
I/O must be in the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Tanh 
TANH 
TANH 
Support at most 4D I/O
Output scale = 1/128, Output zeropoint = 128 for Asym U8
Output scale = 1/128, Output zeropoint = 0 for Asym I8

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 
Tile 
TILE 
TILE 
Support at most 4D I/O
I/O must be in the same scale and zero point
Input and output must have the same rank
Invalid multiples: output dimensions should be divided by input dimensions

Input: Asym U8 / Asym I8
Input Multiples: Int32
Output: Asym U8 / Asym I8

Not support 
TopK 
TOPK_V2 
TOPK_V2 
Support at most 4D I/O
Output values and indices should have the same dimensions
Batch size should be same for both input and output
K value should be in (0, the size of last input dimension]

Input: Asym U8 / Asym I8
Output value: Asym U8 / Asym I8
Output indices: Int32

Not support 
Transpose 
TRANSPOSE 
TRANSPOSE 
Support at most 4D I/O
I/O must be in the same scale and zero point

Input: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Input: FP16
Output: FP16

TransposeConv2D 
TRANSPOSE_CONV 
TRANSPOSE_CONV_2D 
I/O must be 4D
Weight, bias must be constant
Stride W, H > 1
Perchannel quantization is not supported
Support PAD/RELU/RELU1/RELU6 fusion

Input: Asym U8 / Asym I8
Weight: Asym U8 / Asym I8
Output: Asym U8 / Asym I8

Not support 