In Part 7.0 of the Transfer Learning series, we discussed the Densenet pre-trained model in depth, so in this series we will implement the aforementioned pre-trained model in Keras. We will implement the pre-trained Densenet model in 4 ways, which we will discuss further in this article. For setting up the Colab notebook it will be advisable to go through the below mentioned Transfer Learning Series article. In part 2 of the Transfer Learning series we discussed how we can set up our environment, below is the link to the article.

Figure.1 Transfer learning

It is also recommended that you review the Densenet article before reading this article which is mentioned below:

In this section we will see how we can implement Densenet as an architecture in Keras. We will use the state-of-the-art Densenet network architecture and train it with our data set from scratch ie. we will not use pre-trained weights in this architecture, the weights will be optimized while training from scratch. The code is explained below:

1.2.1 Dataset

For feature extraction, we will use CIFAR-10 dataset composed of 60K images, 50K for training and 10K for testing/evaluation.

(trainX, trainy), (testX, testy) = tf.keras.datasets.cifar10.load_data()     #Line 1

Line 1: The above snippet is used to import the datasets into a separate variable and labels.

from matplotlib import pyplot   #Line 2
print('Train: X=%s, y=%s' % (trainX.shape, trainy.shape)) #Line 3
print('Test: X=%s, y=%s' % (testX.shape, testy.shape)) #Line 4for i in range(9): #Line 5
# define subplotpyplot.subplot(330 + 1 + i)
#Line 6
# plot raw pixel datapy
plot.imshow(trainX[i], cmap=pyplot.get_cmap('gray'))
#Line 7
# show the figurepy
plot.show() #Line 8

Line 2: This code snippet is used to import the Matplot plotting library.

Row 3 and Row 4: This code snippet is used to display the size of the training and testing dataset as shown below:

Train: X=(50000, 32, 32, 3), y=(50000, 1)
Test: X=(10000, 32, 32, 3), y=(10000, 1)

Line 5 to Line 8: These code snippets are used to display the samples of the dataset as shown below:

Figure 2. Example CIFDAR-10 dataset

If you want to have an idea about the visualization library, please follow the below mentioned series of articles:

trainY=tf.keras.utils.to_categorical(trainy, num_classes=10) #Line 9
testY=tf.keras.utils.to_categorical(testy, num_classes=10) #Line 10

Line 9 and line 10: Since we have 10 classes and labels are numbers from 0 to 9 so we need to hotcode those labels, this was done using these snippets.

1.2.2 Densenet architecture (code)

In this section we will see how we can implement Densenet as an architecture in Keras.

import tensorflow as tf  #Line 1

Line 1: The above snippet is used to import the TensorFlow library we use to implement Keras.

image_input = tf.keras.layers.Input(shape=(32,32, 3))  #Line 2
baseModel = tf.keras.applications.Densenet121(include_top=False,weights=None,input_tensor=image_input) #Line 3
baseModel.summary() #Line 4

Line 2: We have specified the data sets to be of the form (32,32,3), i.e. in the last channel format, where the channel number is 3, the height and width of the images are 32 respectively.

Line 3: We imported the pretrained Densenet with noweight by specifying weights=None, we excluded the dense layer by include_top=False since we need to get the features from the image, although there is an option available to us where we can use a dense layer to get a 1d-tensor of features from that model. we also used line 2 in line 3 to specify the input form of the model by input_tensor=input_image.

Line 4: This snippet is used to show the summary of the Densenet model that will be used to extract a feature from the image shown below.

Model: "densenet121"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_1 (InputLayer) [(None, 224, 224, 3 0 []
)]

zero_padding2d (ZeroPadding2D) (None, 230, 230, 3) 0 ['input_1[0][0]']

conv1/conv (Conv2D) (None, 112, 112, 64 9408 ['zero_padding2d[0][0]']
)

conv1/bn (BatchNormalization) (None, 112, 112, 64 256 ['conv1/conv[0][0]']
)

conv1/relu (Activation) (None, 112, 112, 64 0 ['conv1/bn[0][0]']
)

zero_padding2d_1 (ZeroPadding2 (None, 114, 114, 64 0 ['conv1/relu[0][0]']
D) )

pool1 (MaxPooling2D) (None, 56, 56, 64) 0 ['zero_padding2d_1[0][0]']

conv2_block1_0_bn (BatchNormal (None, 56, 56, 64) 256 ['pool1[0][0]']
ization)

conv2_block1_0_relu (Activatio (None, 56, 56, 64) 0 ['conv2_block1_0_bn[0][0]']
n)

conv2_block1_1_conv (Conv2D) (None, 56, 56, 128) 8192 ['conv2_block1_0_relu[0][0]']

conv2_block1_1_bn (BatchNormal (None, 56, 56, 128) 512 ['conv2_block1_1_conv[0][0]']
ization)

conv2_block1_1_relu (Activatio (None, 56, 56, 128) 0 ['conv2_block1_1_bn[0][0]']
n)

conv2_block1_2_conv (Conv2D) (None, 56, 56, 32) 36864 ['conv2_block1_1_relu[0][0]']

conv2_block1_concat (Concatena (None, 56, 56, 96) 0 ['pool1[0][0]',
te) 'conv2_block1_2_conv[0][0]']

conv2_block2_0_bn (BatchNormal (None, 56, 56, 96) 384 ['conv2_block1_concat[0][0]']
ization)

conv2_block2_0_relu (Activatio (None, 56, 56, 96) 0 ['conv2_block2_0_bn[0][0]']
n)

conv2_block2_1_conv (Conv2D) (None, 56, 56, 128) 12288 ['conv2_block2_0_relu[0][0]']

conv2_block2_1_bn (BatchNormal (None, 56, 56, 128) 512 ['conv2_block2_1_conv[0][0]']
ization)

conv2_block2_1_relu (Activatio (None, 56, 56, 128) 0 ['conv2_block2_1_bn[0][0]']
n)

conv2_block2_2_conv (Conv2D) (None, 56, 56, 32) 36864 ['conv2_block2_1_relu[0][0]']

conv2_block2_concat (Concatena (None, 56, 56, 128) 0 ['conv2_block1_concat[0][0]',
te) 'conv2_block2_2_conv[0][0]']

conv2_block3_0_bn (BatchNormal (None, 56, 56, 128) 512 ['conv2_block2_concat[0][0]']
ization)

conv2_block3_0_relu (Activatio (None, 56, 56, 128) 0 ['conv2_block3_0_bn[0][0]']
n)

conv2_block3_1_conv (Conv2D) (None, 56, 56, 128) 16384 ['conv2_block3_0_relu[0][0]']

conv2_block3_1_bn (BatchNormal (None, 56, 56, 128) 512 ['conv2_block3_1_conv[0][0]']
ization)

conv2_block3_1_relu (Activatio (None, 56, 56, 128) 0 ['conv2_block3_1_bn[0][0]']
n)

conv2_block3_2_conv (Conv2D) (None, 56, 56, 32) 36864 ['conv2_block3_1_relu[0][0]']

conv2_block3_concat (Concatena (None, 56, 56, 160) 0 ['conv2_block2_concat[0][0]',
te) 'conv2_block3_2_conv[0][0]']

conv2_block4_0_bn (BatchNormal (None, 56, 56, 160) 640 ['conv2_block3_concat[0][0]']
ization)

conv2_block4_0_relu (Activatio (None, 56, 56, 160) 0 ['conv2_block4_0_bn[0][0]']
n)

conv2_block4_1_conv (Conv2D) (None, 56, 56, 128) 20480 ['conv2_block4_0_relu[0][0]']

conv2_block4_1_bn (BatchNormal (None, 56, 56, 128) 512 ['conv2_block4_1_conv[0][0]']
ization)

conv2_block4_1_relu (Activatio (None, 56, 56, 128) 0 ['conv2_block4_1_bn[0][0]']
n)

conv2_block4_2_conv (Conv2D) (None, 56, 56, 32) 36864 ['conv2_block4_1_relu[0][0]']

conv2_block4_concat (Concatena (None, 56, 56, 192) 0 ['conv2_block3_concat[0][0]',
te) 'conv2_block4_2_conv[0][0]']

conv2_block5_0_bn (BatchNormal (None, 56, 56, 192) 768 ['conv2_block4_concat[0][0]']
ization)

conv2_block5_0_relu (Activatio (None, 56, 56, 192) 0 ['conv2_block5_0_bn[0][0]']
n)

conv2_block5_1_conv (Conv2D) (None, 56, 56, 128) 24576 ['conv2_block5_0_relu[0][0]']

conv2_block5_1_bn (BatchNormal (None, 56, 56, 128) 512 ['conv2_block5_1_conv[0][0]']
ization)

conv2_block5_1_relu (Activatio (None, 56, 56, 128) 0 ['conv2_block5_1_bn[0][0]']
n)

conv2_block5_2_conv (Conv2D) (None, 56, 56, 32) 36864 ['conv2_block5_1_relu[0][0]']

conv2_block5_concat (Concatena (None, 56, 56, 224) 0 ['conv2_block4_concat[0][0]',
te) 'conv2_block5_2_conv[0][0]']

conv2_block6_0_bn (BatchNormal (None, 56, 56, 224) 896 ['conv2_block5_concat[0][0]']
ization)

conv2_block6_0_relu (Activatio (None, 56, 56, 224) 0 ['conv2_block6_0_bn[0][0]']
n)

conv2_block6_1_conv (Conv2D) (None, 56, 56, 128) 28672 ['conv2_block6_0_relu[0][0]']

conv2_block6_1_bn (BatchNormal (None, 56, 56, 128) 512 ['conv2_block6_1_conv[0][0]']
ization)

conv2_block6_1_relu (Activatio (None, 56, 56, 128) 0 ['conv2_block6_1_bn[0][0]']
n)

conv2_block6_2_conv (Conv2D) (None, 56, 56, 32) 36864 ['conv2_block6_1_relu[0][0]']

conv2_block6_concat (Concatena (None, 56, 56, 256) 0 ['conv2_block5_concat[0][0]',
te) 'conv2_block6_2_conv[0][0]']

pool2_bn (BatchNormalization) (None, 56, 56, 256) 1024 ['conv2_block6_concat[0][0]']

pool2_relu (Activation) (None, 56, 56, 256) 0 ['pool2_bn[0][0]']

pool2_conv (Conv2D) (None, 56, 56, 128) 32768 ['pool2_relu[0][0]']

pool2_pool (AveragePooling2D) (None, 28, 28, 128) 0 ['pool2_conv[0][0]']

conv3_block1_0_bn (BatchNormal (None, 28, 28, 128) 512 ['pool2_pool[0][0]']
ization)

conv3_block1_0_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block1_0_bn[0][0]']
n)

conv3_block1_1_conv (Conv2D) (None, 28, 28, 128) 16384 ['conv3_block1_0_relu[0][0]']

conv3_block1_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block1_1_conv[0][0]']
ization)

conv3_block1_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block1_1_bn[0][0]']
n)

conv3_block1_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block1_1_relu[0][0]']

conv3_block1_concat (Concatena (None, 28, 28, 160) 0 ['pool2_pool[0][0]',
te) 'conv3_block1_2_conv[0][0]']

conv3_block2_0_bn (BatchNormal (None, 28, 28, 160) 640 ['conv3_block1_concat[0][0]']
ization)

conv3_block2_0_relu (Activatio (None, 28, 28, 160) 0 ['conv3_block2_0_bn[0][0]']
n)

conv3_block2_1_conv (Conv2D) (None, 28, 28, 128) 20480 ['conv3_block2_0_relu[0][0]']

conv3_block2_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block2_1_conv[0][0]']
ization)

conv3_block2_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block2_1_bn[0][0]']
n)

conv3_block2_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block2_1_relu[0][0]']

conv3_block2_concat (Concatena (None, 28, 28, 192) 0 ['conv3_block1_concat[0][0]',
te) 'conv3_block2_2_conv[0][0]']

conv3_block3_0_bn (BatchNormal (None, 28, 28, 192) 768 ['conv3_block2_concat[0][0]']
ization)

conv3_block3_0_relu (Activatio (None, 28, 28, 192) 0 ['conv3_block3_0_bn[0][0]']
n)

conv3_block3_1_conv (Conv2D) (None, 28, 28, 128) 24576 ['conv3_block3_0_relu[0][0]']

conv3_block3_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block3_1_conv[0][0]']
ization)

conv3_block3_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block3_1_bn[0][0]']
n)

conv3_block3_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block3_1_relu[0][0]']

conv3_block3_concat (Concatena (None, 28, 28, 224) 0 ['conv3_block2_concat[0][0]',
te) 'conv3_block3_2_conv[0][0]']

conv3_block4_0_bn (BatchNormal (None, 28, 28, 224) 896 ['conv3_block3_concat[0][0]']
ization)

conv3_block4_0_relu (Activatio (None, 28, 28, 224) 0 ['conv3_block4_0_bn[0][0]']
n)

conv3_block4_1_conv (Conv2D) (None, 28, 28, 128) 28672 ['conv3_block4_0_relu[0][0]']

conv3_block4_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block4_1_conv[0][0]']
ization)

conv3_block4_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block4_1_bn[0][0]']
n)

conv3_block4_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block4_1_relu[0][0]']

conv3_block4_concat (Concatena (None, 28, 28, 256) 0 ['conv3_block3_concat[0][0]',
te) 'conv3_block4_2_conv[0][0]']

conv3_block5_0_bn (BatchNormal (None, 28, 28, 256) 1024 ['conv3_block4_concat[0][0]']
ization)

conv3_block5_0_relu (Activatio (None, 28, 28, 256) 0 ['conv3_block5_0_bn[0][0]']
n)

conv3_block5_1_conv (Conv2D) (None, 28, 28, 128) 32768 ['conv3_block5_0_relu[0][0]']

conv3_block5_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block5_1_conv[0][0]']
ization)

conv3_block5_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block5_1_bn[0][0]']
n)

conv3_block5_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block5_1_relu[0][0]']

conv3_block5_concat (Concatena (None, 28, 28, 288) 0 ['conv3_block4_concat[0][0]',
te) 'conv3_block5_2_conv[0][0]']

