library(keras3)
= function(x){ t(apply(x, 2, rev)) }
rotate
= function(img, title = ""){
imgPlot = grey.colors(255)
col image(rotate(img), col = col, xlab = "", ylab = "", axes = FALSE,
main = paste0("Label: ", as.character(title)))
}
11 Convolutional Neural Networks (CNN)
The main purpose of convolutional neural networks is image recognition. (Sound can be understood as an image as well!) In a convolutional neural network, we have at least one convolution layer, additional to the normal, fully connected deep neural network layers.
Neurons in a convolution layer are connected only to a small spatially contiguous area of the input layer (receptive field). We use this structure (feature map) to scan the entire features / neurons (e.g. picture). Think of the feature map as a kernel or filter (or imagine a sliding window with weighted pixels) that is used to scan the image. As the name is already indicating, this operation is a convolution in mathematics. The kernel weights are optimized, but we use the same weights across the entire input neurons (shared weights).
The resulting (hidden) convolutional layer after training is called a feature map. You can think of the feature map as a map that shows you where the “shapes” expressed by the kernel appear in the input. One kernel / feature map will not be enough, we typically have many shapes that we want to recognize. Thus, the input layer is typically connected to several feature maps, which can be aggregated and followed by a second layer of feature maps, and so on.
You get one convolution map/layer for each kernel of one convolutional layer.
11.1 Example MNIST
We will show the use of convolutional neural networks with the MNIST data set. This data set is maybe one of the most famous image data sets. It consists of 60,000 handwritten digits from 0-9.
To do so, we define a few helper functions:
The MNIST data set is so famous that there is an automatic download function in Keras:
= dataset_mnist()
data = data$train
train = data$test test
Let’s visualize a few digits:
= par(mfrow = c(1, 3))
oldpar = sapply(1:3, function(x) imgPlot(train$x[x,,], train$y[x])) .n
par(oldpar)
Similar to the normal machine learning workflow, we have to scale the pixels (from 0-255) to the range of \([0, 1]\) and one hot encode the response. For scaling the pixels, we will use arrays instead of matrices. Arrays are called tensors in mathematics and a 2D array/tensor is typically called a matrix.
= array(train$x/255, c(dim(train$x), 1))
train_x = array(test$x/255, c(dim(test$x), 1))
test_x = keras3::to_categorical(train$y)
train_y = keras3::to_categorical(test$y) test_y
The last dimension denotes the number of channels in the image. In our case we have only one channel because the images are black and white.
Most times, we would have at least 3 color channels, for example RGB (red, green, blue) or HSV (hue, saturation, value), sometimes with several additional dimensions like transparency.
To build our convolutional model, we have to specify a kernel. In our case, we will use 16 convolutional kernels (filters) of size \(2\times2\). These are 2D kernels because our images are 2D. For movies for example, one would use 3D kernels (the third dimension would correspond to time and not to the color channels).
= keras_model_sequential(shape(28L, 28L, 1L))
model |>
model layer_conv_2d(filters = 16L,
kernel_size = c(2L, 2L), activation = "relu") |>
layer_max_pooling_2d() |>
layer_conv_2d(filters = 16L, kernel_size = c(3L, 3L), activation = "relu") |>
layer_max_pooling_2d() |>
layer_flatten() |>
layer_dense(100L, activation = "relu") |>
layer_dense(10L, activation = "softmax")
summary(model)
Model: "sequential"
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Layer (type) ┃ Output Shape ┃ Param # ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ conv2d (Conv2D) │ (None, 27, 27, 16) │ 80 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ max_pooling2d (MaxPooling2D) │ (None, 13, 13, 16) │ 0 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ conv2d_1 (Conv2D) │ (None, 11, 11, 16) │ 2,320 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ max_pooling2d_1 (MaxPooling2D) │ (None, 5, 5, 16) │ 0 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ flatten (Flatten) │ (None, 400) │ 0 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ dense (Dense) │ (None, 100) │ 40,100 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ dense_1 (Dense) │ (None, 10) │ 1,010 │
└───────────────────────────────────┴──────────────────────────┴───────────────┘
Total params: 43,510 (169.96 KB)
Trainable params: 43,510 (169.96 KB)
Non-trainable params: 0 (0.00 B)
plot(model)
Prepare/download data:
library(torch)
Attaching package: 'torch'
The following object is masked from 'package:keras3':
as_iterator
library(torchvision)
torch_manual_seed(321L)
set.seed(123)
= mnist_dataset(
train_ds ".",
download = TRUE,
train = TRUE,
transform = transform_to_tensor
)
= mnist_dataset(
test_ds ".",
download = TRUE,
train = FALSE,
transform = transform_to_tensor
)
Build dataloader:
= dataloader(train_ds, batch_size = 32, shuffle = TRUE)
train_dl = dataloader(test_ds, batch_size = 32)
test_dl = train_dl$.iter()
first_batch = first_batch$.next()
df
$x$size() df
[1] 32 1 28 28
Build convolutional neural network: We have here to calculate the shapes of our layers on our own:
We start with our input of shape (batch_size, 1, 28, 28)
= df$x
sample $size() sample
[1] 32 1 28 28
First convolutional layer has shape (input channel = 1, number of feature maps = 16, kernel size = 2)
= nn_conv2d(1, 16L, 2L, stride = 1L)
conv1 |> conv1())$size() (sample
[1] 32 16 27 27
Output: batch_size = 32, number of feature maps = 16, dimensions of each feature map = \((27 , 27)\) Wit a kernel size of two and stride = 1 we will lose one pixel in each dimension… Questions:
- What happens if we increase the stride?
- What happens if we increase the kernel size?
Pooling layer summarizes each feature map
|> conv1() |> nnf_max_pool2d(kernel_size = 2L, stride = 2L))$size() (sample
[1] 32 16 13 13
kernel_size = 2L and stride = 2L halfs the pixel dimensions of our image.
Fully connected layer
Now we have to flatten our final output of the convolutional neural network model to use a normal fully connected layer, but to do so we have to calculate the number of inputs for the fully connected layer:
= (sample |> conv1() |>
dims nnf_max_pool2d(kernel_size = 2L, stride = 2L))$size()
# Without the batch size of course.
= prod(dims[-1])
final print(final)
[1] 2704
= nn_linear(final, 10L)
fc |> conv1() |> nnf_max_pool2d(kernel_size = 2L, stride = 2L)
(sample |> torch_flatten(start_dim = 2L) |> fc())$size()
[1] 32 10
Build the network:
= nn_module(
net "mnist",
initialize = function(){
$conv1 = nn_conv2d(1, 16L, 2L)
self$conv2 = nn_conv2d(16L, 16L, 3L)
self$fc1 = nn_linear(400L, 100L)
self$fc2 = nn_linear(100L, 10L)
self
},forward = function(x){
|>
x $conv1() |>
selfnnf_relu() |>
nnf_max_pool2d(2) |>
$conv2() |>
selfnnf_relu() |>
nnf_max_pool2d(2) |>
torch_flatten(start_dim = 2) |>
$fc1() |>
selfnnf_relu() |>
$fc2()
self
} )
We additionally used a pooling layer for downsizing the resulting feature maps. Without further specification, a \(2\times2\) pooling layer is taken automatically. Pooling layers take the input feature map and divide it into (in our case) parts of \(2\times2\) size. Then the respective pooling operation is executed. For every input map/layer, you get one (downsized) output map/layer.
As we are using the max pooling layer (there are sever other methods like the mean pooling), only the maximum value of these 4 parts is taken and forwarded further. Example input:
1 2 | 5 8 | 3 6
6 5 | 2 4 | 8 1
------------------------------
9 4 | 3 7 | 2 5
0 3 | 2 7 | 4 9
We use max pooling for every field:
max(1, 2, 6, 5) | max(5, 8, 2, 4) | max(3, 6, 8, 1)
-----------------------------------------------------------
max(9, 4, 0, 3) | max(3, 7, 2, 7) | max(2, 5, 4, 9)
So the resulting pooled information is:
6 | 8 | 8
------------------
9 | 7 | 9
In this example, a \(4\times6\) layer was transformed to a \(2\times3\) layer and thus downsized. This is similar to the biological process called lateral inhibition where active neurons inhibit the activity of neighboring neurons. It’s a loss of information but often very useful for aggregating information and prevent overfitting.
After another convolution and pooling layer, we flatten the output. This means that the following dense layer treats the previous layer as a full layer (so the dense layer is connected to all the weights from the last feature maps). You can think of this as transforming a matrix (2D) into a simple 1D vector. The full vector is then used. After flattening the layer, we can simply use our typical output layer.
The rest is as usual:
First we compile the model:
|>
model ::compile(
keras3optimizer = keras3::optimizer_adamax(0.01),
loss = keras3::loss_categorical_crossentropy
)summary(model)
Model: "sequential"
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Layer (type) ┃ Output Shape ┃ Param # ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ conv2d (Conv2D) │ (None, 27, 27, 16) │ 80 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ max_pooling2d (MaxPooling2D) │ (None, 13, 13, 16) │ 0 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ conv2d_1 (Conv2D) │ (None, 11, 11, 16) │ 2,320 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ max_pooling2d_1 (MaxPooling2D) │ (None, 5, 5, 16) │ 0 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ flatten (Flatten) │ (None, 400) │ 0 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ dense (Dense) │ (None, 100) │ 40,100 │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ dense_1 (Dense) │ (None, 10) │ 1,010 │
└───────────────────────────────────┴──────────────────────────┴───────────────┘
Total params: 43,510 (169.96 KB)
Trainable params: 43,510 (169.96 KB)
Non-trainable params: 0 (0.00 B)
Then, we train the model:
library(tensorflow)
library(keras3)
= 5L
epochs = 32L
batch_size |>
model fit(
x = train_x,
y = train_y,
epochs = epochs,
batch_size = batch_size,
shuffle = TRUE,
validation_split = 0.2
)
Train model:
library(torch)
torch_manual_seed(321L)
set.seed(123)
= net()
model_torch = optim_adam(params = model_torch$parameters, lr = 0.01)
opt
for(e in 1:3){
= c()
losses ::loop(
corofor(batch in train_dl){
$zero_grad()
opt= model_torch(batch[[1]])
pred = nnf_cross_entropy(pred, batch[[2]], reduction = "mean")
loss $backward()
loss$step()
opt= c(losses, loss$item())
losses
}
)cat(sprintf("Loss at epoch %d: %3f\n", e, mean(losses)))
}
Evaluation:
$eval()
model_torch
= c()
test_losses = 0
total = 0
correct
::loop(
corofor(batch in test_dl){
= model_torch(batch[[1]])
output = batch[[2]]
labels = nnf_cross_entropy(output, labels)
loss = c(test_losses, loss$item())
test_losses = torch_max(output$data(), dim = 2)[[2]]
predicted = total + labels$size(1)
total = correct + (predicted == labels)$sum()$item()
correct
}
)
mean(test_losses)
= correct/total
test_accuracy test_accuracy
11.2 Example CIFAR
CIFAR10 is another famous image classification dataset. It consists of ten classes with colored images (see https://www.cs.toronto.edu/~kriz/cifar.html).
library(keras3)
= keras3::dataset_cifar10()
data = data$train
train = data$test
test = train$x[1,,,]
image %>%
image image_to_array() %>%
`/`(., 255) %>%
as.raster() %>%
plot()
## normalize pixel to 0-1
= array(train$x/255, c(dim(train$x)))
train_x = array(test$x/255, c(dim(test$x)))
test_x = keras3::to_categorical(train$y)
train_y = keras3::to_categorical(test$y)
test_y = keras_model_sequential(shape(32L, 32L,3L))
model |>
model layer_conv_2d(input_shape = c(32L, 32L,3L),filters = 16L, kernel_size = c(2L,2L), activation = "relu") |>
layer_max_pooling_2d() |>
layer_dropout(0.3) |>
layer_conv_2d(filters = 16L, kernel_size = c(3L,3L), activation = "relu") |>
layer_max_pooling_2d() |>
layer_flatten() |>
layer_dense(10, activation = "softmax")
summary(model)
|>
model compile(
optimizer = optimizer_adamax(),
loss = keras3::loss_categorical_crossentropy
)= callback_early_stopping(patience = 5L)
early = 1L
epochs =20L
batch_size |> fit(
model x = train_x,
y = train_y,
epochs = epochs,
batch_size = batch_size,
shuffle = TRUE,
validation_split = 0.2,
callbacks = c(early)
)
11.3 Exercise
11.4 Advanced Training Techniques
11.4.1 Data Augmentation
Having to train a convolutional neural network using very little data is a common problem. Data augmentation helps to artificially increase the number of images.
The idea is that a convolutional neural network learns specific structures such as edges from images. Rotating, adding noise, and zooming in and out will preserve the overall key structure we are interested in, but the model will see new images and has to search once again for the key structures.
Luckily, it is very easy to use data augmentation in Keras.
To show this, we will use our flower data set. We have to define a generator object (a specific object which infinitely draws samples from our data set). In the generator we can turn on the data augmentation.
::use_virtualenv("r-keras")
reticulatelibrary(keras3)
library(tensorflow)
library(tfdatasets)
Attaching package: 'tfdatasets'
The following object is masked from 'package:torch':
as_iterator
The following object is masked from 'package:keras3':
shape
= EcoData::dataset_flower()
data = data$train/255
train = data$labels
labels
# data augemention model
= keras_model_sequential()
aug %>%
aug layer_random_flip() %>%
layer_random_rotation(factor = c(-0.5, 0.5)) %>%
layer_random_brightness(factor = c(-0.5, 0.5), value_range = c(0, 1))
aug
Model: "sequential_2"
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Layer (type) ┃ Output Shape ┃ Param # ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ random_flip (RandomFlip) │ ? │ 0 (unbuilt) │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ random_rotation (RandomRotation) │ ? │ 0 (unbuilt) │
├───────────────────────────────────┼──────────────────────────┼───────────────┤
│ random_brightness │ ? │ 0 (unbuilt) │
│ (RandomBrightness) │ │ │
└───────────────────────────────────┴──────────────────────────┴───────────────┘
Total params: 0 (0.00 B)
Trainable params: 0 (0.00 B)
Non-trainable params: 0 (0.00 B)
# Prepare datasets
= tfdatasets::tensor_slices_dataset(list(train, to_categorical(labels)))
dataset <- dataset %>%
dataset dataset_map(function(x, y) list(aug(x), y))
<- 64
batch_size
<- dataset |>
train_ds dataset_batch(batch_size) |>
dataset_prefetch(buffer_size = tf$data$AUTOTUNE)
# test!
<- train_ds |>
batch dataset_take(1) |>
as_iterator() |>
iter_next()
as.array(batch[[1]][1,,,]) |>
image_to_array() |>
as.raster() |>
plot()
# model fitting
= keras_model_sequential(shape(80L, 80L, 3L))
model |>
model layer_conv_2d(filters = 4L, kernel_size = 2L) |>
layer_max_pooling_2d() |>
layer_flatten() |>
layer_dense(units = 5L, activation = "softmax")
|>
model ::compile(loss = keras3::loss_categorical_crossentropy,
keras3optimizer = keras3::optimizer_adamax(learning_rate = 0.01))
%>% fit(train_ds, epochs = 2L) model
Epoch 1/2
48/48 - 3s - 55ms/step - loss: 17.9444
Epoch 2/2
48/48 - 2s - 43ms/step - loss: 20.5785
Using data augmentation we can artificially increase the number of images.
In Torch, we have to change the transform function (but only for the train dataloader):
library(torch)
torch_manual_seed(321L)
set.seed(123)
= function(img){
train_transforms |>
img transform_to_tensor() |>
transform_random_horizontal_flip(p = 0.3) |>
transform_random_resized_crop(size = c(28L, 28L)) |>
transform_random_vertical_flip(0.3)
}
= mnist_dataset(".", download = TRUE, train = TRUE,
train_ds transform = train_transforms)
= mnist_dataset(".", download = TRUE, train = FALSE,
test_ds transform = transform_to_tensor)
= dataloader(train_ds, batch_size = 100L, shuffle = TRUE)
train_dl = dataloader(test_ds, batch_size = 100L)
test_dl
= net()
model_torch = optim_adam(params = model_torch$parameters, lr = 0.01)
opt
for(e in 1:1){
= c()
losses ::loop(
corofor(batch in train_dl){
$zero_grad()
opt= model_torch(batch[[1]])
pred = nnf_cross_entropy(pred, batch[[2]], reduction = "mean")
loss $backward()
loss$step()
opt= c(losses, loss$item())
losses
}
)
cat(sprintf("Loss at epoch %d: %3f\n", e, mean(losses)))
}
$eval()
model_torch
= c()
test_losses = 0
total = 0
correct
::loop(
corofor(batch in test_dl){
= model_torch(batch[[1]])
output = batch[[2]]
labels = nnf_cross_entropy(output, labels)
loss = c(test_losses, loss$item())
test_losses = torch_max(output$data(), dim = 2)[[2]]
predicted = total + labels$size(1)
total = correct + (predicted == labels)$sum()$item()
correct
}
)
= correct/total
test_accuracy print(test_accuracy)
11.4.2 Transfer Learning
Another approach to reduce the necessary number of images or to speed up convergence of the models is the use of transfer learning.
The main idea of transfer learning is that all the convolutional layers have mainly one task - learning to identify highly correlated neighboring features. This knowledge is then used for new tasks. The convolutional layers learn structures such as edges in images and only the top layer, the dense layer is the actual classifier of the convolutional neural network for a specific task. Thus, one could think that we could only train the top layer as classifier. To do so, it will be confronted by sets of different edges/structures and has to decide the label based on these.
Again, this sounds very complicated but it is again quite easy with Keras and Torch.
We will do this now with the CIFAR10 data set, so we have to prepare the data:
library(tensorflow)
library(keras3)
= keras3::dataset_cifar10()
data = data$train
train = data$test
test
rm(data)
= train$x[5,,,]
image %>%
image image_to_array() %>%
`/`(., 255) %>%
as.raster() %>%
plot()
= array(train$x/255, c(dim(train$x)))
train_x = array(test$x/255, c(dim(test$x)))
test_x = keras3::to_categorical(train$y)
train_y = keras3::to_categorical(test$y)
test_y
rm(train, test)
Keras provides download functions for all famous architectures/convolutional neural network models which are already trained on the imagenet data set (another famous data set). These trained networks come already without their top layer, so we have to set include_top to false and change the input shape.
= keras3::application_densenet201(include_top = FALSE,
densenet input_shape = c(32L, 32L, 3L))
Now, we will not use a sequential model but just a “keras_model” where we can specify the inputs and outputs. Thereby, the output is our own top layer, but the inputs are the densenet inputs, as these are already pre-trained.
= keras3::keras_model(
model inputs = densenet$input,
outputs = layer_flatten(
layer_dense(densenet$output, units = 10L, activation = "softmax")
)
)
# Notice that this snippet just creates one (!) new layer.
# The densenet's inputs are connected with the model's inputs.
# The densenet's outputs are connected with our own layer (with 10 nodes).
# This layer is also the output layer of the model.
In the next step we want to freeze all layers except for our own last layer. Freezing means that these are not trained: We do not want to train the complete model, we only want to train the last layer. You can check the number of trainable weights via summary(model).
|> keras3::freeze_weights(from = 1, to = length(model$layers) - 2)
model summary(model)
Model: "functional_17"
┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━┓
┃ Layer (type) ┃ Output Shape ┃ Param # ┃ Connected to ┃ Trai… ┃
┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━┩
│ input_layer_4 │ (None, 32, 32, │ 0 │ - │ - │
│ (InputLayer) │ 3) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ zero_padding2d │ (None, 38, 38, │ 0 │ input_layer_4[… │ - │
│ (ZeroPadding2D) │ 3) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv1_conv │ (None, 16, 16, │ 9,408 │ zero_padding2d… │ N │
│ (Conv2D) │ 64) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv1_bn │ (None, 16, 16, │ 256 │ conv1_conv[0][… │ N │
│ (BatchNormalizati… │ 64) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv1_relu │ (None, 16, 16, │ 0 │ conv1_bn[0][0] │ - │
│ (Activation) │ 64) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ zero_padding2d_1 │ (None, 18, 18, │ 0 │ conv1_relu[0][… │ - │
│ (ZeroPadding2D) │ 64) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool1 │ (None, 8, 8, 64) │ 0 │ zero_padding2d… │ - │
│ (MaxPooling2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block1_0_bn │ (None, 8, 8, 64) │ 256 │ pool1[0][0] │ N │
│ (BatchNormalizati… │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block1_0_re… │ (None, 8, 8, 64) │ 0 │ conv2_block1_0… │ - │
│ (Activation) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block1_1_co… │ (None, 8, 8, │ 8,192 │ conv2_block1_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block1_1_bn │ (None, 8, 8, │ 512 │ conv2_block1_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block1_1_re… │ (None, 8, 8, │ 0 │ conv2_block1_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block1_2_co… │ (None, 8, 8, 32) │ 36,864 │ conv2_block1_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block1_conc… │ (None, 8, 8, 96) │ 0 │ pool1[0][0], │ - │
│ (Concatenate) │ │ │ conv2_block1_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block2_0_bn │ (None, 8, 8, 96) │ 384 │ conv2_block1_c… │ N │
│ (BatchNormalizati… │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block2_0_re… │ (None, 8, 8, 96) │ 0 │ conv2_block2_0… │ - │
│ (Activation) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block2_1_co… │ (None, 8, 8, │ 12,288 │ conv2_block2_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block2_1_bn │ (None, 8, 8, │ 512 │ conv2_block2_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block2_1_re… │ (None, 8, 8, │ 0 │ conv2_block2_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block2_2_co… │ (None, 8, 8, 32) │ 36,864 │ conv2_block2_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block2_conc… │ (None, 8, 8, │ 0 │ conv2_block1_c… │ - │
│ (Concatenate) │ 128) │ │ conv2_block2_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block3_0_bn │ (None, 8, 8, │ 512 │ conv2_block2_c… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block3_0_re… │ (None, 8, 8, │ 0 │ conv2_block3_0… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block3_1_co… │ (None, 8, 8, │ 16,384 │ conv2_block3_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block3_1_bn │ (None, 8, 8, │ 512 │ conv2_block3_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block3_1_re… │ (None, 8, 8, │ 0 │ conv2_block3_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block3_2_co… │ (None, 8, 8, 32) │ 36,864 │ conv2_block3_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block3_conc… │ (None, 8, 8, │ 0 │ conv2_block2_c… │ - │
│ (Concatenate) │ 160) │ │ conv2_block3_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block4_0_bn │ (None, 8, 8, │ 640 │ conv2_block3_c… │ N │
│ (BatchNormalizati… │ 160) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block4_0_re… │ (None, 8, 8, │ 0 │ conv2_block4_0… │ - │
│ (Activation) │ 160) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block4_1_co… │ (None, 8, 8, │ 20,480 │ conv2_block4_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block4_1_bn │ (None, 8, 8, │ 512 │ conv2_block4_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block4_1_re… │ (None, 8, 8, │ 0 │ conv2_block4_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block4_2_co… │ (None, 8, 8, 32) │ 36,864 │ conv2_block4_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block4_conc… │ (None, 8, 8, │ 0 │ conv2_block3_c… │ - │
│ (Concatenate) │ 192) │ │ conv2_block4_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block5_0_bn │ (None, 8, 8, │ 768 │ conv2_block4_c… │ N │
│ (BatchNormalizati… │ 192) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block5_0_re… │ (None, 8, 8, │ 0 │ conv2_block5_0… │ - │
│ (Activation) │ 192) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block5_1_co… │ (None, 8, 8, │ 24,576 │ conv2_block5_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block5_1_bn │ (None, 8, 8, │ 512 │ conv2_block5_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block5_1_re… │ (None, 8, 8, │ 0 │ conv2_block5_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block5_2_co… │ (None, 8, 8, 32) │ 36,864 │ conv2_block5_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block5_conc… │ (None, 8, 8, │ 0 │ conv2_block4_c… │ - │
│ (Concatenate) │ 224) │ │ conv2_block5_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block6_0_bn │ (None, 8, 8, │ 896 │ conv2_block5_c… │ N │
│ (BatchNormalizati… │ 224) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block6_0_re… │ (None, 8, 8, │ 0 │ conv2_block6_0… │ - │
│ (Activation) │ 224) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block6_1_co… │ (None, 8, 8, │ 28,672 │ conv2_block6_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block6_1_bn │ (None, 8, 8, │ 512 │ conv2_block6_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block6_1_re… │ (None, 8, 8, │ 0 │ conv2_block6_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block6_2_co… │ (None, 8, 8, 32) │ 36,864 │ conv2_block6_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv2_block6_conc… │ (None, 8, 8, │ 0 │ conv2_block5_c… │ - │
│ (Concatenate) │ 256) │ │ conv2_block6_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool2_bn │ (None, 8, 8, │ 1,024 │ conv2_block6_c… │ N │
│ (BatchNormalizati… │ 256) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool2_relu │ (None, 8, 8, │ 0 │ pool2_bn[0][0] │ - │
│ (Activation) │ 256) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool2_conv │ (None, 8, 8, │ 32,768 │ pool2_relu[0][… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool2_pool │ (None, 4, 4, │ 0 │ pool2_conv[0][… │ - │
│ (AveragePooling2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block1_0_bn │ (None, 4, 4, │ 512 │ pool2_pool[0][… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block1_0_re… │ (None, 4, 4, │ 0 │ conv3_block1_0… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block1_1_co… │ (None, 4, 4, │ 16,384 │ conv3_block1_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block1_1_bn │ (None, 4, 4, │ 512 │ conv3_block1_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block1_1_re… │ (None, 4, 4, │ 0 │ conv3_block1_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block1_2_co… │ (None, 4, 4, 32) │ 36,864 │ conv3_block1_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block1_conc… │ (None, 4, 4, │ 0 │ pool2_pool[0][… │ - │
│ (Concatenate) │ 160) │ │ conv3_block1_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block2_0_bn │ (None, 4, 4, │ 640 │ conv3_block1_c… │ N │
│ (BatchNormalizati… │ 160) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block2_0_re… │ (None, 4, 4, │ 0 │ conv3_block2_0… │ - │
│ (Activation) │ 160) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block2_1_co… │ (None, 4, 4, │ 20,480 │ conv3_block2_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block2_1_bn │ (None, 4, 4, │ 512 │ conv3_block2_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block2_1_re… │ (None, 4, 4, │ 0 │ conv3_block2_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block2_2_co… │ (None, 4, 4, 32) │ 36,864 │ conv3_block2_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block2_conc… │ (None, 4, 4, │ 0 │ conv3_block1_c… │ - │
│ (Concatenate) │ 192) │ │ conv3_block2_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block3_0_bn │ (None, 4, 4, │ 768 │ conv3_block2_c… │ N │
│ (BatchNormalizati… │ 192) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block3_0_re… │ (None, 4, 4, │ 0 │ conv3_block3_0… │ - │
│ (Activation) │ 192) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block3_1_co… │ (None, 4, 4, │ 24,576 │ conv3_block3_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block3_1_bn │ (None, 4, 4, │ 512 │ conv3_block3_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block3_1_re… │ (None, 4, 4, │ 0 │ conv3_block3_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block3_2_co… │ (None, 4, 4, 32) │ 36,864 │ conv3_block3_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block3_conc… │ (None, 4, 4, │ 0 │ conv3_block2_c… │ - │
│ (Concatenate) │ 224) │ │ conv3_block3_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block4_0_bn │ (None, 4, 4, │ 896 │ conv3_block3_c… │ N │
│ (BatchNormalizati… │ 224) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block4_0_re… │ (None, 4, 4, │ 0 │ conv3_block4_0… │ - │
│ (Activation) │ 224) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block4_1_co… │ (None, 4, 4, │ 28,672 │ conv3_block4_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block4_1_bn │ (None, 4, 4, │ 512 │ conv3_block4_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block4_1_re… │ (None, 4, 4, │ 0 │ conv3_block4_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block4_2_co… │ (None, 4, 4, 32) │ 36,864 │ conv3_block4_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block4_conc… │ (None, 4, 4, │ 0 │ conv3_block3_c… │ - │
│ (Concatenate) │ 256) │ │ conv3_block4_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block5_0_bn │ (None, 4, 4, │ 1,024 │ conv3_block4_c… │ N │
│ (BatchNormalizati… │ 256) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block5_0_re… │ (None, 4, 4, │ 0 │ conv3_block5_0… │ - │
│ (Activation) │ 256) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block5_1_co… │ (None, 4, 4, │ 32,768 │ conv3_block5_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block5_1_bn │ (None, 4, 4, │ 512 │ conv3_block5_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block5_1_re… │ (None, 4, 4, │ 0 │ conv3_block5_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block5_2_co… │ (None, 4, 4, 32) │ 36,864 │ conv3_block5_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block5_conc… │ (None, 4, 4, │ 0 │ conv3_block4_c… │ - │
│ (Concatenate) │ 288) │ │ conv3_block5_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block6_0_bn │ (None, 4, 4, │ 1,152 │ conv3_block5_c… │ N │
│ (BatchNormalizati… │ 288) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block6_0_re… │ (None, 4, 4, │ 0 │ conv3_block6_0… │ - │
│ (Activation) │ 288) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block6_1_co… │ (None, 4, 4, │ 36,864 │ conv3_block6_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block6_1_bn │ (None, 4, 4, │ 512 │ conv3_block6_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block6_1_re… │ (None, 4, 4, │ 0 │ conv3_block6_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block6_2_co… │ (None, 4, 4, 32) │ 36,864 │ conv3_block6_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block6_conc… │ (None, 4, 4, │ 0 │ conv3_block5_c… │ - │
│ (Concatenate) │ 320) │ │ conv3_block6_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block7_0_bn │ (None, 4, 4, │ 1,280 │ conv3_block6_c… │ N │
│ (BatchNormalizati… │ 320) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block7_0_re… │ (None, 4, 4, │ 0 │ conv3_block7_0… │ - │
│ (Activation) │ 320) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block7_1_co… │ (None, 4, 4, │ 40,960 │ conv3_block7_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block7_1_bn │ (None, 4, 4, │ 512 │ conv3_block7_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block7_1_re… │ (None, 4, 4, │ 0 │ conv3_block7_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block7_2_co… │ (None, 4, 4, 32) │ 36,864 │ conv3_block7_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block7_conc… │ (None, 4, 4, │ 0 │ conv3_block6_c… │ - │
│ (Concatenate) │ 352) │ │ conv3_block7_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block8_0_bn │ (None, 4, 4, │ 1,408 │ conv3_block7_c… │ N │
│ (BatchNormalizati… │ 352) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block8_0_re… │ (None, 4, 4, │ 0 │ conv3_block8_0… │ - │
│ (Activation) │ 352) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block8_1_co… │ (None, 4, 4, │ 45,056 │ conv3_block8_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block8_1_bn │ (None, 4, 4, │ 512 │ conv3_block8_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block8_1_re… │ (None, 4, 4, │ 0 │ conv3_block8_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block8_2_co… │ (None, 4, 4, 32) │ 36,864 │ conv3_block8_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block8_conc… │ (None, 4, 4, │ 0 │ conv3_block7_c… │ - │
│ (Concatenate) │ 384) │ │ conv3_block8_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block9_0_bn │ (None, 4, 4, │ 1,536 │ conv3_block8_c… │ N │
│ (BatchNormalizati… │ 384) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block9_0_re… │ (None, 4, 4, │ 0 │ conv3_block9_0… │ - │
│ (Activation) │ 384) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block9_1_co… │ (None, 4, 4, │ 49,152 │ conv3_block9_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block9_1_bn │ (None, 4, 4, │ 512 │ conv3_block9_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block9_1_re… │ (None, 4, 4, │ 0 │ conv3_block9_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block9_2_co… │ (None, 4, 4, 32) │ 36,864 │ conv3_block9_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block9_conc… │ (None, 4, 4, │ 0 │ conv3_block8_c… │ - │
│ (Concatenate) │ 416) │ │ conv3_block9_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block10_0_bn │ (None, 4, 4, │ 1,664 │ conv3_block9_c… │ N │
│ (BatchNormalizati… │ 416) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block10_0_r… │ (None, 4, 4, │ 0 │ conv3_block10_… │ - │
│ (Activation) │ 416) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block10_1_c… │ (None, 4, 4, │ 53,248 │ conv3_block10_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block10_1_bn │ (None, 4, 4, │ 512 │ conv3_block10_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block10_1_r… │ (None, 4, 4, │ 0 │ conv3_block10_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block10_2_c… │ (None, 4, 4, 32) │ 36,864 │ conv3_block10_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block10_con… │ (None, 4, 4, │ 0 │ conv3_block9_c… │ - │
│ (Concatenate) │ 448) │ │ conv3_block10_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block11_0_bn │ (None, 4, 4, │ 1,792 │ conv3_block10_… │ N │
│ (BatchNormalizati… │ 448) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block11_0_r… │ (None, 4, 4, │ 0 │ conv3_block11_… │ - │
│ (Activation) │ 448) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block11_1_c… │ (None, 4, 4, │ 57,344 │ conv3_block11_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block11_1_bn │ (None, 4, 4, │ 512 │ conv3_block11_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block11_1_r… │ (None, 4, 4, │ 0 │ conv3_block11_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block11_2_c… │ (None, 4, 4, 32) │ 36,864 │ conv3_block11_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block11_con… │ (None, 4, 4, │ 0 │ conv3_block10_… │ - │
│ (Concatenate) │ 480) │ │ conv3_block11_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block12_0_bn │ (None, 4, 4, │ 1,920 │ conv3_block11_… │ N │
│ (BatchNormalizati… │ 480) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block12_0_r… │ (None, 4, 4, │ 0 │ conv3_block12_… │ - │
│ (Activation) │ 480) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block12_1_c… │ (None, 4, 4, │ 61,440 │ conv3_block12_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block12_1_bn │ (None, 4, 4, │ 512 │ conv3_block12_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block12_1_r… │ (None, 4, 4, │ 0 │ conv3_block12_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block12_2_c… │ (None, 4, 4, 32) │ 36,864 │ conv3_block12_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv3_block12_con… │ (None, 4, 4, │ 0 │ conv3_block11_… │ - │
│ (Concatenate) │ 512) │ │ conv3_block12_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool3_bn │ (None, 4, 4, │ 2,048 │ conv3_block12_… │ N │
│ (BatchNormalizati… │ 512) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool3_relu │ (None, 4, 4, │ 0 │ pool3_bn[0][0] │ - │
│ (Activation) │ 512) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool3_conv │ (None, 4, 4, │ 131,072 │ pool3_relu[0][… │ N │
│ (Conv2D) │ 256) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool3_pool │ (None, 2, 2, │ 0 │ pool3_conv[0][… │ - │
│ (AveragePooling2D) │ 256) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block1_0_bn │ (None, 2, 2, │ 1,024 │ pool3_pool[0][… │ N │
│ (BatchNormalizati… │ 256) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block1_0_re… │ (None, 2, 2, │ 0 │ conv4_block1_0… │ - │
│ (Activation) │ 256) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block1_1_co… │ (None, 2, 2, │ 32,768 │ conv4_block1_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block1_1_bn │ (None, 2, 2, │ 512 │ conv4_block1_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block1_1_re… │ (None, 2, 2, │ 0 │ conv4_block1_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block1_2_co… │ (None, 2, 2, 32) │ 36,864 │ conv4_block1_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block1_conc… │ (None, 2, 2, │ 0 │ pool3_pool[0][… │ - │
│ (Concatenate) │ 288) │ │ conv4_block1_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block2_0_bn │ (None, 2, 2, │ 1,152 │ conv4_block1_c… │ N │
│ (BatchNormalizati… │ 288) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block2_0_re… │ (None, 2, 2, │ 0 │ conv4_block2_0… │ - │
│ (Activation) │ 288) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block2_1_co… │ (None, 2, 2, │ 36,864 │ conv4_block2_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block2_1_bn │ (None, 2, 2, │ 512 │ conv4_block2_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block2_1_re… │ (None, 2, 2, │ 0 │ conv4_block2_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block2_2_co… │ (None, 2, 2, 32) │ 36,864 │ conv4_block2_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block2_conc… │ (None, 2, 2, │ 0 │ conv4_block1_c… │ - │
│ (Concatenate) │ 320) │ │ conv4_block2_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block3_0_bn │ (None, 2, 2, │ 1,280 │ conv4_block2_c… │ N │
│ (BatchNormalizati… │ 320) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block3_0_re… │ (None, 2, 2, │ 0 │ conv4_block3_0… │ - │
│ (Activation) │ 320) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block3_1_co… │ (None, 2, 2, │ 40,960 │ conv4_block3_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block3_1_bn │ (None, 2, 2, │ 512 │ conv4_block3_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block3_1_re… │ (None, 2, 2, │ 0 │ conv4_block3_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block3_2_co… │ (None, 2, 2, 32) │ 36,864 │ conv4_block3_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block3_conc… │ (None, 2, 2, │ 0 │ conv4_block2_c… │ - │
│ (Concatenate) │ 352) │ │ conv4_block3_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block4_0_bn │ (None, 2, 2, │ 1,408 │ conv4_block3_c… │ N │
│ (BatchNormalizati… │ 352) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block4_0_re… │ (None, 2, 2, │ 0 │ conv4_block4_0… │ - │
│ (Activation) │ 352) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block4_1_co… │ (None, 2, 2, │ 45,056 │ conv4_block4_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block4_1_bn │ (None, 2, 2, │ 512 │ conv4_block4_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block4_1_re… │ (None, 2, 2, │ 0 │ conv4_block4_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block4_2_co… │ (None, 2, 2, 32) │ 36,864 │ conv4_block4_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block4_conc… │ (None, 2, 2, │ 0 │ conv4_block3_c… │ - │
│ (Concatenate) │ 384) │ │ conv4_block4_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block5_0_bn │ (None, 2, 2, │ 1,536 │ conv4_block4_c… │ N │
│ (BatchNormalizati… │ 384) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block5_0_re… │ (None, 2, 2, │ 0 │ conv4_block5_0… │ - │
│ (Activation) │ 384) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block5_1_co… │ (None, 2, 2, │ 49,152 │ conv4_block5_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block5_1_bn │ (None, 2, 2, │ 512 │ conv4_block5_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block5_1_re… │ (None, 2, 2, │ 0 │ conv4_block5_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block5_2_co… │ (None, 2, 2, 32) │ 36,864 │ conv4_block5_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block5_conc… │ (None, 2, 2, │ 0 │ conv4_block4_c… │ - │
│ (Concatenate) │ 416) │ │ conv4_block5_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block6_0_bn │ (None, 2, 2, │ 1,664 │ conv4_block5_c… │ N │
│ (BatchNormalizati… │ 416) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block6_0_re… │ (None, 2, 2, │ 0 │ conv4_block6_0… │ - │
│ (Activation) │ 416) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block6_1_co… │ (None, 2, 2, │ 53,248 │ conv4_block6_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block6_1_bn │ (None, 2, 2, │ 512 │ conv4_block6_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block6_1_re… │ (None, 2, 2, │ 0 │ conv4_block6_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block6_2_co… │ (None, 2, 2, 32) │ 36,864 │ conv4_block6_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block6_conc… │ (None, 2, 2, │ 0 │ conv4_block5_c… │ - │
│ (Concatenate) │ 448) │ │ conv4_block6_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block7_0_bn │ (None, 2, 2, │ 1,792 │ conv4_block6_c… │ N │
│ (BatchNormalizati… │ 448) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block7_0_re… │ (None, 2, 2, │ 0 │ conv4_block7_0… │ - │
│ (Activation) │ 448) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block7_1_co… │ (None, 2, 2, │ 57,344 │ conv4_block7_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block7_1_bn │ (None, 2, 2, │ 512 │ conv4_block7_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block7_1_re… │ (None, 2, 2, │ 0 │ conv4_block7_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block7_2_co… │ (None, 2, 2, 32) │ 36,864 │ conv4_block7_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block7_conc… │ (None, 2, 2, │ 0 │ conv4_block6_c… │ - │
│ (Concatenate) │ 480) │ │ conv4_block7_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block8_0_bn │ (None, 2, 2, │ 1,920 │ conv4_block7_c… │ N │
│ (BatchNormalizati… │ 480) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block8_0_re… │ (None, 2, 2, │ 0 │ conv4_block8_0… │ - │
│ (Activation) │ 480) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block8_1_co… │ (None, 2, 2, │ 61,440 │ conv4_block8_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block8_1_bn │ (None, 2, 2, │ 512 │ conv4_block8_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block8_1_re… │ (None, 2, 2, │ 0 │ conv4_block8_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block8_2_co… │ (None, 2, 2, 32) │ 36,864 │ conv4_block8_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block8_conc… │ (None, 2, 2, │ 0 │ conv4_block7_c… │ - │
│ (Concatenate) │ 512) │ │ conv4_block8_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block9_0_bn │ (None, 2, 2, │ 2,048 │ conv4_block8_c… │ N │
│ (BatchNormalizati… │ 512) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block9_0_re… │ (None, 2, 2, │ 0 │ conv4_block9_0… │ - │
│ (Activation) │ 512) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block9_1_co… │ (None, 2, 2, │ 65,536 │ conv4_block9_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block9_1_bn │ (None, 2, 2, │ 512 │ conv4_block9_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block9_1_re… │ (None, 2, 2, │ 0 │ conv4_block9_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block9_2_co… │ (None, 2, 2, 32) │ 36,864 │ conv4_block9_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block9_conc… │ (None, 2, 2, │ 0 │ conv4_block8_c… │ - │
│ (Concatenate) │ 544) │ │ conv4_block9_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block10_0_bn │ (None, 2, 2, │ 2,176 │ conv4_block9_c… │ N │
│ (BatchNormalizati… │ 544) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block10_0_r… │ (None, 2, 2, │ 0 │ conv4_block10_… │ - │
│ (Activation) │ 544) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block10_1_c… │ (None, 2, 2, │ 69,632 │ conv4_block10_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block10_1_bn │ (None, 2, 2, │ 512 │ conv4_block10_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block10_1_r… │ (None, 2, 2, │ 0 │ conv4_block10_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block10_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block10_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block10_con… │ (None, 2, 2, │ 0 │ conv4_block9_c… │ - │
│ (Concatenate) │ 576) │ │ conv4_block10_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block11_0_bn │ (None, 2, 2, │ 2,304 │ conv4_block10_… │ N │
│ (BatchNormalizati… │ 576) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block11_0_r… │ (None, 2, 2, │ 0 │ conv4_block11_… │ - │
│ (Activation) │ 576) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block11_1_c… │ (None, 2, 2, │ 73,728 │ conv4_block11_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block11_1_bn │ (None, 2, 2, │ 512 │ conv4_block11_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block11_1_r… │ (None, 2, 2, │ 0 │ conv4_block11_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block11_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block11_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block11_con… │ (None, 2, 2, │ 0 │ conv4_block10_… │ - │
│ (Concatenate) │ 608) │ │ conv4_block11_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block12_0_bn │ (None, 2, 2, │ 2,432 │ conv4_block11_… │ N │
│ (BatchNormalizati… │ 608) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block12_0_r… │ (None, 2, 2, │ 0 │ conv4_block12_… │ - │
│ (Activation) │ 608) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block12_1_c… │ (None, 2, 2, │ 77,824 │ conv4_block12_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block12_1_bn │ (None, 2, 2, │ 512 │ conv4_block12_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block12_1_r… │ (None, 2, 2, │ 0 │ conv4_block12_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block12_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block12_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block12_con… │ (None, 2, 2, │ 0 │ conv4_block11_… │ - │
│ (Concatenate) │ 640) │ │ conv4_block12_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block13_0_bn │ (None, 2, 2, │ 2,560 │ conv4_block12_… │ N │
│ (BatchNormalizati… │ 640) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block13_0_r… │ (None, 2, 2, │ 0 │ conv4_block13_… │ - │
│ (Activation) │ 640) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block13_1_c… │ (None, 2, 2, │ 81,920 │ conv4_block13_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block13_1_bn │ (None, 2, 2, │ 512 │ conv4_block13_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block13_1_r… │ (None, 2, 2, │ 0 │ conv4_block13_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block13_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block13_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block13_con… │ (None, 2, 2, │ 0 │ conv4_block12_… │ - │
│ (Concatenate) │ 672) │ │ conv4_block13_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block14_0_bn │ (None, 2, 2, │ 2,688 │ conv4_block13_… │ N │
│ (BatchNormalizati… │ 672) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block14_0_r… │ (None, 2, 2, │ 0 │ conv4_block14_… │ - │
│ (Activation) │ 672) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block14_1_c… │ (None, 2, 2, │ 86,016 │ conv4_block14_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block14_1_bn │ (None, 2, 2, │ 512 │ conv4_block14_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block14_1_r… │ (None, 2, 2, │ 0 │ conv4_block14_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block14_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block14_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block14_con… │ (None, 2, 2, │ 0 │ conv4_block13_… │ - │
│ (Concatenate) │ 704) │ │ conv4_block14_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block15_0_bn │ (None, 2, 2, │ 2,816 │ conv4_block14_… │ N │
│ (BatchNormalizati… │ 704) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block15_0_r… │ (None, 2, 2, │ 0 │ conv4_block15_… │ - │
│ (Activation) │ 704) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block15_1_c… │ (None, 2, 2, │ 90,112 │ conv4_block15_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block15_1_bn │ (None, 2, 2, │ 512 │ conv4_block15_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block15_1_r… │ (None, 2, 2, │ 0 │ conv4_block15_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block15_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block15_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block15_con… │ (None, 2, 2, │ 0 │ conv4_block14_… │ - │
│ (Concatenate) │ 736) │ │ conv4_block15_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block16_0_bn │ (None, 2, 2, │ 2,944 │ conv4_block15_… │ N │
│ (BatchNormalizati… │ 736) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block16_0_r… │ (None, 2, 2, │ 0 │ conv4_block16_… │ - │
│ (Activation) │ 736) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block16_1_c… │ (None, 2, 2, │ 94,208 │ conv4_block16_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block16_1_bn │ (None, 2, 2, │ 512 │ conv4_block16_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block16_1_r… │ (None, 2, 2, │ 0 │ conv4_block16_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block16_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block16_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block16_con… │ (None, 2, 2, │ 0 │ conv4_block15_… │ - │
│ (Concatenate) │ 768) │ │ conv4_block16_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block17_0_bn │ (None, 2, 2, │ 3,072 │ conv4_block16_… │ N │
│ (BatchNormalizati… │ 768) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block17_0_r… │ (None, 2, 2, │ 0 │ conv4_block17_… │ - │
│ (Activation) │ 768) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block17_1_c… │ (None, 2, 2, │ 98,304 │ conv4_block17_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block17_1_bn │ (None, 2, 2, │ 512 │ conv4_block17_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block17_1_r… │ (None, 2, 2, │ 0 │ conv4_block17_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block17_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block17_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block17_con… │ (None, 2, 2, │ 0 │ conv4_block16_… │ - │
│ (Concatenate) │ 800) │ │ conv4_block17_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block18_0_bn │ (None, 2, 2, │ 3,200 │ conv4_block17_… │ N │
│ (BatchNormalizati… │ 800) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block18_0_r… │ (None, 2, 2, │ 0 │ conv4_block18_… │ - │
│ (Activation) │ 800) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block18_1_c… │ (None, 2, 2, │ 102,400 │ conv4_block18_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block18_1_bn │ (None, 2, 2, │ 512 │ conv4_block18_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block18_1_r… │ (None, 2, 2, │ 0 │ conv4_block18_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block18_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block18_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block18_con… │ (None, 2, 2, │ 0 │ conv4_block17_… │ - │
│ (Concatenate) │ 832) │ │ conv4_block18_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block19_0_bn │ (None, 2, 2, │ 3,328 │ conv4_block18_… │ N │
│ (BatchNormalizati… │ 832) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block19_0_r… │ (None, 2, 2, │ 0 │ conv4_block19_… │ - │
│ (Activation) │ 832) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block19_1_c… │ (None, 2, 2, │ 106,496 │ conv4_block19_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block19_1_bn │ (None, 2, 2, │ 512 │ conv4_block19_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block19_1_r… │ (None, 2, 2, │ 0 │ conv4_block19_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block19_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block19_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block19_con… │ (None, 2, 2, │ 0 │ conv4_block18_… │ - │
│ (Concatenate) │ 864) │ │ conv4_block19_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block20_0_bn │ (None, 2, 2, │ 3,456 │ conv4_block19_… │ N │
│ (BatchNormalizati… │ 864) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block20_0_r… │ (None, 2, 2, │ 0 │ conv4_block20_… │ - │
│ (Activation) │ 864) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block20_1_c… │ (None, 2, 2, │ 110,592 │ conv4_block20_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block20_1_bn │ (None, 2, 2, │ 512 │ conv4_block20_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block20_1_r… │ (None, 2, 2, │ 0 │ conv4_block20_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block20_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block20_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block20_con… │ (None, 2, 2, │ 0 │ conv4_block19_… │ - │
│ (Concatenate) │ 896) │ │ conv4_block20_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block21_0_bn │ (None, 2, 2, │ 3,584 │ conv4_block20_… │ N │
│ (BatchNormalizati… │ 896) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block21_0_r… │ (None, 2, 2, │ 0 │ conv4_block21_… │ - │
│ (Activation) │ 896) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block21_1_c… │ (None, 2, 2, │ 114,688 │ conv4_block21_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block21_1_bn │ (None, 2, 2, │ 512 │ conv4_block21_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block21_1_r… │ (None, 2, 2, │ 0 │ conv4_block21_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block21_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block21_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block21_con… │ (None, 2, 2, │ 0 │ conv4_block20_… │ - │
│ (Concatenate) │ 928) │ │ conv4_block21_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block22_0_bn │ (None, 2, 2, │ 3,712 │ conv4_block21_… │ N │
│ (BatchNormalizati… │ 928) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block22_0_r… │ (None, 2, 2, │ 0 │ conv4_block22_… │ - │
│ (Activation) │ 928) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block22_1_c… │ (None, 2, 2, │ 118,784 │ conv4_block22_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block22_1_bn │ (None, 2, 2, │ 512 │ conv4_block22_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block22_1_r… │ (None, 2, 2, │ 0 │ conv4_block22_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block22_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block22_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block22_con… │ (None, 2, 2, │ 0 │ conv4_block21_… │ - │
│ (Concatenate) │ 960) │ │ conv4_block22_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block23_0_bn │ (None, 2, 2, │ 3,840 │ conv4_block22_… │ N │
│ (BatchNormalizati… │ 960) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block23_0_r… │ (None, 2, 2, │ 0 │ conv4_block23_… │ - │
│ (Activation) │ 960) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block23_1_c… │ (None, 2, 2, │ 122,880 │ conv4_block23_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block23_1_bn │ (None, 2, 2, │ 512 │ conv4_block23_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block23_1_r… │ (None, 2, 2, │ 0 │ conv4_block23_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block23_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block23_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block23_con… │ (None, 2, 2, │ 0 │ conv4_block22_… │ - │
│ (Concatenate) │ 992) │ │ conv4_block23_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block24_0_bn │ (None, 2, 2, │ 3,968 │ conv4_block23_… │ N │
│ (BatchNormalizati… │ 992) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block24_0_r… │ (None, 2, 2, │ 0 │ conv4_block24_… │ - │
│ (Activation) │ 992) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block24_1_c… │ (None, 2, 2, │ 126,976 │ conv4_block24_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block24_1_bn │ (None, 2, 2, │ 512 │ conv4_block24_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block24_1_r… │ (None, 2, 2, │ 0 │ conv4_block24_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block24_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block24_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block24_con… │ (None, 2, 2, │ 0 │ conv4_block23_… │ - │
│ (Concatenate) │ 1024) │ │ conv4_block24_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block25_0_bn │ (None, 2, 2, │ 4,096 │ conv4_block24_… │ N │
│ (BatchNormalizati… │ 1024) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block25_0_r… │ (None, 2, 2, │ 0 │ conv4_block25_… │ - │
│ (Activation) │ 1024) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block25_1_c… │ (None, 2, 2, │ 131,072 │ conv4_block25_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block25_1_bn │ (None, 2, 2, │ 512 │ conv4_block25_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block25_1_r… │ (None, 2, 2, │ 0 │ conv4_block25_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block25_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block25_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block25_con… │ (None, 2, 2, │ 0 │ conv4_block24_… │ - │
│ (Concatenate) │ 1056) │ │ conv4_block25_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block26_0_bn │ (None, 2, 2, │ 4,224 │ conv4_block25_… │ N │
│ (BatchNormalizati… │ 1056) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block26_0_r… │ (None, 2, 2, │ 0 │ conv4_block26_… │ - │
│ (Activation) │ 1056) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block26_1_c… │ (None, 2, 2, │ 135,168 │ conv4_block26_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block26_1_bn │ (None, 2, 2, │ 512 │ conv4_block26_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block26_1_r… │ (None, 2, 2, │ 0 │ conv4_block26_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block26_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block26_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block26_con… │ (None, 2, 2, │ 0 │ conv4_block25_… │ - │
│ (Concatenate) │ 1088) │ │ conv4_block26_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block27_0_bn │ (None, 2, 2, │ 4,352 │ conv4_block26_… │ N │
│ (BatchNormalizati… │ 1088) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block27_0_r… │ (None, 2, 2, │ 0 │ conv4_block27_… │ - │
│ (Activation) │ 1088) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block27_1_c… │ (None, 2, 2, │ 139,264 │ conv4_block27_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block27_1_bn │ (None, 2, 2, │ 512 │ conv4_block27_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block27_1_r… │ (None, 2, 2, │ 0 │ conv4_block27_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block27_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block27_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block27_con… │ (None, 2, 2, │ 0 │ conv4_block26_… │ - │
│ (Concatenate) │ 1120) │ │ conv4_block27_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block28_0_bn │ (None, 2, 2, │ 4,480 │ conv4_block27_… │ N │
│ (BatchNormalizati… │ 1120) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block28_0_r… │ (None, 2, 2, │ 0 │ conv4_block28_… │ - │
│ (Activation) │ 1120) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block28_1_c… │ (None, 2, 2, │ 143,360 │ conv4_block28_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block28_1_bn │ (None, 2, 2, │ 512 │ conv4_block28_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block28_1_r… │ (None, 2, 2, │ 0 │ conv4_block28_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block28_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block28_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block28_con… │ (None, 2, 2, │ 0 │ conv4_block27_… │ - │
│ (Concatenate) │ 1152) │ │ conv4_block28_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block29_0_bn │ (None, 2, 2, │ 4,608 │ conv4_block28_… │ N │
│ (BatchNormalizati… │ 1152) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block29_0_r… │ (None, 2, 2, │ 0 │ conv4_block29_… │ - │
│ (Activation) │ 1152) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block29_1_c… │ (None, 2, 2, │ 147,456 │ conv4_block29_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block29_1_bn │ (None, 2, 2, │ 512 │ conv4_block29_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block29_1_r… │ (None, 2, 2, │ 0 │ conv4_block29_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block29_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block29_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block29_con… │ (None, 2, 2, │ 0 │ conv4_block28_… │ - │
│ (Concatenate) │ 1184) │ │ conv4_block29_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block30_0_bn │ (None, 2, 2, │ 4,736 │ conv4_block29_… │ N │
│ (BatchNormalizati… │ 1184) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block30_0_r… │ (None, 2, 2, │ 0 │ conv4_block30_… │ - │
│ (Activation) │ 1184) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block30_1_c… │ (None, 2, 2, │ 151,552 │ conv4_block30_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block30_1_bn │ (None, 2, 2, │ 512 │ conv4_block30_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block30_1_r… │ (None, 2, 2, │ 0 │ conv4_block30_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block30_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block30_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block30_con… │ (None, 2, 2, │ 0 │ conv4_block29_… │ - │
│ (Concatenate) │ 1216) │ │ conv4_block30_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block31_0_bn │ (None, 2, 2, │ 4,864 │ conv4_block30_… │ N │
│ (BatchNormalizati… │ 1216) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block31_0_r… │ (None, 2, 2, │ 0 │ conv4_block31_… │ - │
│ (Activation) │ 1216) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block31_1_c… │ (None, 2, 2, │ 155,648 │ conv4_block31_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block31_1_bn │ (None, 2, 2, │ 512 │ conv4_block31_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block31_1_r… │ (None, 2, 2, │ 0 │ conv4_block31_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block31_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block31_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block31_con… │ (None, 2, 2, │ 0 │ conv4_block30_… │ - │
│ (Concatenate) │ 1248) │ │ conv4_block31_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block32_0_bn │ (None, 2, 2, │ 4,992 │ conv4_block31_… │ N │
│ (BatchNormalizati… │ 1248) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block32_0_r… │ (None, 2, 2, │ 0 │ conv4_block32_… │ - │
│ (Activation) │ 1248) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block32_1_c… │ (None, 2, 2, │ 159,744 │ conv4_block32_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block32_1_bn │ (None, 2, 2, │ 512 │ conv4_block32_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block32_1_r… │ (None, 2, 2, │ 0 │ conv4_block32_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block32_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block32_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block32_con… │ (None, 2, 2, │ 0 │ conv4_block31_… │ - │
│ (Concatenate) │ 1280) │ │ conv4_block32_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block33_0_bn │ (None, 2, 2, │ 5,120 │ conv4_block32_… │ N │
│ (BatchNormalizati… │ 1280) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block33_0_r… │ (None, 2, 2, │ 0 │ conv4_block33_… │ - │
│ (Activation) │ 1280) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block33_1_c… │ (None, 2, 2, │ 163,840 │ conv4_block33_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block33_1_bn │ (None, 2, 2, │ 512 │ conv4_block33_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block33_1_r… │ (None, 2, 2, │ 0 │ conv4_block33_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block33_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block33_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block33_con… │ (None, 2, 2, │ 0 │ conv4_block32_… │ - │
│ (Concatenate) │ 1312) │ │ conv4_block33_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block34_0_bn │ (None, 2, 2, │ 5,248 │ conv4_block33_… │ N │
│ (BatchNormalizati… │ 1312) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block34_0_r… │ (None, 2, 2, │ 0 │ conv4_block34_… │ - │
│ (Activation) │ 1312) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block34_1_c… │ (None, 2, 2, │ 167,936 │ conv4_block34_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block34_1_bn │ (None, 2, 2, │ 512 │ conv4_block34_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block34_1_r… │ (None, 2, 2, │ 0 │ conv4_block34_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block34_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block34_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block34_con… │ (None, 2, 2, │ 0 │ conv4_block33_… │ - │
│ (Concatenate) │ 1344) │ │ conv4_block34_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block35_0_bn │ (None, 2, 2, │ 5,376 │ conv4_block34_… │ N │
│ (BatchNormalizati… │ 1344) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block35_0_r… │ (None, 2, 2, │ 0 │ conv4_block35_… │ - │
│ (Activation) │ 1344) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block35_1_c… │ (None, 2, 2, │ 172,032 │ conv4_block35_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block35_1_bn │ (None, 2, 2, │ 512 │ conv4_block35_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block35_1_r… │ (None, 2, 2, │ 0 │ conv4_block35_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block35_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block35_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block35_con… │ (None, 2, 2, │ 0 │ conv4_block34_… │ - │
│ (Concatenate) │ 1376) │ │ conv4_block35_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block36_0_bn │ (None, 2, 2, │ 5,504 │ conv4_block35_… │ N │
│ (BatchNormalizati… │ 1376) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block36_0_r… │ (None, 2, 2, │ 0 │ conv4_block36_… │ - │
│ (Activation) │ 1376) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block36_1_c… │ (None, 2, 2, │ 176,128 │ conv4_block36_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block36_1_bn │ (None, 2, 2, │ 512 │ conv4_block36_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block36_1_r… │ (None, 2, 2, │ 0 │ conv4_block36_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block36_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block36_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block36_con… │ (None, 2, 2, │ 0 │ conv4_block35_… │ - │
│ (Concatenate) │ 1408) │ │ conv4_block36_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block37_0_bn │ (None, 2, 2, │ 5,632 │ conv4_block36_… │ N │
│ (BatchNormalizati… │ 1408) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block37_0_r… │ (None, 2, 2, │ 0 │ conv4_block37_… │ - │
│ (Activation) │ 1408) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block37_1_c… │ (None, 2, 2, │ 180,224 │ conv4_block37_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block37_1_bn │ (None, 2, 2, │ 512 │ conv4_block37_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block37_1_r… │ (None, 2, 2, │ 0 │ conv4_block37_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block37_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block37_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block37_con… │ (None, 2, 2, │ 0 │ conv4_block36_… │ - │
│ (Concatenate) │ 1440) │ │ conv4_block37_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block38_0_bn │ (None, 2, 2, │ 5,760 │ conv4_block37_… │ N │
│ (BatchNormalizati… │ 1440) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block38_0_r… │ (None, 2, 2, │ 0 │ conv4_block38_… │ - │
│ (Activation) │ 1440) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block38_1_c… │ (None, 2, 2, │ 184,320 │ conv4_block38_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block38_1_bn │ (None, 2, 2, │ 512 │ conv4_block38_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block38_1_r… │ (None, 2, 2, │ 0 │ conv4_block38_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block38_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block38_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block38_con… │ (None, 2, 2, │ 0 │ conv4_block37_… │ - │
│ (Concatenate) │ 1472) │ │ conv4_block38_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block39_0_bn │ (None, 2, 2, │ 5,888 │ conv4_block38_… │ N │
│ (BatchNormalizati… │ 1472) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block39_0_r… │ (None, 2, 2, │ 0 │ conv4_block39_… │ - │
│ (Activation) │ 1472) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block39_1_c… │ (None, 2, 2, │ 188,416 │ conv4_block39_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block39_1_bn │ (None, 2, 2, │ 512 │ conv4_block39_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block39_1_r… │ (None, 2, 2, │ 0 │ conv4_block39_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block39_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block39_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block39_con… │ (None, 2, 2, │ 0 │ conv4_block38_… │ - │
│ (Concatenate) │ 1504) │ │ conv4_block39_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block40_0_bn │ (None, 2, 2, │ 6,016 │ conv4_block39_… │ N │
│ (BatchNormalizati… │ 1504) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block40_0_r… │ (None, 2, 2, │ 0 │ conv4_block40_… │ - │
│ (Activation) │ 1504) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block40_1_c… │ (None, 2, 2, │ 192,512 │ conv4_block40_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block40_1_bn │ (None, 2, 2, │ 512 │ conv4_block40_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block40_1_r… │ (None, 2, 2, │ 0 │ conv4_block40_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block40_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block40_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block40_con… │ (None, 2, 2, │ 0 │ conv4_block39_… │ - │
│ (Concatenate) │ 1536) │ │ conv4_block40_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block41_0_bn │ (None, 2, 2, │ 6,144 │ conv4_block40_… │ N │
│ (BatchNormalizati… │ 1536) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block41_0_r… │ (None, 2, 2, │ 0 │ conv4_block41_… │ - │
│ (Activation) │ 1536) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block41_1_c… │ (None, 2, 2, │ 196,608 │ conv4_block41_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block41_1_bn │ (None, 2, 2, │ 512 │ conv4_block41_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block41_1_r… │ (None, 2, 2, │ 0 │ conv4_block41_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block41_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block41_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block41_con… │ (None, 2, 2, │ 0 │ conv4_block40_… │ - │
│ (Concatenate) │ 1568) │ │ conv4_block41_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block42_0_bn │ (None, 2, 2, │ 6,272 │ conv4_block41_… │ N │
│ (BatchNormalizati… │ 1568) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block42_0_r… │ (None, 2, 2, │ 0 │ conv4_block42_… │ - │
│ (Activation) │ 1568) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block42_1_c… │ (None, 2, 2, │ 200,704 │ conv4_block42_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block42_1_bn │ (None, 2, 2, │ 512 │ conv4_block42_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block42_1_r… │ (None, 2, 2, │ 0 │ conv4_block42_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block42_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block42_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block42_con… │ (None, 2, 2, │ 0 │ conv4_block41_… │ - │
│ (Concatenate) │ 1600) │ │ conv4_block42_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block43_0_bn │ (None, 2, 2, │ 6,400 │ conv4_block42_… │ N │
│ (BatchNormalizati… │ 1600) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block43_0_r… │ (None, 2, 2, │ 0 │ conv4_block43_… │ - │
│ (Activation) │ 1600) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block43_1_c… │ (None, 2, 2, │ 204,800 │ conv4_block43_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block43_1_bn │ (None, 2, 2, │ 512 │ conv4_block43_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block43_1_r… │ (None, 2, 2, │ 0 │ conv4_block43_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block43_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block43_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block43_con… │ (None, 2, 2, │ 0 │ conv4_block42_… │ - │
│ (Concatenate) │ 1632) │ │ conv4_block43_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block44_0_bn │ (None, 2, 2, │ 6,528 │ conv4_block43_… │ N │
│ (BatchNormalizati… │ 1632) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block44_0_r… │ (None, 2, 2, │ 0 │ conv4_block44_… │ - │
│ (Activation) │ 1632) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block44_1_c… │ (None, 2, 2, │ 208,896 │ conv4_block44_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block44_1_bn │ (None, 2, 2, │ 512 │ conv4_block44_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block44_1_r… │ (None, 2, 2, │ 0 │ conv4_block44_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block44_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block44_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block44_con… │ (None, 2, 2, │ 0 │ conv4_block43_… │ - │
│ (Concatenate) │ 1664) │ │ conv4_block44_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block45_0_bn │ (None, 2, 2, │ 6,656 │ conv4_block44_… │ N │
│ (BatchNormalizati… │ 1664) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block45_0_r… │ (None, 2, 2, │ 0 │ conv4_block45_… │ - │
│ (Activation) │ 1664) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block45_1_c… │ (None, 2, 2, │ 212,992 │ conv4_block45_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block45_1_bn │ (None, 2, 2, │ 512 │ conv4_block45_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block45_1_r… │ (None, 2, 2, │ 0 │ conv4_block45_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block45_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block45_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block45_con… │ (None, 2, 2, │ 0 │ conv4_block44_… │ - │
│ (Concatenate) │ 1696) │ │ conv4_block45_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block46_0_bn │ (None, 2, 2, │ 6,784 │ conv4_block45_… │ N │
│ (BatchNormalizati… │ 1696) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block46_0_r… │ (None, 2, 2, │ 0 │ conv4_block46_… │ - │
│ (Activation) │ 1696) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block46_1_c… │ (None, 2, 2, │ 217,088 │ conv4_block46_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block46_1_bn │ (None, 2, 2, │ 512 │ conv4_block46_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block46_1_r… │ (None, 2, 2, │ 0 │ conv4_block46_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block46_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block46_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block46_con… │ (None, 2, 2, │ 0 │ conv4_block45_… │ - │
│ (Concatenate) │ 1728) │ │ conv4_block46_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block47_0_bn │ (None, 2, 2, │ 6,912 │ conv4_block46_… │ N │
│ (BatchNormalizati… │ 1728) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block47_0_r… │ (None, 2, 2, │ 0 │ conv4_block47_… │ - │
│ (Activation) │ 1728) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block47_1_c… │ (None, 2, 2, │ 221,184 │ conv4_block47_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block47_1_bn │ (None, 2, 2, │ 512 │ conv4_block47_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block47_1_r… │ (None, 2, 2, │ 0 │ conv4_block47_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block47_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block47_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block47_con… │ (None, 2, 2, │ 0 │ conv4_block46_… │ - │
│ (Concatenate) │ 1760) │ │ conv4_block47_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block48_0_bn │ (None, 2, 2, │ 7,040 │ conv4_block47_… │ N │
│ (BatchNormalizati… │ 1760) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block48_0_r… │ (None, 2, 2, │ 0 │ conv4_block48_… │ - │
│ (Activation) │ 1760) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block48_1_c… │ (None, 2, 2, │ 225,280 │ conv4_block48_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block48_1_bn │ (None, 2, 2, │ 512 │ conv4_block48_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block48_1_r… │ (None, 2, 2, │ 0 │ conv4_block48_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block48_2_c… │ (None, 2, 2, 32) │ 36,864 │ conv4_block48_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv4_block48_con… │ (None, 2, 2, │ 0 │ conv4_block47_… │ - │
│ (Concatenate) │ 1792) │ │ conv4_block48_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool4_bn │ (None, 2, 2, │ 7,168 │ conv4_block48_… │ N │
│ (BatchNormalizati… │ 1792) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool4_relu │ (None, 2, 2, │ 0 │ pool4_bn[0][0] │ - │
│ (Activation) │ 1792) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool4_conv │ (None, 2, 2, │ 1,605,632 │ pool4_relu[0][… │ N │
│ (Conv2D) │ 896) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ pool4_pool │ (None, 1, 1, │ 0 │ pool4_conv[0][… │ - │
│ (AveragePooling2D) │ 896) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block1_0_bn │ (None, 1, 1, │ 3,584 │ pool4_pool[0][… │ N │
│ (BatchNormalizati… │ 896) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block1_0_re… │ (None, 1, 1, │ 0 │ conv5_block1_0… │ - │
│ (Activation) │ 896) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block1_1_co… │ (None, 1, 1, │ 114,688 │ conv5_block1_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block1_1_bn │ (None, 1, 1, │ 512 │ conv5_block1_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block1_1_re… │ (None, 1, 1, │ 0 │ conv5_block1_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block1_2_co… │ (None, 1, 1, 32) │ 36,864 │ conv5_block1_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block1_conc… │ (None, 1, 1, │ 0 │ pool4_pool[0][… │ - │
│ (Concatenate) │ 928) │ │ conv5_block1_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block2_0_bn │ (None, 1, 1, │ 3,712 │ conv5_block1_c… │ N │
│ (BatchNormalizati… │ 928) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block2_0_re… │ (None, 1, 1, │ 0 │ conv5_block2_0… │ - │
│ (Activation) │ 928) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block2_1_co… │ (None, 1, 1, │ 118,784 │ conv5_block2_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block2_1_bn │ (None, 1, 1, │ 512 │ conv5_block2_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block2_1_re… │ (None, 1, 1, │ 0 │ conv5_block2_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block2_2_co… │ (None, 1, 1, 32) │ 36,864 │ conv5_block2_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block2_conc… │ (None, 1, 1, │ 0 │ conv5_block1_c… │ - │
│ (Concatenate) │ 960) │ │ conv5_block2_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block3_0_bn │ (None, 1, 1, │ 3,840 │ conv5_block2_c… │ N │
│ (BatchNormalizati… │ 960) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block3_0_re… │ (None, 1, 1, │ 0 │ conv5_block3_0… │ - │
│ (Activation) │ 960) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block3_1_co… │ (None, 1, 1, │ 122,880 │ conv5_block3_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block3_1_bn │ (None, 1, 1, │ 512 │ conv5_block3_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block3_1_re… │ (None, 1, 1, │ 0 │ conv5_block3_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block3_2_co… │ (None, 1, 1, 32) │ 36,864 │ conv5_block3_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block3_conc… │ (None, 1, 1, │ 0 │ conv5_block2_c… │ - │
│ (Concatenate) │ 992) │ │ conv5_block3_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block4_0_bn │ (None, 1, 1, │ 3,968 │ conv5_block3_c… │ N │
│ (BatchNormalizati… │ 992) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block4_0_re… │ (None, 1, 1, │ 0 │ conv5_block4_0… │ - │
│ (Activation) │ 992) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block4_1_co… │ (None, 1, 1, │ 126,976 │ conv5_block4_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block4_1_bn │ (None, 1, 1, │ 512 │ conv5_block4_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block4_1_re… │ (None, 1, 1, │ 0 │ conv5_block4_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block4_2_co… │ (None, 1, 1, 32) │ 36,864 │ conv5_block4_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block4_conc… │ (None, 1, 1, │ 0 │ conv5_block3_c… │ - │
│ (Concatenate) │ 1024) │ │ conv5_block4_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block5_0_bn │ (None, 1, 1, │ 4,096 │ conv5_block4_c… │ N │
│ (BatchNormalizati… │ 1024) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block5_0_re… │ (None, 1, 1, │ 0 │ conv5_block5_0… │ - │
│ (Activation) │ 1024) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block5_1_co… │ (None, 1, 1, │ 131,072 │ conv5_block5_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block5_1_bn │ (None, 1, 1, │ 512 │ conv5_block5_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block5_1_re… │ (None, 1, 1, │ 0 │ conv5_block5_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block5_2_co… │ (None, 1, 1, 32) │ 36,864 │ conv5_block5_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block5_conc… │ (None, 1, 1, │ 0 │ conv5_block4_c… │ - │
│ (Concatenate) │ 1056) │ │ conv5_block5_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block6_0_bn │ (None, 1, 1, │ 4,224 │ conv5_block5_c… │ N │
│ (BatchNormalizati… │ 1056) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block6_0_re… │ (None, 1, 1, │ 0 │ conv5_block6_0… │ - │
│ (Activation) │ 1056) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block6_1_co… │ (None, 1, 1, │ 135,168 │ conv5_block6_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block6_1_bn │ (None, 1, 1, │ 512 │ conv5_block6_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block6_1_re… │ (None, 1, 1, │ 0 │ conv5_block6_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block6_2_co… │ (None, 1, 1, 32) │ 36,864 │ conv5_block6_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block6_conc… │ (None, 1, 1, │ 0 │ conv5_block5_c… │ - │
│ (Concatenate) │ 1088) │ │ conv5_block6_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block7_0_bn │ (None, 1, 1, │ 4,352 │ conv5_block6_c… │ N │
│ (BatchNormalizati… │ 1088) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block7_0_re… │ (None, 1, 1, │ 0 │ conv5_block7_0… │ - │
│ (Activation) │ 1088) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block7_1_co… │ (None, 1, 1, │ 139,264 │ conv5_block7_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block7_1_bn │ (None, 1, 1, │ 512 │ conv5_block7_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block7_1_re… │ (None, 1, 1, │ 0 │ conv5_block7_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block7_2_co… │ (None, 1, 1, 32) │ 36,864 │ conv5_block7_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block7_conc… │ (None, 1, 1, │ 0 │ conv5_block6_c… │ - │
│ (Concatenate) │ 1120) │ │ conv5_block7_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block8_0_bn │ (None, 1, 1, │ 4,480 │ conv5_block7_c… │ N │
│ (BatchNormalizati… │ 1120) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block8_0_re… │ (None, 1, 1, │ 0 │ conv5_block8_0… │ - │
│ (Activation) │ 1120) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block8_1_co… │ (None, 1, 1, │ 143,360 │ conv5_block8_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block8_1_bn │ (None, 1, 1, │ 512 │ conv5_block8_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block8_1_re… │ (None, 1, 1, │ 0 │ conv5_block8_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block8_2_co… │ (None, 1, 1, 32) │ 36,864 │ conv5_block8_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block8_conc… │ (None, 1, 1, │ 0 │ conv5_block7_c… │ - │
│ (Concatenate) │ 1152) │ │ conv5_block8_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block9_0_bn │ (None, 1, 1, │ 4,608 │ conv5_block8_c… │ N │
│ (BatchNormalizati… │ 1152) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block9_0_re… │ (None, 1, 1, │ 0 │ conv5_block9_0… │ - │
│ (Activation) │ 1152) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block9_1_co… │ (None, 1, 1, │ 147,456 │ conv5_block9_0… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block9_1_bn │ (None, 1, 1, │ 512 │ conv5_block9_1… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block9_1_re… │ (None, 1, 1, │ 0 │ conv5_block9_1… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block9_2_co… │ (None, 1, 1, 32) │ 36,864 │ conv5_block9_1… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block9_conc… │ (None, 1, 1, │ 0 │ conv5_block8_c… │ - │
│ (Concatenate) │ 1184) │ │ conv5_block9_2… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block10_0_bn │ (None, 1, 1, │ 4,736 │ conv5_block9_c… │ N │
│ (BatchNormalizati… │ 1184) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block10_0_r… │ (None, 1, 1, │ 0 │ conv5_block10_… │ - │
│ (Activation) │ 1184) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block10_1_c… │ (None, 1, 1, │ 151,552 │ conv5_block10_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block10_1_bn │ (None, 1, 1, │ 512 │ conv5_block10_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block10_1_r… │ (None, 1, 1, │ 0 │ conv5_block10_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block10_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block10_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block10_con… │ (None, 1, 1, │ 0 │ conv5_block9_c… │ - │
│ (Concatenate) │ 1216) │ │ conv5_block10_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block11_0_bn │ (None, 1, 1, │ 4,864 │ conv5_block10_… │ N │
│ (BatchNormalizati… │ 1216) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block11_0_r… │ (None, 1, 1, │ 0 │ conv5_block11_… │ - │
│ (Activation) │ 1216) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block11_1_c… │ (None, 1, 1, │ 155,648 │ conv5_block11_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block11_1_bn │ (None, 1, 1, │ 512 │ conv5_block11_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block11_1_r… │ (None, 1, 1, │ 0 │ conv5_block11_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block11_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block11_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block11_con… │ (None, 1, 1, │ 0 │ conv5_block10_… │ - │
│ (Concatenate) │ 1248) │ │ conv5_block11_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block12_0_bn │ (None, 1, 1, │ 4,992 │ conv5_block11_… │ N │
│ (BatchNormalizati… │ 1248) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block12_0_r… │ (None, 1, 1, │ 0 │ conv5_block12_… │ - │
│ (Activation) │ 1248) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block12_1_c… │ (None, 1, 1, │ 159,744 │ conv5_block12_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block12_1_bn │ (None, 1, 1, │ 512 │ conv5_block12_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block12_1_r… │ (None, 1, 1, │ 0 │ conv5_block12_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block12_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block12_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block12_con… │ (None, 1, 1, │ 0 │ conv5_block11_… │ - │
│ (Concatenate) │ 1280) │ │ conv5_block12_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block13_0_bn │ (None, 1, 1, │ 5,120 │ conv5_block12_… │ N │
│ (BatchNormalizati… │ 1280) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block13_0_r… │ (None, 1, 1, │ 0 │ conv5_block13_… │ - │
│ (Activation) │ 1280) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block13_1_c… │ (None, 1, 1, │ 163,840 │ conv5_block13_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block13_1_bn │ (None, 1, 1, │ 512 │ conv5_block13_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block13_1_r… │ (None, 1, 1, │ 0 │ conv5_block13_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block13_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block13_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block13_con… │ (None, 1, 1, │ 0 │ conv5_block12_… │ - │
│ (Concatenate) │ 1312) │ │ conv5_block13_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block14_0_bn │ (None, 1, 1, │ 5,248 │ conv5_block13_… │ N │
│ (BatchNormalizati… │ 1312) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block14_0_r… │ (None, 1, 1, │ 0 │ conv5_block14_… │ - │
│ (Activation) │ 1312) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block14_1_c… │ (None, 1, 1, │ 167,936 │ conv5_block14_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block14_1_bn │ (None, 1, 1, │ 512 │ conv5_block14_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block14_1_r… │ (None, 1, 1, │ 0 │ conv5_block14_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block14_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block14_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block14_con… │ (None, 1, 1, │ 0 │ conv5_block13_… │ - │
│ (Concatenate) │ 1344) │ │ conv5_block14_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block15_0_bn │ (None, 1, 1, │ 5,376 │ conv5_block14_… │ N │
│ (BatchNormalizati… │ 1344) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block15_0_r… │ (None, 1, 1, │ 0 │ conv5_block15_… │ - │
│ (Activation) │ 1344) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block15_1_c… │ (None, 1, 1, │ 172,032 │ conv5_block15_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block15_1_bn │ (None, 1, 1, │ 512 │ conv5_block15_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block15_1_r… │ (None, 1, 1, │ 0 │ conv5_block15_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block15_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block15_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block15_con… │ (None, 1, 1, │ 0 │ conv5_block14_… │ - │
│ (Concatenate) │ 1376) │ │ conv5_block15_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block16_0_bn │ (None, 1, 1, │ 5,504 │ conv5_block15_… │ N │
│ (BatchNormalizati… │ 1376) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block16_0_r… │ (None, 1, 1, │ 0 │ conv5_block16_… │ - │
│ (Activation) │ 1376) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block16_1_c… │ (None, 1, 1, │ 176,128 │ conv5_block16_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block16_1_bn │ (None, 1, 1, │ 512 │ conv5_block16_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block16_1_r… │ (None, 1, 1, │ 0 │ conv5_block16_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block16_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block16_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block16_con… │ (None, 1, 1, │ 0 │ conv5_block15_… │ - │
│ (Concatenate) │ 1408) │ │ conv5_block16_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block17_0_bn │ (None, 1, 1, │ 5,632 │ conv5_block16_… │ N │
│ (BatchNormalizati… │ 1408) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block17_0_r… │ (None, 1, 1, │ 0 │ conv5_block17_… │ - │
│ (Activation) │ 1408) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block17_1_c… │ (None, 1, 1, │ 180,224 │ conv5_block17_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block17_1_bn │ (None, 1, 1, │ 512 │ conv5_block17_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block17_1_r… │ (None, 1, 1, │ 0 │ conv5_block17_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block17_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block17_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block17_con… │ (None, 1, 1, │ 0 │ conv5_block16_… │ - │
│ (Concatenate) │ 1440) │ │ conv5_block17_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block18_0_bn │ (None, 1, 1, │ 5,760 │ conv5_block17_… │ N │
│ (BatchNormalizati… │ 1440) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block18_0_r… │ (None, 1, 1, │ 0 │ conv5_block18_… │ - │
│ (Activation) │ 1440) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block18_1_c… │ (None, 1, 1, │ 184,320 │ conv5_block18_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block18_1_bn │ (None, 1, 1, │ 512 │ conv5_block18_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block18_1_r… │ (None, 1, 1, │ 0 │ conv5_block18_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block18_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block18_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block18_con… │ (None, 1, 1, │ 0 │ conv5_block17_… │ - │
│ (Concatenate) │ 1472) │ │ conv5_block18_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block19_0_bn │ (None, 1, 1, │ 5,888 │ conv5_block18_… │ N │
│ (BatchNormalizati… │ 1472) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block19_0_r… │ (None, 1, 1, │ 0 │ conv5_block19_… │ - │
│ (Activation) │ 1472) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block19_1_c… │ (None, 1, 1, │ 188,416 │ conv5_block19_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block19_1_bn │ (None, 1, 1, │ 512 │ conv5_block19_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block19_1_r… │ (None, 1, 1, │ 0 │ conv5_block19_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block19_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block19_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block19_con… │ (None, 1, 1, │ 0 │ conv5_block18_… │ - │
│ (Concatenate) │ 1504) │ │ conv5_block19_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block20_0_bn │ (None, 1, 1, │ 6,016 │ conv5_block19_… │ N │
│ (BatchNormalizati… │ 1504) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block20_0_r… │ (None, 1, 1, │ 0 │ conv5_block20_… │ - │
│ (Activation) │ 1504) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block20_1_c… │ (None, 1, 1, │ 192,512 │ conv5_block20_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block20_1_bn │ (None, 1, 1, │ 512 │ conv5_block20_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block20_1_r… │ (None, 1, 1, │ 0 │ conv5_block20_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block20_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block20_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block20_con… │ (None, 1, 1, │ 0 │ conv5_block19_… │ - │
│ (Concatenate) │ 1536) │ │ conv5_block20_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block21_0_bn │ (None, 1, 1, │ 6,144 │ conv5_block20_… │ N │
│ (BatchNormalizati… │ 1536) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block21_0_r… │ (None, 1, 1, │ 0 │ conv5_block21_… │ - │
│ (Activation) │ 1536) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block21_1_c… │ (None, 1, 1, │ 196,608 │ conv5_block21_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block21_1_bn │ (None, 1, 1, │ 512 │ conv5_block21_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block21_1_r… │ (None, 1, 1, │ 0 │ conv5_block21_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block21_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block21_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block21_con… │ (None, 1, 1, │ 0 │ conv5_block20_… │ - │
│ (Concatenate) │ 1568) │ │ conv5_block21_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block22_0_bn │ (None, 1, 1, │ 6,272 │ conv5_block21_… │ N │
│ (BatchNormalizati… │ 1568) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block22_0_r… │ (None, 1, 1, │ 0 │ conv5_block22_… │ - │
│ (Activation) │ 1568) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block22_1_c… │ (None, 1, 1, │ 200,704 │ conv5_block22_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block22_1_bn │ (None, 1, 1, │ 512 │ conv5_block22_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block22_1_r… │ (None, 1, 1, │ 0 │ conv5_block22_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block22_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block22_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block22_con… │ (None, 1, 1, │ 0 │ conv5_block21_… │ - │
│ (Concatenate) │ 1600) │ │ conv5_block22_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block23_0_bn │ (None, 1, 1, │ 6,400 │ conv5_block22_… │ N │
│ (BatchNormalizati… │ 1600) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block23_0_r… │ (None, 1, 1, │ 0 │ conv5_block23_… │ - │
│ (Activation) │ 1600) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block23_1_c… │ (None, 1, 1, │ 204,800 │ conv5_block23_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block23_1_bn │ (None, 1, 1, │ 512 │ conv5_block23_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block23_1_r… │ (None, 1, 1, │ 0 │ conv5_block23_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block23_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block23_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block23_con… │ (None, 1, 1, │ 0 │ conv5_block22_… │ - │
│ (Concatenate) │ 1632) │ │ conv5_block23_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block24_0_bn │ (None, 1, 1, │ 6,528 │ conv5_block23_… │ N │
│ (BatchNormalizati… │ 1632) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block24_0_r… │ (None, 1, 1, │ 0 │ conv5_block24_… │ - │
│ (Activation) │ 1632) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block24_1_c… │ (None, 1, 1, │ 208,896 │ conv5_block24_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block24_1_bn │ (None, 1, 1, │ 512 │ conv5_block24_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block24_1_r… │ (None, 1, 1, │ 0 │ conv5_block24_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block24_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block24_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block24_con… │ (None, 1, 1, │ 0 │ conv5_block23_… │ - │
│ (Concatenate) │ 1664) │ │ conv5_block24_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block25_0_bn │ (None, 1, 1, │ 6,656 │ conv5_block24_… │ N │
│ (BatchNormalizati… │ 1664) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block25_0_r… │ (None, 1, 1, │ 0 │ conv5_block25_… │ - │
│ (Activation) │ 1664) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block25_1_c… │ (None, 1, 1, │ 212,992 │ conv5_block25_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block25_1_bn │ (None, 1, 1, │ 512 │ conv5_block25_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block25_1_r… │ (None, 1, 1, │ 0 │ conv5_block25_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block25_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block25_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block25_con… │ (None, 1, 1, │ 0 │ conv5_block24_… │ - │
│ (Concatenate) │ 1696) │ │ conv5_block25_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block26_0_bn │ (None, 1, 1, │ 6,784 │ conv5_block25_… │ N │
│ (BatchNormalizati… │ 1696) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block26_0_r… │ (None, 1, 1, │ 0 │ conv5_block26_… │ - │
│ (Activation) │ 1696) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block26_1_c… │ (None, 1, 1, │ 217,088 │ conv5_block26_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block26_1_bn │ (None, 1, 1, │ 512 │ conv5_block26_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block26_1_r… │ (None, 1, 1, │ 0 │ conv5_block26_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block26_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block26_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block26_con… │ (None, 1, 1, │ 0 │ conv5_block25_… │ - │
│ (Concatenate) │ 1728) │ │ conv5_block26_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block27_0_bn │ (None, 1, 1, │ 6,912 │ conv5_block26_… │ N │
│ (BatchNormalizati… │ 1728) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block27_0_r… │ (None, 1, 1, │ 0 │ conv5_block27_… │ - │
│ (Activation) │ 1728) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block27_1_c… │ (None, 1, 1, │ 221,184 │ conv5_block27_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block27_1_bn │ (None, 1, 1, │ 512 │ conv5_block27_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block27_1_r… │ (None, 1, 1, │ 0 │ conv5_block27_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block27_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block27_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block27_con… │ (None, 1, 1, │ 0 │ conv5_block26_… │ - │
│ (Concatenate) │ 1760) │ │ conv5_block27_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block28_0_bn │ (None, 1, 1, │ 7,040 │ conv5_block27_… │ N │
│ (BatchNormalizati… │ 1760) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block28_0_r… │ (None, 1, 1, │ 0 │ conv5_block28_… │ - │
│ (Activation) │ 1760) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block28_1_c… │ (None, 1, 1, │ 225,280 │ conv5_block28_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block28_1_bn │ (None, 1, 1, │ 512 │ conv5_block28_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block28_1_r… │ (None, 1, 1, │ 0 │ conv5_block28_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block28_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block28_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block28_con… │ (None, 1, 1, │ 0 │ conv5_block27_… │ - │
│ (Concatenate) │ 1792) │ │ conv5_block28_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block29_0_bn │ (None, 1, 1, │ 7,168 │ conv5_block28_… │ N │
│ (BatchNormalizati… │ 1792) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block29_0_r… │ (None, 1, 1, │ 0 │ conv5_block29_… │ - │
│ (Activation) │ 1792) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block29_1_c… │ (None, 1, 1, │ 229,376 │ conv5_block29_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block29_1_bn │ (None, 1, 1, │ 512 │ conv5_block29_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block29_1_r… │ (None, 1, 1, │ 0 │ conv5_block29_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block29_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block29_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block29_con… │ (None, 1, 1, │ 0 │ conv5_block28_… │ - │
│ (Concatenate) │ 1824) │ │ conv5_block29_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block30_0_bn │ (None, 1, 1, │ 7,296 │ conv5_block29_… │ N │
│ (BatchNormalizati… │ 1824) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block30_0_r… │ (None, 1, 1, │ 0 │ conv5_block30_… │ - │
│ (Activation) │ 1824) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block30_1_c… │ (None, 1, 1, │ 233,472 │ conv5_block30_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block30_1_bn │ (None, 1, 1, │ 512 │ conv5_block30_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block30_1_r… │ (None, 1, 1, │ 0 │ conv5_block30_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block30_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block30_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block30_con… │ (None, 1, 1, │ 0 │ conv5_block29_… │ - │
│ (Concatenate) │ 1856) │ │ conv5_block30_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block31_0_bn │ (None, 1, 1, │ 7,424 │ conv5_block30_… │ N │
│ (BatchNormalizati… │ 1856) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block31_0_r… │ (None, 1, 1, │ 0 │ conv5_block31_… │ - │
│ (Activation) │ 1856) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block31_1_c… │ (None, 1, 1, │ 237,568 │ conv5_block31_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block31_1_bn │ (None, 1, 1, │ 512 │ conv5_block31_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block31_1_r… │ (None, 1, 1, │ 0 │ conv5_block31_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block31_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block31_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block31_con… │ (None, 1, 1, │ 0 │ conv5_block30_… │ - │
│ (Concatenate) │ 1888) │ │ conv5_block31_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block32_0_bn │ (None, 1, 1, │ 7,552 │ conv5_block31_… │ N │
│ (BatchNormalizati… │ 1888) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block32_0_r… │ (None, 1, 1, │ 0 │ conv5_block32_… │ - │
│ (Activation) │ 1888) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block32_1_c… │ (None, 1, 1, │ 241,664 │ conv5_block32_… │ N │
│ (Conv2D) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block32_1_bn │ (None, 1, 1, │ 512 │ conv5_block32_… │ N │
│ (BatchNormalizati… │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block32_1_r… │ (None, 1, 1, │ 0 │ conv5_block32_… │ - │
│ (Activation) │ 128) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block32_2_c… │ (None, 1, 1, 32) │ 36,864 │ conv5_block32_… │ N │
│ (Conv2D) │ │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ conv5_block32_con… │ (None, 1, 1, │ 0 │ conv5_block31_… │ - │
│ (Concatenate) │ 1920) │ │ conv5_block32_… │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ bn │ (None, 1, 1, │ 7,680 │ conv5_block32_… │ N │
│ (BatchNormalizati… │ 1920) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ relu (Activation) │ (None, 1, 1, │ 0 │ bn[0][0] │ - │
│ │ 1920) │ │ │ │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ dense_4 (Dense) │ (None, 1, 1, 10) │ 19,210 │ relu[0][0] │ Y │
├────────────────────┼──────────────────┼────────────┼─────────────────┼───────┤
│ flatten_3 │ (None, 10) │ 0 │ dense_4[0][0] │ - │
│ (Flatten) │ │ │ │ │
└────────────────────┴──────────────────┴────────────┴─────────────────┴───────┘
Total params: 18,341,194 (69.97 MB)
Trainable params: 19,210 (75.04 KB)
Non-trainable params: 18,321,984 (69.89 MB)
And then the usual training:
library(tensorflow)
library(keras3)
|>
model ::compile(loss = keras3::loss_categorical_crossentropy,
keras3optimizer = optimizer_adamax())
|>
model fit(
x = train_x,
y = train_y,
epochs = 1L,
batch_size = 32L,
shuffle = TRUE,
validation_split = 0.2
)
We have seen, that transfer learning can easily be done using Keras.
library(torchvision)
library(torch)
torch_manual_seed(321L)
set.seed(123)
= cifar10_dataset(".", download = TRUE, train = TRUE,
train_ds transform = transform_to_tensor)
= cifar10_dataset(".", download = TRUE, train = FALSE,
test_ds transform = transform_to_tensor)
= dataloader(train_ds, batch_size = 100L, shuffle = TRUE)
train_dl = dataloader(test_ds, batch_size = 100L)
test_dl
= model_resnet18(pretrained = TRUE)
model_torch
# We will set all model parameters to constant values:
$parameters |>
model_torch::walk(function(param) param$requires_grad_(FALSE))
purrr
# Let's replace the last layer (last layer is named 'fc') with our own layer:
= model_torch$fc$in_features
inFeat $fc = nn_linear(inFeat, out_features = 10L)
model_torch
= optim_adam(params = model_torch$parameters, lr = 0.01)
opt
for(e in 1:1){
= c()
losses ::loop(
corofor(batch in train_dl){
$zero_grad()
opt= model_torch(batch[[1]])
pred = nnf_cross_entropy(pred, batch[[2]], reduction = "mean")
loss $backward()
loss$step()
opt= c(losses, loss$item())
losses
}
)
cat(sprintf("Loss at epoch %d: %3f\n", e, mean(losses)))
}
$eval()
model_torch
= c()
test_losses = 0
total = 0
correct
::loop(
corofor(batch in test_dl){
= model_torch(batch[[1]])
output = batch[[2]]
labels = nnf_cross_entropy(output, labels)
loss = c(test_losses, loss$item())
test_losses = torch_max(output$data(), dim = 2)[[2]]
predicted = total + labels$size(1)
total = correct + (predicted == labels)$sum()$item()
correct
}
)
= correct/total
test_accuracy print(test_accuracy)
11.4.3 Example: Flower dataset
Let’s do that with our flower data set:
library(keras3)
library(tensorflow)
= EcoData::dataset_flower()
data = data$train/255
train = data$labels
labels
# data augemention model
= keras_model_sequential()
aug %>%
aug layer_random_flip() %>%
layer_random_rotation(factor = c(-0.5, 0.5)) %>%
layer_random_brightness(factor = c(-0.5, 0.5), value_range = c(0, 1))
aug
# Prepare datasets
= tfdatasets::tensor_slices_dataset(list(train, to_categorical(labels)))
dataset <- dataset %>%
dataset dataset_map(function(x, y) list(aug(x), y))
<- 64
batch_size
<- dataset |>
train_ds dataset_batch(batch_size) |>
dataset_prefetch(buffer_size = tf$data$AUTOTUNE)
# Transfer learning
# weights were trained to imagenet
= keras3::application_convnext_small(include_top = FALSE,
pretrained_model input_shape = c(80L, 80L, 3L))
# pretrained_model
::freeze_weights(pretrained_model)
keras3
pretrained_model
# Build model
= keras_model(inputs = pretrained_model$input,
model outputs = pretrained_model$output |>
layer_flatten() |>
layer_dropout(0.2) |>
layer_dense(units = 5L, activation = "softmax")
)%>% freeze_weights(from = 1, to = length(model$layers)-1)
model
|>
model ::compile(loss = loss_categorical_crossentropy,
keras3optimizer = keras3::optimizer_rmsprop(learning_rate = 0.0005))
|>
model fit(train_ds, epochs = 5L)