Image recognitionLearnTeam solutions

Team Cherry. The Kaufland Case. Fast and Accurate Image Classification Architecture for Recognizing Produce in a Real-Life Groceries’ Setting

Our best model (derived from VGG) achieved 99.46% top3 accuracy (90.18% top1) with processing time during training of 0.006 s per image on a single GPU Titan X (200s / epoch with 37 000 images).

The teams vision is for the team members to see where they stand compared to others in terms of ideas and approaches to computer vision and to learn new ideas and approaches from the other team-mates and the mentors.

Therefore the team is pursuing a pure computer vision approach to solving the Kaufland and/or the ReceiptBank cases.

6
votes

Fast and Accurate Image Classification Architecture for Recognizing Produce in a Real-Life Groceries’ Setting

Team Cherry

@valan, @hvrigazov, @cecopld, @vsenderov

Datathon 2018. 9 – 11 Feb 2018.

This is a CRISM DM paper describing the creation of neural-net-based image classification pipeline for the recognition of product images in a grocery store. The team behind the pipeline, Team Cherry, consists of students and researchers from Savantic AB in Stockholm, Sofia University, and the Bulgarian Academy of Sciences. We were mentored by Antoan Milkov, who we thank for valuable feedback and directions. Our vision is for the team members to see where they stand compared to others in terms of ideas and approaches to computer vision and to learn new ideas and approaches from the other team-mates and the mentors. Therefore, when constructing the pipeline we tried several different approaches with varying degrees of complexity.

Our best model (derived from VGG) achieved 99.46% top3 accuracy (90.18% top1) with processing time of 0.006 s per image on a single GPU Titan X.

Miroslav Valan is a Ph.D. Candidate at the Naturhistoriska Riksmuseet and at the Stochholm University in the field of computer vision in bioinformatics. He works for Savantic AG, a machine learning consultancy, where he pursues deep learning. He has been interested in computer vision for the last two years. Miroslav’s contribution is to develop and run the deep learning network used to solve the problem.

Hristo Vrigazov is a computer science student at Sofia University. He is interested in computer vision and reads the PyimageSearch blog on a daily basis. He experimented with CapsuleNet and DenseNet as alternative approaches and helped with writing the report.

Ceco is starting out with computer vision. He learned a lot from the more senior members and contributed many useful ideas.

Viktor Senderov is a colleague of Miroslav’s in the bioinformatics Ph.D. network BIG4. His previous interests included classical AI – semantic technologies, and knowledge graphs – and this year he is moving on to machine learning and probabilistic programming languages. Viktor assembled the team, wrote the majority of the report, and ran the feature extraction.

Business understadning

On 22.01.2018 Amazon opened Amazon Go, a physical store without cashiers and checkout lines – customers just grab the products from the shelves and go. AI algorithms detect what product you have grabbed.

Kaufland offers the unique opportunity to work with their internal data on a similar problem – developing a computer vision algorithm that detects which is the fruit or vegetable scanned.

It is nice to provide more than sixty types of vegetables to your customer. It is not nice if the customer is forced to search these products on a scale in a menu with more than sixty items. The task is to to automate this process. Making this procedure more comfortable will enhance customer satisfaction with Kaufland. Because of that, the task is to build up an image recognition that reliably recognizes which type of vegetables the customer has selected.

A typical user scenario is: The customer is weighting one type of vegetables/fruits per time, which may (in the case of cherries, plums) or may not (e.g. watermelons) be wrapped into a plastic bag. The algorithm embedded into the scale automatically recognizes the type of fruit/vegetable by recognizing an image, taken from camera located above the scale. The scale’s monitor shows several options of fruits/vegetables that are most likely on the scale and asks for customer’s confirmation. Ideally, the final results shown on the screen will be one fruit/vegetable, but as many of them share similar properties, it would also be acceptable several items to be shown to the customer. The lighting, the angle from which the pictures are taken and the size of the pictures will be the same for every image.

The goal of the research task is to design an image recognition system which recognizes and ranks the fruits’ or vegetables’ type with certain probability. The input of the system is an image taken from a camera located above the weighting scale in a real store environment.

The challenge is to recognize 3D objects that are naturally grown. For example, different types of apples can look quite different even it is the same type of fruit. Furthermore, vegetables appear differently if you rotate them. So, your model has to deal with this too. Last but not least, vegetables are already wrapped into bags when being weighed. Accordingly, they have to be reliably recognized in spite of strong reflections on the bags that may occur depending on the lighting of the store. Ideally your model works without being newly trained even if the store gets a new lighting system, the bags around the vegetables are badly crunched and the vegetables are of an extraordinary shape. Pre-processing of the image such as filtering, background removal, and edge detection may increase the accuracy.

The model will be assessed by the final produced accuracy on the test dataset. The accuracy will be calculated as number of correctly predicted objects over all objects in the test dataset. An object is considered correctly predicted if it is in Top 3 most probable objects of the model output.

Data understanding

The input data are stored in jpeg image format and divided into 68 sub-folders (categories). Every
such sub-folder corresponds to one fruit or vegetable type. Every category sub-folder has unique name
that starts with a number. The size of all the present images is 640×480. It is important to note that the product and therefore directory names are in German. The total decompressed size of the dataset is 5.5 GB. The total number of images is 37727.

An example of an image of bananas converted to grayscale and it’s Histogram of oriented gradients (HOG) feature descriptor is given below. HOG is a handcrafted feature descriptor and as such can’t benefit from more data; we were however interested whether it keeps the relevant information from the image. As seen by the example below, it looks like this is not the case for so unstructured data with lots of variety in terms of position of the item.

The number of images per class was highly variable with a maximum of 6525 – achieved by Red Peppers – and a minimum of 2 – achieved by yellow plums. A graph and a table of the class counts is available below which shows the diversification of the data.

  Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    2.0   124.8   237.0   555.8   575.2  6525.0

 

 

Fig. 1 Number of Images Per Product

We noticed that images are taken in the same conditions (camera above the scale). Multiple scales were used with each having its own shedow pattern. Luckily, images of each category were appropriatelly distributed across scales.

We also notices that images are blurry without sharp edges, so we decided to test smaller image size which would enable us real-time application.

Data Preparation

We split the data randomly in a 9:1 ratio into a training test with 33916 (33991 valan) images and a validation set with 3743 (3804 valan the count is done automatically by keras 🙂 ) (look at Appendix. Data Understanding). This split was not possible for the class of yellow plums with only two images. In that case we copied one image to the training set and one image to the validation set.

Modeling

To get a feeling of the task, three different approaches were evaluated: transfer-learning approach, training a dedicated CNN from scratch and CapsuleNet from scratch. All our approaches used data augmentation for additional data generation.

CapsuleNet

CapsuleNet is a new approach to image classification problems, introduced by G. Hinton in “Dynamic Routing Between Capsules“. It shows promising results on many datasets like Mnist and Cifar-10, because it enforces attention on the pattern learned by the neural network. We used an implementation of the original paper applied to the MNIST dataset, available here. All images were resized to (64, 64). After 1 epoch that took 4 hours, CapsuleNet did not show promising results compared to other approaches, so we abandoned it. As it turned out, CapsuleNet requires more than 500 epochs on average to start producing good results.

Transfer Learning Approach

The transfer learning approach relies on the idea that a neural-network classifier trained on a similar dataset will perform adequately in a new setting. There are two main and slightly different variations of transfer learning. In fine-tuning (Yosinski et al. 2014), we adjust some or all the weights of a pre-trained model to fit a new task similar to the one on which the model was trained. In feature extraction (Azizpour et al. 2016) we use a pre-trained model to obtain a feature vector for each input image. We tried DenseNet121 for fine-tuning and VGG16 for feature extraction. Let’s now have a look at both of them in details. We will start with VGG16 for feature extraction.

Feature extraction

When using VGG16 for feature extraction, the feature vector can be obtained from different layers of the model with just one feed forward pass. One can then apply a simpler classifier, e.g. a Support Vector Machine (SVM), using the extracted features as predictors, and, by comparing the prediction accuracy of the SVM from different layers, obtain the maximally informative layer. Finally, after this information has been obtained, a neural network with much smaller number of parameters can be fit after the maximally informative layer in place of the SVM for maximum performance (a top net). In this way, we will utilize the most information of the pretrained model, and minimize the training time, as we are only training a shallow network from scratch.

We start out by creating a VGG16 model (Simonyan and Zisserman 2015) pre-trained on ImageNet, and specify 5 output layers after every MaxPool layer:

# build the VGG16 network and extract features after every MaxPool layer
model = VGG16(weights='imagenet', include_top=False)
c1 = GlobalAveragePooling2D()(model.layers[-16].output)
c2 = GlobalAveragePooling2D()(model.layers[-13].output)
c3 = GlobalAveragePooling2D()(model.layers[-9].output)
c4 = GlobalAveragePooling2D()(model.layers[-5].output)
c5 = GlobalAveragePooling2D()(model.layers[-1].output)
model = Model(inputs=model.input, outputs=(c1,c2,c3,c4,c5))

We save all features of each output layer and fit a LinearSVM on features from training set and test on validation set. We tested different pooling strategies and input sizes.

After resizing the images to 128×128 we observe that the maximally informative layer is layer 3 with an accurracy score of 70.03. Please note the following: 1)  this is top1 suggestion, so we can expect much higher result for top3 and 2) concatenating features from all layers further promotes the accuracy (78.04). This approach is of-the-shelf and a starting point especially when dealing with small datasets.

(128, 128)
('Accuracy score is ', 48.09761217528208)
('Accuracy score is ', 37.522959853056939)
('Accuracy score is ', 70.034111781684601)
('Accuracy score is ', 68.66964051430071)
('Accuracy score is ', 62.083442665966935)
('Accuracy score is ', 78.037260561532406) - concatenated
(224, 224)
('Accuracy score is ', 44.896352663342952)
('Accuracy score is ', 63.316714773025453)
('Accuracy score is ', 32.406192600367355)
('Accuracy score is ', 67.672526895827872)
('Accuracy score is ', 61.847284177381269)
('Accuracy score is ', 71.792180530044604) - concatenated

Another conclusion that we draw from this result is that the smaller image size performed (128×128) better than the bigger (224×224) with this off-the-shelf approach. This finding informed the image size choice for our “training-from-scratch” method explained later.  Since the network trained from scratch performed excellent (99.46% top 3 accuracy), we didn’t pursue the “top net” refinement of this method mentioned earlier.

Fine-tuning

Another approach would be to take a pretrained neural network and additionally train it on the new dataset. The network can then be either used as a feature-extraction mechanism as described above or directly for predictions. For that, we experimented with DenseNet121. Again the images were rescaled to (64, 64). A textual summary can be seen in the Appendix DenseNet. A graphical representation of the model can be here.  After training for 15 epochs, DenseNet121 achieved 83% validation accuracy, which was not as good as our from scratch approach.

Dedicated Convolutional Neural Network

