- 8-bit signed quantized and 8-bit unsigned quantized datatypes are supported.
- Tensors with up to 4 dimensions are supported.
- A "Batch" dimension >1 is not supported.
- NHWC tensors are supported.
- Per-channel quantization is supported only for the weights and bias tensors of a limited set of operations.
- Most operations are not supported when the input or output tensor depths are too large. For more information, see
IsTensorDepthSupported
inSupportQueries.cpp
in the Support Library.
- Element by element addition is supported.
- If Arm NN is used, the addition of a variable with a scalar constant is supported when the quantized values in the output are the same as the input. The Arm NN backend replaces this addition with a reinterpret quantization operation.
- Pooling size 3 x 3, with stride 1, 1 and SAME padding is supported.
- "Mean" average pooling is supported where the pooling size is 7 or 8 and the input width and height is equal to the pool size.
- Output quantization scale smaller than the input quantization scale divided by 128 is not supported.
- If concatenating along the channel dimension, the channel dimension of every input tensor must be a multiple of 16.
- No specific restrictions.
- HWIO format weights are supported.
- The supported kernel heights and widths (the kernel does not have to be square) are: { 1, 2, 3, 5, 7, 9 }.
- The supported strides (the height and width stride have to match) are: { 1, 2 }.
- For kernels with height or width >7, only a stride of 1 is supported.
- SAME and VALID padding are supported.
- I*W/O must be between 0 and 65536, where:
- I is the input quantization scale.
- W is the weight quantization scale.
- O is the output quantization scale.
- A block size of 2 is supported.
- Depth must be a multiple of the square of the block size.
- HWIM format weights are supported.
- The supported kernel heights and widths (the kernel does not have to be square) are: { 1, 2, 3, 5, 7, 9 }.
- The supported strides (the height and width stride have to match) are: { 1, 2 }.
- For kernels with height or width >7, only a stride of 1 is supported.
- SAME and VALID padding are supported.
- A channel multiplier of 1 is supported. A channel multiplier >1 is not supported.
- I*W/O must be between 0 and 65536, where:
- I is the input quantization scale.
- W is the weight quantization scale.
- O is the output quantization scale.
- HWIO format weights are supported, H and W must be 1.
- I*W/O must be between 0 and 65536, where:
- I is the input quantization scale.
- W is the weight quantization scale.
- O is the output quantization scale.
- Alpha must be less than 1 and greater than 0.
- Supported configurations:
- 1 x 1 pooling size, 2, 2 stride (equivalent to downsample 2 x 2).
- 2 x 2 pooling size, 2, 2 stride, VALID padding, input sizes must be even.
- 2 x 2 pooling size, 2, 2 stride, SAME padding, input sizes must be odd.
- 3 x 3 pooling size, 2, 2 stride, VALID padding, input sizes must even, maximum tensor width is 417.
- 3 x 3 pooling size, 2, 2 stride, SAME padding, input sizes must be odd, maximum tensor width is 417.
- 1, 1 stride with pooling sizes up to 9x9 for VALID padding
- 1, 1 stride with pooling sizes up to 17x17 for SAME padding.
- Input size must not be smaller than the pooling size.
- Supports mean reduction of H x W dimensions to 1 x 1.
- Only supports:
- N x 7 x 7 x C input with N x 1 x 1 x C output.
- N x 8 x 8 x C input with N x 1 x 1 x C output.
- If Arm NN is used, the multiplication of a tensor with a constant tensor is supported when the constant shape is 1 x 1 x 1 x C. The Arm NN backend replaces this multiplication with a depthwise convolution.
- If Arm NN is used, the multiplication of a variable with a scalar constant is supported when the quantized values in the output are the same as the input. The Arm NN backend replaces this multiplication with a reinterpret quantization operation.
- Only zero padding in the H and W dimension is supported.
- Padding of up to 7 each side of the tensor in those dimensions is supported.
- Padding amounts can differ per side, e.g. pad of 1 before the tensor in the H dimension and a pad of 3 after the tensor in the H dimension.
- Quantization for input and output tensors must be identical.
- No specific restrictions.
- Lower bound must be less than the upper bound.
- Output quantization scale smaller than the input quantization scale divided by 128 is not supported.
- Requantize with different input/output type is supported.
- No specific restrictions.
- The resized height or width must be 2n or 2n-1 where n is the original height or width.
- If resized height and width are not both odd or both even the result might be less accurate.
- Some Resize Billinear configurations (align_corners=True, half_pixel_centres=True when heights and widths are not both even or both odd) produce inaccurate results.
- The output for sigmoid always has a quantization zero point equal to the minimum value of the quantized data type and a quantization scale of 1 / 256.
- If splitting along the channel dimension, the channel dimension of every output tensor must be a multiple of 16.
- The output for tanh always has a quantization zero point equal to the middle value of the quantized data type and a quantization scale of 1 / 128.
- HWIO format weights are supported.
- The supported kernel heights and widths (the kernel does not have to be square) are: { 1, 2, 3, 5, 7, 9 }.
- Only a stride of 2 is supported.
- SAME and VALID padding are supported.
- I*W/O must be between 0 and 65536, where:
- I is the input quantization scale.
- W is the weight quantization scale.
- O is the output quantization scale.
For more information, see driver/support_library/src/SupportQueries.cpp
.
Please contact your Arm FAE for any further questions.