Inception series

December 7, 2021 ยท View on GitHub


Catalogue

1. Overview

GoogLeNet is a new neural network structure designed by Google in 2014, which, together with VGG network, became the twin champions of the ImageNet challenge that year. GoogLeNet introduces the Inception structure for the first time, and stacks the Inception structure in the network so that the number of network layers reaches 22, which is also the mark of the convolutional network exceeding 20 layers for the first time. Since 1x1 convolution is used in the Inception structure to reduce the dimension of channel number, and Global pooling is used to replace the traditional method of processing features in multiple fc layers, the final GoogLeNet network has much less FLOPs and parameters than VGG network, which has become a beautiful scenery of neural network design at that time.

InceptionV3 is an improvement of InceptionV2 by Google. First of all, the author optimized the Inception module in InceptionV3. At the same time, more types of Inception modules were designed and used. Further, the larger square two-dimensional convolution kernel in some Inception modules in InceptionV3 was disassembled into two smaller asymmetric convolution kernels, which can greatly save the amount of parameters.

Xception is another improvement to InceptionV3 that Google proposed after Inception. In Xception, the author used the depthwise separable convolution to replace the traditional convolution operation, which greatly saved the network FLOPs and the number of parameters, but improved the accuracy. In DeeplabV3+, the author further improved the Xception and increased the number of Xception layers, and designed the network of Xception65 and Xception71.

InceptionV4 is a new neural network designed by Google in 2016, when residual structure were all the rage, but the authors believe that high performance can be achieved using only Inception structure. InceptionV4 uses more Inception structure to achieve even greater precision on Imagenet-1k.

The FLOPs, parameters, and inference time on the T4 GPU of this series of models are shown in the figure below.

The figure above reflects the relationship between the accuracy of Xception series and InceptionV4 and other indicators. Among them, Xception_deeplab is consistent with the structure of the paper, and Xception is an improved model developed by PaddleClas, which improves the accuracy by about 0.6% when the inference speed is basically unchanged. Details of the improved model are being updated, so stay tuned.

2. Accuracy, FLOPs and Parameters

ModelsTop1Top5Reference
top1
Reference
top5
FLOPs
(G)
Parameters
(M)
GoogLeNet0.7070.8970.6982.8808.460
Xception410.7930.9450.7900.94516.74022.690
Xception41
_deeplab
0.7960.94418.16026.730
Xception650.8100.95525.95035.480
Xception65
_deeplab
0.8030.94527.37039.520
Xception710.8110.95531.77037.280
InceptionV30.7910.9460.7880.94411.46023.830
InceptionV40.8080.9530.8000.95024.57042.680

3. Inference speed based on V100 GPU

ModelsCrop SizeResize Short SizeFP32
Batch Size=1
(ms)
GoogLeNet2242561.807
Xception412993203.972
Xception41_
deeplab
2993204.408
Xception652993206.174
Xception65_
deeplab
2993206.464
Xception712993206.782
InceptionV429932011.141

4. Inference speed based on T4 GPU

ModelsCrop SizeResize Short SizeFP16
Batch Size=1
(ms)
FP16
Batch Size=4
(ms)
FP16
Batch Size=8
(ms)
FP32
Batch Size=1
(ms)
FP32
Batch Size=4
(ms)
FP32
Batch Size=8
(ms)
GoogLeNet2993201.754513.399314.719091.880384.488826.94035
Xception412993202.911927.8687815.536854.9693917.0136132.67831
Xception41_
deeplab
2993202.859347.207514.014065.3354117.5593833.76232
Xception652993204.3012611.5837123.222137.2615825.8877853.45426
Xception65_
deeplab
2993204.068039.7269419.4777.6020826.0369954.74724
Xception712993204.8088913.562427.188228.7245731.5554969.31018
InceptionV32993203.675026.360719.826456.6405413.5363022.17355
InceptionV42993209.5082113.7210420.2744712.9934225.2341643.56121