Table 2.
Layer-wise summary of the backbone CNN architecture with output shapes, specifications, and parameter count.
| Layer type | Output shape | Details/specifications *Two sub-columns indicate two parallel processes which will be subjected to an add () before the next process |
Total number of parameters | |
|---|---|---|---|---|
| Input | 224,224,3 | Input image | 0 | |
| Conv2D_Block_1 | 111,111,32 | 3×3 Conv2D, 32, Stride = 1, activation = relu 2×2 MaxPool, Stride = 1 |
896 | |
| Identity_Block_1 | 111,111,64 | 1×1 Conv2D, 32, Stride = 1, activation = relu + BatchNorm () 3×3 Conv2D, 32, Stride = 1, activation = relu + BatchNorm () 1×1 Conv2D, 64, Stride = 1, activation = None + BatchNorm () |
1×1 Conv2D, 64, Stride = 1, activation = None + BatchNorm () |
15,876 |
| Add () Activation (relu) | ||||
| Conv2D_Block_2 | 55,55,64 | 3×3 Conv2D, 64, Stride = 1, activation = relu 2×2 MaxPool, Stride = 1 ZeroPadding (1,0), (1,0) |
36,928 | |
| Concatenate | 55,55,96 | Concatenate (Conv2D_Block_2, MaxPool (Conv2D_Block_1)) | 0 | |
| Identity_Block_2 | 55,55,128 | 1×1 Conv2D, 64, Stride = 1, activation = relu + BatchNorm () 3×3 Conv2D, 64, Stride = 1, activation = relu + BatchNorm () 1×1 Conv2D, 128, Stride = 1, activation = None + BatchNorm () |
1×1 Conv2D, 128, Stride = 1, activation = None + BatchNorm () |
67,592 |
| Add () Activation (relu) | ||||
| Batch Normalization | 512 | |||
| Conv2D_Block_3 | 27,27,128 | 3×3 Conv2D, 128, Stride = 1, activation = relu 2×2 MaxPool, Stride = 1 ZeroPadding (1,0), (1,0) |
1,47,584 | |
| Concatenate | 27,27,224 | Concatenate (Conv2D_Block_3, MaxPool (Conv2D_Block_2)) | 0 | |
| Identity_Block_3 | 27,27,256 | 1×1 Conv2D, 128, Stride = 1, activation = relu + BatchNorm () 3×3 Conv2D, 128, Stride = 1, activation = relu + BatchNorm () 1×1 Conv2D, 256, Stride = 1, activation = None+BatchNorm () |
1×1 Conv2D, 256, Stride = 1, activation = None + BatchNorm () |
2,78,544 |
| Add () Activation (relu) | ||||
| Conv2D_Block_4 | 13,13,256 | 3×3 Conv2D, 256, Stride = 1, activation = relu 2×2 MaxPool, Stride = 1 ZeroPadding (1,0), (1,0) |
5,90,080 | |
| Concatenate | 13,13,480 | Concatenate (Conv2D_Block_4, MaxPool (Conv2D_Block_3)) | 0 | |
| Identity_Block_4 | 13,13,512 | 1×1 Conv2D, 256, Stride = 1, activation = relu + BatchNorm () 3×3 Conv2D, 256, Stride = 1, activation = relu + BatchNorm () 1×1 Conv2D, 512, Stride = 1, activation = None + BatchNorm () |
1×1 Conv2D, 512, Stride = 1, activation = None + BatchNorm () |
11,30,528 |
| Add () Activation (relu) | ||||
| GlobalAveragePooling2D | 0 | |||
| Dense (1024), activation = relu | 5,25,312 | |||
| Dense (512), activation = relu | 5,24,800 | |||
| Batch normalization | 2,048 | |||
| Dropout (0.2) | 0 | |||
| Dense (38), activation = SoftMax | 19,494 | |||