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.cpp scale_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 | ✔ | ✔ | ✔ |
美国高通 Snapdragon Neural Processing Engine SDK (SNPE) 系列 (2):支持的网络层
最新推荐文章于 2024-09-24 16:51:56 发布