conv3_block6_0_bn (BatchNormal (None, 28, 28, 288) 1152 ['conv3_block5_concat[0][0]']
ization)

conv3_block6_0_relu (Activatio (None, 28, 28, 288) 0 ['conv3_block6_0_bn[0][0]']
n)

conv3_block6_1_conv (Conv2D) (None, 28, 28, 128) 36864 ['conv3_block6_0_relu[0][0]']

conv3_block6_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block6_1_conv[0][0]']
ization)

conv3_block6_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block6_1_bn[0][0]']
n)

conv3_block6_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block6_1_relu[0][0]']

conv3_block6_concat (Concatena (None, 28, 28, 320) 0 ['conv3_block5_concat[0][0]',
te) 'conv3_block6_2_conv[0][0]']

conv3_block7_0_bn (BatchNormal (None, 28, 28, 320) 1280 ['conv3_block6_concat[0][0]']
ization)

conv3_block7_0_relu (Activatio (None, 28, 28, 320) 0 ['conv3_block7_0_bn[0][0]']
n)

conv3_block7_1_conv (Conv2D) (None, 28, 28, 128) 40960 ['conv3_block7_0_relu[0][0]']

conv3_block7_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block7_1_conv[0][0]']
ization)

conv3_block7_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block7_1_bn[0][0]']
n)

conv3_block7_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block7_1_relu[0][0]']

conv3_block7_concat (Concatena (None, 28, 28, 352) 0 ['conv3_block6_concat[0][0]',
te) 'conv3_block7_2_conv[0][0]']

conv3_block8_0_bn (BatchNormal (None, 28, 28, 352) 1408 ['conv3_block7_concat[0][0]']
ization)

conv3_block8_0_relu (Activatio (None, 28, 28, 352) 0 ['conv3_block8_0_bn[0][0]']
n)

conv3_block8_1_conv (Conv2D) (None, 28, 28, 128) 45056 ['conv3_block8_0_relu[0][0]']

conv3_block8_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block8_1_conv[0][0]']
ization)

conv3_block8_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block8_1_bn[0][0]']
n)

conv3_block8_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block8_1_relu[0][0]']

conv3_block8_concat (Concatena (None, 28, 28, 384) 0 ['conv3_block7_concat[0][0]',
te) 'conv3_block8_2_conv[0][0]']

conv3_block9_0_bn (BatchNormal (None, 28, 28, 384) 1536 ['conv3_block8_concat[0][0]']
ization)

conv3_block9_0_relu (Activatio (None, 28, 28, 384) 0 ['conv3_block9_0_bn[0][0]']
n)

conv3_block9_1_conv (Conv2D) (None, 28, 28, 128) 49152 ['conv3_block9_0_relu[0][0]']

conv3_block9_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block9_1_conv[0][0]']
ization)

conv3_block9_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block9_1_bn[0][0]']
n)

conv3_block9_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block9_1_relu[0][0]']

conv3_block9_concat (Concatena (None, 28, 28, 416) 0 ['conv3_block8_concat[0][0]',
te) 'conv3_block9_2_conv[0][0]']

conv3_block10_0_bn (BatchNorma (None, 28, 28, 416) 1664 ['conv3_block9_concat[0][0]']
lization)

conv3_block10_0_relu (Activati (None, 28, 28, 416) 0 ['conv3_block10_0_bn[0][0]']
on)

conv3_block10_1_conv (Conv2D) (None, 28, 28, 128) 53248 ['conv3_block10_0_relu[0][0]']

conv3_block10_1_bn (BatchNorma (None, 28, 28, 128) 512 ['conv3_block10_1_conv[0][0]']
lization)

conv3_block10_1_relu (Activati (None, 28, 28, 128) 0 ['conv3_block10_1_bn[0][0]']
on)

conv3_block10_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block10_1_relu[0][0]']

conv3_block10_concat (Concaten (None, 28, 28, 448) 0 ['conv3_block9_concat[0][0]',
ate) 'conv3_block10_2_conv[0][0]']

conv3_block11_0_bn (BatchNorma (None, 28, 28, 448) 1792 ['conv3_block10_concat[0][0]']
lization)

conv3_block11_0_relu (Activati (None, 28, 28, 448) 0 ['conv3_block11_0_bn[0][0]']
on)

conv3_block11_1_conv (Conv2D) (None, 28, 28, 128) 57344 ['conv3_block11_0_relu[0][0]']

conv3_block11_1_bn (BatchNorma (None, 28, 28, 128) 512 ['conv3_block11_1_conv[0][0]']
lization)

conv3_block11_1_relu (Activati (None, 28, 28, 128) 0 ['conv3_block11_1_bn[0][0]']
on)

conv3_block11_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block11_1_relu[0][0]']

conv3_block11_concat (Concaten (None, 28, 28, 480) 0 ['conv3_block10_concat[0][0]',
ate) 'conv3_block11_2_conv[0][0]']

conv3_block12_0_bn (BatchNorma (None, 28, 28, 480) 1920 ['conv3_block11_concat[0][0]']
lization)

conv3_block12_0_relu (Activati (None, 28, 28, 480) 0 ['conv3_block12_0_bn[0][0]']
on)

conv3_block12_1_conv (Conv2D) (None, 28, 28, 128) 61440 ['conv3_block12_0_relu[0][0]']

conv3_block12_1_bn (BatchNorma (None, 28, 28, 128) 512 ['conv3_block12_1_conv[0][0]']
lization)

conv3_block12_1_relu (Activati (None, 28, 28, 128) 0 ['conv3_block12_1_bn[0][0]']
on)

conv3_block12_2_conv (Conv2D) (None, 28, 28, 32) 36864 ['conv3_block12_1_relu[0][0]']

conv3_block12_concat (Concaten (None, 28, 28, 512) 0 ['conv3_block11_concat[0][0]',
ate) 'conv3_block12_2_conv[0][0]']

pool3_bn (BatchNormalization) (None, 28, 28, 512) 2048 ['conv3_block12_concat[0][0]']

pool3_relu (Activation) (None, 28, 28, 512) 0 ['pool3_bn[0][0]']

pool3_conv (Conv2D) (None, 28, 28, 256) 131072 ['pool3_relu[0][0]']

pool3_pool (AveragePooling2D) (None, 14, 14, 256) 0 ['pool3_conv[0][0]']

conv4_block1_0_bn (BatchNormal (None, 14, 14, 256) 1024 ['pool3_pool[0][0]']
ization)

conv4_block1_0_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block1_0_bn[0][0]']
n)

conv4_block1_1_conv (Conv2D) (None, 14, 14, 128) 32768 ['conv4_block1_0_relu[0][0]']

conv4_block1_1_bn (BatchNormal (None, 14, 14, 128) 512 ['conv4_block1_1_conv[0][0]']
ization)

conv4_block1_1_relu (Activatio (None, 14, 14, 128) 0 ['conv4_block1_1_bn[0][0]']
n)

conv4_block1_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block1_1_relu[0][0]']

conv4_block1_concat (Concatena (None, 14, 14, 288) 0 ['pool3_pool[0][0]',
te) 'conv4_block1_2_conv[0][0]']

conv4_block2_0_bn (BatchNormal (None, 14, 14, 288) 1152 ['conv4_block1_concat[0][0]']
ization)

conv4_block2_0_relu (Activatio (None, 14, 14, 288) 0 ['conv4_block2_0_bn[0][0]']
n)

conv4_block2_1_conv (Conv2D) (None, 14, 14, 128) 36864 ['conv4_block2_0_relu[0][0]']

conv4_block2_1_bn (BatchNormal (None, 14, 14, 128) 512 ['conv4_block2_1_conv[0][0]']
ization)

conv4_block2_1_relu (Activatio (None, 14, 14, 128) 0 ['conv4_block2_1_bn[0][0]']
n)

conv4_block2_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block2_1_relu[0][0]']

conv4_block2_concat (Concatena (None, 14, 14, 320) 0 ['conv4_block1_concat[0][0]',
te) 'conv4_block2_2_conv[0][0]']

conv4_block3_0_bn (BatchNormal (None, 14, 14, 320) 1280 ['conv4_block2_concat[0][0]']
ization)

conv4_block3_0_relu (Activatio (None, 14, 14, 320) 0 ['conv4_block3_0_bn[0][0]']
n)

conv4_block3_1_conv (Conv2D) (None, 14, 14, 128) 40960 ['conv4_block3_0_relu[0][0]']

conv4_block3_1_bn (BatchNormal (None, 14, 14, 128) 512 ['conv4_block3_1_conv[0][0]']
ization)

conv4_block3_1_relu (Activatio (None, 14, 14, 128) 0 ['conv4_block3_1_bn[0][0]']
n)

conv4_block3_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block3_1_relu[0][0]']

conv4_block3_concat (Concatena (None, 14, 14, 352) 0 ['conv4_block2_concat[0][0]',
te) 'conv4_block3_2_conv[0][0]']

conv4_block4_0_bn (BatchNormal (None, 14, 14, 352) 1408 ['conv4_block3_concat[0][0]']
ization)

conv4_block4_0_relu (Activatio (None, 14, 14, 352) 0 ['conv4_block4_0_bn[0][0]']
n)

conv4_block4_1_conv (Conv2D) (None, 14, 14, 128) 45056 ['conv4_block4_0_relu[0][0]']

conv4_block4_1_bn (BatchNormal (None, 14, 14, 128) 512 ['conv4_block4_1_conv[0][0]']
ization)

conv4_block4_1_relu (Activatio (None, 14, 14, 128) 0 ['conv4_block4_1_bn[0][0]']
n)

conv4_block4_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block4_1_relu[0][0]']

conv4_block4_concat (Concatena (None, 14, 14, 384) 0 ['conv4_block3_concat[0][0]',
te) 'conv4_block4_2_conv[0][0]']

conv4_block5_0_bn (BatchNormal (None, 14, 14, 384) 1536 ['conv4_block4_concat[0][0]']
ization)

conv4_block5_0_relu (Activatio (None, 14, 14, 384) 0 ['conv4_block5_0_bn[0][0]']
n)

conv4_block5_1_conv (Conv2D) (None, 14, 14, 128) 49152 ['conv4_block5_0_relu[0][0]']

conv4_block5_1_bn (BatchNormal (None, 14, 14, 128) 512 ['conv4_block5_1_conv[0][0]']
ization)

conv4_block5_1_relu (Activatio (None, 14, 14, 128) 0 ['conv4_block5_1_bn[0][0]']
n)

conv4_block5_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block5_1_relu[0][0]']

conv4_block5_concat (Concatena (None, 14, 14, 416) 0 ['conv4_block4_concat[0][0]',
te) 'conv4_block5_2_conv[0][0]']

conv4_block6_0_bn (BatchNormal (None, 14, 14, 416) 1664 ['conv4_block5_concat[0][0]']
ization)

conv4_block6_0_relu (Activatio (None, 14, 14, 416) 0 ['conv4_block6_0_bn[0][0]']
n)

conv4_block6_1_conv (Conv2D) (None, 14, 14, 128) 53248 ['conv4_block6_0_relu[0][0]']

conv4_block6_1_bn (BatchNormal (None, 14, 14, 128) 512 ['conv4_block6_1_conv[0][0]']
ization)

conv4_block6_1_relu (Activatio (None, 14, 14, 128) 0 ['conv4_block6_1_bn[0][0]']
n)

conv4_block6_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block6_1_relu[0][0]']

conv4_block6_concat (Concatena (None, 14, 14, 448) 0 ['conv4_block5_concat[0][0]',
te) 'conv4_block6_2_conv[0][0]']

conv4_block7_0_bn (BatchNormal (None, 14, 14, 448) 1792 ['conv4_block6_concat[0][0]']
ization)

conv4_block7_0_relu (Activatio (None, 14, 14, 448) 0 ['conv4_block7_0_bn[0][0]']
n)

conv4_block7_1_conv (Conv2D) (None, 14, 14, 128) 57344 ['conv4_block7_0_relu[0][0]']

conv4_block7_1_bn (BatchNormal (None, 14, 14, 128) 512 ['conv4_block7_1_conv[0][0]']
ization)

conv4_block7_1_relu (Activatio (None, 14, 14, 128) 0 ['conv4_block7_1_bn[0][0]']
n)

conv4_block7_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block7_1_relu[0][0]']

conv4_block7_concat (Concatena (None, 14, 14, 480) 0 ['conv4_block6_concat[0][0]',
te) 'conv4_block7_2_conv[0][0]']

conv4_block8_0_bn (BatchNormal (None, 14, 14, 480) 1920 ['conv4_block7_concat[0][0]']
ization)

conv4_block8_0_relu (Activatio (None, 14, 14, 480) 0 ['conv4_block8_0_bn[0][0]']
n)

conv4_block8_1_conv (Conv2D) (None, 14, 14, 128) 61440 ['conv4_block8_0_relu[0][0]']

conv4_block8_1_bn (BatchNormal (None, 14, 14, 128) 512 ['conv4_block8_1_conv[0][0]']
ization)

conv4_block8_1_relu (Activatio (None, 14, 14, 128) 0 ['conv4_block8_1_bn[0][0]']
n)

conv4_block8_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block8_1_relu[0][0]']

conv4_block8_concat (Concatena (None, 14, 14, 512) 0 ['conv4_block7_concat[0][0]',
te) 'conv4_block8_2_conv[0][0]']

conv4_block9_0_bn (BatchNormal (None, 14, 14, 512) 2048 ['conv4_block8_concat[0][0]']
ization)

conv4_block9_0_relu (Activatio (None, 14, 14, 512) 0 ['conv4_block9_0_bn[0][0]']
n)

conv4_block9_1_conv (Conv2D) (None, 14, 14, 128) 65536 ['conv4_block9_0_relu[0][0]']

conv4_block9_1_bn (BatchNormal (None, 14, 14, 128) 512 ['conv4_block9_1_conv[0][0]']
ization)

conv4_block9_1_relu (Activatio (None, 14, 14, 128) 0 ['conv4_block9_1_bn[0][0]']
n)

