Layer Type |
Description |
Caffe Equivalent |
TensorFlow Equivalent |
CPU |
GPU |
DSP |
Batch normalization (+ Scaling)
Batch normalization followed by scaling operation. Batch norm operation can be performed by itself or in combination with scaling.
Maps to the combination of batch_norm_layer followed immediately by scale_layer.
batch_norm_layer.cppscale_layer.cpp
batch_normalization
✔
✔
✔
Color space conversion
Converts input image color format (encoding type) into SNPE native color space. Color space conversion parameters are provided as an option to the model converter tool.
There is no such Caffe layer by itself. This functionality is technically part of the Caffe data provider.
data_layer.cpp
n/a
✔
✔
✔
Concatenation
This layer concatenates multiple inputs into a single output.
concat_layer.cpp
concat
✔
✔
✔
Convolution
Computes dot products between the entries of the filter and the input at any position.
conv_layer.cpp
conv2d
✔
✔
✔
Crop
Crops one layer to the dimensions of a reference layer.
crop_layer.cpp
✔
✔
✔
CrossMap Response Normalization
This is an option within LRN layer.
lrn_layer.cpp
✔
✔
✔
Deconvolution
Performs deconvolution operation.
deconv_layer.cpp
conv2d_transpose
✔
✔
✔
Dropout
Layer is used for training only. Converters remove this layer from DLC creation.
dropout_layer.cpp
dropout
n/a
n/a
n/a
Elementwise
Supports SUM, PROD, and MAX mode with coefficients.
eltwise_layer.cpp
add
mul
maximum
✔
✔
✔
Flatten
Flatten an input to a layer
flatten_layer.cpp
n/a
✔
✔
✘
Fully connected
Similar to convolution, but with connections to full input region, i.e., with filter size being exactly the size of the input volume.
inner_product_layer.cpp
dense
✔
✔
✔
Input
This is an input layer to the network.
input_layer.cpp
input
✔
✔
✔
Local Response Normalization (LRN)
Performs a lateral inhibition by normalizing over local input regions.
lrn_layer.cpp
✔
✔
✔
Mean Subtraction
Performs image mean subtraction on the input.
mean subtraction
n/a
✔
✔
✔
Output
There is no explicit output layer as the results from any layer in the network can be specified as an output when loading a network.
n/a
n/a
n/a
n/a
n/a
Pooling
Pooling operation down samples the input volume spatially. Both average and max pooling are supported.
pooling_layer.cpp
average_pooling2d
max_pooling2d
✔
✔
✔
Prelu
activation function: prelu [ i.e., y = max(0, x) + a*min(0,x) ]
prelu_layer.cpp
PReLU
✔
✔
✔
Relu
activation function: relu [ i.e., y = max(0,x) ]
relu_layer.cpp
relu
✔
✔
✔
Reshape
Change dimensions of the input to a layer
reshape_layer.cpp
reshape
✔
✔
✘
Sigmoid
activation function: sigmoid [ i.e., y = 1/(1 + exp(-x) ]
sigmoid_layer.cpp
sigmoid
✔
✔
✔
Tanh
activation function: tanh [ i.e., y = tanh(x) ]
tanh_layer.cpp
tanh
✔
✔
✔
Scale
Input image scaling, maintains aspect ratio. This function is primarily intended for images, but technically any 2D input data can be processed if it makes sense. Scaling parameters are provided as an option to the model converter tool.
There is no such Caffe layer by itself. This functionality is technically part of the Caffe data provider.
data_layer.cpp
n/a
✔
✔
✔
Silence
Silence is handled and removed from the model during conversion, similar to Dropout.
silence_layer.cpp
n/a
n/a
n/a
Slice
Slices an input layer into multiple output layers.
slice_layer.cpp
split
✔
✔
✔
Softmax
Supports 1D and 2D modes.
softmax_layer.cpp
softmax
✔
✔
✔