ANeuralNetworksOperandType

#include <NeuralNetworks.h>

ANeuralNetworksOperandType describes the type of an operand.

Summary

This structure is used to describe both scalars and tensors.

A tensor operand type with all dimensions specified is "fully specified". Whenever possible (i.e., whenever the dimensions are known at model construction time), a tensor operand type should be (but is not required to be) fully specified, in order to enable the best possible performance.

If a tensor operand's type is not fully specified, the dimensions of the operand are deduced from the operand types and values of the operation for which that operand is an output.

In the following situations, a tensor operand type must be fully specified:

A tensor operand type of specified rank but some number of unspecified dimensions is represented by setting dimensionCount to the rank and each unspecified dimension to 0.

Available since API level 27.

Starting at API level 29, a tensor operand type of unspecified rank is represented by setting dimensionCount to 0 and dimensions to NULL (just as if it were a scalar operand type).

Public attributes

dimensionCount
uint32_t
The number of dimensions (rank).
dimensions
const uint32_t *
The dimensions of the tensor.
scale
float
These two fields are only used for quantized tensors.
type
int32_t
The data type, e.g ANEURALNETWORKS_FLOAT32.
zeroPoint
int32_t

Public attributes

dimensionCount

uint32_t ANeuralNetworksOperandType::dimensionCount

The number of dimensions (rank).

Must be 0 for scalars.

dimensions

const uint32_t * ANeuralNetworksOperandType::dimensions

The dimensions of the tensor.

Must be nullptr for scalars.

scale

float ANeuralNetworksOperandType::scale

These two fields are only used for quantized tensors.

They must be zero for all other types. The dequantized value of each entry is (value - zeroPoint) * scale.

type

int32_t ANeuralNetworksOperandType::type

The data type, e.g ANEURALNETWORKS_FLOAT32.

zeroPoint

int32_t ANeuralNetworksOperandType::zeroPoint