Skip to main content

Supported Ops

OperationKnown limitations
Add
AveragePool2dNo fused activation function.
ConcatenationNo fused activation function. If any input is a compile-time constant tensor, there must be only 2 inputs, and this constant tensor must be all zeros (effectively, a zero-padding op).
Conv2dMust use the same dilation in x and y dimensions.
DepthwiseConv2dMust use the same dilation in x and y dimensions.
ExpandDims
FullyConnectedOnly the default format is supported for fully-connected weights. Output tensor is one-dimensional.
L2Normalization
Logistic
LSTMUnidirectional LSTM only.
Maximum
MaxPool2dNo fused activation function.
MeanNo reduction in batch dimension. If a z-reduction, the z-dimension must be multiple of 4.
Minimum
Mul
PackNo packing in batch dimension.
PadNo padding in batch dimension.
PReLUAlpha must be 1-dimensional (only the innermost dimension can be >1 size). If using Keras PReLU with 4D input (batch, height, width, channels), then shared_axes must be [1,2] so each filter has only one set of parameters.
Quantize
ReduceMaxCannot operate on the batch dimension.
ReduceMinCannot operate on the batch dimension.
ReLU
ReLU6
ReLUN1To1
ReshapeCertain reshapes might not be mapped for large tensor sizes.
ResizeBilinearInput/output is a 3-dimensional tensor. Depending on input/output size, this operation might not be mapped to the Edge TPU to avoid loss in precision.
ResizeNearestNeighborInput/output is a 3-dimensional tensor. Depending on input/output size, this operation might not be mapped to the Edge TPU to avoid loss in precision.
Rsqrt
Slice
SoftmaxSupports only 1-D input tensor with a max of 16,000 elements.
SpaceToDepth
SplitNo splitting in batch dimension.
Squeeze
StridedSliceSupported only when all strides are equal to 1 (that is, effectively a Stride op), and with ellipsis-axis-mask == 0, and new-axis-max == 0.
Sub
SumCannot operate on the batch dimension.
Squared-difference
Tanh
Transpose
TransposeConv