/// Copyright (c) 2021 ARM Limited and Contributors. All rights reserved.
///
/// SPDX-License-Identifier: MIT
///
namespace armnn
{
/**
@page operator_list Arm NN Operators
@tableofcontents
@section S5_1_operator_list Arm NN Operators
Arm NN supports operators that are listed in below table.
Arm NN supports a wide list of data-types.
The main data-types that the Machine Learning functions support are the following:
  
  | Operator | Description | Equivalent Android NNAPI Operator | Backends | Data Layouts | Data Types | 
  | AbsLayer | Layer to perform absolute operation. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | ActivationLayer | Layer to simulate an activation layer with the specified activation function. | 
       ANEURALNETWORKS_ABS
       ANEURALNETWORKS_ELU
       ANEURALNETWORKS_HARD_SWISH
       ANEURALNETWORKS_LOGISTIC
       ANEURALNETWORKS_PRELU
       ANEURALNETWORKS_RELU
       ANEURALNETWORKS_RELU1
       ANEURALNETWORKS_RELU6
       ANEURALNETWORKS_SQRT
       ANEURALNETWORKS_TANH
       | CpuRef |  | 
         |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
      |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
      |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | FLOAT16 |  | FLOAT32 |  | 
  | AdditionLayer | Layer to add 2 tensors. |  | CpuRef |  | 
         |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | 
  | ArgMinMaxLayer | Layer to calculate the index of the minimum or maximum values in a tensor
  based on an axis. | 
       ANEURALNETWORKS_ARGMAX
       ANEURALNETWORKS_ARGMIN
       | CpuRef |  | 
         |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | SIGNED64 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | 
  | BatchMatMulLayer | Layer to perform batch matrix multiplication. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | BatchNormalizationLayer | Layer to perform batch normalization. |  | CpuRef |  | 
         |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | BatchToSpaceNdLayer | Layer to perform a batch to space transformation. | 
       ANEURALNETWORKS_BATCH_TO_SPACE_ND
       | CpuRef |  | 
         |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | CastLayer | Layer to cast a tensor to a type. |  | CpuRef |  | 
         |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QSYMMS8 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMS8 |  | QASYMMU8 |  | FLOAT16 |  | SIGNED32 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMS8 |  | QASYMMU8 |  | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | 
  | ChannelShuffleLayer | Layer to reorganize the channels of a tensor. | 
       ANEURALNETWORKS_CHANNEL_SHUFFLE
       | CpuRef |  | 
         |  | 
|---|
 | FLOAT16 |  | FLOAT32 |  | QSYMMS8 |  | QASYMMS8 |  | QASYMMU8 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMS8 |  | QASYMMU8 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMS8 |  | QASYMMU8 |  | FLOAT16 |  | FLOAT32 |  | 
  | ComparisonLayer | Layer to compare 2 tensors. | 
       ANEURALNETWORKS_EQUAL
       ANEURALNETWORKS_GREATER
       ANEURALNETWORKS_GREATER_EQUAL
       ANEURALNETWORKS_LESS
       ANEURALNETWORKS_LESS_EQUAL
       ANEURALNETWORKS_NOT_EQUAL
       | CpuRef |  | 
         |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | BOOLEAN |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
   | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | ConcatLayer | Layer to concatenate tensors along a given axis. | 
       ANEURALNETWORKS_CONCATENATION
       | CpuRef |  | 
         |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | ConstantLayer | Layer to provide a constant tensor. |  | CpuRef |  | 
         |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | ConvertFp16ToFp32Layer | Layer to convert Float16 tensor to Float32 tensor. |  | CpuRef |  |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | ConvertFp32ToFp16Layer | Layer to convert Float32 tensor to Float16 tensor. |  | CpuRef |  |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | Convolution2dLayer | Layer to compute a convolution operation. | 
       ANEURALNETWORKS_CONV_2D
       ANEURALNETWORKS_GROUPED_CONV_2D
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | QASYMMU8 |  | QASYMMS8 |  | QUANTIZEDSYMM8PERAXIS |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | QASYMMU8 |  | QASYMMS8 |  | QUANTIZEDSYMM8PERAXIS |  | 
  | Convolution3dLayer | Layer to compute a 3D convolution operation. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | DebugLayer | Layer to print out inter layer tensor information. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | DepthToSpaceLayer | Layer to perform Depth to Space transformation. | 
       ANEURALNETWORKS_DEPTH_TO_SPACE
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | DepthwiseConvolution2dLayer | Layer to compute a deconvolution or transpose convolution. | 
       ANEURALNETWORKS_DEPTHWISE_CONV_2D
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | FLOAT16 |  | FLOAT32 |  | SIGNED32 |  | QASYMMU8 |  | QASYMMS8 |  | QUANTIZEDSYMM8PERAXIS |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | FLOAT16 |  | FLOAT32 |  | SIGNED32 |  | QASYMMU8 |  | QASYMMS8 |  | QUANTIZEDSYMM8PERAXIS |  | 
  | DequantizeLayer | Layer to dequantize the values in a tensor. | 
       ANEURALNETWORKS_DEQUANTIZE
       | CpuRef |  | 
       |  | 
|---|
 | QASYMMS8 |  | QASYMMU8 |  | QSYMMS8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | FLOAT16 |  | FLOAT32 |  | QASYMMU8 |  | QASYMMS8 |  | QUANTIZEDSYMM8PERAXIS |  | QSYMMS8 |  | QSYMMS16 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | FLOAT16 |  | FLOAT32 |  | QASYMMU8 |  | QASYMMS8 |  | QUANTIZEDSYMM8PERAXIS |  | QSYMMS8 |  | QSYMMS16 |  | 
  | DetectionPostProcessLayer | Layer to generate the detection output based on center size encoded boxes, class prediction and anchors by doing non maximum suppression (NMS). | 
       ANEURALNETWORKS_DETECTION_POSTPROCESSING
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT32 |  | 
  | DivisionLayer | Layer to divide 2 tensors. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | ElementwiseBaseLayer | Layer to perform Add - Div - Max - Min - Mul operations. | 
       ANEURALNETWORKS_ADD
       ANEURALNETWORKS_DIV
       ANEURALNETWORKS_MAXIMUM
       ANEURALNETWORKS_MINIMUM
       ANEURALNETWORKS_MUL
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | 
  | ElementwiseUnaryLayer | Layer to perform Rsqrt - Exp - Neg - Log - Abs - Sin - Sqrt operations. | 
       ANEURALNETWORKS_ABS
       ANEURALNETWORKS_EXP
       ANEURALNETWORKS_LOG
       ANEURALNETWORKS_NEG
       ANEURALNETWORKS_RSQRT
       ANEURALNETWORKS_SIN
       ANEURALNETWORKS_SQRT
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | FakeQuantizationLayer | Layer to quantize float values and dequantize afterwards. The current implementation does not dequantize the values. |  | CpuRef |  |  | 
  | FillLayer | Layer to set the values of a tensor with a given value. |  | CpuRef |  |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | FloorLayer | Layer to round the value to the lowest whole number. |  | CpuRef |  |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | FullyConnectedLayer | Layer to perform a fully connected / dense operation. | 
       ANEURALNETWORKS_FULLY_CONNECTED
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | QASYMMU8 |  | QASYMMS8 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | QASYMMU8 |  | QASYMMS8 |  | 
  | GatherLayer | Layer to perform the gather operation along the chosen axis. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | GatherNdLayer | Layer to perform the gatherNd operation. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | GpuAcc |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | InputLayer | Special layer used to provide input data to the computational network. |  | All |  |  | 
  | InstanceNormalizationLayer | Layer to perform an instance normalization on a given axis. | 
       ANEURALNETWORKS_INSTANCE_NORMALIZATION
       | CpuRef |  |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | L2NormalizationLayer | Layer to perform an L2 normalization on a given axis. | 
       ANEURALNETWORKS_L2_NORMALIZATION
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | LogSoftmaxLayer | Layer to perform the log softmax activations given logits. |  | CpuRef |  |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | LogicalBinaryLayer | Layer to perform Logical AND - Logical NOT - Logical OR operations. | 
       ANEURALNETWORKS_LOGICAL_AND
       ANEURALNETWORKS_LOGICAL_NOT
       ANEURALNETWORKS_LOGICAL_OR
       | CpuRef |  |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | LstmLayer | Layer to perform a single time step in a Long Short-Term Memory (LSTM) operation. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | MapLayer | Layer to perform map operation on tensor. |  | CpuRef |  |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | MaximumLayer | Layer to perform an elementwise maximum of two tensors. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | SIGNED32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | FLOAT16 |  | FLOAT32 |  | SIGNED32 |  | 
  | MeanLayer | Layer to perform reduce mean operation. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | MemCopyLayer | Layer to perform memory copy operation. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | BOOLEAN |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | MemImportLayer | Layer to perform memory import operation. |  | CpuRef |  |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | MergeLayer | Layer to concatenate tensors along a given axis. | 
       ANEURALNETWORKS_CONCATENATION
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | MinimumLayer | Layer to perform an elementwise minimum of two tensors. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | FLOAT16 |  | FLOAT32 |  | SIGNED32 |  | 
  | MultiplicationLayer | Layer to perform an elementwise multiplication of two tensors. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | SIGNED32 |  | 
  | NormalizationLayer | Layer to compute normalization operation. | 
       ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | OutputLayer | A special layer providing access to a user supplied buffer into which the output of a network can be written. |  | All |  |  | 
  | PadLayer | Layer to pad a tensor. | 
       ANEURALNETWORKS_PAD
       ANEURALNETWORKS_PAD_V2
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | PermuteLayer | Layer to transpose an ND tensor. | 
       ANEURALNETWORKS_TRANSPOSE
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | Pooling2dLayer | Layer to perform 2D pooling with the specified pooling operation. | 
       ANEURALNETWORKS_AVERAGE_POOL_2D
       ANEURALNETWORKS_L2_POOL_2D
       ANEURALNETWORKS_MAX_POOL_2D
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | Pooling3dLayer | Layer to perform 3D pooling with the specified pooling operation. | 
       ANEURALNETWORKS_AVERAGE_POOL_3D
       ANEURALNETWORKS_L2_POOL_3D
       ANEURALNETWORKS_MAX_POOL_3D
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  | 
  | PreCompiledLayer | Opaque layer provided by a backend which provides an executable representation of a subgraph from the original network. |  | N/A | N/A | N/A | 
  | PreluLayer | Layer to compute the activation layer with the PRELU activation function. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | QLstmLayer | Layer to perform quantized LSTM (Long Short-Term Memory) operation. | 
       ANEURALNETWORKS_QUANTIZED_LSTM
       ANEURALNETWORKS_QUANTIZED_16BIT_LSTM
       | CpuRef |  |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMS8 |  | QASYMMU8 |  | SIGNED32 |  | QSYMMS16 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMS8 |  | QASYMMU8 |  | SIGNED32 |  | QSYMMS16 |  | 
  | QuantizeLayer | Layer to perform quantization operation. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QASYMM16 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QASYMM16 |  | FLOAT16 |  | FLOAT32 |  | 
  | QuantizedLstmLayer | Layer to perform quantized LSTM (Long Short-Term Memory) operation. | 
       ANEURALNETWORKS_QUANTIZED_LSTM
       ANEURALNETWORKS_QUANTIZED_16BIT_LSTM
       | CpuRef |  |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | SIGNED32 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | SIGNED32 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | RankLayer | Layer to perform a rank operation. |  | CpuRef |  |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | ReduceLayer | Layer to perform reduce with the following operations - ARG_IDX_MAX: Index of the max value - ARG_IDX_MIN: Index of the min value - MEAN_SUM:    Mean of sum - PROD:        Product - SUM_SQUARE:  Sum of squares - SUM:         Sum - MIN:         Min - MAX:         Max | 
       ANEURALNETWORKS_REDUCE_MAX
       ANEURALNETWORKS_REDUCE_MIN
       ANEURALNETWORKS_REDUCE_SUM
       ANEURALNETWORKS_REDUCE_PROD
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | SIGNED32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | SIGNED32 |  | 
  | ReshapeLayer | Layer to reshape a tensor. | 
       ANEURALNETWORKS_RESHAPE
       ANEURALNETWORKS_SQUEEZE
       ANEURALNETWORKS_EXPAND_DIMS
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | BOOLEAN |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | ResizeLayer | Layer to perform resize of a tensor using one of the interpolation methods: - Bilinear -  Nearest Neighbor. | 
       ANEURALNETWORKS_RESIZE_BILINEAR
       ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | RsqrtLayer | Layer to perform Rsqrt operation. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | ShapeLayer | Layer to return the shape of the input tensor. |  | CpuRef |  |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | SliceLayer | Layer to perform tensor slicing. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | SoftmaxLayer | Layer to perform softmax, log-softmax operation over the specified axis. | 
       ANEURALNETWORKS_LOG_SOFTMAX
       ANEURALNETWORKS_SOFTMAX
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | FLOAT16 |  | FLOAT32 |  | 
  | SpaceToBatchNdLayer | Layer to divide spatial dimensions of the tensor into a grid of blocks and interleaves these blocks with the batch dimension. | 
       ANEURALNETWORKS_SPACE_TO_BATCH_ND
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | SpaceToDepthLayer | Layer to rearrange blocks of spatial data into depth. | 
       ANEURALNETWORKS_SPACE_TO_DEPTH
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | SplitterLayer | Layer to split a tensor along a given axis. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | StackLayer | Layer to stack tensors along an axis. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | StandInLayer | A layer to represent "unknown" or "unsupported" operations in the input graph. It has a configurable number of input and output slots and an optional name. |  | N/A | N/A | N/A | 
  | StridedSliceLayer | Layer to extract a strided slice of a tensor. | 
       ANEURALNETWORKS_STRIDED_SLICE
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | SubtractionLayer | Layer to perform an elementwise subtract of 2 tensors. |  | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | SIGNED32 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | QASYMMU8 |  | QASYMMS8 |  | QSYMMS16 |  | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | 
  | TransposeConvolution2dLayer | Layer to perform 2D transpose convolution (deconvolution) operation. | 
       ANEURALNETWORKS_TRANSPOSE_CONV_2D
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS8 |  | QSYMMS16 |  | 
  | CpuAcc |  | 
    |  | 
|---|
 | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | QASYMMU8 |  | QASYMMS8 |  | QUANTIZEDSYMM8PERAXIS |  | 
  | GpuAcc |  | 
    |  | 
|---|
 | SIGNED32 |  | FLOAT16 |  | FLOAT32 |  | QASYMMU8 |  | QASYMMS8 |  | QUANTIZEDSYMM8PERAXIS |  | 
  | TransposeLayer | Layer to transpose a tensor. | 
       ANEURALNETWORKS_TRANSPOSE
       | CpuRef |  | 
       |  | 
|---|
 | BFLOAT16 |  | FLOAT16 |  | FLOAT32 |  | QASYMMS8 |  | QASYMMU8 |  | QSYMMS16 |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
  | UnidirectionalSquenceLstmLayer | Layer to perform unidirectional sequence LSTM operation. | 
       ANEURALNETWORKS_UNIDIRECTIONAL_SEQUENCE_LSTM
       | CpuRef |  | 
         | Weight Types | 
|---|
 | FLOAT32 |  | QASYMMS8 |  | CpuAcc |  |  | GpuAcc |  |  | 
  | UnmapLayer | Layer to perform unmap operation on tensor. |  | CpuRef |  |  | 
  | CpuAcc |  |  | 
  | GpuAcc |  |  | 
*/
} // namespace