conv4_block9_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block9_1_relu[0][0]']

conv4_block9_concat (Concatena (None, 14, 14, 544) 0 ['conv4_block8_concat[0][0]',
te) 'conv4_block9_2_conv[0][0]']

conv4_block10_0_bn (BatchNorma (None, 14, 14, 544) 2176 ['conv4_block9_concat[0][0]']
lization)

conv4_block10_0_relu (Activati (None, 14, 14, 544) 0 ['conv4_block10_0_bn[0][0]']
on)

conv4_block10_1_conv (Conv2D) (None, 14, 14, 128) 69632 ['conv4_block10_0_relu[0][0]']

conv4_block10_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block10_1_conv[0][0]']
lization)

conv4_block10_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block10_1_bn[0][0]']
on)

conv4_block10_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block10_1_relu[0][0]']

conv4_block10_concat (Concaten (None, 14, 14, 576) 0 ['conv4_block9_concat[0][0]',
ate) 'conv4_block10_2_conv[0][0]']

conv4_block11_0_bn (BatchNorma (None, 14, 14, 576) 2304 ['conv4_block10_concat[0][0]']
lization)

conv4_block11_0_relu (Activati (None, 14, 14, 576) 0 ['conv4_block11_0_bn[0][0]']
on)

conv4_block11_1_conv (Conv2D) (None, 14, 14, 128) 73728 ['conv4_block11_0_relu[0][0]']

conv4_block11_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block11_1_conv[0][0]']
lization)

conv4_block11_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block11_1_bn[0][0]']
on)

conv4_block11_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block11_1_relu[0][0]']

conv4_block11_concat (Concaten (None, 14, 14, 608) 0 ['conv4_block10_concat[0][0]',
ate) 'conv4_block11_2_conv[0][0]']

conv4_block12_0_bn (BatchNorma (None, 14, 14, 608) 2432 ['conv4_block11_concat[0][0]']
lization)

conv4_block12_0_relu (Activati (None, 14, 14, 608) 0 ['conv4_block12_0_bn[0][0]']
on)

conv4_block12_1_conv (Conv2D) (None, 14, 14, 128) 77824 ['conv4_block12_0_relu[0][0]']

conv4_block12_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block12_1_conv[0][0]']
lization)

conv4_block12_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block12_1_bn[0][0]']
on)

conv4_block12_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block12_1_relu[0][0]']

conv4_block12_concat (Concaten (None, 14, 14, 640) 0 ['conv4_block11_concat[0][0]',
ate) 'conv4_block12_2_conv[0][0]']

conv4_block13_0_bn (BatchNorma (None, 14, 14, 640) 2560 ['conv4_block12_concat[0][0]']
lization)

conv4_block13_0_relu (Activati (None, 14, 14, 640) 0 ['conv4_block13_0_bn[0][0]']
on)

conv4_block13_1_conv (Conv2D) (None, 14, 14, 128) 81920 ['conv4_block13_0_relu[0][0]']

conv4_block13_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block13_1_conv[0][0]']
lization)

conv4_block13_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block13_1_bn[0][0]']
on)

conv4_block13_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block13_1_relu[0][0]']

conv4_block13_concat (Concaten (None, 14, 14, 672) 0 ['conv4_block12_concat[0][0]',
ate) 'conv4_block13_2_conv[0][0]']

conv4_block14_0_bn (BatchNorma (None, 14, 14, 672) 2688 ['conv4_block13_concat[0][0]']
lization)

conv4_block14_0_relu (Activati (None, 14, 14, 672) 0 ['conv4_block14_0_bn[0][0]']
on)

conv4_block14_1_conv (Conv2D) (None, 14, 14, 128) 86016 ['conv4_block14_0_relu[0][0]']

conv4_block14_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block14_1_conv[0][0]']
lization)

conv4_block14_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block14_1_bn[0][0]']
on)

conv4_block14_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block14_1_relu[0][0]']

conv4_block14_concat (Concaten (None, 14, 14, 704) 0 ['conv4_block13_concat[0][0]',
ate) 'conv4_block14_2_conv[0][0]']

conv4_block15_0_bn (BatchNorma (None, 14, 14, 704) 2816 ['conv4_block14_concat[0][0]']
lization)

conv4_block15_0_relu (Activati (None, 14, 14, 704) 0 ['conv4_block15_0_bn[0][0]']
on)

conv4_block15_1_conv (Conv2D) (None, 14, 14, 128) 90112 ['conv4_block15_0_relu[0][0]']

conv4_block15_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block15_1_conv[0][0]']
lization)

conv4_block15_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block15_1_bn[0][0]']
on)

conv4_block15_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block15_1_relu[0][0]']

conv4_block15_concat (Concaten (None, 14, 14, 736) 0 ['conv4_block14_concat[0][0]',
ate) 'conv4_block15_2_conv[0][0]']

conv4_block16_0_bn (BatchNorma (None, 14, 14, 736) 2944 ['conv4_block15_concat[0][0]']
lization)

conv4_block16_0_relu (Activati (None, 14, 14, 736) 0 ['conv4_block16_0_bn[0][0]']
on)

conv4_block16_1_conv (Conv2D) (None, 14, 14, 128) 94208 ['conv4_block16_0_relu[0][0]']

conv4_block16_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block16_1_conv[0][0]']
lization)

conv4_block16_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block16_1_bn[0][0]']
on)

conv4_block16_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block16_1_relu[0][0]']

conv4_block16_concat (Concaten (None, 14, 14, 768) 0 ['conv4_block15_concat[0][0]',
ate) 'conv4_block16_2_conv[0][0]']

conv4_block17_0_bn (BatchNorma (None, 14, 14, 768) 3072 ['conv4_block16_concat[0][0]']
lization)

conv4_block17_0_relu (Activati (None, 14, 14, 768) 0 ['conv4_block17_0_bn[0][0]']
on)

conv4_block17_1_conv (Conv2D) (None, 14, 14, 128) 98304 ['conv4_block17_0_relu[0][0]']

conv4_block17_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block17_1_conv[0][0]']
lization)

conv4_block17_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block17_1_bn[0][0]']
on)

conv4_block17_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block17_1_relu[0][0]']

conv4_block17_concat (Concaten (None, 14, 14, 800) 0 ['conv4_block16_concat[0][0]',
ate) 'conv4_block17_2_conv[0][0]']

conv4_block18_0_bn (BatchNorma (None, 14, 14, 800) 3200 ['conv4_block17_concat[0][0]']
lization)

conv4_block18_0_relu (Activati (None, 14, 14, 800) 0 ['conv4_block18_0_bn[0][0]']
on)

conv4_block18_1_conv (Conv2D) (None, 14, 14, 128) 102400 ['conv4_block18_0_relu[0][0]']

conv4_block18_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block18_1_conv[0][0]']
lization)

conv4_block18_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block18_1_bn[0][0]']
on)

conv4_block18_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block18_1_relu[0][0]']

conv4_block18_concat (Concaten (None, 14, 14, 832) 0 ['conv4_block17_concat[0][0]',
ate) 'conv4_block18_2_conv[0][0]']

conv4_block19_0_bn (BatchNorma (None, 14, 14, 832) 3328 ['conv4_block18_concat[0][0]']
lization)

conv4_block19_0_relu (Activati (None, 14, 14, 832) 0 ['conv4_block19_0_bn[0][0]']
on)

conv4_block19_1_conv (Conv2D) (None, 14, 14, 128) 106496 ['conv4_block19_0_relu[0][0]']

conv4_block19_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block19_1_conv[0][0]']
lization)

conv4_block19_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block19_1_bn[0][0]']
on)

conv4_block19_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block19_1_relu[0][0]']

conv4_block19_concat (Concaten (None, 14, 14, 864) 0 ['conv4_block18_concat[0][0]',
ate) 'conv4_block19_2_conv[0][0]']

conv4_block20_0_bn (BatchNorma (None, 14, 14, 864) 3456 ['conv4_block19_concat[0][0]']
lization)

conv4_block20_0_relu (Activati (None, 14, 14, 864) 0 ['conv4_block20_0_bn[0][0]']
on)

conv4_block20_1_conv (Conv2D) (None, 14, 14, 128) 110592 ['conv4_block20_0_relu[0][0]']

conv4_block20_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block20_1_conv[0][0]']
lization)

conv4_block20_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block20_1_bn[0][0]']
on)

conv4_block20_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block20_1_relu[0][0]']

conv4_block20_concat (Concaten (None, 14, 14, 896) 0 ['conv4_block19_concat[0][0]',
ate) 'conv4_block20_2_conv[0][0]']

conv4_block21_0_bn (BatchNorma (None, 14, 14, 896) 3584 ['conv4_block20_concat[0][0]']
lization)

conv4_block21_0_relu (Activati (None, 14, 14, 896) 0 ['conv4_block21_0_bn[0][0]']
on)

conv4_block21_1_conv (Conv2D) (None, 14, 14, 128) 114688 ['conv4_block21_0_relu[0][0]']

conv4_block21_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block21_1_conv[0][0]']
lization)

conv4_block21_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block21_1_bn[0][0]']
on)

conv4_block21_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block21_1_relu[0][0]']

conv4_block21_concat (Concaten (None, 14, 14, 928) 0 ['conv4_block20_concat[0][0]',
ate) 'conv4_block21_2_conv[0][0]']

conv4_block22_0_bn (BatchNorma (None, 14, 14, 928) 3712 ['conv4_block21_concat[0][0]']
lization)

conv4_block22_0_relu (Activati (None, 14, 14, 928) 0 ['conv4_block22_0_bn[0][0]']
on)

conv4_block22_1_conv (Conv2D) (None, 14, 14, 128) 118784 ['conv4_block22_0_relu[0][0]']

conv4_block22_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block22_1_conv[0][0]']
lization)

conv4_block22_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block22_1_bn[0][0]']
on)

conv4_block22_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block22_1_relu[0][0]']

conv4_block22_concat (Concaten (None, 14, 14, 960) 0 ['conv4_block21_concat[0][0]',
ate) 'conv4_block22_2_conv[0][0]']

conv4_block23_0_bn (BatchNorma (None, 14, 14, 960) 3840 ['conv4_block22_concat[0][0]']
lization)

conv4_block23_0_relu (Activati (None, 14, 14, 960) 0 ['conv4_block23_0_bn[0][0]']
on)

conv4_block23_1_conv (Conv2D) (None, 14, 14, 128) 122880 ['conv4_block23_0_relu[0][0]']

conv4_block23_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block23_1_conv[0][0]']
lization)

conv4_block23_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block23_1_bn[0][0]']
on)

conv4_block23_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block23_1_relu[0][0]']

conv4_block23_concat (Concaten (None, 14, 14, 992) 0 ['conv4_block22_concat[0][0]',
ate) 'conv4_block23_2_conv[0][0]']

conv4_block24_0_bn (BatchNorma (None, 14, 14, 992) 3968 ['conv4_block23_concat[0][0]']
lization)

conv4_block24_0_relu (Activati (None, 14, 14, 992) 0 ['conv4_block24_0_bn[0][0]']
on)

conv4_block24_1_conv (Conv2D) (None, 14, 14, 128) 126976 ['conv4_block24_0_relu[0][0]']

conv4_block24_1_bn (BatchNorma (None, 14, 14, 128) 512 ['conv4_block24_1_conv[0][0]']
lization)

conv4_block24_1_relu (Activati (None, 14, 14, 128) 0 ['conv4_block24_1_bn[0][0]']
on)

conv4_block24_2_conv (Conv2D) (None, 14, 14, 32) 36864 ['conv4_block24_1_relu[0][0]']

conv4_block24_concat (Concaten (None, 14, 14, 1024 0 ['conv4_block23_concat[0][0]',
ate) ) 'conv4_block24_2_conv[0][0]']

pool4_bn (BatchNormalization) (None, 14, 14, 1024 4096 ['conv4_block24_concat[0][0]']
)

pool4_relu (Activation) (None, 14, 14, 1024 0 ['pool4_bn[0][0]']
)

pool4_conv (Conv2D) (None, 14, 14, 512) 524288 ['pool4_relu[0][0]']

pool4_pool (AveragePooling2D) (None, 7, 7, 512) 0 ['pool4_conv[0][0]']

conv5_block1_0_bn (BatchNormal (None, 7, 7, 512) 2048 ['pool4_pool[0][0]']
ization)

conv5_block1_0_relu (Activatio (None, 7, 7, 512) 0 ['conv5_block1_0_bn[0][0]']
n)

conv5_block1_1_conv (Conv2D) (None, 7, 7, 128) 65536 ['conv5_block1_0_relu[0][0]']

conv5_block1_1_bn (BatchNormal (None, 7, 7, 128) 512 ['conv5_block1_1_conv[0][0]']
ization)

conv5_block1_1_relu (Activatio (None, 7, 7, 128) 0 ['conv5_block1_1_bn[0][0]']
n)

conv5_block1_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block1_1_relu[0][0]']

conv5_block1_concat (Concatena (None, 7, 7, 544) 0 ['pool4_pool[0][0]',
te) 'conv5_block1_2_conv[0][0]']

conv5_block2_0_bn (BatchNormal (None, 7, 7, 544) 2176 ['conv5_block1_concat[0][0]']
ization)

conv5_block2_0_relu (Activatio (None, 7, 7, 544) 0 ['conv5_block2_0_bn[0][0]']
n)

conv5_block2_1_conv (Conv2D) (None, 7, 7, 128) 69632 ['conv5_block2_0_relu[0][0]']

conv5_block2_1_bn (BatchNormal (None, 7, 7, 128) 512 ['conv5_block2_1_conv[0][0]']
ization)

conv5_block2_1_relu (Activatio (None, 7, 7, 128) 0 ['conv5_block2_1_bn[0][0]']
n)

conv5_block2_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block2_1_relu[0][0]']

conv5_block2_concat (Concatena (None, 7, 7, 576) 0 ['conv5_block1_concat[0][0]',
te) 'conv5_block2_2_conv[0][0]']