We trained a dedicated architecture which is both fast and accurate. After experimenting with the type and number or layers, input sizes, augmentation, and the Batchnorm and Dropout normalizers, we decided to go with rather simple architecture made of four consequtive blocks each consisting of Batchnorm, standard 3×3 Convolutions+Relu activation and 2×2 Maxpooling layer. The output of the last layer was flattened and fed trough one Dense layer before the output.

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
batch_normalization_162 (Bat (None, 128, 128, 3)       12        
_________________________________________________________________
conv2d_109 (Conv2D)          (None, 126, 126, 32)      896       
_________________________________________________________________
max_pooling2d_109 (MaxPoolin (None, 63, 63, 32)        0         
_________________________________________________________________
batch_normalization_163 (Bat (None, 63, 63, 32)        128       
_________________________________________________________________
conv2d_110 (Conv2D)          (None, 61, 61, 64)        18496     
_________________________________________________________________
max_pooling2d_110 (MaxPoolin (None, 30, 30, 64)        0         
_________________________________________________________________
batch_normalization_164 (Bat (None, 30, 30, 64)        256       
_________________________________________________________________
conv2d_111 (Conv2D)          (None, 28, 28, 128)       73856     
_________________________________________________________________
max_pooling2d_111 (MaxPoolin (None, 14, 14, 128)       0         
_________________________________________________________________
batch_normalization_165 (Bat (None, 14, 14, 128)       512       
_________________________________________________________________
conv2d_112 (Conv2D)          (None, 12, 12, 128)       147584    
_________________________________________________________________
max_pooling2d_112 (MaxPoolin (None, 6, 6, 128)         0         
_________________________________________________________________
flatten_28 (Flatten)         (None, 4608)              0         
_________________________________________________________________
batch_normalization_166 (Bat (None, 4608)              18432     
_________________________________________________________________
dropout_47 (Dropout)         (None, 4608)              0         
_________________________________________________________________
dense_53 (Dense)             (None, 512)               2359808   
_________________________________________________________________
batch_normalization_167 (Bat (None, 512)               2048      
_________________________________________________________________
dropout_48 (Dropout)         (None, 512)               0         
_________________________________________________________________
dense_54 (Dense)             (None, 68)                34884     
=================================================================
Total params: 2,656,912
Trainable params: 2,646,218
Non-trainable params: 10,694
_________________________________________________________________

The number of parametes is cca 2.6M of which majority are in the fully connectied part (very fast to train). The number of filter in each ConvLayers was 32, 64, 64, 128. For 200s we can process whole dataset (37000 images) on a single Titan X (less than 0.006s per image). Its  size is 10MB.

Results

Update Test set data just in. Over 99% perfermance. Ask us for the notebook.

Performace was evaluated on the validation set (see previous paragraph) and is currently being evaluated on the test set (numbers will be in the updated as they become availale).  The model with BatchNorm and Dropout set to 0.8 and scheduled to decrease after 10 epochs without progress had the following accuracy:

val loss top1 score top3 score
[0.38221502454028755, 0.88825473329905602, 0.99158907201634616]

The next result is informed by Smith et. al (2017). A model with BatchNorm+Dropout 0.8 with jiggling learning rate and gradually increased batch_sizee:

val loss              top1 score              top3 score 
[0.34097324399913742, 0.90297386500526744, 0.99339141737200831]

Model tuned with a few more epochs where Dropout is set to 0

 val loss top1 score top3 score 
[0.33503147153551421, 0.90177229756741739, 0.99459298094244963]

The per-category error rate is given Fig. 2 and the confusion matrix is given in Fig. 3. Both of these figures are available on the following Google drive link. In the Google Drive, please also find an interactive plotly plot where you can explore the prediction accuracy for individual features.


Fig. 2 Per category error rate.

Fig. 3 Confusion matrix.

 

Deployment

The obtained error rates (over 99 percent) indicate that should this model be deployed in a real-life setting, only 1 out of 1000 customers will need to click next to get the second screen of options. Also the 6 ms of processing time is suitable for the purpose.

Technical notes.

Savantic AB provided GPUs for valan

Our channel is #team_cherry.

 

 

 

 

dataset-statistics-R

 

Appendex. Computation from Scratch.

Pipeline

Appendix. DenseNet121

__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
data (InputLayer)               (None, 64, 64, 3)    0                                            
__________________________________________________________________________________________________
conv1_zeropadding (ZeroPadding2 (None, 70, 70, 3)    0           data[0][0]                       
__________________________________________________________________________________________________
conv1 (Conv2D)                  (None, 32, 32, 64)   9408        conv1_zeropadding[0][0]          
__________________________________________________________________________________________________
conv1_bn (BatchNormalization)   (None, 32, 32, 64)   256         conv1[0][0]                      
__________________________________________________________________________________________________
conv1_scale (Scale)             (None, 32, 32, 64)   128         conv1_bn[0][0]                   
__________________________________________________________________________________________________
relu1 (Activation)              (None, 32, 32, 64)   0           conv1_scale[0][0]                
__________________________________________________________________________________________________
pool1_zeropadding (ZeroPadding2 (None, 34, 34, 64)   0           relu1[0][0]                      
__________________________________________________________________________________________________
pool1 (MaxPooling2D)            (None, 16, 16, 64)   0           pool1_zeropadding[0][0]          
__________________________________________________________________________________________________
conv2_1_x1_bn (BatchNormalizati (None, 16, 16, 64)   256         pool1[0][0]                      
__________________________________________________________________________________________________
conv2_1_x1_scale (Scale)        (None, 16, 16, 64)   128         conv2_1_x1_bn[0][0]              
__________________________________________________________________________________________________
relu2_1_x1 (Activation)         (None, 16, 16, 64)   0           conv2_1_x1_scale[0][0]           
__________________________________________________________________________________________________
conv2_1_x1 (Conv2D)             (None, 16, 16, 128)  8192        relu2_1_x1[0][0]                 
__________________________________________________________________________________________________
conv2_1_x2_bn (BatchNormalizati (None, 16, 16, 128)  512         conv2_1_x1[0][0]                 
__________________________________________________________________________________________________
conv2_1_x2_scale (Scale)        (None, 16, 16, 128)  256         conv2_1_x2_bn[0][0]              
__________________________________________________________________________________________________
relu2_1_x2 (Activation)         (None, 16, 16, 128)  0           conv2_1_x2_scale[0][0]           
__________________________________________________________________________________________________
conv2_1_x2_zeropadding (ZeroPad (None, 18, 18, 128)  0           relu2_1_x2[0][0]                 
__________________________________________________________________________________________________
conv2_1_x2 (Conv2D)             (None, 16, 16, 32)   36864       conv2_1_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_2_1 (Merge)              (None, 16, 16, 96)   0           pool1[0][0]                      
                                                                 conv2_1_x2[0][0]                 
__________________________________________________________________________________________________
conv2_2_x1_bn (BatchNormalizati (None, 16, 16, 96)   384         concat_2_1[0][0]                 
__________________________________________________________________________________________________
conv2_2_x1_scale (Scale)        (None, 16, 16, 96)   192         conv2_2_x1_bn[0][0]              
__________________________________________________________________________________________________
relu2_2_x1 (Activation)         (None, 16, 16, 96)   0           conv2_2_x1_scale[0][0]           
__________________________________________________________________________________________________
conv2_2_x1 (Conv2D)             (None, 16, 16, 128)  12288       relu2_2_x1[0][0]                 
__________________________________________________________________________________________________
conv2_2_x2_bn (BatchNormalizati (None, 16, 16, 128)  512         conv2_2_x1[0][0]                 
__________________________________________________________________________________________________
conv2_2_x2_scale (Scale)        (None, 16, 16, 128)  256         conv2_2_x2_bn[0][0]              
__________________________________________________________________________________________________
relu2_2_x2 (Activation)         (None, 16, 16, 128)  0           conv2_2_x2_scale[0][0]           
__________________________________________________________________________________________________
conv2_2_x2_zeropadding (ZeroPad (None, 18, 18, 128)  0           relu2_2_x2[0][0]                 
__________________________________________________________________________________________________
conv2_2_x2 (Conv2D)             (None, 16, 16, 32)   36864       conv2_2_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_2_2 (Merge)              (None, 16, 16, 128)  0           concat_2_1[0][0]                 
                                                                 conv2_2_x2[0][0]                 
__________________________________________________________________________________________________
conv2_3_x1_bn (BatchNormalizati (None, 16, 16, 128)  512         concat_2_2[0][0]                 
__________________________________________________________________________________________________
conv2_3_x1_scale (Scale)        (None, 16, 16, 128)  256         conv2_3_x1_bn[0][0]              
__________________________________________________________________________________________________
relu2_3_x1 (Activation)         (None, 16, 16, 128)  0           conv2_3_x1_scale[0][0]           
__________________________________________________________________________________________________
conv2_3_x1 (Conv2D)             (None, 16, 16, 128)  16384       relu2_3_x1[0][0]                 
__________________________________________________________________________________________________
conv2_3_x2_bn (BatchNormalizati (None, 16, 16, 128)  512         conv2_3_x1[0][0]                 
__________________________________________________________________________________________________
conv2_3_x2_scale (Scale)        (None, 16, 16, 128)  256         conv2_3_x2_bn[0][0]              
__________________________________________________________________________________________________
relu2_3_x2 (Activation)         (None, 16, 16, 128)  0           conv2_3_x2_scale[0][0]           
__________________________________________________________________________________________________
conv2_3_x2_zeropadding (ZeroPad (None, 18, 18, 128)  0           relu2_3_x2[0][0]                 
__________________________________________________________________________________________________
conv2_3_x2 (Conv2D)             (None, 16, 16, 32)   36864       conv2_3_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_2_3 (Merge)              (None, 16, 16, 160)  0           concat_2_2[0][0]                 
                                                                 conv2_3_x2[0][0]                 
__________________________________________________________________________________________________
conv2_4_x1_bn (BatchNormalizati (None, 16, 16, 160)  640         concat_2_3[0][0]                 
__________________________________________________________________________________________________
conv2_4_x1_scale (Scale)        (None, 16, 16, 160)  320         conv2_4_x1_bn[0][0]              
__________________________________________________________________________________________________
relu2_4_x1 (Activation)         (None, 16, 16, 160)  0           conv2_4_x1_scale[0][0]           
__________________________________________________________________________________________________
conv2_4_x1 (Conv2D)             (None, 16, 16, 128)  20480       relu2_4_x1[0][0]                 
__________________________________________________________________________________________________
conv2_4_x2_bn (BatchNormalizati (None, 16, 16, 128)  512         conv2_4_x1[0][0]                 
__________________________________________________________________________________________________
conv2_4_x2_scale (Scale)        (None, 16, 16, 128)  256         conv2_4_x2_bn[0][0]              
__________________________________________________________________________________________________
relu2_4_x2 (Activation)         (None, 16, 16, 128)  0           conv2_4_x2_scale[0][0]           
__________________________________________________________________________________________________
conv2_4_x2_zeropadding (ZeroPad (None, 18, 18, 128)  0           relu2_4_x2[0][0]                 
__________________________________________________________________________________________________
conv2_4_x2 (Conv2D)             (None, 16, 16, 32)   36864       conv2_4_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_2_4 (Merge)              (None, 16, 16, 192)  0           concat_2_3[0][0]                 
                                                                 conv2_4_x2[0][0]                 
__________________________________________________________________________________________________
conv2_5_x1_bn (BatchNormalizati (None, 16, 16, 192)  768         concat_2_4[0][0]                 
__________________________________________________________________________________________________
conv2_5_x1_scale (Scale)        (None, 16, 16, 192)  384         conv2_5_x1_bn[0][0]              
__________________________________________________________________________________________________
relu2_5_x1 (Activation)         (None, 16, 16, 192)  0           conv2_5_x1_scale[0][0]           
__________________________________________________________________________________________________
conv2_5_x1 (Conv2D)             (None, 16, 16, 128)  24576       relu2_5_x1[0][0]                 
__________________________________________________________________________________________________
conv2_5_x2_bn (BatchNormalizati (None, 16, 16, 128)  512         conv2_5_x1[0][0]                 
__________________________________________________________________________________________________
conv2_5_x2_scale (Scale)        (None, 16, 16, 128)  256         conv2_5_x2_bn[0][0]              
__________________________________________________________________________________________________
relu2_5_x2 (Activation)         (None, 16, 16, 128)  0           conv2_5_x2_scale[0][0]           
__________________________________________________________________________________________________
conv2_5_x2_zeropadding (ZeroPad (None, 18, 18, 128)  0           relu2_5_x2[0][0]                 
__________________________________________________________________________________________________
conv2_5_x2 (Conv2D)             (None, 16, 16, 32)   36864       conv2_5_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_2_5 (Merge)              (None, 16, 16, 224)  0           concat_2_4[0][0]                 
                                                                 conv2_5_x2[0][0]                 
__________________________________________________________________________________________________
conv2_6_x1_bn (BatchNormalizati (None, 16, 16, 224)  896         concat_2_5[0][0]                 
__________________________________________________________________________________________________
conv2_6_x1_scale (Scale)        (None, 16, 16, 224)  448         conv2_6_x1_bn[0][0]              
__________________________________________________________________________________________________
relu2_6_x1 (Activation)         (None, 16, 16, 224)  0           conv2_6_x1_scale[0][0]           
__________________________________________________________________________________________________
conv2_6_x1 (Conv2D)             (None, 16, 16, 128)  28672       relu2_6_x1[0][0]                 
__________________________________________________________________________________________________
conv2_6_x2_bn (BatchNormalizati (None, 16, 16, 128)  512         conv2_6_x1[0][0]                 
__________________________________________________________________________________________________
conv2_6_x2_scale (Scale)        (None, 16, 16, 128)  256         conv2_6_x2_bn[0][0]              
__________________________________________________________________________________________________
relu2_6_x2 (Activation)         (None, 16, 16, 128)  0           conv2_6_x2_scale[0][0]           
__________________________________________________________________________________________________
conv2_6_x2_zeropadding (ZeroPad (None, 18, 18, 128)  0           relu2_6_x2[0][0]                 
__________________________________________________________________________________________________
conv2_6_x2 (Conv2D)             (None, 16, 16, 32)   36864       conv2_6_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_2_6 (Merge)              (None, 16, 16, 256)  0           concat_2_5[0][0]                 
                                                                 conv2_6_x2[0][0]                 
__________________________________________________________________________________________________
conv2_blk_bn (BatchNormalizatio (None, 16, 16, 256)  1024        concat_2_6[0][0]                 
__________________________________________________________________________________________________
conv2_blk_scale (Scale)         (None, 16, 16, 256)  512         conv2_blk_bn[0][0]               
__________________________________________________________________________________________________
relu2_blk (Activation)          (None, 16, 16, 256)  0           conv2_blk_scale[0][0]            
__________________________________________________________________________________________________
conv2_blk (Conv2D)              (None, 16, 16, 128)  32768       relu2_blk[0][0]                  
__________________________________________________________________________________________________
pool2 (AveragePooling2D)        (None, 8, 8, 128)    0           conv2_blk[0][0]                  
__________________________________________________________________________________________________
conv3_1_x1_bn (BatchNormalizati (None, 8, 8, 128)    512         pool2[0][0]                      
__________________________________________________________________________________________________
conv3_1_x1_scale (Scale)        (None, 8, 8, 128)    256         conv3_1_x1_bn[0][0]              
__________________________________________________________________________________________________
relu3_1_x1 (Activation)         (None, 8, 8, 128)    0           conv3_1_x1_scale[0][0]           
__________________________________________________________________________________________________
conv3_1_x1 (Conv2D)             (None, 8, 8, 128)    16384       relu3_1_x1[0][0]                 
__________________________________________________________________________________________________
conv3_1_x2_bn (BatchNormalizati (None, 8, 8, 128)    512         conv3_1_x1[0][0]                 
__________________________________________________________________________________________________
conv3_1_x2_scale (Scale)        (None, 8, 8, 128)    256         conv3_1_x2_bn[0][0]              
__________________________________________________________________________________________________
relu3_1_x2 (Activation)         (None, 8, 8, 128)    0           conv3_1_x2_scale[0][0]           
__________________________________________________________________________________________________
conv3_1_x2_zeropadding (ZeroPad (None, 10, 10, 128)  0           relu3_1_x2[0][0]                 
__________________________________________________________________________________________________
conv3_1_x2 (Conv2D)             (None, 8, 8, 32)     36864       conv3_1_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_3_1 (Merge)              (None, 8, 8, 160)    0           pool2[0][0]                      
                                                                 conv3_1_x2[0][0]                 
__________________________________________________________________________________________________
conv3_2_x1_bn (BatchNormalizati (None, 8, 8, 160)    640         concat_3_1[0][0]                 
__________________________________________________________________________________________________
conv3_2_x1_scale (Scale)        (None, 8, 8, 160)    320         conv3_2_x1_bn[0][0]              
__________________________________________________________________________________________________
relu3_2_x1 (Activation)         (None, 8, 8, 160)    0           conv3_2_x1_scale[0][0]           
__________________________________________________________________________________________________
conv3_2_x1 (Conv2D)             (None, 8, 8, 128)    20480       relu3_2_x1[0][0]                 
__________________________________________________________________________________________________
conv3_2_x2_bn (BatchNormalizati (None, 8, 8, 128)    512         conv3_2_x1[0][0]                 
__________________________________________________________________________________________________
conv3_2_x2_scale (Scale)        (None, 8, 8, 128)    256         conv3_2_x2_bn[0][0]              
__________________________________________________________________________________________________
relu3_2_x2 (Activation)         (None, 8, 8, 128)    0           conv3_2_x2_scale[0][0]           
__________________________________________________________________________________________________
conv3_2_x2_zeropadding (ZeroPad (None, 10, 10, 128)  0           relu3_2_x2[0][0]                 
__________________________________________________________________________________________________
conv3_2_x2 (Conv2D)             (None, 8, 8, 32)     36864       conv3_2_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_3_2 (Merge)              (None, 8, 8, 192)    0           concat_3_1[0][0]                 
                                                                 conv3_2_x2[0][0]                 
__________________________________________________________________________________________________
conv3_3_x1_bn (BatchNormalizati (None, 8, 8, 192)    768         concat_3_2[0][0]                 
__________________________________________________________________________________________________
conv3_3_x1_scale (Scale)        (None, 8, 8, 192)    384         conv3_3_x1_bn[0][0]              
__________________________________________________________________________________________________
relu3_3_x1 (Activation)         (None, 8, 8, 192)    0           conv3_3_x1_scale[0][0]           
__________________________________________________________________________________________________
conv3_3_x1 (Conv2D)             (None, 8, 8, 128)    24576       relu3_3_x1[0][0]                 
__________________________________________________________________________________________________
conv3_3_x2_bn (BatchNormalizati (None, 8, 8, 128)    512         conv3_3_x1[0][0]                 
__________________________________________________________________________________________________
conv3_3_x2_scale (Scale)        (None, 8, 8, 128)    256         conv3_3_x2_bn[0][0]              
__________________________________________________________________________________________________
relu3_3_x2 (Activation)         (None, 8, 8, 128)    0           conv3_3_x2_scale[0][0]           
__________________________________________________________________________________________________
conv3_3_x2_zeropadding (ZeroPad (None, 10, 10, 128)  0           relu3_3_x2[0][0]                 
__________________________________________________________________________________________________
conv3_3_x2 (Conv2D)             (None, 8, 8, 32)     36864       conv3_3_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_3_3 (Merge)              (None, 8, 8, 224)    0           concat_3_2[0][0]                 
                                                                 conv3_3_x2[0][0]                 
__________________________________________________________________________________________________
conv3_4_x1_bn (BatchNormalizati (None, 8, 8, 224)    896         concat_3_3[0][0]                 
__________________________________________________________________________________________________
conv3_4_x1_scale (Scale)        (None, 8, 8, 224)    448         conv3_4_x1_bn[0][0]              
__________________________________________________________________________________________________
relu3_4_x1 (Activation)         (None, 8, 8, 224)    0           conv3_4_x1_scale[0][0]           
__________________________________________________________________________________________________
conv3_4_x1 (Conv2D)             (None, 8, 8, 128)    28672       relu3_4_x1[0][0]                 
__________________________________________________________________________________________________
conv3_4_x2_bn (BatchNormalizati (None, 8, 8, 128)    512         conv3_4_x1[0][0]                 
__________________________________________________________________________________________________
conv3_4_x2_scale (Scale)        (None, 8, 8, 128)    256         conv3_4_x2_bn[0][0]              
__________________________________________________________________________________________________
relu3_4_x2 (Activation)         (None, 8, 8, 128)    0           conv3_4_x2_scale[0][0]           
__________________________________________________________________________________________________
conv3_4_x2_zeropadding (ZeroPad (None, 10, 10, 128)  0           relu3_4_x2[0][0]                 
__________________________________________________________________________________________________
conv3_4_x2 (Conv2D)             (None, 8, 8, 32)     36864       conv3_4_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_3_4 (Merge)              (None, 8, 8, 256)    0           concat_3_3[0][0]                 
                                                                 conv3_4_x2[0][0]                 
__________________________________________________________________________________________________
conv3_5_x1_bn (BatchNormalizati (None, 8, 8, 256)    1024        concat_3_4[0][0]                 
__________________________________________________________________________________________________
conv3_5_x1_scale (Scale)        (None, 8, 8, 256)    512         conv3_5_x1_bn[0][0]              
__________________________________________________________________________________________________
relu3_5_x1 (Activation)         (None, 8, 8, 256)    0           conv3_5_x1_scale[0][0]           
__________________________________________________________________________________________________
conv3_5_x1 (Conv2D)             (None, 8, 8, 128)    32768       relu3_5_x1[0][0]                 
__________________________________________________________________________________________________
conv3_5_x2_bn (BatchNormalizati (None, 8, 8, 128)    512         conv3_5_x1[0][0]                 
__________________________________________________________________________________________________
conv3_5_x2_scale (Scale)        (None, 8, 8, 128)    256         conv3_5_x2_bn[0][0]              
__________________________________________________________________________________________________
relu3_5_x2 (Activation)         (None, 8, 8, 128)    0           conv3_5_x2_scale[0][0]           
__________________________________________________________________________________________________
conv3_5_x2_zeropadding (ZeroPad (None, 10, 10, 128)  0           relu3_5_x2[0][0]                 
__________________________________________________________________________________________________
conv3_5_x2 (Conv2D)             (None, 8, 8, 32)     36864       conv3_5_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_3_5 (Merge)              (None, 8, 8, 288)    0           concat_3_4[0][0]                 
                                                                 conv3_5_x2[0][0]                 
__________________________________________________________________________________________________
conv3_6_x1_bn (BatchNormalizati (None, 8, 8, 288)    1152        concat_3_5[0][0]                 
__________________________________________________________________________________________________
conv3_6_x1_scale (Scale)        (None, 8, 8, 288)    576         conv3_6_x1_bn[0][0]              
__________________________________________________________________________________________________
relu3_6_x1 (Activation)         (None, 8, 8, 288)    0           conv3_6_x1_scale[0][0]           
__________________________________________________________________________________________________
conv3_6_x1 (Conv2D)             (None, 8, 8, 128)    36864       relu3_6_x1[0][0]                 
__________________________________________________________________________________________________
conv3_6_x2_bn (BatchNormalizati (None, 8, 8, 128)    512         conv3_6_x1[0][0]                 
__________________________________________________________________________________________________
conv3_6_x2_scale (Scale)        (None, 8, 8, 128)    256         conv3_6_x2_bn[0][0]              
__________________________________________________________________________________________________
relu3_6_x2 (Activation)         (None, 8, 8, 128)    0           conv3_6_x2_scale[0][0]           
__________________________________________________________________________________________________
conv3_6_x2_zeropadding (ZeroPad (None, 10, 10, 128)  0           relu3_6_x2[0][0]                 
__________________________________________________________________________________________________
conv3_6_x2 (Conv2D)             (None, 8, 8, 32)     36864       conv3_6_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_3_6 (Merge)              (None, 8, 8, 320)    0           concat_3_5[0][0]                 
                                                                 conv3_6_x2[0][0]                 
__________________________________________________________________________________________________
conv3_7_x1_bn (BatchNormalizati (None, 8, 8, 320)    1280        concat_3_6[0][0]                 
__________________________________________________________________________________________________
conv3_7_x1_scale (Scale)        (None, 8, 8, 320)    640         conv3_7_x1_bn[0][0]              
__________________________________________________________________________________________________
relu3_7_x1 (Activation)         (None, 8, 8, 320)    0           conv3_7_x1_scale[0][0]           
__________________________________________________________________________________________________
conv3_7_x1 (Conv2D)             (None, 8, 8, 128)    40960       relu3_7_x1[0][0]                 
__________________________________________________________________________________________________
conv3_7_x2_bn (BatchNormalizati (None, 8, 8, 128)    512         conv3_7_x1[0][0]                 
__________________________________________________________________________________________________
conv3_7_x2_scale (Scale)        (None, 8, 8, 128)    256         conv3_7_x2_bn[0][0]              
__________________________________________________________________________________________________
relu3_7_x2 (Activation)         (None, 8, 8, 128)    0           conv3_7_x2_scale[0][0]           
__________________________________________________________________________________________________
conv3_7_x2_zeropadding (ZeroPad (None, 10, 10, 128)  0           relu3_7_x2[0][0]                 
__________________________________________________________________________________________________
conv3_7_x2 (Conv2D)             (None, 8, 8, 32)     36864       conv3_7_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_3_7 (Merge)              (None, 8, 8, 352)    0           concat_3_6[0][0]                 
                                                                 conv3_7_x2[0][0]                 
__________________________________________________________________________________________________
conv3_8_x1_bn (BatchNormalizati (None, 8, 8, 352)    1408        concat_3_7[0][0]                 
__________________________________________________________________________________________________
conv3_8_x1_scale (Scale)        (None, 8, 8, 352)    704         conv3_8_x1_bn[0][0]              
__________________________________________________________________________________________________
relu3_8_x1 (Activation)         (None, 8, 8, 352)    0           conv3_8_x1_scale[0][0]           
__________________________________________________________________________________________________
conv3_8_x1 (Conv2D)             (None, 8, 8, 128)    45056       relu3_8_x1[0][0]                 
__________________________________________________________________________________________________
conv3_8_x2_bn (BatchNormalizati (None, 8, 8, 128)    512         conv3_8_x1[0][0]                 
__________________________________________________________________________________________________
conv3_8_x2_scale (Scale)        (None, 8, 8, 128)    256         conv3_8_x2_bn[0][0]              
__________________________________________________________________________________________________
relu3_8_x2 (Activation)         (None, 8, 8, 128)    0           conv3_8_x2_scale[0][0]           
__________________________________________________________________________________________________
conv3_8_x2_zeropadding (ZeroPad (None, 10, 10, 128)  0           relu3_8_x2[0][0]                 
__________________________________________________________________________________________________
conv3_8_x2 (Conv2D)             (None, 8, 8, 32)     36864       conv3_8_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_3_8 (Merge)              (None, 8, 8, 384)    0           concat_3_7[0][0]                 
                                                                 conv3_8_x2[0][0]                 
__________________________________________________________________________________________________
conv3_9_x1_bn (BatchNormalizati (None, 8, 8, 384)    1536        concat_3_8[0][0]                 
__________________________________________________________________________________________________
conv3_9_x1_scale (Scale)        (None, 8, 8, 384)    768         conv3_9_x1_bn[0][0]              
__________________________________________________________________________________________________
relu3_9_x1 (Activation)         (None, 8, 8, 384)    0           conv3_9_x1_scale[0][0]           
__________________________________________________________________________________________________
conv3_9_x1 (Conv2D)             (None, 8, 8, 128)    49152       relu3_9_x1[0][0]                 
__________________________________________________________________________________________________
conv3_9_x2_bn (BatchNormalizati (None, 8, 8, 128)    512         conv3_9_x1[0][0]                 
__________________________________________________________________________________________________
conv3_9_x2_scale (Scale)        (None, 8, 8, 128)    256         conv3_9_x2_bn[0][0]              
__________________________________________________________________________________________________
relu3_9_x2 (Activation)         (None, 8, 8, 128)    0           conv3_9_x2_scale[0][0]           
__________________________________________________________________________________________________
conv3_9_x2_zeropadding (ZeroPad (None, 10, 10, 128)  0           relu3_9_x2[0][0]                 
__________________________________________________________________________________________________
conv3_9_x2 (Conv2D)             (None, 8, 8, 32)     36864       conv3_9_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_3_9 (Merge)              (None, 8, 8, 416)    0           concat_3_8[0][0]                 
                                                                 conv3_9_x2[0][0]                 
__________________________________________________________________________________________________
conv3_10_x1_bn (BatchNormalizat (None, 8, 8, 416)    1664        concat_3_9[0][0]                 
__________________________________________________________________________________________________
conv3_10_x1_scale (Scale)       (None, 8, 8, 416)    832         conv3_10_x1_bn[0][0]             
__________________________________________________________________________________________________
relu3_10_x1 (Activation)        (None, 8, 8, 416)    0           conv3_10_x1_scale[0][0]          
__________________________________________________________________________________________________
conv3_10_x1 (Conv2D)            (None, 8, 8, 128)    53248       relu3_10_x1[0][0]                
__________________________________________________________________________________________________
conv3_10_x2_bn (BatchNormalizat (None, 8, 8, 128)    512         conv3_10_x1[0][0]                
__________________________________________________________________________________________________
conv3_10_x2_scale (Scale)       (None, 8, 8, 128)    256         conv3_10_x2_bn[0][0]             
__________________________________________________________________________________________________
relu3_10_x2 (Activation)        (None, 8, 8, 128)    0           conv3_10_x2_scale[0][0]          
__________________________________________________________________________________________________
conv3_10_x2_zeropadding (ZeroPa (None, 10, 10, 128)  0           relu3_10_x2[0][0]                
__________________________________________________________________________________________________
conv3_10_x2 (Conv2D)            (None, 8, 8, 32)     36864       conv3_10_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_3_10 (Merge)             (None, 8, 8, 448)    0           concat_3_9[0][0]                 
                                                                 conv3_10_x2[0][0]                
__________________________________________________________________________________________________
conv3_11_x1_bn (BatchNormalizat (None, 8, 8, 448)    1792        concat_3_10[0][0]                
__________________________________________________________________________________________________
conv3_11_x1_scale (Scale)       (None, 8, 8, 448)    896         conv3_11_x1_bn[0][0]             
__________________________________________________________________________________________________
relu3_11_x1 (Activation)        (None, 8, 8, 448)    0           conv3_11_x1_scale[0][0]          
__________________________________________________________________________________________________
conv3_11_x1 (Conv2D)            (None, 8, 8, 128)    57344       relu3_11_x1[0][0]                
__________________________________________________________________________________________________
conv3_11_x2_bn (BatchNormalizat (None, 8, 8, 128)    512         conv3_11_x1[0][0]                
__________________________________________________________________________________________________
conv3_11_x2_scale (Scale)       (None, 8, 8, 128)    256         conv3_11_x2_bn[0][0]             
__________________________________________________________________________________________________
relu3_11_x2 (Activation)        (None, 8, 8, 128)    0           conv3_11_x2_scale[0][0]          
__________________________________________________________________________________________________
conv3_11_x2_zeropadding (ZeroPa (None, 10, 10, 128)  0           relu3_11_x2[0][0]                
__________________________________________________________________________________________________
conv3_11_x2 (Conv2D)            (None, 8, 8, 32)     36864       conv3_11_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_3_11 (Merge)             (None, 8, 8, 480)    0           concat_3_10[0][0]                
                                                                 conv3_11_x2[0][0]                
__________________________________________________________________________________________________
conv3_12_x1_bn (BatchNormalizat (None, 8, 8, 480)    1920        concat_3_11[0][0]                
__________________________________________________________________________________________________
conv3_12_x1_scale (Scale)       (None, 8, 8, 480)    960         conv3_12_x1_bn[0][0]             
__________________________________________________________________________________________________
relu3_12_x1 (Activation)        (None, 8, 8, 480)    0           conv3_12_x1_scale[0][0]          
__________________________________________________________________________________________________
conv3_12_x1 (Conv2D)            (None, 8, 8, 128)    61440       relu3_12_x1[0][0]                
__________________________________________________________________________________________________
conv3_12_x2_bn (BatchNormalizat (None, 8, 8, 128)    512         conv3_12_x1[0][0]                
__________________________________________________________________________________________________
conv3_12_x2_scale (Scale)       (None, 8, 8, 128)    256         conv3_12_x2_bn[0][0]             
__________________________________________________________________________________________________
relu3_12_x2 (Activation)        (None, 8, 8, 128)    0           conv3_12_x2_scale[0][0]          
__________________________________________________________________________________________________
conv3_12_x2_zeropadding (ZeroPa (None, 10, 10, 128)  0           relu3_12_x2[0][0]                
__________________________________________________________________________________________________
conv3_12_x2 (Conv2D)            (None, 8, 8, 32)     36864       conv3_12_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_3_12 (Merge)             (None, 8, 8, 512)    0           concat_3_11[0][0]                
                                                                 conv3_12_x2[0][0]                
__________________________________________________________________________________________________
conv3_blk_bn (BatchNormalizatio (None, 8, 8, 512)    2048        concat_3_12[0][0]                
__________________________________________________________________________________________________
conv3_blk_scale (Scale)         (None, 8, 8, 512)    1024        conv3_blk_bn[0][0]               
__________________________________________________________________________________________________
relu3_blk (Activation)          (None, 8, 8, 512)    0           conv3_blk_scale[0][0]            
__________________________________________________________________________________________________
conv3_blk (Conv2D)              (None, 8, 8, 256)    131072      relu3_blk[0][0]                  
__________________________________________________________________________________________________
pool3 (AveragePooling2D)        (None, 4, 4, 256)    0           conv3_blk[0][0]                  
__________________________________________________________________________________________________
conv4_1_x1_bn (BatchNormalizati (None, 4, 4, 256)    1024        pool3[0][0]                      
__________________________________________________________________________________________________
conv4_1_x1_scale (Scale)        (None, 4, 4, 256)    512         conv4_1_x1_bn[0][0]              
__________________________________________________________________________________________________
relu4_1_x1 (Activation)         (None, 4, 4, 256)    0           conv4_1_x1_scale[0][0]           
__________________________________________________________________________________________________
conv4_1_x1 (Conv2D)             (None, 4, 4, 128)    32768       relu4_1_x1[0][0]                 
__________________________________________________________________________________________________
conv4_1_x2_bn (BatchNormalizati (None, 4, 4, 128)    512         conv4_1_x1[0][0]                 
__________________________________________________________________________________________________
conv4_1_x2_scale (Scale)        (None, 4, 4, 128)    256         conv4_1_x2_bn[0][0]              
__________________________________________________________________________________________________
relu4_1_x2 (Activation)         (None, 4, 4, 128)    0           conv4_1_x2_scale[0][0]           
__________________________________________________________________________________________________
conv4_1_x2_zeropadding (ZeroPad (None, 6, 6, 128)    0           relu4_1_x2[0][0]                 
__________________________________________________________________________________________________
conv4_1_x2 (Conv2D)             (None, 4, 4, 32)     36864       conv4_1_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_4_1 (Merge)              (None, 4, 4, 288)    0           pool3[0][0]                      
                                                                 conv4_1_x2[0][0]                 
__________________________________________________________________________________________________
conv4_2_x1_bn (BatchNormalizati (None, 4, 4, 288)    1152        concat_4_1[0][0]                 
__________________________________________________________________________________________________
conv4_2_x1_scale (Scale)        (None, 4, 4, 288)    576         conv4_2_x1_bn[0][0]              
__________________________________________________________________________________________________
relu4_2_x1 (Activation)         (None, 4, 4, 288)    0           conv4_2_x1_scale[0][0]           
__________________________________________________________________________________________________
conv4_2_x1 (Conv2D)             (None, 4, 4, 128)    36864       relu4_2_x1[0][0]                 
__________________________________________________________________________________________________
conv4_2_x2_bn (BatchNormalizati (None, 4, 4, 128)    512         conv4_2_x1[0][0]                 
__________________________________________________________________________________________________
conv4_2_x2_scale (Scale)        (None, 4, 4, 128)    256         conv4_2_x2_bn[0][0]              
__________________________________________________________________________________________________
relu4_2_x2 (Activation)         (None, 4, 4, 128)    0           conv4_2_x2_scale[0][0]           
__________________________________________________________________________________________________
conv4_2_x2_zeropadding (ZeroPad (None, 6, 6, 128)    0           relu4_2_x2[0][0]                 
__________________________________________________________________________________________________
conv4_2_x2 (Conv2D)             (None, 4, 4, 32)     36864       conv4_2_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_4_2 (Merge)              (None, 4, 4, 320)    0           concat_4_1[0][0]                 
                                                                 conv4_2_x2[0][0]                 
__________________________________________________________________________________________________
conv4_3_x1_bn (BatchNormalizati (None, 4, 4, 320)    1280        concat_4_2[0][0]                 
__________________________________________________________________________________________________
conv4_3_x1_scale (Scale)        (None, 4, 4, 320)    640         conv4_3_x1_bn[0][0]              
__________________________________________________________________________________________________
relu4_3_x1 (Activation)         (None, 4, 4, 320)    0           conv4_3_x1_scale[0][0]           
__________________________________________________________________________________________________
conv4_3_x1 (Conv2D)             (None, 4, 4, 128)    40960       relu4_3_x1[0][0]                 
__________________________________________________________________________________________________
conv4_3_x2_bn (BatchNormalizati (None, 4, 4, 128)    512         conv4_3_x1[0][0]                 
__________________________________________________________________________________________________
conv4_3_x2_scale (Scale)        (None, 4, 4, 128)    256         conv4_3_x2_bn[0][0]              
__________________________________________________________________________________________________
relu4_3_x2 (Activation)         (None, 4, 4, 128)    0           conv4_3_x2_scale[0][0]           
__________________________________________________________________________________________________
conv4_3_x2_zeropadding (ZeroPad (None, 6, 6, 128)    0           relu4_3_x2[0][0]                 
__________________________________________________________________________________________________
conv4_3_x2 (Conv2D)             (None, 4, 4, 32)     36864       conv4_3_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_4_3 (Merge)              (None, 4, 4, 352)    0           concat_4_2[0][0]                 
                                                                 conv4_3_x2[0][0]                 
__________________________________________________________________________________________________
conv4_4_x1_bn (BatchNormalizati (None, 4, 4, 352)    1408        concat_4_3[0][0]                 
__________________________________________________________________________________________________
conv4_4_x1_scale (Scale)        (None, 4, 4, 352)    704         conv4_4_x1_bn[0][0]              
__________________________________________________________________________________________________
relu4_4_x1 (Activation)         (None, 4, 4, 352)    0           conv4_4_x1_scale[0][0]           
__________________________________________________________________________________________________
conv4_4_x1 (Conv2D)             (None, 4, 4, 128)    45056       relu4_4_x1[0][0]                 
__________________________________________________________________________________________________
conv4_4_x2_bn (BatchNormalizati (None, 4, 4, 128)    512         conv4_4_x1[0][0]                 
__________________________________________________________________________________________________
conv4_4_x2_scale (Scale)        (None, 4, 4, 128)    256         conv4_4_x2_bn[0][0]              
__________________________________________________________________________________________________
relu4_4_x2 (Activation)         (None, 4, 4, 128)    0           conv4_4_x2_scale[0][0]           
__________________________________________________________________________________________________
conv4_4_x2_zeropadding (ZeroPad (None, 6, 6, 128)    0           relu4_4_x2[0][0]                 
__________________________________________________________________________________________________
conv4_4_x2 (Conv2D)             (None, 4, 4, 32)     36864       conv4_4_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_4_4 (Merge)              (None, 4, 4, 384)    0           concat_4_3[0][0]                 
                                                                 conv4_4_x2[0][0]                 
__________________________________________________________________________________________________
conv4_5_x1_bn (BatchNormalizati (None, 4, 4, 384)    1536        concat_4_4[0][0]                 
__________________________________________________________________________________________________
conv4_5_x1_scale (Scale)        (None, 4, 4, 384)    768         conv4_5_x1_bn[0][0]              
__________________________________________________________________________________________________
relu4_5_x1 (Activation)         (None, 4, 4, 384)    0           conv4_5_x1_scale[0][0]           
__________________________________________________________________________________________________
conv4_5_x1 (Conv2D)             (None, 4, 4, 128)    49152       relu4_5_x1[0][0]                 
__________________________________________________________________________________________________
conv4_5_x2_bn (BatchNormalizati (None, 4, 4, 128)    512         conv4_5_x1[0][0]                 
__________________________________________________________________________________________________
conv4_5_x2_scale (Scale)        (None, 4, 4, 128)    256         conv4_5_x2_bn[0][0]              
__________________________________________________________________________________________________
relu4_5_x2 (Activation)         (None, 4, 4, 128)    0           conv4_5_x2_scale[0][0]           
__________________________________________________________________________________________________
conv4_5_x2_zeropadding (ZeroPad (None, 6, 6, 128)    0           relu4_5_x2[0][0]                 
__________________________________________________________________________________________________
conv4_5_x2 (Conv2D)             (None, 4, 4, 32)     36864       conv4_5_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_4_5 (Merge)              (None, 4, 4, 416)    0           concat_4_4[0][0]                 
                                                                 conv4_5_x2[0][0]                 
__________________________________________________________________________________________________
conv4_6_x1_bn (BatchNormalizati (None, 4, 4, 416)    1664        concat_4_5[0][0]                 
__________________________________________________________________________________________________
conv4_6_x1_scale (Scale)        (None, 4, 4, 416)    832         conv4_6_x1_bn[0][0]              
__________________________________________________________________________________________________
relu4_6_x1 (Activation)         (None, 4, 4, 416)    0           conv4_6_x1_scale[0][0]           
__________________________________________________________________________________________________
conv4_6_x1 (Conv2D)             (None, 4, 4, 128)    53248       relu4_6_x1[0][0]                 
__________________________________________________________________________________________________
conv4_6_x2_bn (BatchNormalizati (None, 4, 4, 128)    512         conv4_6_x1[0][0]                 
__________________________________________________________________________________________________
conv4_6_x2_scale (Scale)        (None, 4, 4, 128)    256         conv4_6_x2_bn[0][0]              
__________________________________________________________________________________________________
relu4_6_x2 (Activation)         (None, 4, 4, 128)    0           conv4_6_x2_scale[0][0]           
__________________________________________________________________________________________________
conv4_6_x2_zeropadding (ZeroPad (None, 6, 6, 128)    0           relu4_6_x2[0][0]                 
__________________________________________________________________________________________________
conv4_6_x2 (Conv2D)             (None, 4, 4, 32)     36864       conv4_6_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_4_6 (Merge)              (None, 4, 4, 448)    0           concat_4_5[0][0]                 
                                                                 conv4_6_x2[0][0]                 
__________________________________________________________________________________________________
conv4_7_x1_bn (BatchNormalizati (None, 4, 4, 448)    1792        concat_4_6[0][0]                 
__________________________________________________________________________________________________
conv4_7_x1_scale (Scale)        (None, 4, 4, 448)    896         conv4_7_x1_bn[0][0]              
__________________________________________________________________________________________________
relu4_7_x1 (Activation)         (None, 4, 4, 448)    0           conv4_7_x1_scale[0][0]           
__________________________________________________________________________________________________
conv4_7_x1 (Conv2D)             (None, 4, 4, 128)    57344       relu4_7_x1[0][0]                 
__________________________________________________________________________________________________
conv4_7_x2_bn (BatchNormalizati (None, 4, 4, 128)    512         conv4_7_x1[0][0]                 
__________________________________________________________________________________________________
conv4_7_x2_scale (Scale)        (None, 4, 4, 128)    256         conv4_7_x2_bn[0][0]              
__________________________________________________________________________________________________
relu4_7_x2 (Activation)         (None, 4, 4, 128)    0           conv4_7_x2_scale[0][0]           
__________________________________________________________________________________________________
conv4_7_x2_zeropadding (ZeroPad (None, 6, 6, 128)    0           relu4_7_x2[0][0]                 
__________________________________________________________________________________________________
conv4_7_x2 (Conv2D)             (None, 4, 4, 32)     36864       conv4_7_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_4_7 (Merge)              (None, 4, 4, 480)    0           concat_4_6[0][0]                 
                                                                 conv4_7_x2[0][0]                 
__________________________________________________________________________________________________
conv4_8_x1_bn (BatchNormalizati (None, 4, 4, 480)    1920        concat_4_7[0][0]                 
__________________________________________________________________________________________________
conv4_8_x1_scale (Scale)        (None, 4, 4, 480)    960         conv4_8_x1_bn[0][0]              
__________________________________________________________________________________________________
relu4_8_x1 (Activation)         (None, 4, 4, 480)    0           conv4_8_x1_scale[0][0]           
__________________________________________________________________________________________________
conv4_8_x1 (Conv2D)             (None, 4, 4, 128)    61440       relu4_8_x1[0][0]                 
__________________________________________________________________________________________________
conv4_8_x2_bn (BatchNormalizati (None, 4, 4, 128)    512         conv4_8_x1[0][0]                 
__________________________________________________________________________________________________
conv4_8_x2_scale (Scale)        (None, 4, 4, 128)    256         conv4_8_x2_bn[0][0]              
__________________________________________________________________________________________________
relu4_8_x2 (Activation)         (None, 4, 4, 128)    0           conv4_8_x2_scale[0][0]           
__________________________________________________________________________________________________
conv4_8_x2_zeropadding (ZeroPad (None, 6, 6, 128)    0           relu4_8_x2[0][0]                 
__________________________________________________________________________________________________
conv4_8_x2 (Conv2D)             (None, 4, 4, 32)     36864       conv4_8_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_4_8 (Merge)              (None, 4, 4, 512)    0           concat_4_7[0][0]                 
                                                                 conv4_8_x2[0][0]                 
__________________________________________________________________________________________________
conv4_9_x1_bn (BatchNormalizati (None, 4, 4, 512)    2048        concat_4_8[0][0]                 
__________________________________________________________________________________________________
conv4_9_x1_scale (Scale)        (None, 4, 4, 512)    1024        conv4_9_x1_bn[0][0]              
__________________________________________________________________________________________________
relu4_9_x1 (Activation)         (None, 4, 4, 512)    0           conv4_9_x1_scale[0][0]           
__________________________________________________________________________________________________
conv4_9_x1 (Conv2D)             (None, 4, 4, 128)    65536       relu4_9_x1[0][0]                 
__________________________________________________________________________________________________
conv4_9_x2_bn (BatchNormalizati (None, 4, 4, 128)    512         conv4_9_x1[0][0]                 
__________________________________________________________________________________________________
conv4_9_x2_scale (Scale)        (None, 4, 4, 128)    256         conv4_9_x2_bn[0][0]              
__________________________________________________________________________________________________
relu4_9_x2 (Activation)         (None, 4, 4, 128)    0           conv4_9_x2_scale[0][0]           
__________________________________________________________________________________________________
conv4_9_x2_zeropadding (ZeroPad (None, 6, 6, 128)    0           relu4_9_x2[0][0]                 
__________________________________________________________________________________________________
conv4_9_x2 (Conv2D)             (None, 4, 4, 32)     36864       conv4_9_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_4_9 (Merge)              (None, 4, 4, 544)    0           concat_4_8[0][0]                 
                                                                 conv4_9_x2[0][0]                 
__________________________________________________________________________________________________
conv4_10_x1_bn (BatchNormalizat (None, 4, 4, 544)    2176        concat_4_9[0][0]                 
__________________________________________________________________________________________________
conv4_10_x1_scale (Scale)       (None, 4, 4, 544)    1088        conv4_10_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_10_x1 (Activation)        (None, 4, 4, 544)    0           conv4_10_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_10_x1 (Conv2D)            (None, 4, 4, 128)    69632       relu4_10_x1[0][0]                
__________________________________________________________________________________________________
conv4_10_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_10_x1[0][0]                
__________________________________________________________________________________________________
conv4_10_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_10_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_10_x2 (Activation)        (None, 4, 4, 128)    0           conv4_10_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_10_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_10_x2[0][0]                
__________________________________________________________________________________________________
conv4_10_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_10_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_10 (Merge)             (None, 4, 4, 576)    0           concat_4_9[0][0]                 
                                                                 conv4_10_x2[0][0]                
__________________________________________________________________________________________________
conv4_11_x1_bn (BatchNormalizat (None, 4, 4, 576)    2304        concat_4_10[0][0]                
__________________________________________________________________________________________________
conv4_11_x1_scale (Scale)       (None, 4, 4, 576)    1152        conv4_11_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_11_x1 (Activation)        (None, 4, 4, 576)    0           conv4_11_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_11_x1 (Conv2D)            (None, 4, 4, 128)    73728       relu4_11_x1[0][0]                
__________________________________________________________________________________________________
conv4_11_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_11_x1[0][0]                
__________________________________________________________________________________________________
conv4_11_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_11_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_11_x2 (Activation)        (None, 4, 4, 128)    0           conv4_11_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_11_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_11_x2[0][0]                
__________________________________________________________________________________________________
conv4_11_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_11_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_11 (Merge)             (None, 4, 4, 608)    0           concat_4_10[0][0]                
                                                                 conv4_11_x2[0][0]                
__________________________________________________________________________________________________
conv4_12_x1_bn (BatchNormalizat (None, 4, 4, 608)    2432        concat_4_11[0][0]                
__________________________________________________________________________________________________
conv4_12_x1_scale (Scale)       (None, 4, 4, 608)    1216        conv4_12_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_12_x1 (Activation)        (None, 4, 4, 608)    0           conv4_12_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_12_x1 (Conv2D)            (None, 4, 4, 128)    77824       relu4_12_x1[0][0]                
__________________________________________________________________________________________________
conv4_12_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_12_x1[0][0]                
__________________________________________________________________________________________________
conv4_12_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_12_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_12_x2 (Activation)        (None, 4, 4, 128)    0           conv4_12_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_12_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_12_x2[0][0]                
__________________________________________________________________________________________________
conv4_12_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_12_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_12 (Merge)             (None, 4, 4, 640)    0           concat_4_11[0][0]                
                                                                 conv4_12_x2[0][0]                
__________________________________________________________________________________________________
conv4_13_x1_bn (BatchNormalizat (None, 4, 4, 640)    2560        concat_4_12[0][0]                
__________________________________________________________________________________________________
conv4_13_x1_scale (Scale)       (None, 4, 4, 640)    1280        conv4_13_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_13_x1 (Activation)        (None, 4, 4, 640)    0           conv4_13_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_13_x1 (Conv2D)            (None, 4, 4, 128)    81920       relu4_13_x1[0][0]                
__________________________________________________________________________________________________
conv4_13_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_13_x1[0][0]                
__________________________________________________________________________________________________
conv4_13_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_13_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_13_x2 (Activation)        (None, 4, 4, 128)    0           conv4_13_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_13_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_13_x2[0][0]                
__________________________________________________________________________________________________
conv4_13_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_13_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_13 (Merge)             (None, 4, 4, 672)    0           concat_4_12[0][0]                
                                                                 conv4_13_x2[0][0]                
__________________________________________________________________________________________________
conv4_14_x1_bn (BatchNormalizat (None, 4, 4, 672)    2688        concat_4_13[0][0]                
__________________________________________________________________________________________________
conv4_14_x1_scale (Scale)       (None, 4, 4, 672)    1344        conv4_14_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_14_x1 (Activation)        (None, 4, 4, 672)    0           conv4_14_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_14_x1 (Conv2D)            (None, 4, 4, 128)    86016       relu4_14_x1[0][0]                
__________________________________________________________________________________________________
conv4_14_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_14_x1[0][0]                
__________________________________________________________________________________________________
conv4_14_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_14_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_14_x2 (Activation)        (None, 4, 4, 128)    0           conv4_14_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_14_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_14_x2[0][0]                
__________________________________________________________________________________________________
conv4_14_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_14_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_14 (Merge)             (None, 4, 4, 704)    0           concat_4_13[0][0]                
                                                                 conv4_14_x2[0][0]                
__________________________________________________________________________________________________
conv4_15_x1_bn (BatchNormalizat (None, 4, 4, 704)    2816        concat_4_14[0][0]                
__________________________________________________________________________________________________
conv4_15_x1_scale (Scale)       (None, 4, 4, 704)    1408        conv4_15_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_15_x1 (Activation)        (None, 4, 4, 704)    0           conv4_15_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_15_x1 (Conv2D)            (None, 4, 4, 128)    90112       relu4_15_x1[0][0]                
__________________________________________________________________________________________________
conv4_15_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_15_x1[0][0]                
__________________________________________________________________________________________________
conv4_15_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_15_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_15_x2 (Activation)        (None, 4, 4, 128)    0           conv4_15_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_15_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_15_x2[0][0]                
__________________________________________________________________________________________________
conv4_15_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_15_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_15 (Merge)             (None, 4, 4, 736)    0           concat_4_14[0][0]                
                                                                 conv4_15_x2[0][0]                
__________________________________________________________________________________________________
conv4_16_x1_bn (BatchNormalizat (None, 4, 4, 736)    2944        concat_4_15[0][0]                
__________________________________________________________________________________________________
conv4_16_x1_scale (Scale)       (None, 4, 4, 736)    1472        conv4_16_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_16_x1 (Activation)        (None, 4, 4, 736)    0           conv4_16_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_16_x1 (Conv2D)            (None, 4, 4, 128)    94208       relu4_16_x1[0][0]                
__________________________________________________________________________________________________
conv4_16_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_16_x1[0][0]                
__________________________________________________________________________________________________
conv4_16_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_16_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_16_x2 (Activation)        (None, 4, 4, 128)    0           conv4_16_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_16_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_16_x2[0][0]                
__________________________________________________________________________________________________
conv4_16_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_16_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_16 (Merge)             (None, 4, 4, 768)    0           concat_4_15[0][0]                
                                                                 conv4_16_x2[0][0]                
__________________________________________________________________________________________________
conv4_17_x1_bn (BatchNormalizat (None, 4, 4, 768)    3072        concat_4_16[0][0]                
__________________________________________________________________________________________________
conv4_17_x1_scale (Scale)       (None, 4, 4, 768)    1536        conv4_17_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_17_x1 (Activation)        (None, 4, 4, 768)    0           conv4_17_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_17_x1 (Conv2D)            (None, 4, 4, 128)    98304       relu4_17_x1[0][0]                
__________________________________________________________________________________________________
conv4_17_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_17_x1[0][0]                
__________________________________________________________________________________________________
conv4_17_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_17_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_17_x2 (Activation)        (None, 4, 4, 128)    0           conv4_17_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_17_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_17_x2[0][0]                
__________________________________________________________________________________________________
conv4_17_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_17_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_17 (Merge)             (None, 4, 4, 800)    0           concat_4_16[0][0]                
                                                                 conv4_17_x2[0][0]                
__________________________________________________________________________________________________
conv4_18_x1_bn (BatchNormalizat (None, 4, 4, 800)    3200        concat_4_17[0][0]                
__________________________________________________________________________________________________
conv4_18_x1_scale (Scale)       (None, 4, 4, 800)    1600        conv4_18_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_18_x1 (Activation)        (None, 4, 4, 800)    0           conv4_18_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_18_x1 (Conv2D)            (None, 4, 4, 128)    102400      relu4_18_x1[0][0]                
__________________________________________________________________________________________________
conv4_18_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_18_x1[0][0]                
__________________________________________________________________________________________________
conv4_18_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_18_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_18_x2 (Activation)        (None, 4, 4, 128)    0           conv4_18_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_18_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_18_x2[0][0]                
__________________________________________________________________________________________________
conv4_18_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_18_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_18 (Merge)             (None, 4, 4, 832)    0           concat_4_17[0][0]                
                                                                 conv4_18_x2[0][0]                
__________________________________________________________________________________________________
conv4_19_x1_bn (BatchNormalizat (None, 4, 4, 832)    3328        concat_4_18[0][0]                
__________________________________________________________________________________________________
conv4_19_x1_scale (Scale)       (None, 4, 4, 832)    1664        conv4_19_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_19_x1 (Activation)        (None, 4, 4, 832)    0           conv4_19_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_19_x1 (Conv2D)            (None, 4, 4, 128)    106496      relu4_19_x1[0][0]                
__________________________________________________________________________________________________
conv4_19_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_19_x1[0][0]                
__________________________________________________________________________________________________
conv4_19_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_19_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_19_x2 (Activation)        (None, 4, 4, 128)    0           conv4_19_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_19_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_19_x2[0][0]                
__________________________________________________________________________________________________
conv4_19_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_19_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_19 (Merge)             (None, 4, 4, 864)    0           concat_4_18[0][0]                
                                                                 conv4_19_x2[0][0]                
__________________________________________________________________________________________________
conv4_20_x1_bn (BatchNormalizat (None, 4, 4, 864)    3456        concat_4_19[0][0]                
__________________________________________________________________________________________________
conv4_20_x1_scale (Scale)       (None, 4, 4, 864)    1728        conv4_20_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_20_x1 (Activation)        (None, 4, 4, 864)    0           conv4_20_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_20_x1 (Conv2D)            (None, 4, 4, 128)    110592      relu4_20_x1[0][0]                
__________________________________________________________________________________________________
conv4_20_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_20_x1[0][0]                
__________________________________________________________________________________________________
conv4_20_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_20_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_20_x2 (Activation)        (None, 4, 4, 128)    0           conv4_20_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_20_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_20_x2[0][0]                
__________________________________________________________________________________________________
conv4_20_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_20_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_20 (Merge)             (None, 4, 4, 896)    0           concat_4_19[0][0]                
                                                                 conv4_20_x2[0][0]                
__________________________________________________________________________________________________
conv4_21_x1_bn (BatchNormalizat (None, 4, 4, 896)    3584        concat_4_20[0][0]                
__________________________________________________________________________________________________
conv4_21_x1_scale (Scale)       (None, 4, 4, 896)    1792        conv4_21_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_21_x1 (Activation)        (None, 4, 4, 896)    0           conv4_21_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_21_x1 (Conv2D)            (None, 4, 4, 128)    114688      relu4_21_x1[0][0]                
__________________________________________________________________________________________________
conv4_21_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_21_x1[0][0]                
__________________________________________________________________________________________________
conv4_21_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_21_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_21_x2 (Activation)        (None, 4, 4, 128)    0           conv4_21_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_21_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_21_x2[0][0]                
__________________________________________________________________________________________________
conv4_21_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_21_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_21 (Merge)             (None, 4, 4, 928)    0           concat_4_20[0][0]                
                                                                 conv4_21_x2[0][0]                
__________________________________________________________________________________________________
conv4_22_x1_bn (BatchNormalizat (None, 4, 4, 928)    3712        concat_4_21[0][0]                
__________________________________________________________________________________________________
conv4_22_x1_scale (Scale)       (None, 4, 4, 928)    1856        conv4_22_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_22_x1 (Activation)        (None, 4, 4, 928)    0           conv4_22_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_22_x1 (Conv2D)            (None, 4, 4, 128)    118784      relu4_22_x1[0][0]                
__________________________________________________________________________________________________
conv4_22_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_22_x1[0][0]                
__________________________________________________________________________________________________
conv4_22_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_22_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_22_x2 (Activation)        (None, 4, 4, 128)    0           conv4_22_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_22_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_22_x2[0][0]                
__________________________________________________________________________________________________
conv4_22_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_22_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_22 (Merge)             (None, 4, 4, 960)    0           concat_4_21[0][0]                
                                                                 conv4_22_x2[0][0]                
__________________________________________________________________________________________________
conv4_23_x1_bn (BatchNormalizat (None, 4, 4, 960)    3840        concat_4_22[0][0]                
__________________________________________________________________________________________________
conv4_23_x1_scale (Scale)       (None, 4, 4, 960)    1920        conv4_23_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_23_x1 (Activation)        (None, 4, 4, 960)    0           conv4_23_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_23_x1 (Conv2D)            (None, 4, 4, 128)    122880      relu4_23_x1[0][0]                
__________________________________________________________________________________________________
conv4_23_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_23_x1[0][0]                
__________________________________________________________________________________________________
conv4_23_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_23_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_23_x2 (Activation)        (None, 4, 4, 128)    0           conv4_23_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_23_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_23_x2[0][0]                
__________________________________________________________________________________________________
conv4_23_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_23_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_23 (Merge)             (None, 4, 4, 992)    0           concat_4_22[0][0]                
                                                                 conv4_23_x2[0][0]                
__________________________________________________________________________________________________
conv4_24_x1_bn (BatchNormalizat (None, 4, 4, 992)    3968        concat_4_23[0][0]                
__________________________________________________________________________________________________
conv4_24_x1_scale (Scale)       (None, 4, 4, 992)    1984        conv4_24_x1_bn[0][0]             
__________________________________________________________________________________________________
relu4_24_x1 (Activation)        (None, 4, 4, 992)    0           conv4_24_x1_scale[0][0]          
__________________________________________________________________________________________________
conv4_24_x1 (Conv2D)            (None, 4, 4, 128)    126976      relu4_24_x1[0][0]                
__________________________________________________________________________________________________
conv4_24_x2_bn (BatchNormalizat (None, 4, 4, 128)    512         conv4_24_x1[0][0]                
__________________________________________________________________________________________________
conv4_24_x2_scale (Scale)       (None, 4, 4, 128)    256         conv4_24_x2_bn[0][0]             
__________________________________________________________________________________________________
relu4_24_x2 (Activation)        (None, 4, 4, 128)    0           conv4_24_x2_scale[0][0]          
__________________________________________________________________________________________________
conv4_24_x2_zeropadding (ZeroPa (None, 6, 6, 128)    0           relu4_24_x2[0][0]                
__________________________________________________________________________________________________
conv4_24_x2 (Conv2D)            (None, 4, 4, 32)     36864       conv4_24_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_4_24 (Merge)             (None, 4, 4, 1024)   0           concat_4_23[0][0]                
                                                                 conv4_24_x2[0][0]                
__________________________________________________________________________________________________
conv4_blk_bn (BatchNormalizatio (None, 4, 4, 1024)   4096        concat_4_24[0][0]                
__________________________________________________________________________________________________
conv4_blk_scale (Scale)         (None, 4, 4, 1024)   2048        conv4_blk_bn[0][0]               
__________________________________________________________________________________________________
relu4_blk (Activation)          (None, 4, 4, 1024)   0           conv4_blk_scale[0][0]            
__________________________________________________________________________________________________
conv4_blk (Conv2D)              (None, 4, 4, 512)    524288      relu4_blk[0][0]                  
__________________________________________________________________________________________________
pool4 (AveragePooling2D)        (None, 2, 2, 512)    0           conv4_blk[0][0]                  
__________________________________________________________________________________________________
conv5_1_x1_bn (BatchNormalizati (None, 2, 2, 512)    2048        pool4[0][0]                      
__________________________________________________________________________________________________
conv5_1_x1_scale (Scale)        (None, 2, 2, 512)    1024        conv5_1_x1_bn[0][0]              
__________________________________________________________________________________________________
relu5_1_x1 (Activation)         (None, 2, 2, 512)    0           conv5_1_x1_scale[0][0]           
__________________________________________________________________________________________________
conv5_1_x1 (Conv2D)             (None, 2, 2, 128)    65536       relu5_1_x1[0][0]                 
__________________________________________________________________________________________________
conv5_1_x2_bn (BatchNormalizati (None, 2, 2, 128)    512         conv5_1_x1[0][0]                 
__________________________________________________________________________________________________
conv5_1_x2_scale (Scale)        (None, 2, 2, 128)    256         conv5_1_x2_bn[0][0]              
__________________________________________________________________________________________________
relu5_1_x2 (Activation)         (None, 2, 2, 128)    0           conv5_1_x2_scale[0][0]           
__________________________________________________________________________________________________
conv5_1_x2_zeropadding (ZeroPad (None, 4, 4, 128)    0           relu5_1_x2[0][0]                 
__________________________________________________________________________________________________
conv5_1_x2 (Conv2D)             (None, 2, 2, 32)     36864       conv5_1_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_5_1 (Merge)              (None, 2, 2, 544)    0           pool4[0][0]                      
                                                                 conv5_1_x2[0][0]                 
__________________________________________________________________________________________________
conv5_2_x1_bn (BatchNormalizati (None, 2, 2, 544)    2176        concat_5_1[0][0]                 
__________________________________________________________________________________________________
conv5_2_x1_scale (Scale)        (None, 2, 2, 544)    1088        conv5_2_x1_bn[0][0]              
__________________________________________________________________________________________________
relu5_2_x1 (Activation)         (None, 2, 2, 544)    0           conv5_2_x1_scale[0][0]           
__________________________________________________________________________________________________
conv5_2_x1 (Conv2D)             (None, 2, 2, 128)    69632       relu5_2_x1[0][0]                 
__________________________________________________________________________________________________
conv5_2_x2_bn (BatchNormalizati (None, 2, 2, 128)    512         conv5_2_x1[0][0]                 
__________________________________________________________________________________________________
conv5_2_x2_scale (Scale)        (None, 2, 2, 128)    256         conv5_2_x2_bn[0][0]              
__________________________________________________________________________________________________
relu5_2_x2 (Activation)         (None, 2, 2, 128)    0           conv5_2_x2_scale[0][0]           
__________________________________________________________________________________________________
conv5_2_x2_zeropadding (ZeroPad (None, 4, 4, 128)    0           relu5_2_x2[0][0]                 
__________________________________________________________________________________________________
conv5_2_x2 (Conv2D)             (None, 2, 2, 32)     36864       conv5_2_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_5_2 (Merge)              (None, 2, 2, 576)    0           concat_5_1[0][0]                 
                                                                 conv5_2_x2[0][0]                 
__________________________________________________________________________________________________
conv5_3_x1_bn (BatchNormalizati (None, 2, 2, 576)    2304        concat_5_2[0][0]                 
__________________________________________________________________________________________________
conv5_3_x1_scale (Scale)        (None, 2, 2, 576)    1152        conv5_3_x1_bn[0][0]              
__________________________________________________________________________________________________
relu5_3_x1 (Activation)         (None, 2, 2, 576)    0           conv5_3_x1_scale[0][0]           
__________________________________________________________________________________________________
conv5_3_x1 (Conv2D)             (None, 2, 2, 128)    73728       relu5_3_x1[0][0]                 
__________________________________________________________________________________________________
conv5_3_x2_bn (BatchNormalizati (None, 2, 2, 128)    512         conv5_3_x1[0][0]                 
__________________________________________________________________________________________________
conv5_3_x2_scale (Scale)        (None, 2, 2, 128)    256         conv5_3_x2_bn[0][0]              
__________________________________________________________________________________________________
relu5_3_x2 (Activation)         (None, 2, 2, 128)    0           conv5_3_x2_scale[0][0]           
__________________________________________________________________________________________________
conv5_3_x2_zeropadding (ZeroPad (None, 4, 4, 128)    0           relu5_3_x2[0][0]                 
__________________________________________________________________________________________________
conv5_3_x2 (Conv2D)             (None, 2, 2, 32)     36864       conv5_3_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_5_3 (Merge)              (None, 2, 2, 608)    0           concat_5_2[0][0]                 
                                                                 conv5_3_x2[0][0]                 
__________________________________________________________________________________________________
conv5_4_x1_bn (BatchNormalizati (None, 2, 2, 608)    2432        concat_5_3[0][0]                 
__________________________________________________________________________________________________
conv5_4_x1_scale (Scale)        (None, 2, 2, 608)    1216        conv5_4_x1_bn[0][0]              
__________________________________________________________________________________________________
relu5_4_x1 (Activation)         (None, 2, 2, 608)    0           conv5_4_x1_scale[0][0]           
__________________________________________________________________________________________________
conv5_4_x1 (Conv2D)             (None, 2, 2, 128)    77824       relu5_4_x1[0][0]                 
__________________________________________________________________________________________________
conv5_4_x2_bn (BatchNormalizati (None, 2, 2, 128)    512         conv5_4_x1[0][0]                 
__________________________________________________________________________________________________
conv5_4_x2_scale (Scale)        (None, 2, 2, 128)    256         conv5_4_x2_bn[0][0]              
__________________________________________________________________________________________________
relu5_4_x2 (Activation)         (None, 2, 2, 128)    0           conv5_4_x2_scale[0][0]           
__________________________________________________________________________________________________
conv5_4_x2_zeropadding (ZeroPad (None, 4, 4, 128)    0           relu5_4_x2[0][0]                 
__________________________________________________________________________________________________
conv5_4_x2 (Conv2D)             (None, 2, 2, 32)     36864       conv5_4_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_5_4 (Merge)              (None, 2, 2, 640)    0           concat_5_3[0][0]                 
                                                                 conv5_4_x2[0][0]                 
__________________________________________________________________________________________________
conv5_5_x1_bn (BatchNormalizati (None, 2, 2, 640)    2560        concat_5_4[0][0]                 
__________________________________________________________________________________________________
conv5_5_x1_scale (Scale)        (None, 2, 2, 640)    1280        conv5_5_x1_bn[0][0]              
__________________________________________________________________________________________________
relu5_5_x1 (Activation)         (None, 2, 2, 640)    0           conv5_5_x1_scale[0][0]           
__________________________________________________________________________________________________
conv5_5_x1 (Conv2D)             (None, 2, 2, 128)    81920       relu5_5_x1[0][0]                 
__________________________________________________________________________________________________
conv5_5_x2_bn (BatchNormalizati (None, 2, 2, 128)    512         conv5_5_x1[0][0]                 
__________________________________________________________________________________________________
conv5_5_x2_scale (Scale)        (None, 2, 2, 128)    256         conv5_5_x2_bn[0][0]              
__________________________________________________________________________________________________
relu5_5_x2 (Activation)         (None, 2, 2, 128)    0           conv5_5_x2_scale[0][0]           
__________________________________________________________________________________________________
conv5_5_x2_zeropadding (ZeroPad (None, 4, 4, 128)    0           relu5_5_x2[0][0]                 
__________________________________________________________________________________________________
conv5_5_x2 (Conv2D)             (None, 2, 2, 32)     36864       conv5_5_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_5_5 (Merge)              (None, 2, 2, 672)    0           concat_5_4[0][0]                 
                                                                 conv5_5_x2[0][0]                 
__________________________________________________________________________________________________
conv5_6_x1_bn (BatchNormalizati (None, 2, 2, 672)    2688        concat_5_5[0][0]                 
__________________________________________________________________________________________________
conv5_6_x1_scale (Scale)        (None, 2, 2, 672)    1344        conv5_6_x1_bn[0][0]              
__________________________________________________________________________________________________
relu5_6_x1 (Activation)         (None, 2, 2, 672)    0           conv5_6_x1_scale[0][0]           
__________________________________________________________________________________________________
conv5_6_x1 (Conv2D)             (None, 2, 2, 128)    86016       relu5_6_x1[0][0]                 
__________________________________________________________________________________________________
conv5_6_x2_bn (BatchNormalizati (None, 2, 2, 128)    512         conv5_6_x1[0][0]                 
__________________________________________________________________________________________________
conv5_6_x2_scale (Scale)        (None, 2, 2, 128)    256         conv5_6_x2_bn[0][0]              
__________________________________________________________________________________________________
relu5_6_x2 (Activation)         (None, 2, 2, 128)    0           conv5_6_x2_scale[0][0]           
__________________________________________________________________________________________________
conv5_6_x2_zeropadding (ZeroPad (None, 4, 4, 128)    0           relu5_6_x2[0][0]                 
__________________________________________________________________________________________________
conv5_6_x2 (Conv2D)             (None, 2, 2, 32)     36864       conv5_6_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_5_6 (Merge)              (None, 2, 2, 704)    0           concat_5_5[0][0]                 
                                                                 conv5_6_x2[0][0]                 
__________________________________________________________________________________________________
conv5_7_x1_bn (BatchNormalizati (None, 2, 2, 704)    2816        concat_5_6[0][0]                 
__________________________________________________________________________________________________
conv5_7_x1_scale (Scale)        (None, 2, 2, 704)    1408        conv5_7_x1_bn[0][0]              
__________________________________________________________________________________________________
relu5_7_x1 (Activation)         (None, 2, 2, 704)    0           conv5_7_x1_scale[0][0]           
__________________________________________________________________________________________________
conv5_7_x1 (Conv2D)             (None, 2, 2, 128)    90112       relu5_7_x1[0][0]                 
__________________________________________________________________________________________________
conv5_7_x2_bn (BatchNormalizati (None, 2, 2, 128)    512         conv5_7_x1[0][0]                 
__________________________________________________________________________________________________
conv5_7_x2_scale (Scale)        (None, 2, 2, 128)    256         conv5_7_x2_bn[0][0]              
__________________________________________________________________________________________________
relu5_7_x2 (Activation)         (None, 2, 2, 128)    0           conv5_7_x2_scale[0][0]           
__________________________________________________________________________________________________
conv5_7_x2_zeropadding (ZeroPad (None, 4, 4, 128)    0           relu5_7_x2[0][0]                 
__________________________________________________________________________________________________
conv5_7_x2 (Conv2D)             (None, 2, 2, 32)     36864       conv5_7_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_5_7 (Merge)              (None, 2, 2, 736)    0           concat_5_6[0][0]                 
                                                                 conv5_7_x2[0][0]                 
__________________________________________________________________________________________________
conv5_8_x1_bn (BatchNormalizati (None, 2, 2, 736)    2944        concat_5_7[0][0]                 
__________________________________________________________________________________________________
conv5_8_x1_scale (Scale)        (None, 2, 2, 736)    1472        conv5_8_x1_bn[0][0]              
__________________________________________________________________________________________________
relu5_8_x1 (Activation)         (None, 2, 2, 736)    0           conv5_8_x1_scale[0][0]           
__________________________________________________________________________________________________
conv5_8_x1 (Conv2D)             (None, 2, 2, 128)    94208       relu5_8_x1[0][0]                 
__________________________________________________________________________________________________
conv5_8_x2_bn (BatchNormalizati (None, 2, 2, 128)    512         conv5_8_x1[0][0]                 
__________________________________________________________________________________________________
conv5_8_x2_scale (Scale)        (None, 2, 2, 128)    256         conv5_8_x2_bn[0][0]              
__________________________________________________________________________________________________
relu5_8_x2 (Activation)         (None, 2, 2, 128)    0           conv5_8_x2_scale[0][0]           
__________________________________________________________________________________________________
conv5_8_x2_zeropadding (ZeroPad (None, 4, 4, 128)    0           relu5_8_x2[0][0]                 
__________________________________________________________________________________________________
conv5_8_x2 (Conv2D)             (None, 2, 2, 32)     36864       conv5_8_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_5_8 (Merge)              (None, 2, 2, 768)    0           concat_5_7[0][0]                 
                                                                 conv5_8_x2[0][0]                 
__________________________________________________________________________________________________
conv5_9_x1_bn (BatchNormalizati (None, 2, 2, 768)    3072        concat_5_8[0][0]                 
__________________________________________________________________________________________________
conv5_9_x1_scale (Scale)        (None, 2, 2, 768)    1536        conv5_9_x1_bn[0][0]              
__________________________________________________________________________________________________
relu5_9_x1 (Activation)         (None, 2, 2, 768)    0           conv5_9_x1_scale[0][0]           
__________________________________________________________________________________________________
conv5_9_x1 (Conv2D)             (None, 2, 2, 128)    98304       relu5_9_x1[0][0]                 
__________________________________________________________________________________________________
conv5_9_x2_bn (BatchNormalizati (None, 2, 2, 128)    512         conv5_9_x1[0][0]                 
__________________________________________________________________________________________________
conv5_9_x2_scale (Scale)        (None, 2, 2, 128)    256         conv5_9_x2_bn[0][0]              
__________________________________________________________________________________________________
relu5_9_x2 (Activation)         (None, 2, 2, 128)    0           conv5_9_x2_scale[0][0]           
__________________________________________________________________________________________________
conv5_9_x2_zeropadding (ZeroPad (None, 4, 4, 128)    0           relu5_9_x2[0][0]                 
__________________________________________________________________________________________________
conv5_9_x2 (Conv2D)             (None, 2, 2, 32)     36864       conv5_9_x2_zeropadding[0][0]     
__________________________________________________________________________________________________
concat_5_9 (Merge)              (None, 2, 2, 800)    0           concat_5_8[0][0]                 
                                                                 conv5_9_x2[0][0]                 
__________________________________________________________________________________________________
conv5_10_x1_bn (BatchNormalizat (None, 2, 2, 800)    3200        concat_5_9[0][0]                 
__________________________________________________________________________________________________
conv5_10_x1_scale (Scale)       (None, 2, 2, 800)    1600        conv5_10_x1_bn[0][0]             
__________________________________________________________________________________________________
relu5_10_x1 (Activation)        (None, 2, 2, 800)    0           conv5_10_x1_scale[0][0]          
__________________________________________________________________________________________________
conv5_10_x1 (Conv2D)            (None, 2, 2, 128)    102400      relu5_10_x1[0][0]                
__________________________________________________________________________________________________
conv5_10_x2_bn (BatchNormalizat (None, 2, 2, 128)    512         conv5_10_x1[0][0]                
__________________________________________________________________________________________________
conv5_10_x2_scale (Scale)       (None, 2, 2, 128)    256         conv5_10_x2_bn[0][0]             
__________________________________________________________________________________________________
relu5_10_x2 (Activation)        (None, 2, 2, 128)    0           conv5_10_x2_scale[0][0]          
__________________________________________________________________________________________________
conv5_10_x2_zeropadding (ZeroPa (None, 4, 4, 128)    0           relu5_10_x2[0][0]                
__________________________________________________________________________________________________
conv5_10_x2 (Conv2D)            (None, 2, 2, 32)     36864       conv5_10_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_5_10 (Merge)             (None, 2, 2, 832)    0           concat_5_9[0][0]                 
                                                                 conv5_10_x2[0][0]                
__________________________________________________________________________________________________
conv5_11_x1_bn (BatchNormalizat (None, 2, 2, 832)    3328        concat_5_10[0][0]                
__________________________________________________________________________________________________
conv5_11_x1_scale (Scale)       (None, 2, 2, 832)    1664        conv5_11_x1_bn[0][0]             
__________________________________________________________________________________________________
relu5_11_x1 (Activation)        (None, 2, 2, 832)    0           conv5_11_x1_scale[0][0]          
__________________________________________________________________________________________________
conv5_11_x1 (Conv2D)            (None, 2, 2, 128)    106496      relu5_11_x1[0][0]                
__________________________________________________________________________________________________
conv5_11_x2_bn (BatchNormalizat (None, 2, 2, 128)    512         conv5_11_x1[0][0]                
__________________________________________________________________________________________________
conv5_11_x2_scale (Scale)       (None, 2, 2, 128)    256         conv5_11_x2_bn[0][0]             
__________________________________________________________________________________________________
relu5_11_x2 (Activation)        (None, 2, 2, 128)    0           conv5_11_x2_scale[0][0]          
__________________________________________________________________________________________________
conv5_11_x2_zeropadding (ZeroPa (None, 4, 4, 128)    0           relu5_11_x2[0][0]                
__________________________________________________________________________________________________
conv5_11_x2 (Conv2D)            (None, 2, 2, 32)     36864       conv5_11_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_5_11 (Merge)             (None, 2, 2, 864)    0           concat_5_10[0][0]                
                                                                 conv5_11_x2[0][0]                
__________________________________________________________________________________________________
conv5_12_x1_bn (BatchNormalizat (None, 2, 2, 864)    3456        concat_5_11[0][0]                
__________________________________________________________________________________________________
conv5_12_x1_scale (Scale)       (None, 2, 2, 864)    1728        conv5_12_x1_bn[0][0]             
__________________________________________________________________________________________________
relu5_12_x1 (Activation)        (None, 2, 2, 864)    0           conv5_12_x1_scale[0][0]          
__________________________________________________________________________________________________
conv5_12_x1 (Conv2D)            (None, 2, 2, 128)    110592      relu5_12_x1[0][0]                
__________________________________________________________________________________________________
conv5_12_x2_bn (BatchNormalizat (None, 2, 2, 128)    512         conv5_12_x1[0][0]                
__________________________________________________________________________________________________
conv5_12_x2_scale (Scale)       (None, 2, 2, 128)    256         conv5_12_x2_bn[0][0]             
__________________________________________________________________________________________________
relu5_12_x2 (Activation)        (None, 2, 2, 128)    0           conv5_12_x2_scale[0][0]          
__________________________________________________________________________________________________
conv5_12_x2_zeropadding (ZeroPa (None, 4, 4, 128)    0           relu5_12_x2[0][0]                
__________________________________________________________________________________________________
conv5_12_x2 (Conv2D)            (None, 2, 2, 32)     36864       conv5_12_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_5_12 (Merge)             (None, 2, 2, 896)    0           concat_5_11[0][0]                
                                                                 conv5_12_x2[0][0]                
__________________________________________________________________________________________________
conv5_13_x1_bn (BatchNormalizat (None, 2, 2, 896)    3584        concat_5_12[0][0]                
__________________________________________________________________________________________________
conv5_13_x1_scale (Scale)       (None, 2, 2, 896)    1792        conv5_13_x1_bn[0][0]             
__________________________________________________________________________________________________
relu5_13_x1 (Activation)        (None, 2, 2, 896)    0           conv5_13_x1_scale[0][0]          
__________________________________________________________________________________________________
conv5_13_x1 (Conv2D)            (None, 2, 2, 128)    114688      relu5_13_x1[0][0]                
__________________________________________________________________________________________________
conv5_13_x2_bn (BatchNormalizat (None, 2, 2, 128)    512         conv5_13_x1[0][0]                
__________________________________________________________________________________________________
conv5_13_x2_scale (Scale)       (None, 2, 2, 128)    256         conv5_13_x2_bn[0][0]             
__________________________________________________________________________________________________
relu5_13_x2 (Activation)        (None, 2, 2, 128)    0           conv5_13_x2_scale[0][0]          
__________________________________________________________________________________________________
conv5_13_x2_zeropadding (ZeroPa (None, 4, 4, 128)    0           relu5_13_x2[0][0]                
__________________________________________________________________________________________________
conv5_13_x2 (Conv2D)            (None, 2, 2, 32)     36864       conv5_13_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_5_13 (Merge)             (None, 2, 2, 928)    0           concat_5_12[0][0]                
                                                                 conv5_13_x2[0][0]                
__________________________________________________________________________________________________
conv5_14_x1_bn (BatchNormalizat (None, 2, 2, 928)    3712        concat_5_13[0][0]                
__________________________________________________________________________________________________
conv5_14_x1_scale (Scale)       (None, 2, 2, 928)    1856        conv5_14_x1_bn[0][0]             
__________________________________________________________________________________________________
relu5_14_x1 (Activation)        (None, 2, 2, 928)    0           conv5_14_x1_scale[0][0]          
__________________________________________________________________________________________________
conv5_14_x1 (Conv2D)            (None, 2, 2, 128)    118784      relu5_14_x1[0][0]                
__________________________________________________________________________________________________
conv5_14_x2_bn (BatchNormalizat (None, 2, 2, 128)    512         conv5_14_x1[0][0]                
__________________________________________________________________________________________________
conv5_14_x2_scale (Scale)       (None, 2, 2, 128)    256         conv5_14_x2_bn[0][0]             
__________________________________________________________________________________________________
relu5_14_x2 (Activation)        (None, 2, 2, 128)    0           conv5_14_x2_scale[0][0]          
__________________________________________________________________________________________________
conv5_14_x2_zeropadding (ZeroPa (None, 4, 4, 128)    0           relu5_14_x2[0][0]                
__________________________________________________________________________________________________
conv5_14_x2 (Conv2D)            (None, 2, 2, 32)     36864       conv5_14_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_5_14 (Merge)             (None, 2, 2, 960)    0           concat_5_13[0][0]                
                                                                 conv5_14_x2[0][0]                
__________________________________________________________________________________________________
conv5_15_x1_bn (BatchNormalizat (None, 2, 2, 960)    3840        concat_5_14[0][0]                
__________________________________________________________________________________________________
conv5_15_x1_scale (Scale)       (None, 2, 2, 960)    1920        conv5_15_x1_bn[0][0]             
__________________________________________________________________________________________________
relu5_15_x1 (Activation)        (None, 2, 2, 960)    0           conv5_15_x1_scale[0][0]          
__________________________________________________________________________________________________
conv5_15_x1 (Conv2D)            (None, 2, 2, 128)    122880      relu5_15_x1[0][0]                
__________________________________________________________________________________________________
conv5_15_x2_bn (BatchNormalizat (None, 2, 2, 128)    512         conv5_15_x1[0][0]                
__________________________________________________________________________________________________
conv5_15_x2_scale (Scale)       (None, 2, 2, 128)    256         conv5_15_x2_bn[0][0]             
__________________________________________________________________________________________________
relu5_15_x2 (Activation)        (None, 2, 2, 128)    0           conv5_15_x2_scale[0][0]          
__________________________________________________________________________________________________
conv5_15_x2_zeropadding (ZeroPa (None, 4, 4, 128)    0           relu5_15_x2[0][0]                
__________________________________________________________________________________________________
conv5_15_x2 (Conv2D)            (None, 2, 2, 32)     36864       conv5_15_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_5_15 (Merge)             (None, 2, 2, 992)    0           concat_5_14[0][0]                
                                                                 conv5_15_x2[0][0]                
__________________________________________________________________________________________________
conv5_16_x1_bn (BatchNormalizat (None, 2, 2, 992)    3968        concat_5_15[0][0]                
__________________________________________________________________________________________________
conv5_16_x1_scale (Scale)       (None, 2, 2, 992)    1984        conv5_16_x1_bn[0][0]             
__________________________________________________________________________________________________
relu5_16_x1 (Activation)        (None, 2, 2, 992)    0           conv5_16_x1_scale[0][0]          
__________________________________________________________________________________________________
conv5_16_x1 (Conv2D)            (None, 2, 2, 128)    126976      relu5_16_x1[0][0]                
__________________________________________________________________________________________________
conv5_16_x2_bn (BatchNormalizat (None, 2, 2, 128)    512         conv5_16_x1[0][0]                
__________________________________________________________________________________________________
conv5_16_x2_scale (Scale)       (None, 2, 2, 128)    256         conv5_16_x2_bn[0][0]             
__________________________________________________________________________________________________
relu5_16_x2 (Activation)        (None, 2, 2, 128)    0           conv5_16_x2_scale[0][0]          
__________________________________________________________________________________________________
conv5_16_x2_zeropadding (ZeroPa (None, 4, 4, 128)    0           relu5_16_x2[0][0]                
__________________________________________________________________________________________________
conv5_16_x2 (Conv2D)            (None, 2, 2, 32)     36864       conv5_16_x2_zeropadding[0][0]    
__________________________________________________________________________________________________
concat_5_16 (Merge)             (None, 2, 2, 1024)   0           concat_5_15[0][0]                
                                                                 conv5_16_x2[0][0]                
__________________________________________________________________________________________________
conv5_blk_bn (BatchNormalizatio (None, 2, 2, 1024)   4096        concat_5_16[0][0]                
__________________________________________________________________________________________________
conv5_blk_scale (Scale)         (None, 2, 2, 1024)   2048        conv5_blk_bn[0][0]               
__________________________________________________________________________________________________
relu5_blk (Activation)          (None, 2, 2, 1024)   0           conv5_blk_scale[0][0]            
__________________________________________________________________________________________________
pool5 (GlobalAveragePooling2D)  (None, 1024)         0           relu5_blk[0][0]                  
__________________________________________________________________________________________________
fc6 (Dense)                     (None, 68)           69700       pool5[0][0]                      
__________________________________________________________________________________________________
prob (Activation)               (None, 68)           0           fc6[0][0]                        
==================================================================================================
Total params: 7,190,852
Trainable params: 7,107,204
Non-trainable params: 83,648

 

 

Share this

6 thoughts on “Team Cherry. The Kaufland Case. Fast and Accurate Image Classification Architecture for Recognizing Produce in a Real-Life Groceries’ Setting

  1. 1
    votes

    You’ve presented your solution and test results very well. However you shouldn’t just copy the case description as a business understanding. In this section you need to show that you understand what the problem is, who the users of your solution are, and what they expect to see from the system. Good presentation overall and a very interesting article to read. Well done Team Cherry!!

  2. 0
    votes

    Well done! You should have worked more on the final look of the article. Also import the notebook here, so other people can learn from you work, or give you tips how to improve it.

    1. 0
      votes

      Please note that our team had several beginners so here we approached the problem with aim to learn how to train your own network and learn useful tricks on the way. Therefore we start all the way from linear model :). Think of it as 40h intro.

      here is it https://github.com/valanm/datathon2018-kaufland/blob/master/Pipeline.ipynb but we will need to comment on it first.

      Cleaned notebook with only the final model will follow shortly.

      I always make a sample to test and prototype things, and when I am happy I let the model looks at the whole dataset. I like babysitting my models to make them both fast and accurate. This way I can build faster and more accurate models compared to standard pipelines with from tutorials 🙂

  3. 1
    votes

    Very well written article! I especially liked how you detailed the different approaches, even when they didn’t work out eventually. I find this very important and useful information which is often missing in articles.

Leave a Reply