TensorFlow operators that the Arm NN SDK supports

This reference guide provides a list of TensorFlow operators the Arm NN SDK currently supports.

The Arm NN SDK TensorFlow parser currently only supports fp32 operators.

Fully supported

avg_pool

See the TensorFlow avg_pool documentation for more information.

bias_add

See the TensorFlow bias_add documentation for more information.

conv2d

See the TensorFlow conv2d documentation for more information.

identity

See the TensorFlow identity documentation for more information.

local_response_normalization

See the TensorFlow local_response_normalization documentation for more information.

max_pool

See the TensorFlow max_pool documentation for more information.

relu

See the TensorFlow relu documentation for more information.

relu6

See the TensorFlow relu6 documentation for more information.

shape

See the TensorFlow shape documentation for more information.

sigmoid

See the TensorFlow sigmoid documentation for more information.

softplus

See the TensorFlow softplus documentation for more information.

squeeze

See the TensorFlow squeeze documentation for more information.

tanh

See the TensorFlow tanh documentation for more information.

Partially supported

add

The parser does not support all forms of broadcast composition, only broadcasting of scalars and 1D tensors. See the TensorFlow add operator documentation for more information.

concat

Arm NN supports concatenation along the channel dimension for data formats NHWC and NCHW.

constant

The parser does not support the optional shape argument. It always infers the shape of the output tensor from value. See the TensorFlow constant documentation for further information.

depthwise_conv2d_native

The parser only supports a dilation rate of (1,1,1,1). See the TensorFlow depthwise_conv2d_native documentation for more information.

fused_batch_norm

The parser does not support training outputs. See the TensorFlow fused_batch_norm documentation for more information.

matmul

The parser only supports constant weights in a fully connected layer. See the TensorFlow matmul documentation for more information.

multiply

The parser does not support all forms of broadcast composition, only broadcasting of scalars and 1D tensors. See the TensorFlow multiply documentation for more information.

placeholder

The parser only supports the NHWC data format in the input layer. See the TensorFlow placeholder documentation for more information.

realdiv

The parser does not support all forms of broadcast composition, only broadcasting of scalars and 1D tensors. See the TensorFlow realdiv documentation for more information.

reshape

The parser does not support reshaping to or from 4D. See the TensorFlow reshape documentation for more information.

resize_images

The parser only supports ResizeMethod.BILINEAR with align_corners=False. See the TensorFlow resize_images documentation for more information.

softmax

The parser only supports 2D inputs and does not support selecting the softmax dimension. See the TensorFlow softmax documentation for more information.

maximum

where maximum is used in one of the following ways

  • max(mul(a, x), x)
  • max(mul(x, a), x)
  • max(x, mul(a, x))
  • max(x, mul(x, a)

This is interpreted as a ActivationLayer with a LeakyRelu activation function. Any other usage of max will currently cause an unsupported error. See the TensorFlow maximum documentation for more information.

Tested networks

Arm tests these operators with the following TensorFlow fp32 neural networks:

  • Cifar10.

  • Lenet

  • Simple MNIST. For more information check out the tutorial on the Arm Developer portal.

  • mobilenet_v1_1.0_224. The Arm NN SDK only supports the non-quantized version of the network. See the MobileNet_v1 documentation for more information on quantized networks.

  • inception_v3. The Arm NN SDK only supports the official inception_v3 transformed model. See the TensorFlow documentation on preparing models for mobile deployment for more information on how to transform the inception_v3 network.

More machine learning operators will be supported in future releases.