conv5_block3_0_bn (BatchNormal (None, 7, 7, 576) 2304 ['conv5_block2_concat[0][0]']
ization)

conv5_block3_0_relu (Activatio (None, 7, 7, 576) 0 ['conv5_block3_0_bn[0][0]']
n)

conv5_block3_1_conv (Conv2D) (None, 7, 7, 128) 73728 ['conv5_block3_0_relu[0][0]']

conv5_block3_1_bn (BatchNormal (None, 7, 7, 128) 512 ['conv5_block3_1_conv[0][0]']
ization)

conv5_block3_1_relu (Activatio (None, 7, 7, 128) 0 ['conv5_block3_1_bn[0][0]']
n)

conv5_block3_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block3_1_relu[0][0]']

conv5_block3_concat (Concatena (None, 7, 7, 608) 0 ['conv5_block2_concat[0][0]',
te) 'conv5_block3_2_conv[0][0]']

conv5_block4_0_bn (BatchNormal (None, 7, 7, 608) 2432 ['conv5_block3_concat[0][0]']
ization)

conv5_block4_0_relu (Activatio (None, 7, 7, 608) 0 ['conv5_block4_0_bn[0][0]']
n)

conv5_block4_1_conv (Conv2D) (None, 7, 7, 128) 77824 ['conv5_block4_0_relu[0][0]']

conv5_block4_1_bn (BatchNormal (None, 7, 7, 128) 512 ['conv5_block4_1_conv[0][0]']
ization)

conv5_block4_1_relu (Activatio (None, 7, 7, 128) 0 ['conv5_block4_1_bn[0][0]']
n)

conv5_block4_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block4_1_relu[0][0]']

conv5_block4_concat (Concatena (None, 7, 7, 640) 0 ['conv5_block3_concat[0][0]',
te) 'conv5_block4_2_conv[0][0]']

conv5_block5_0_bn (BatchNormal (None, 7, 7, 640) 2560 ['conv5_block4_concat[0][0]']
ization)

conv5_block5_0_relu (Activatio (None, 7, 7, 640) 0 ['conv5_block5_0_bn[0][0]']
n)

conv5_block5_1_conv (Conv2D) (None, 7, 7, 128) 81920 ['conv5_block5_0_relu[0][0]']

conv5_block5_1_bn (BatchNormal (None, 7, 7, 128) 512 ['conv5_block5_1_conv[0][0]']
ization)

conv5_block5_1_relu (Activatio (None, 7, 7, 128) 0 ['conv5_block5_1_bn[0][0]']
n)

conv5_block5_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block5_1_relu[0][0]']

conv5_block5_concat (Concatena (None, 7, 7, 672) 0 ['conv5_block4_concat[0][0]',
te) 'conv5_block5_2_conv[0][0]']

conv5_block6_0_bn (BatchNormal (None, 7, 7, 672) 2688 ['conv5_block5_concat[0][0]']
ization)

conv5_block6_0_relu (Activatio (None, 7, 7, 672) 0 ['conv5_block6_0_bn[0][0]']
n)

conv5_block6_1_conv (Conv2D) (None, 7, 7, 128) 86016 ['conv5_block6_0_relu[0][0]']

conv5_block6_1_bn (BatchNormal (None, 7, 7, 128) 512 ['conv5_block6_1_conv[0][0]']
ization)

conv5_block6_1_relu (Activatio (None, 7, 7, 128) 0 ['conv5_block6_1_bn[0][0]']
n)

conv5_block6_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block6_1_relu[0][0]']

conv5_block6_concat (Concatena (None, 7, 7, 704) 0 ['conv5_block5_concat[0][0]',
te) 'conv5_block6_2_conv[0][0]']

conv5_block7_0_bn (BatchNormal (None, 7, 7, 704) 2816 ['conv5_block6_concat[0][0]']
ization)

conv5_block7_0_relu (Activatio (None, 7, 7, 704) 0 ['conv5_block7_0_bn[0][0]']
n)

conv5_block7_1_conv (Conv2D) (None, 7, 7, 128) 90112 ['conv5_block7_0_relu[0][0]']

conv5_block7_1_bn (BatchNormal (None, 7, 7, 128) 512 ['conv5_block7_1_conv[0][0]']
ization)

conv5_block7_1_relu (Activatio (None, 7, 7, 128) 0 ['conv5_block7_1_bn[0][0]']
n)

conv5_block7_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block7_1_relu[0][0]']

conv5_block7_concat (Concatena (None, 7, 7, 736) 0 ['conv5_block6_concat[0][0]',
te) 'conv5_block7_2_conv[0][0]']

conv5_block8_0_bn (BatchNormal (None, 7, 7, 736) 2944 ['conv5_block7_concat[0][0]']
ization)

conv5_block8_0_relu (Activatio (None, 7, 7, 736) 0 ['conv5_block8_0_bn[0][0]']
n)

conv5_block8_1_conv (Conv2D) (None, 7, 7, 128) 94208 ['conv5_block8_0_relu[0][0]']

conv5_block8_1_bn (BatchNormal (None, 7, 7, 128) 512 ['conv5_block8_1_conv[0][0]']
ization)

conv5_block8_1_relu (Activatio (None, 7, 7, 128) 0 ['conv5_block8_1_bn[0][0]']
n)

conv5_block8_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block8_1_relu[0][0]']

conv5_block8_concat (Concatena (None, 7, 7, 768) 0 ['conv5_block7_concat[0][0]',
te) 'conv5_block8_2_conv[0][0]']

conv5_block9_0_bn (BatchNormal (None, 7, 7, 768) 3072 ['conv5_block8_concat[0][0]']
ization)

conv5_block9_0_relu (Activatio (None, 7, 7, 768) 0 ['conv5_block9_0_bn[0][0]']
n)

conv5_block9_1_conv (Conv2D) (None, 7, 7, 128) 98304 ['conv5_block9_0_relu[0][0]']

conv5_block9_1_bn (BatchNormal (None, 7, 7, 128) 512 ['conv5_block9_1_conv[0][0]']
ization)

conv5_block9_1_relu (Activatio (None, 7, 7, 128) 0 ['conv5_block9_1_bn[0][0]']
n)

conv5_block9_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block9_1_relu[0][0]']

conv5_block9_concat (Concatena (None, 7, 7, 800) 0 ['conv5_block8_concat[0][0]',
te) 'conv5_block9_2_conv[0][0]']

conv5_block10_0_bn (BatchNorma (None, 7, 7, 800) 3200 ['conv5_block9_concat[0][0]']
lization)

conv5_block10_0_relu (Activati (None, 7, 7, 800) 0 ['conv5_block10_0_bn[0][0]']
on)

conv5_block10_1_conv (Conv2D) (None, 7, 7, 128) 102400 ['conv5_block10_0_relu[0][0]']

conv5_block10_1_bn (BatchNorma (None, 7, 7, 128) 512 ['conv5_block10_1_conv[0][0]']
lization)

conv5_block10_1_relu (Activati (None, 7, 7, 128) 0 ['conv5_block10_1_bn[0][0]']
on)

conv5_block10_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block10_1_relu[0][0]']

conv5_block10_concat (Concaten (None, 7, 7, 832) 0 ['conv5_block9_concat[0][0]',
ate) 'conv5_block10_2_conv[0][0]']

conv5_block11_0_bn (BatchNorma (None, 7, 7, 832) 3328 ['conv5_block10_concat[0][0]']
lization)

conv5_block11_0_relu (Activati (None, 7, 7, 832) 0 ['conv5_block11_0_bn[0][0]']
on)

conv5_block11_1_conv (Conv2D) (None, 7, 7, 128) 106496 ['conv5_block11_0_relu[0][0]']

conv5_block11_1_bn (BatchNorma (None, 7, 7, 128) 512 ['conv5_block11_1_conv[0][0]']
lization)

conv5_block11_1_relu (Activati (None, 7, 7, 128) 0 ['conv5_block11_1_bn[0][0]']
on)

conv5_block11_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block11_1_relu[0][0]']

conv5_block11_concat (Concaten (None, 7, 7, 864) 0 ['conv5_block10_concat[0][0]',
ate) 'conv5_block11_2_conv[0][0]']

conv5_block12_0_bn (BatchNorma (None, 7, 7, 864) 3456 ['conv5_block11_concat[0][0]']
lization)

conv5_block12_0_relu (Activati (None, 7, 7, 864) 0 ['conv5_block12_0_bn[0][0]']
on)

conv5_block12_1_conv (Conv2D) (None, 7, 7, 128) 110592 ['conv5_block12_0_relu[0][0]']

conv5_block12_1_bn (BatchNorma (None, 7, 7, 128) 512 ['conv5_block12_1_conv[0][0]']
lization)

conv5_block12_1_relu (Activati (None, 7, 7, 128) 0 ['conv5_block12_1_bn[0][0]']
on)

conv5_block12_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block12_1_relu[0][0]']

conv5_block12_concat (Concaten (None, 7, 7, 896) 0 ['conv5_block11_concat[0][0]',
ate) 'conv5_block12_2_conv[0][0]']

conv5_block13_0_bn (BatchNorma (None, 7, 7, 896) 3584 ['conv5_block12_concat[0][0]']
lization)

conv5_block13_0_relu (Activati (None, 7, 7, 896) 0 ['conv5_block13_0_bn[0][0]']
on)

conv5_block13_1_conv (Conv2D) (None, 7, 7, 128) 114688 ['conv5_block13_0_relu[0][0]']

conv5_block13_1_bn (BatchNorma (None, 7, 7, 128) 512 ['conv5_block13_1_conv[0][0]']
lization)

conv5_block13_1_relu (Activati (None, 7, 7, 128) 0 ['conv5_block13_1_bn[0][0]']
on)

conv5_block13_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block13_1_relu[0][0]']

conv5_block13_concat (Concaten (None, 7, 7, 928) 0 ['conv5_block12_concat[0][0]',
ate) 'conv5_block13_2_conv[0][0]']

conv5_block14_0_bn (BatchNorma (None, 7, 7, 928) 3712 ['conv5_block13_concat[0][0]']
lization)

conv5_block14_0_relu (Activati (None, 7, 7, 928) 0 ['conv5_block14_0_bn[0][0]']
on)

conv5_block14_1_conv (Conv2D) (None, 7, 7, 128) 118784 ['conv5_block14_0_relu[0][0]']

conv5_block14_1_bn (BatchNorma (None, 7, 7, 128) 512 ['conv5_block14_1_conv[0][0]']
lization)

conv5_block14_1_relu (Activati (None, 7, 7, 128) 0 ['conv5_block14_1_bn[0][0]']
on)

conv5_block14_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block14_1_relu[0][0]']

conv5_block14_concat (Concaten (None, 7, 7, 960) 0 ['conv5_block13_concat[0][0]',
ate) 'conv5_block14_2_conv[0][0]']

conv5_block15_0_bn (BatchNorma (None, 7, 7, 960) 3840 ['conv5_block14_concat[0][0]']
lization)

conv5_block15_0_relu (Activati (None, 7, 7, 960) 0 ['conv5_block15_0_bn[0][0]']
on)

conv5_block15_1_conv (Conv2D) (None, 7, 7, 128) 122880 ['conv5_block15_0_relu[0][0]']

conv5_block15_1_bn (BatchNorma (None, 7, 7, 128) 512 ['conv5_block15_1_conv[0][0]']
lization)

conv5_block15_1_relu (Activati (None, 7, 7, 128) 0 ['conv5_block15_1_bn[0][0]']
on)

conv5_block15_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block15_1_relu[0][0]']

conv5_block15_concat (Concaten (None, 7, 7, 992) 0 ['conv5_block14_concat[0][0]',
ate) 'conv5_block15_2_conv[0][0]']

conv5_block16_0_bn (BatchNorma (None, 7, 7, 992) 3968 ['conv5_block15_concat[0][0]']
lization)

conv5_block16_0_relu (Activati (None, 7, 7, 992) 0 ['conv5_block16_0_bn[0][0]']
on)

conv5_block16_1_conv (Conv2D) (None, 7, 7, 128) 126976 ['conv5_block16_0_relu[0][0]']

conv5_block16_1_bn (BatchNorma (None, 7, 7, 128) 512 ['conv5_block16_1_conv[0][0]']
lization)

conv5_block16_1_relu (Activati (None, 7, 7, 128) 0 ['conv5_block16_1_bn[0][0]']
on)

conv5_block16_2_conv (Conv2D) (None, 7, 7, 32) 36864 ['conv5_block16_1_relu[0][0]']

conv5_block16_concat (Concaten (None, 7, 7, 1024) 0 ['conv5_block15_concat[0][0]',
ate) 'conv5_block16_2_conv[0][0]']

bn (BatchNormalization) (None, 7, 7, 1024) 4096 ['conv5_block16_concat[0][0]']

relu (Activation) (None, 7, 7, 1024) 0 ['bn[0][0]']

avg_pool (GlobalAveragePooling (None, 1024) 0 ['relu[0][0]']
2D)

predictions (Dense) (None, 1000) 1025000 ['avg_pool[0][0]']

==================================================================================================
Total params: 8,062,504
Trainable params: 7,978,856
Non-trainable params: 83,648
__________________________________________________________________________________________________
None

As we are using Densenet as an architecture with our custom dataset, so we need to add our custom dense layer to be able to classify the entities from the datasets entities, the snippet is mentioned below:

FC_layer_Flatten = tf.keras.layers.Flatten()(baseModel.output)        #Line 5
Dense=tf.keras.layers.Dense(units=1000,activation=”relu”)(FC_layer_Flatten) #Line 6
Dense=tf.keras.layers.Dense(units=800,activation=”relu”)(Dense)#Line 7
Dense=tf.keras.layers.Dense(units=400,activation=”relu”)(Dense)#Line 8
Dense=tf.keras.layers.Dense(units=200,activation=”relu”)(Dense) #Line 9
Dense=tf.keras.layers.Dense(units=100,activation=”relu”)(Dense)#Line 10
Classification=tf.keras.layers.Dense(units=10,activation=”softmax”)(Dense) #Line 11

Line 5: This line is used to smooth the Densenet mesh layer, we now have the output as a 1d-tensor shape, then I also smooth it for demonstration purposes, which will feed into a next layer.

Row 6 to Row 10: The following lines mentioned are artificial neural network with relu activation.

Line 11: The line has 10 neurons with a Softmax activation function that allow us to predict the probabilities of each class of the neural network.

model_final = tf.keras.Model(inputs=image_input,outputs=Classification) #Line 12
model_final.summary() #Line 13

Line 12: This line is used to create a user model that has a Dernsenet architecture as well as our custom full classification layer. We have specified our input layer as image_input and output layer as Classification so that the model is aware of the input and output layers to do further calculations.

Line 13: These snippets show the full model summary, which is shown below:

Model: "model"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_2 (InputLayer) [(None, 32, 32, 3)] 0 []

zero_padding2d_2 (ZeroPadding2 (None, 38, 38, 3) 0 ['input_2[0][0]']
D)

conv1/conv (Conv2D) (None, 16, 16, 64) 9408 ['zero_padding2d_2[0][0]']

conv1/bn (BatchNormalization) (None, 16, 16, 64) 256 ['conv1/conv[0][0]']

conv1/relu (Activation) (None, 16, 16, 64) 0 ['conv1/bn[0][0]']

zero_padding2d_3 (ZeroPadding2 (None, 18, 18, 64) 0 ['conv1/relu[0][0]']
D)

pool1 (MaxPooling2D) (None, 8, 8, 64) 0 ['zero_padding2d_3[0][0]']

conv2_block1_0_bn (BatchNormal (None, 8, 8, 64) 256 ['pool1[0][0]']
ization)

conv2_block1_0_relu (Activatio (None, 8, 8, 64) 0 ['conv2_block1_0_bn[0][0]']
n)

conv2_block1_1_conv (Conv2D) (None, 8, 8, 128) 8192 ['conv2_block1_0_relu[0][0]']

conv2_block1_1_bn (BatchNormal (None, 8, 8, 128) 512 ['conv2_block1_1_conv[0][0]']
ization)

conv2_block1_1_relu (Activatio (None, 8, 8, 128) 0 ['conv2_block1_1_bn[0][0]']
n)

conv2_block1_2_conv (Conv2D) (None, 8, 8, 32) 36864 ['conv2_block1_1_relu[0][0]']

conv2_block1_concat (Concatena (None, 8, 8, 96) 0 ['pool1[0][0]',
te) 'conv2_block1_2_conv[0][0]']

conv2_block2_0_bn (BatchNormal (None, 8, 8, 96) 384 ['conv2_block1_concat[0][0]']
ization)

conv2_block2_0_relu (Activatio (None, 8, 8, 96) 0 ['conv2_block2_0_bn[0][0]']
n)

conv2_block2_1_conv (Conv2D) (None, 8, 8, 128) 12288 ['conv2_block2_0_relu[0][0]']

conv2_block2_1_bn (BatchNormal (None, 8, 8, 128) 512 ['conv2_block2_1_conv[0][0]']
ization)

conv2_block2_1_relu (Activatio (None, 8, 8, 128) 0 ['conv2_block2_1_bn[0][0]']
n)

conv2_block2_2_conv (Conv2D) (None, 8, 8, 32) 36864 ['conv2_block2_1_relu[0][0]']

conv2_block2_concat (Concatena (None, 8, 8, 128) 0 ['conv2_block1_concat[0][0]',
te) 'conv2_block2_2_conv[0][0]']

conv2_block3_0_bn (BatchNormal (None, 8, 8, 128) 512 ['conv2_block2_concat[0][0]']
ization)

conv2_block3_0_relu (Activatio (None, 8, 8, 128) 0 ['conv2_block3_0_bn[0][0]']
n)

conv2_block3_1_conv (Conv2D) (None, 8, 8, 128) 16384 ['conv2_block3_0_relu[0][0]']

conv2_block3_1_bn (BatchNormal (None, 8, 8, 128) 512 ['conv2_block3_1_conv[0][0]']
ization)

conv2_block3_1_relu (Activatio (None, 8, 8, 128) 0 ['conv2_block3_1_bn[0][0]']
n)

conv2_block3_2_conv (Conv2D) (None, 8, 8, 32) 36864 ['conv2_block3_1_relu[0][0]']

conv2_block3_concat (Concatena (None, 8, 8, 160) 0 ['conv2_block2_concat[0][0]',
te) 'conv2_block3_2_conv[0][0]']

conv2_block4_0_bn (BatchNormal (None, 8, 8, 160) 640 ['conv2_block3_concat[0][0]']
ization)

conv2_block4_0_relu (Activatio (None, 8, 8, 160) 0 ['conv2_block4_0_bn[0][0]']
n)

conv2_block4_1_conv (Conv2D) (None, 8, 8, 128) 20480 ['conv2_block4_0_relu[0][0]']

conv2_block4_1_bn (BatchNormal (None, 8, 8, 128) 512 ['conv2_block4_1_conv[0][0]']
ization)

conv2_block4_1_relu (Activatio (None, 8, 8, 128) 0 ['conv2_block4_1_bn[0][0]']
n)

conv2_block4_2_conv (Conv2D) (None, 8, 8, 32) 36864 ['conv2_block4_1_relu[0][0]']

conv2_block4_concat (Concatena (None, 8, 8, 192) 0 ['conv2_block3_concat[0][0]',
te) 'conv2_block4_2_conv[0][0]']

conv2_block5_0_bn (BatchNormal (None, 8, 8, 192) 768 ['conv2_block4_concat[0][0]']
ization)

conv2_block5_0_relu (Activatio (None, 8, 8, 192) 0 ['conv2_block5_0_bn[0][0]']
n)

conv2_block5_1_conv (Conv2D) (None, 8, 8, 128) 24576 ['conv2_block5_0_relu[0][0]']

conv2_block5_1_bn (BatchNormal (None, 8, 8, 128) 512 ['conv2_block5_1_conv[0][0]']
ization)

conv2_block5_1_relu (Activatio (None, 8, 8, 128) 0 ['conv2_block5_1_bn[0][0]']
n)

conv2_block5_2_conv (Conv2D) (None, 8, 8, 32) 36864 ['conv2_block5_1_relu[0][0]']

conv2_block5_concat (Concatena (None, 8, 8, 224) 0 ['conv2_block4_concat[0][0]',
te) 'conv2_block5_2_conv[0][0]']

conv2_block6_0_bn (BatchNormal (None, 8, 8, 224) 896 ['conv2_block5_concat[0][0]']
ization)

conv2_block6_0_relu (Activatio (None, 8, 8, 224) 0 ['conv2_block6_0_bn[0][0]']
n)

conv2_block6_1_conv (Conv2D) (None, 8, 8, 128) 28672 ['conv2_block6_0_relu[0][0]']

conv2_block6_1_bn (BatchNormal (None, 8, 8, 128) 512 ['conv2_block6_1_conv[0][0]']
ization)

conv2_block6_1_relu (Activatio (None, 8, 8, 128) 0 ['conv2_block6_1_bn[0][0]']
n)

conv2_block6_2_conv (Conv2D) (None, 8, 8, 32) 36864 ['conv2_block6_1_relu[0][0]']

conv2_block6_concat (Concatena (None, 8, 8, 256) 0 ['conv2_block5_concat[0][0]',
te) 'conv2_block6_2_conv[0][0]']

pool2_bn (BatchNormalization) (None, 8, 8, 256) 1024 ['conv2_block6_concat[0][0]']

pool2_relu (Activation) (None, 8, 8, 256) 0 ['pool2_bn[0][0]']

pool2_conv (Conv2D) (None, 8, 8, 128) 32768 ['pool2_relu[0][0]']

pool2_pool (AveragePooling2D) (None, 4, 4, 128) 0 ['pool2_conv[0][0]']

conv3_block1_0_bn (BatchNormal (None, 4, 4, 128) 512 ['pool2_pool[0][0]']
ization)

conv3_block1_0_relu (Activatio (None, 4, 4, 128) 0 ['conv3_block1_0_bn[0][0]']
n)

conv3_block1_1_conv (Conv2D) (None, 4, 4, 128) 16384 ['conv3_block1_0_relu[0][0]']

conv3_block1_1_bn (BatchNormal (None, 4, 4, 128) 512 ['conv3_block1_1_conv[0][0]']
ization)

conv3_block1_1_relu (Activatio (None, 4, 4, 128) 0 ['conv3_block1_1_bn[0][0]']
n)

conv3_block1_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block1_1_relu[0][0]']

conv3_block1_concat (Concatena (None, 4, 4, 160) 0 ['pool2_pool[0][0]',
te) 'conv3_block1_2_conv[0][0]']

conv3_block2_0_bn (BatchNormal (None, 4, 4, 160) 640 ['conv3_block1_concat[0][0]']
ization)

conv3_block2_0_relu (Activatio (None, 4, 4, 160) 0 ['conv3_block2_0_bn[0][0]']
n)

conv3_block2_1_conv (Conv2D) (None, 4, 4, 128) 20480 ['conv3_block2_0_relu[0][0]']

conv3_block2_1_bn (BatchNormal (None, 4, 4, 128) 512 ['conv3_block2_1_conv[0][0]']
ization)

conv3_block2_1_relu (Activatio (None, 4, 4, 128) 0 ['conv3_block2_1_bn[0][0]']
n)

conv3_block2_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block2_1_relu[0][0]']

conv3_block2_concat (Concatena (None, 4, 4, 192) 0 ['conv3_block1_concat[0][0]',
te) 'conv3_block2_2_conv[0][0]']

conv3_block3_0_bn (BatchNormal (None, 4, 4, 192) 768 ['conv3_block2_concat[0][0]']
ization)

conv3_block3_0_relu (Activatio (None, 4, 4, 192) 0 ['conv3_block3_0_bn[0][0]']
n)

conv3_block3_1_conv (Conv2D) (None, 4, 4, 128) 24576 ['conv3_block3_0_relu[0][0]']

conv3_block3_1_bn (BatchNormal (None, 4, 4, 128) 512 ['conv3_block3_1_conv[0][0]']
ization)

conv3_block3_1_relu (Activatio (None, 4, 4, 128) 0 ['conv3_block3_1_bn[0][0]']
n)

conv3_block3_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block3_1_relu[0][0]']

conv3_block3_concat (Concatena (None, 4, 4, 224) 0 ['conv3_block2_concat[0][0]',
te) 'conv3_block3_2_conv[0][0]']

conv3_block4_0_bn (BatchNormal (None, 4, 4, 224) 896 ['conv3_block3_concat[0][0]']
ization)

conv3_block4_0_relu (Activatio (None, 4, 4, 224) 0 ['conv3_block4_0_bn[0][0]']
n)

conv3_block4_1_conv (Conv2D) (None, 4, 4, 128) 28672 ['conv3_block4_0_relu[0][0]']

conv3_block4_1_bn (BatchNormal (None, 4, 4, 128) 512 ['conv3_block4_1_conv[0][0]']
ization)

conv3_block4_1_relu (Activatio (None, 4, 4, 128) 0 ['conv3_block4_1_bn[0][0]']
n)

conv3_block4_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block4_1_relu[0][0]']

conv3_block4_concat (Concatena (None, 4, 4, 256) 0 ['conv3_block3_concat[0][0]',
te) 'conv3_block4_2_conv[0][0]']

conv3_block5_0_bn (BatchNormal (None, 4, 4, 256) 1024 ['conv3_block4_concat[0][0]']
ization)

conv3_block5_0_relu (Activatio (None, 4, 4, 256) 0 ['conv3_block5_0_bn[0][0]']
n)

conv3_block5_1_conv (Conv2D) (None, 4, 4, 128) 32768 ['conv3_block5_0_relu[0][0]']

conv3_block5_1_bn (BatchNormal (None, 4, 4, 128) 512 ['conv3_block5_1_conv[0][0]']
ization)

conv3_block5_1_relu (Activatio (None, 4, 4, 128) 0 ['conv3_block5_1_bn[0][0]']
n)

conv3_block5_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block5_1_relu[0][0]']

conv3_block5_concat (Concatena (None, 4, 4, 288) 0 ['conv3_block4_concat[0][0]',
te) 'conv3_block5_2_conv[0][0]']

conv3_block6_0_bn (BatchNormal (None, 4, 4, 288) 1152 ['conv3_block5_concat[0][0]']
ization)

conv3_block6_0_relu (Activatio (None, 4, 4, 288) 0 ['conv3_block6_0_bn[0][0]']
n)

conv3_block6_1_conv (Conv2D) (None, 4, 4, 128) 36864 ['conv3_block6_0_relu[0][0]']

conv3_block6_1_bn (BatchNormal (None, 4, 4, 128) 512 ['conv3_block6_1_conv[0][0]']
ization)

conv3_block6_1_relu (Activatio (None, 4, 4, 128) 0 ['conv3_block6_1_bn[0][0]']
n)

conv3_block6_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block6_1_relu[0][0]']

conv3_block6_concat (Concatena (None, 4, 4, 320) 0 ['conv3_block5_concat[0][0]',
te) 'conv3_block6_2_conv[0][0]']

conv3_block7_0_bn (BatchNormal (None, 4, 4, 320) 1280 ['conv3_block6_concat[0][0]']
ization)

conv3_block7_0_relu (Activatio (None, 4, 4, 320) 0 ['conv3_block7_0_bn[0][0]']
n)

conv3_block7_1_conv (Conv2D) (None, 4, 4, 128) 40960 ['conv3_block7_0_relu[0][0]']

conv3_block7_1_bn (BatchNormal (None, 4, 4, 128) 512 ['conv3_block7_1_conv[0][0]']
ization)

conv3_block7_1_relu (Activatio (None, 4, 4, 128) 0 ['conv3_block7_1_bn[0][0]']
n)

conv3_block7_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block7_1_relu[0][0]']

conv3_block7_concat (Concatena (None, 4, 4, 352) 0 ['conv3_block6_concat[0][0]',
te) 'conv3_block7_2_conv[0][0]']

conv3_block8_0_bn (BatchNormal (None, 4, 4, 352) 1408 ['conv3_block7_concat[0][0]']
ization)

conv3_block8_0_relu (Activatio (None, 4, 4, 352) 0 ['conv3_block8_0_bn[0][0]']
n)

conv3_block8_1_conv (Conv2D) (None, 4, 4, 128) 45056 ['conv3_block8_0_relu[0][0]']

conv3_block8_1_bn (BatchNormal (None, 4, 4, 128) 512 ['conv3_block8_1_conv[0][0]']
ization)

conv3_block8_1_relu (Activatio (None, 4, 4, 128) 0 ['conv3_block8_1_bn[0][0]']
n)

conv3_block8_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block8_1_relu[0][0]']

conv3_block8_concat (Concatena (None, 4, 4, 384) 0 ['conv3_block7_concat[0][0]',
te) 'conv3_block8_2_conv[0][0]']

conv3_block9_0_bn (BatchNormal (None, 4, 4, 384) 1536 ['conv3_block8_concat[0][0]']
ization)

conv3_block9_0_relu (Activatio (None, 4, 4, 384) 0 ['conv3_block9_0_bn[0][0]']
n)

conv3_block9_1_conv (Conv2D) (None, 4, 4, 128) 49152 ['conv3_block9_0_relu[0][0]']

conv3_block9_1_bn (BatchNormal (None, 4, 4, 128) 512 ['conv3_block9_1_conv[0][0]']
ization)

conv3_block9_1_relu (Activatio (None, 4, 4, 128) 0 ['conv3_block9_1_bn[0][0]']
n)

conv3_block9_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block9_1_relu[0][0]']

conv3_block9_concat (Concatena (None, 4, 4, 416) 0 ['conv3_block8_concat[0][0]',
te) 'conv3_block9_2_conv[0][0]']

conv3_block10_0_bn (BatchNorma (None, 4, 4, 416) 1664 ['conv3_block9_concat[0][0]']
lization)

conv3_block10_0_relu (Activati (None, 4, 4, 416) 0 ['conv3_block10_0_bn[0][0]']
on)

conv3_block10_1_conv (Conv2D) (None, 4, 4, 128) 53248 ['conv3_block10_0_relu[0][0]']

conv3_block10_1_bn (BatchNorma (None, 4, 4, 128) 512 ['conv3_block10_1_conv[0][0]']
lization)

conv3_block10_1_relu (Activati (None, 4, 4, 128) 0 ['conv3_block10_1_bn[0][0]']
on)

conv3_block10_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block10_1_relu[0][0]']

conv3_block10_concat (Concaten (None, 4, 4, 448) 0 ['conv3_block9_concat[0][0]',
ate) 'conv3_block10_2_conv[0][0]']

conv3_block11_0_bn (BatchNorma (None, 4, 4, 448) 1792 ['conv3_block10_concat[0][0]']
lization)

conv3_block11_0_relu (Activati (None, 4, 4, 448) 0 ['conv3_block11_0_bn[0][0]']
on)

conv3_block11_1_conv (Conv2D) (None, 4, 4, 128) 57344 ['conv3_block11_0_relu[0][0]']

conv3_block11_1_bn (BatchNorma (None, 4, 4, 128) 512 ['conv3_block11_1_conv[0][0]']
lization)

conv3_block11_1_relu (Activati (None, 4, 4, 128) 0 ['conv3_block11_1_bn[0][0]']
on)

conv3_block11_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block11_1_relu[0][0]']

conv3_block11_concat (Concaten (None, 4, 4, 480) 0 ['conv3_block10_concat[0][0]',
ate) 'conv3_block11_2_conv[0][0]']

conv3_block12_0_bn (BatchNorma (None, 4, 4, 480) 1920 ['conv3_block11_concat[0][0]']
lization)

conv3_block12_0_relu (Activati (None, 4, 4, 480) 0 ['conv3_block12_0_bn[0][0]']
on)

conv3_block12_1_conv (Conv2D) (None, 4, 4, 128) 61440 ['conv3_block12_0_relu[0][0]']

conv3_block12_1_bn (BatchNorma (None, 4, 4, 128) 512 ['conv3_block12_1_conv[0][0]']
lization)

conv3_block12_1_relu (Activati (None, 4, 4, 128) 0 ['conv3_block12_1_bn[0][0]']
on)

conv3_block12_2_conv (Conv2D) (None, 4, 4, 32) 36864 ['conv3_block12_1_relu[0][0]']

conv3_block12_concat (Concaten (None, 4, 4, 512) 0 ['conv3_block11_concat[0][0]',
ate) 'conv3_block12_2_conv[0][0]']

pool3_bn (BatchNormalization) (None, 4, 4, 512) 2048 ['conv3_block12_concat[0][0]']

pool3_relu (Activation) (None, 4, 4, 512) 0 ['pool3_bn[0][0]']

pool3_conv (Conv2D) (None, 4, 4, 256) 131072 ['pool3_relu[0][0]']

pool3_pool (AveragePooling2D) (None, 2, 2, 256) 0 ['pool3_conv[0][0]']

conv4_block1_0_bn (BatchNormal (None, 2, 2, 256) 1024 ['pool3_pool[0][0]']
ization)

conv4_block1_0_relu (Activatio (None, 2, 2, 256) 0 ['conv4_block1_0_bn[0][0]']
n)

conv4_block1_1_conv (Conv2D) (None, 2, 2, 128) 32768 ['conv4_block1_0_relu[0][0]']

conv4_block1_1_bn (BatchNormal (None, 2, 2, 128) 512 ['conv4_block1_1_conv[0][0]']
ization)

conv4_block1_1_relu (Activatio (None, 2, 2, 128) 0 ['conv4_block1_1_bn[0][0]']
n)

conv4_block1_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block1_1_relu[0][0]']

conv4_block1_concat (Concatena (None, 2, 2, 288) 0 ['pool3_pool[0][0]',
te) 'conv4_block1_2_conv[0][0]']

conv4_block2_0_bn (BatchNormal (None, 2, 2, 288) 1152 ['conv4_block1_concat[0][0]']
ization)

conv4_block2_0_relu (Activatio (None, 2, 2, 288) 0 ['conv4_block2_0_bn[0][0]']
n)

conv4_block2_1_conv (Conv2D) (None, 2, 2, 128) 36864 ['conv4_block2_0_relu[0][0]']

conv4_block2_1_bn (BatchNormal (None, 2, 2, 128) 512 ['conv4_block2_1_conv[0][0]']
ization)

conv4_block2_1_relu (Activatio (None, 2, 2, 128) 0 ['conv4_block2_1_bn[0][0]']
n)

conv4_block2_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block2_1_relu[0][0]']

conv4_block2_concat (Concatena (None, 2, 2, 320) 0 ['conv4_block1_concat[0][0]',
te) 'conv4_block2_2_conv[0][0]']

conv4_block3_0_bn (BatchNormal (None, 2, 2, 320) 1280 ['conv4_block2_concat[0][0]']
ization)

conv4_block3_0_relu (Activatio (None, 2, 2, 320) 0 ['conv4_block3_0_bn[0][0]']
n)

conv4_block3_1_conv (Conv2D) (None, 2, 2, 128) 40960 ['conv4_block3_0_relu[0][0]']

conv4_block3_1_bn (BatchNormal (None, 2, 2, 128) 512 ['conv4_block3_1_conv[0][0]']
ization)

conv4_block3_1_relu (Activatio (None, 2, 2, 128) 0 ['conv4_block3_1_bn[0][0]']
n)

conv4_block3_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block3_1_relu[0][0]']

conv4_block3_concat (Concatena (None, 2, 2, 352) 0 ['conv4_block2_concat[0][0]',
te) 'conv4_block3_2_conv[0][0]']

conv4_block4_0_bn (BatchNormal (None, 2, 2, 352) 1408 ['conv4_block3_concat[0][0]']
ization)

conv4_block4_0_relu (Activatio (None, 2, 2, 352) 0 ['conv4_block4_0_bn[0][0]']
n)

conv4_block4_1_conv (Conv2D) (None, 2, 2, 128) 45056 ['conv4_block4_0_relu[0][0]']

conv4_block4_1_bn (BatchNormal (None, 2, 2, 128) 512 ['conv4_block4_1_conv[0][0]']
ization)

conv4_block4_1_relu (Activatio (None, 2, 2, 128) 0 ['conv4_block4_1_bn[0][0]']
n)

conv4_block4_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block4_1_relu[0][0]']

conv4_block4_concat (Concatena (None, 2, 2, 384) 0 ['conv4_block3_concat[0][0]',
te) 'conv4_block4_2_conv[0][0]']

conv4_block5_0_bn (BatchNormal (None, 2, 2, 384) 1536 ['conv4_block4_concat[0][0]']
ization)

conv4_block5_0_relu (Activatio (None, 2, 2, 384) 0 ['conv4_block5_0_bn[0][0]']
n)

conv4_block5_1_conv (Conv2D) (None, 2, 2, 128) 49152 ['conv4_block5_0_relu[0][0]']

conv4_block5_1_bn (BatchNormal (None, 2, 2, 128) 512 ['conv4_block5_1_conv[0][0]']
ization)

conv4_block5_1_relu (Activatio (None, 2, 2, 128) 0 ['conv4_block5_1_bn[0][0]']
n)

conv4_block5_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block5_1_relu[0][0]']

conv4_block5_concat (Concatena (None, 2, 2, 416) 0 ['conv4_block4_concat[0][0]',
te) 'conv4_block5_2_conv[0][0]']

conv4_block6_0_bn (BatchNormal (None, 2, 2, 416) 1664 ['conv4_block5_concat[0][0]']
ization)

conv4_block6_0_relu (Activatio (None, 2, 2, 416) 0 ['conv4_block6_0_bn[0][0]']
n)

conv4_block6_1_conv (Conv2D) (None, 2, 2, 128) 53248 ['conv4_block6_0_relu[0][0]']

conv4_block6_1_bn (BatchNormal (None, 2, 2, 128) 512 ['conv4_block6_1_conv[0][0]']
ization)

conv4_block6_1_relu (Activatio (None, 2, 2, 128) 0 ['conv4_block6_1_bn[0][0]']
n)

conv4_block6_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block6_1_relu[0][0]']

conv4_block6_concat (Concatena (None, 2, 2, 448) 0 ['conv4_block5_concat[0][0]',
te) 'conv4_block6_2_conv[0][0]']

conv4_block7_0_bn (BatchNormal (None, 2, 2, 448) 1792 ['conv4_block6_concat[0][0]']
ization)

conv4_block7_0_relu (Activatio (None, 2, 2, 448) 0 ['conv4_block7_0_bn[0][0]']
n)

conv4_block7_1_conv (Conv2D) (None, 2, 2, 128) 57344 ['conv4_block7_0_relu[0][0]']

conv4_block7_1_bn (BatchNormal (None, 2, 2, 128) 512 ['conv4_block7_1_conv[0][0]']
ization)

conv4_block7_1_relu (Activatio (None, 2, 2, 128) 0 ['conv4_block7_1_bn[0][0]']
n)

conv4_block7_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block7_1_relu[0][0]']

conv4_block7_concat (Concatena (None, 2, 2, 480) 0 ['conv4_block6_concat[0][0]',
te) 'conv4_block7_2_conv[0][0]']

conv4_block8_0_bn (BatchNormal (None, 2, 2, 480) 1920 ['conv4_block7_concat[0][0]']
ization)

conv4_block8_0_relu (Activatio (None, 2, 2, 480) 0 ['conv4_block8_0_bn[0][0]']
n)

conv4_block8_1_conv (Conv2D) (None, 2, 2, 128) 61440 ['conv4_block8_0_relu[0][0]']

conv4_block8_1_bn (BatchNormal (None, 2, 2, 128) 512 ['conv4_block8_1_conv[0][0]']
ization)

conv4_block8_1_relu (Activatio (None, 2, 2, 128) 0 ['conv4_block8_1_bn[0][0]']
n)

conv4_block8_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block8_1_relu[0][0]']

conv4_block8_concat (Concatena (None, 2, 2, 512) 0 ['conv4_block7_concat[0][0]',
te) 'conv4_block8_2_conv[0][0]']

conv4_block9_0_bn (BatchNormal (None, 2, 2, 512) 2048 ['conv4_block8_concat[0][0]']
ization)

conv4_block9_0_relu (Activatio (None, 2, 2, 512) 0 ['conv4_block9_0_bn[0][0]']
n)

conv4_block9_1_conv (Conv2D) (None, 2, 2, 128) 65536 ['conv4_block9_0_relu[0][0]']

conv4_block9_1_bn (BatchNormal (None, 2, 2, 128) 512 ['conv4_block9_1_conv[0][0]']
ization)

conv4_block9_1_relu (Activatio (None, 2, 2, 128) 0 ['conv4_block9_1_bn[0][0]']
n)

conv4_block9_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block9_1_relu[0][0]']

conv4_block9_concat (Concatena (None, 2, 2, 544) 0 ['conv4_block8_concat[0][0]',
te) 'conv4_block9_2_conv[0][0]']

conv4_block10_0_bn (BatchNorma (None, 2, 2, 544) 2176 ['conv4_block9_concat[0][0]']
lization)

conv4_block10_0_relu (Activati (None, 2, 2, 544) 0 ['conv4_block10_0_bn[0][0]']
on)

conv4_block10_1_conv (Conv2D) (None, 2, 2, 128) 69632 ['conv4_block10_0_relu[0][0]']

conv4_block10_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block10_1_conv[0][0]']
lization)

conv4_block10_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block10_1_bn[0][0]']
on)

conv4_block10_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block10_1_relu[0][0]']

conv4_block10_concat (Concaten (None, 2, 2, 576) 0 ['conv4_block9_concat[0][0]',
ate) 'conv4_block10_2_conv[0][0]']

conv4_block11_0_bn (BatchNorma (None, 2, 2, 576) 2304 ['conv4_block10_concat[0][0]']
lization)

conv4_block11_0_relu (Activati (None, 2, 2, 576) 0 ['conv4_block11_0_bn[0][0]']
on)

conv4_block11_1_conv (Conv2D) (None, 2, 2, 128) 73728 ['conv4_block11_0_relu[0][0]']

conv4_block11_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block11_1_conv[0][0]']
lization)

conv4_block11_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block11_1_bn[0][0]']
on)

conv4_block11_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block11_1_relu[0][0]']

conv4_block11_concat (Concaten (None, 2, 2, 608) 0 ['conv4_block10_concat[0][0]',
ate) 'conv4_block11_2_conv[0][0]']

conv4_block12_0_bn (BatchNorma (None, 2, 2, 608) 2432 ['conv4_block11_concat[0][0]']
lization)

conv4_block12_0_relu (Activati (None, 2, 2, 608) 0 ['conv4_block12_0_bn[0][0]']
on)

conv4_block12_1_conv (Conv2D) (None, 2, 2, 128) 77824 ['conv4_block12_0_relu[0][0]']

conv4_block12_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block12_1_conv[0][0]']
lization)

conv4_block12_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block12_1_bn[0][0]']
on)

conv4_block12_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block12_1_relu[0][0]']

conv4_block12_concat (Concaten (None, 2, 2, 640) 0 ['conv4_block11_concat[0][0]',
ate) 'conv4_block12_2_conv[0][0]']

conv4_block13_0_bn (BatchNorma (None, 2, 2, 640) 2560 ['conv4_block12_concat[0][0]']
lization)

conv4_block13_0_relu (Activati (None, 2, 2, 640) 0 ['conv4_block13_0_bn[0][0]']
on)

conv4_block13_1_conv (Conv2D) (None, 2, 2, 128) 81920 ['conv4_block13_0_relu[0][0]']

conv4_block13_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block13_1_conv[0][0]']
lization)

conv4_block13_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block13_1_bn[0][0]']
on)

conv4_block13_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block13_1_relu[0][0]']

conv4_block13_concat (Concaten (None, 2, 2, 672) 0 ['conv4_block12_concat[0][0]',
ate) 'conv4_block13_2_conv[0][0]']

conv4_block14_0_bn (BatchNorma (None, 2, 2, 672) 2688 ['conv4_block13_concat[0][0]']
lization)

conv4_block14_0_relu (Activati (None, 2, 2, 672) 0 ['conv4_block14_0_bn[0][0]']
on)

conv4_block14_1_conv (Conv2D) (None, 2, 2, 128) 86016 ['conv4_block14_0_relu[0][0]']

conv4_block14_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block14_1_conv[0][0]']
lization)

conv4_block14_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block14_1_bn[0][0]']
on)

conv4_block14_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block14_1_relu[0][0]']

conv4_block14_concat (Concaten (None, 2, 2, 704) 0 ['conv4_block13_concat[0][0]',
ate) 'conv4_block14_2_conv[0][0]']

conv4_block15_0_bn (BatchNorma (None, 2, 2, 704) 2816 ['conv4_block14_concat[0][0]']
lization)

conv4_block15_0_relu (Activati (None, 2, 2, 704) 0 ['conv4_block15_0_bn[0][0]']
on)

conv4_block15_1_conv (Conv2D) (None, 2, 2, 128) 90112 ['conv4_block15_0_relu[0][0]']

conv4_block15_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block15_1_conv[0][0]']
lization)

conv4_block15_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block15_1_bn[0][0]']
on)

conv4_block15_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block15_1_relu[0][0]']

conv4_block15_concat (Concaten (None, 2, 2, 736) 0 ['conv4_block14_concat[0][0]',
ate) 'conv4_block15_2_conv[0][0]']

conv4_block16_0_bn (BatchNorma (None, 2, 2, 736) 2944 ['conv4_block15_concat[0][0]']
lization)

conv4_block16_0_relu (Activati (None, 2, 2, 736) 0 ['conv4_block16_0_bn[0][0]']
on)

conv4_block16_1_conv (Conv2D) (None, 2, 2, 128) 94208 ['conv4_block16_0_relu[0][0]']

conv4_block16_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block16_1_conv[0][0]']
lization)

conv4_block16_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block16_1_bn[0][0]']
on)

conv4_block16_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block16_1_relu[0][0]']

conv4_block16_concat (Concaten (None, 2, 2, 768) 0 ['conv4_block15_concat[0][0]',
ate) 'conv4_block16_2_conv[0][0]']

conv4_block17_0_bn (BatchNorma (None, 2, 2, 768) 3072 ['conv4_block16_concat[0][0]']
lization)

conv4_block17_0_relu (Activati (None, 2, 2, 768) 0 ['conv4_block17_0_bn[0][0]']
on)

conv4_block17_1_conv (Conv2D) (None, 2, 2, 128) 98304 ['conv4_block17_0_relu[0][0]']

conv4_block17_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block17_1_conv[0][0]']
lization)

conv4_block17_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block17_1_bn[0][0]']
on)

conv4_block17_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block17_1_relu[0][0]']

conv4_block17_concat (Concaten (None, 2, 2, 800) 0 ['conv4_block16_concat[0][0]',
ate) 'conv4_block17_2_conv[0][0]']

conv4_block18_0_bn (BatchNorma (None, 2, 2, 800) 3200 ['conv4_block17_concat[0][0]']
lization)

conv4_block18_0_relu (Activati (None, 2, 2, 800) 0 ['conv4_block18_0_bn[0][0]']
on)

conv4_block18_1_conv (Conv2D) (None, 2, 2, 128) 102400 ['conv4_block18_0_relu[0][0]']

conv4_block18_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block18_1_conv[0][0]']
lization)

conv4_block18_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block18_1_bn[0][0]']
on)

conv4_block18_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block18_1_relu[0][0]']

conv4_block18_concat (Concaten (None, 2, 2, 832) 0 ['conv4_block17_concat[0][0]',
ate) 'conv4_block18_2_conv[0][0]']

conv4_block19_0_bn (BatchNorma (None, 2, 2, 832) 3328 ['conv4_block18_concat[0][0]']
lization)

conv4_block19_0_relu (Activati (None, 2, 2, 832) 0 ['conv4_block19_0_bn[0][0]']
on)

conv4_block19_1_conv (Conv2D) (None, 2, 2, 128) 106496 ['conv4_block19_0_relu[0][0]']

conv4_block19_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block19_1_conv[0][0]']
lization)

conv4_block19_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block19_1_bn[0][0]']
on)

conv4_block19_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block19_1_relu[0][0]']

conv4_block19_concat (Concaten (None, 2, 2, 864) 0 ['conv4_block18_concat[0][0]',
ate) 'conv4_block19_2_conv[0][0]']

conv4_block20_0_bn (BatchNorma (None, 2, 2, 864) 3456 ['conv4_block19_concat[0][0]']
lization)

conv4_block20_0_relu (Activati (None, 2, 2, 864) 0 ['conv4_block20_0_bn[0][0]']
on)

conv4_block20_1_conv (Conv2D) (None, 2, 2, 128) 110592 ['conv4_block20_0_relu[0][0]']

conv4_block20_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block20_1_conv[0][0]']
lization)

conv4_block20_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block20_1_bn[0][0]']
on)

conv4_block20_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block20_1_relu[0][0]']

conv4_block20_concat (Concaten (None, 2, 2, 896) 0 ['conv4_block19_concat[0][0]',
ate) 'conv4_block20_2_conv[0][0]']

conv4_block21_0_bn (BatchNorma (None, 2, 2, 896) 3584 ['conv4_block20_concat[0][0]']
lization)

conv4_block21_0_relu (Activati (None, 2, 2, 896) 0 ['conv4_block21_0_bn[0][0]']
on)

conv4_block21_1_conv (Conv2D) (None, 2, 2, 128) 114688 ['conv4_block21_0_relu[0][0]']

conv4_block21_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block21_1_conv[0][0]']
lization)

conv4_block21_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block21_1_bn[0][0]']
on)

conv4_block21_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block21_1_relu[0][0]']

conv4_block21_concat (Concaten (None, 2, 2, 928) 0 ['conv4_block20_concat[0][0]',
ate) 'conv4_block21_2_conv[0][0]']

conv4_block22_0_bn (BatchNorma (None, 2, 2, 928) 3712 ['conv4_block21_concat[0][0]']
lization)

conv4_block22_0_relu (Activati (None, 2, 2, 928) 0 ['conv4_block22_0_bn[0][0]']
on)

conv4_block22_1_conv (Conv2D) (None, 2, 2, 128) 118784 ['conv4_block22_0_relu[0][0]']

conv4_block22_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block22_1_conv[0][0]']
lization)

conv4_block22_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block22_1_bn[0][0]']
on)

conv4_block22_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block22_1_relu[0][0]']

conv4_block22_concat (Concaten (None, 2, 2, 960) 0 ['conv4_block21_concat[0][0]',
ate) 'conv4_block22_2_conv[0][0]']

conv4_block23_0_bn (BatchNorma (None, 2, 2, 960) 3840 ['conv4_block22_concat[0][0]']
lization)

conv4_block23_0_relu (Activati (None, 2, 2, 960) 0 ['conv4_block23_0_bn[0][0]']
on)

conv4_block23_1_conv (Conv2D) (None, 2, 2, 128) 122880 ['conv4_block23_0_relu[0][0]']

conv4_block23_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block23_1_conv[0][0]']
lization)

conv4_block23_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block23_1_bn[0][0]']
on)

conv4_block23_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block23_1_relu[0][0]']

conv4_block23_concat (Concaten (None, 2, 2, 992) 0 ['conv4_block22_concat[0][0]',
ate) 'conv4_block23_2_conv[0][0]']

conv4_block24_0_bn (BatchNorma (None, 2, 2, 992) 3968 ['conv4_block23_concat[0][0]']
lization)

conv4_block24_0_relu (Activati (None, 2, 2, 992) 0 ['conv4_block24_0_bn[0][0]']
on)

conv4_block24_1_conv (Conv2D) (None, 2, 2, 128) 126976 ['conv4_block24_0_relu[0][0]']

conv4_block24_1_bn (BatchNorma (None, 2, 2, 128) 512 ['conv4_block24_1_conv[0][0]']
lization)

conv4_block24_1_relu (Activati (None, 2, 2, 128) 0 ['conv4_block24_1_bn[0][0]']
on)

conv4_block24_2_conv (Conv2D) (None, 2, 2, 32) 36864 ['conv4_block24_1_relu[0][0]']

conv4_block24_concat (Concaten (None, 2, 2, 1024) 0 ['conv4_block23_concat[0][0]',
ate) 'conv4_block24_2_conv[0][0]']

pool4_bn (BatchNormalization) (None, 2, 2, 1024) 4096 ['conv4_block24_concat[0][0]']

pool4_relu (Activation) (None, 2, 2, 1024) 0 ['pool4_bn[0][0]']

pool4_conv (Conv2D) (None, 2, 2, 512) 524288 ['pool4_relu[0][0]']

pool4_pool (AveragePooling2D) (None, 1, 1, 512) 0 ['pool4_conv[0][0]']

conv5_block1_0_bn (BatchNormal (None, 1, 1, 512) 2048 ['pool4_pool[0][0]']
ization)

conv5_block1_0_relu (Activatio (None, 1, 1, 512) 0 ['conv5_block1_0_bn[0][0]']
n)

conv5_block1_1_conv (Conv2D) (None, 1, 1, 128) 65536 ['conv5_block1_0_relu[0][0]']

conv5_block1_1_bn (BatchNormal (None, 1, 1, 128) 512 ['conv5_block1_1_conv[0][0]']
ization)

conv5_block1_1_relu (Activatio (None, 1, 1, 128) 0 ['conv5_block1_1_bn[0][0]']
n)

conv5_block1_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block1_1_relu[0][0]']

conv5_block1_concat (Concatena (None, 1, 1, 544) 0 ['pool4_pool[0][0]',
te) 'conv5_block1_2_conv[0][0]']

conv5_block2_0_bn (BatchNormal (None, 1, 1, 544) 2176 ['conv5_block1_concat[0][0]']
ization)

conv5_block2_0_relu (Activatio (None, 1, 1, 544) 0 ['conv5_block2_0_bn[0][0]']
n)

conv5_block2_1_conv (Conv2D) (None, 1, 1, 128) 69632 ['conv5_block2_0_relu[0][0]']

conv5_block2_1_bn (BatchNormal (None, 1, 1, 128) 512 ['conv5_block2_1_conv[0][0]']
ization)

conv5_block2_1_relu (Activatio (None, 1, 1, 128) 0 ['conv5_block2_1_bn[0][0]']
n)

conv5_block2_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block2_1_relu[0][0]']

conv5_block2_concat (Concatena (None, 1, 1, 576) 0 ['conv5_block1_concat[0][0]',
te) 'conv5_block2_2_conv[0][0]']

conv5_block3_0_bn (BatchNormal (None, 1, 1, 576) 2304 ['conv5_block2_concat[0][0]']
ization)

conv5_block3_0_relu (Activatio (None, 1, 1, 576) 0 ['conv5_block3_0_bn[0][0]']
n)

conv5_block3_1_conv (Conv2D) (None, 1, 1, 128) 73728 ['conv5_block3_0_relu[0][0]']

conv5_block3_1_bn (BatchNormal (None, 1, 1, 128) 512 ['conv5_block3_1_conv[0][0]']
ization)

conv5_block3_1_relu (Activatio (None, 1, 1, 128) 0 ['conv5_block3_1_bn[0][0]']
n)

conv5_block3_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block3_1_relu[0][0]']

conv5_block3_concat (Concatena (None, 1, 1, 608) 0 ['conv5_block2_concat[0][0]',
te) 'conv5_block3_2_conv[0][0]']

conv5_block4_0_bn (BatchNormal (None, 1, 1, 608) 2432 ['conv5_block3_concat[0][0]']
ization)

conv5_block4_0_relu (Activatio (None, 1, 1, 608) 0 ['conv5_block4_0_bn[0][0]']
n)

conv5_block4_1_conv (Conv2D) (None, 1, 1, 128) 77824 ['conv5_block4_0_relu[0][0]']

conv5_block4_1_bn (BatchNormal (None, 1, 1, 128) 512 ['conv5_block4_1_conv[0][0]']
ization)

conv5_block4_1_relu (Activatio (None, 1, 1, 128) 0 ['conv5_block4_1_bn[0][0]']
n)

conv5_block4_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block4_1_relu[0][0]']

conv5_block4_concat (Concatena (None, 1, 1, 640) 0 ['conv5_block3_concat[0][0]',
te) 'conv5_block4_2_conv[0][0]']

conv5_block5_0_bn (BatchNormal (None, 1, 1, 640) 2560 ['conv5_block4_concat[0][0]']
ization)

conv5_block5_0_relu (Activatio (None, 1, 1, 640) 0 ['conv5_block5_0_bn[0][0]']
n)

conv5_block5_1_conv (Conv2D) (None, 1, 1, 128) 81920 ['conv5_block5_0_relu[0][0]']

conv5_block5_1_bn (BatchNormal (None, 1, 1, 128) 512 ['conv5_block5_1_conv[0][0]']
ization)

conv5_block5_1_relu (Activatio (None, 1, 1, 128) 0 ['conv5_block5_1_bn[0][0]']
n)

conv5_block5_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block5_1_relu[0][0]']

conv5_block5_concat (Concatena (None, 1, 1, 672) 0 ['conv5_block4_concat[0][0]',
te) 'conv5_block5_2_conv[0][0]']

conv5_block6_0_bn (BatchNormal (None, 1, 1, 672) 2688 ['conv5_block5_concat[0][0]']
ization)

conv5_block6_0_relu (Activatio (None, 1, 1, 672) 0 ['conv5_block6_0_bn[0][0]']
n)

conv5_block6_1_conv (Conv2D) (None, 1, 1, 128) 86016 ['conv5_block6_0_relu[0][0]']

conv5_block6_1_bn (BatchNormal (None, 1, 1, 128) 512 ['conv5_block6_1_conv[0][0]']
ization)

conv5_block6_1_relu (Activatio (None, 1, 1, 128) 0 ['conv5_block6_1_bn[0][0]']
n)

conv5_block6_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block6_1_relu[0][0]']

conv5_block6_concat (Concatena (None, 1, 1, 704) 0 ['conv5_block5_concat[0][0]',
te) 'conv5_block6_2_conv[0][0]']

conv5_block7_0_bn (BatchNormal (None, 1, 1, 704) 2816 ['conv5_block6_concat[0][0]']
ization)

conv5_block7_0_relu (Activatio (None, 1, 1, 704) 0 ['conv5_block7_0_bn[0][0]']
n)

conv5_block7_1_conv (Conv2D) (None, 1, 1, 128) 90112 ['conv5_block7_0_relu[0][0]']

conv5_block7_1_bn (BatchNormal (None, 1, 1, 128) 512 ['conv5_block7_1_conv[0][0]']
ization)

conv5_block7_1_relu (Activatio (None, 1, 1, 128) 0 ['conv5_block7_1_bn[0][0]']
n)

conv5_block7_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block7_1_relu[0][0]']

conv5_block7_concat (Concatena (None, 1, 1, 736) 0 ['conv5_block6_concat[0][0]',
te) 'conv5_block7_2_conv[0][0]']

conv5_block8_0_bn (BatchNormal (None, 1, 1, 736) 2944 ['conv5_block7_concat[0][0]']
ization)

conv5_block8_0_relu (Activatio (None, 1, 1, 736) 0 ['conv5_block8_0_bn[0][0]']
n)

conv5_block8_1_conv (Conv2D) (None, 1, 1, 128) 94208 ['conv5_block8_0_relu[0][0]']

conv5_block8_1_bn (BatchNormal (None, 1, 1, 128) 512 ['conv5_block8_1_conv[0][0]']
ization)

conv5_block8_1_relu (Activatio (None, 1, 1, 128) 0 ['conv5_block8_1_bn[0][0]']
n)

conv5_block8_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block8_1_relu[0][0]']

conv5_block8_concat (Concatena (None, 1, 1, 768) 0 ['conv5_block7_concat[0][0]',
te) 'conv5_block8_2_conv[0][0]']

conv5_block9_0_bn (BatchNormal (None, 1, 1, 768) 3072 ['conv5_block8_concat[0][0]']
ization)

conv5_block9_0_relu (Activatio (None, 1, 1, 768) 0 ['conv5_block9_0_bn[0][0]']
n)

conv5_block9_1_conv (Conv2D) (None, 1, 1, 128) 98304 ['conv5_block9_0_relu[0][0]']

conv5_block9_1_bn (BatchNormal (None, 1, 1, 128) 512 ['conv5_block9_1_conv[0][0]']
ization)

conv5_block9_1_relu (Activatio (None, 1, 1, 128) 0 ['conv5_block9_1_bn[0][0]']
n)

conv5_block9_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block9_1_relu[0][0]']

conv5_block9_concat (Concatena (None, 1, 1, 800) 0 ['conv5_block8_concat[0][0]',
te) 'conv5_block9_2_conv[0][0]']

conv5_block10_0_bn (BatchNorma (None, 1, 1, 800) 3200 ['conv5_block9_concat[0][0]']
lization)

conv5_block10_0_relu (Activati (None, 1, 1, 800) 0 ['conv5_block10_0_bn[0][0]']
on)

conv5_block10_1_conv (Conv2D) (None, 1, 1, 128) 102400 ['conv5_block10_0_relu[0][0]']

conv5_block10_1_bn (BatchNorma (None, 1, 1, 128) 512 ['conv5_block10_1_conv[0][0]']
lization)

conv5_block10_1_relu (Activati (None, 1, 1, 128) 0 ['conv5_block10_1_bn[0][0]']
on)

conv5_block10_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block10_1_relu[0][0]']

conv5_block10_concat (Concaten (None, 1, 1, 832) 0 ['conv5_block9_concat[0][0]',
ate) 'conv5_block10_2_conv[0][0]']

conv5_block11_0_bn (BatchNorma (None, 1, 1, 832) 3328 ['conv5_block10_concat[0][0]']
lization)

conv5_block11_0_relu (Activati (None, 1, 1, 832) 0 ['conv5_block11_0_bn[0][0]']
on)

conv5_block11_1_conv (Conv2D) (None, 1, 1, 128) 106496 ['conv5_block11_0_relu[0][0]']

conv5_block11_1_bn (BatchNorma (None, 1, 1, 128) 512 ['conv5_block11_1_conv[0][0]']
lization)

conv5_block11_1_relu (Activati (None, 1, 1, 128) 0 ['conv5_block11_1_bn[0][0]']
on)

conv5_block11_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block11_1_relu[0][0]']

conv5_block11_concat (Concaten (None, 1, 1, 864) 0 ['conv5_block10_concat[0][0]',
ate) 'conv5_block11_2_conv[0][0]']

conv5_block12_0_bn (BatchNorma (None, 1, 1, 864) 3456 ['conv5_block11_concat[0][0]']
lization)

conv5_block12_0_relu (Activati (None, 1, 1, 864) 0 ['conv5_block12_0_bn[0][0]']
on)

conv5_block12_1_conv (Conv2D) (None, 1, 1, 128) 110592 ['conv5_block12_0_relu[0][0]']

conv5_block12_1_bn (BatchNorma (None, 1, 1, 128) 512 ['conv5_block12_1_conv[0][0]']
lization)

conv5_block12_1_relu (Activati (None, 1, 1, 128) 0 ['conv5_block12_1_bn[0][0]']
on)

conv5_block12_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block12_1_relu[0][0]']

conv5_block12_concat (Concaten (None, 1, 1, 896) 0 ['conv5_block11_concat[0][0]',
ate) 'conv5_block12_2_conv[0][0]']

conv5_block13_0_bn (BatchNorma (None, 1, 1, 896) 3584 ['conv5_block12_concat[0][0]']
lization)

conv5_block13_0_relu (Activati (None, 1, 1, 896) 0 ['conv5_block13_0_bn[0][0]']
on)

conv5_block13_1_conv (Conv2D) (None, 1, 1, 128) 114688 ['conv5_block13_0_relu[0][0]']

conv5_block13_1_bn (BatchNorma (None, 1, 1, 128) 512 ['conv5_block13_1_conv[0][0]']
lization)

conv5_block13_1_relu (Activati (None, 1, 1, 128) 0 ['conv5_block13_1_bn[0][0]']
on)

conv5_block13_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block13_1_relu[0][0]']

conv5_block13_concat (Concaten (None, 1, 1, 928) 0 ['conv5_block12_concat[0][0]',
ate) 'conv5_block13_2_conv[0][0]']

conv5_block14_0_bn (BatchNorma (None, 1, 1, 928) 3712 ['conv5_block13_concat[0][0]']
lization)

conv5_block14_0_relu (Activati (None, 1, 1, 928) 0 ['conv5_block14_0_bn[0][0]']
on)

conv5_block14_1_conv (Conv2D) (None, 1, 1, 128) 118784 ['conv5_block14_0_relu[0][0]']

conv5_block14_1_bn (BatchNorma (None, 1, 1, 128) 512 ['conv5_block14_1_conv[0][0]']
lization)

conv5_block14_1_relu (Activati (None, 1, 1, 128) 0 ['conv5_block14_1_bn[0][0]']
on)

conv5_block14_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block14_1_relu[0][0]']

conv5_block14_concat (Concaten (None, 1, 1, 960) 0 ['conv5_block13_concat[0][0]',
ate) 'conv5_block14_2_conv[0][0]']

conv5_block15_0_bn (BatchNorma (None, 1, 1, 960) 3840 ['conv5_block14_concat[0][0]']
lization)

conv5_block15_0_relu (Activati (None, 1, 1, 960) 0 ['conv5_block15_0_bn[0][0]']
on)

conv5_block15_1_conv (Conv2D) (None, 1, 1, 128) 122880 ['conv5_block15_0_relu[0][0]']

conv5_block15_1_bn (BatchNorma (None, 1, 1, 128) 512 ['conv5_block15_1_conv[0][0]']
lization)

conv5_block15_1_relu (Activati (None, 1, 1, 128) 0 ['conv5_block15_1_bn[0][0]']
on)

conv5_block15_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block15_1_relu[0][0]']

conv5_block15_concat (Concaten (None, 1, 1, 992) 0 ['conv5_block14_concat[0][0]',
ate) 'conv5_block15_2_conv[0][0]']

conv5_block16_0_bn (BatchNorma (None, 1, 1, 992) 3968 ['conv5_block15_concat[0][0]']
lization)

conv5_block16_0_relu (Activati (None, 1, 1, 992) 0 ['conv5_block16_0_bn[0][0]']
on)

conv5_block16_1_conv (Conv2D) (None, 1, 1, 128) 126976 ['conv5_block16_0_relu[0][0]']

conv5_block16_1_bn (BatchNorma (None, 1, 1, 128) 512 ['conv5_block16_1_conv[0][0]']
lization)

conv5_block16_1_relu (Activati (None, 1, 1, 128) 0 ['conv5_block16_1_bn[0][0]']
on)

conv5_block16_2_conv (Conv2D) (None, 1, 1, 32) 36864 ['conv5_block16_1_relu[0][0]']

conv5_block16_concat (Concaten (None, 1, 1, 1024) 0 ['conv5_block15_concat[0][0]',
ate) 'conv5_block16_2_conv[0][0]']

bn (BatchNormalization) (None, 1, 1, 1024) 4096 ['conv5_block16_concat[0][0]']

relu (Activation) (None, 1, 1, 1024) 0 ['bn[0][0]']

flatten (Flatten) (None, 1024) 0 ['relu[0][0]']

dense (Dense) (None, 1000) 1025000 ['flatten[0][0]']

dense_1 (Dense) (None, 800) 800800 ['dense[0][0]']

dense_2 (Dense) (None, 400) 320400 ['dense_1[0][0]']

dense_3 (Dense) (None, 200) 80200 ['dense_2[0][0]']

dense_4 (Dense) (None, 100) 20100 ['dense_3[0][0]']

dense_5 (Dense) (None, 10) 1010 ['dense_4[0][0]']

==================================================================================================
Total params: 9,285,014
Trainable params: 9,201,366
Non-trainable params: 83,648

Now we need to compile the model which is shown below:

base_learning_rate = 0.0001  #Line 13
model_final.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=base_learning_rate),loss=tf.keras.losses.CategoricalCrossentropy(),metrics=['accuracy']) #Line 14

Line 13: We have set the learning rate for the optimizer ie. 0.0001

Line 14: In this snippet we have selected our desired parameters like Accuracy, Optimizer: ADam, Loss: CategoricalCrossentrophy.

Finally, we can try and predict the pattern using the following sbippets:

history = model_final.fit(trainX,trainY,epochs=10,batch_size=32,validation_data=(testX, testY))     #Line 15
prediction=model_final.predict(testX) #Line 16

Line 15: This snippet is used to train the model on train datasets.

Line 16: This snippet is used to make predictions from the model on test data sets

In the next article, we will have hands-on experience with Densenet as Pretrained Densener model weights as a feature extraction tool in Keras.

As we say “A car is worthless without a good engine”, similarly a student is worthless without proper guidance and motivation. I would like to thank my Guru as well as my Idol”Dr. P. Supraja” and “A. Helen Victoria”- guided me from the bottom of my heart throughout the journey. As a Guru, she illuminated the best possible path for me, motivated me every time I faced a setback or an obstacle – without her support and motivation it would have been an impossible task for me.

Pytorch: Connection

Keras: Connection

Tensorflow: Connection

if you have any query feel free to contact me by any of the options below:

YouTube: Lynnk

website: www.rstiwari.com

Average: https://tiwari11-rst.medium.com

Portfolio: https://portfolio.rstiwari.com/

Articles:

https://becominghuman.ai/transfer-learning-part-7-3-densenet-architecture-in-keras-4cdec8b14b15?source=rss—-5e5bef33608a—4

Previous articleTexas Medical Association files another lawsuit over surprise billing ban
Next articleMobile man charged with attempted murder months after arrest in connection with shooting at homicide vigil – WKRG News 5