Aller au contenu

TP Module 6 : La segmentation

Import libs

import tensorflow as tf
from tensorflow import keras

print(tf.__version__)
print(keras.__version__)

import matplotlib.pyplot as plt
import pandas as pd
import random
import os
import numpy as np

# freeze de l'aléatoire, pour avoir des expériences reproductibles.
RANDOM_SEED = 42

os.environ['PYTHONHASHSEED'] = str(RANDOM_SEED)
random.seed(RANDOM_SEED)
np.random.seed(RANDOM_SEED)
os.environ['TF_DETERMINISTIC_OPS'] = '1'
tf.random.set_seed(RANDOM_SEED)
2.2.0
2.3.0-tf

!nvidia-smi
Wed May 27 13:55:24 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.82       Driver Version: 418.67       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P100-PCIE...  Off  | 00000000:00:04.0 Off |                    0 |
| N/A   46C    P0    33W / 250W |    357MiB / 16280MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

from tensorflow.keras.layers import Input
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import BatchNormalization
from tensorflow.keras.layers import ReLU
from tensorflow.keras.layers import Add
from tensorflow.keras.layers import MaxPool2D
from tensorflow.keras.layers import GlobalAvgPool2D
from tensorflow.keras.layers import Dense
from tensorflow.keras.layers import Activation
from tensorflow.keras.layers import Concatenate
from tensorflow.keras.layers import Dropout
from tensorflow.keras.layers import Conv2DTranspose

from tensorflow.keras import Model

Les datasets & les métriques appropriés

Nucleus

!unzip -q nucleus.zip -d nucleus_dir
x_train_dir = '/content/nucleus_dir/data/train/'
y_train_dir = '/content/nucleus_dir/data/train/solutions/'

x_test_dir = '/content/nucleus_dir/data/test/'
y_test_dir = '/content/nucleus_dir/data/test/solutions/'

input_size = (224, 224)

import glob
from PIL import Image

def load_image(path): 
  return np.asarray(Image.open(path).resize(input_size, Image.NEAREST))

def load_dir(dir):
  img_paths = glob.glob(dir+'*.png')
  img_arr = np.array([load_image(p) for p in img_paths])
  return img_arr

Seul le jeu d'entraînement et le jeu de test ont les masques. On tuilisera donc le jeu de test comme jeu de validation.

1
2
3
4
5
6
7
8
9
x_train = load_dir(x_train_dir)
print('x_train shape', x_train.shape)
y_train = load_dir(y_train_dir)
print('y_train shape', y_train.shape)

x_test = load_dir(x_test_dir)
print('x_test shape', x_test.shape)
y_test = load_dir(y_test_dir)
print('y_test shape', y_test.shape)
x_train shape (555, 224, 224)
y_train shape (555, 224, 224)
x_test shape (42, 224, 224)
y_test shape (42, 224, 224)

1
2
3
4
5
6
7
8
9
x_train = tf.reshape(x_train, (-1, 224,224,1))
y_train = tf.reshape(y_train, (-1, 224,224,1))
x_test = tf.reshape(x_test, (-1, 224,224,1))
y_test = tf.reshape(y_test, (-1, 224,224,1))

x_train = x_train/ 255
y_train = y_train/ 255
x_test = x_test/ 255
y_test = y_test/ 255
ds = tf.data.Dataset.from_tensor_slices((x_train, y_train)).shuffle(buffer_size=len(x_train)).batch(16)
ds_val = tf.data.Dataset.from_tensor_slices((x_test, y_test)).shuffle(buffer_size=len(x_test)).batch(16)

Voyons à quoi cela ressemble.

1
2
3
4
5
6
7
8
9
%pylab inline

obs = 1

figsize(15,15)
subplot(1, 2, 1)
imshow(x_train[obs, :, :, 0])
subplot(1, 2, 2)
imshow(y_train[obs, :, :, 0])
Populating the interactive namespace from numpy and matplotlib

<matplotlib.image.AxesImage at 0x7f656fb63b70>

CamVid

Le dataset présenté ici est le dataset communément nommé CamVid, pour Cambridge-driving Labeled Video Database, c'est un dataset souvent utilisé pour le benchmark de modèle en segmentation sémantique.

Le Dataset se compose de photos prises du point de vue d'un conducteur de voiture, ce qui en fait un bon point de départ pour les modèles par exemple utilisés dans les voitures autonomes.

Attention ne vous leurrez pas, les voitures autonomes par exemple chez Tesla, fonctionnent grâce à la combinaison de 90 modèles de deep learning différents, le tout cumulant 75000h d'entraînements au minimum. Mais cela reste un point de départ.

1
2
3
4
5
!git clone https://github.com/alexgkendall/SegNet-Tutorial.git

!mkdir /data
!mkdir /data/datasets/
!mv /content/SegNet-Tutorial/ /data/datasets/
fatal: destination path 'SegNet-Tutorial' already exists and is not an empty directory.
mkdir: cannot create directory ‘/data’: File exists
mkdir: cannot create directory ‘/data/datasets/’: File exists
mv: cannot move '/content/SegNet-Tutorial/' to '/data/datasets/SegNet-Tutorial': Directory not empty

input_size = (224, 224)
base = '/data/datasets/SegNet-Tutorial/CamVid/'

x_train = load_dir(base+'train/')
print('x_train shape', x_train.shape)
y_train = load_dir(base+'trainannot/')
print('y_train shape', y_train.shape)

x_val = load_dir(base+'val/')
print('x_val shape', x_val.shape)
y_val = load_dir(base+'valannot/')
print('y_val shape', y_val.shape)

x_test = load_dir(base+'test/')
print('x_test shape', x_test.shape)
y_test = load_dir(base+'testannot/')
print('y_test shape', y_test.shape)
x_train shape (367, 224, 224, 3)
y_train shape (367, 224, 224)
x_val shape (101, 224, 224, 3)
y_val shape (101, 224, 224)
x_test shape (233, 224, 224, 3)
y_test shape (233, 224, 224)

La Dataset contient au total \(701\) images annotées à la main. Les annotations dans y correspondent à un masque : chaque pixel à une classe qui lui est défini, il y a en tout 32 classes dans ce dataset. Les classes sont les suivantes :

  • VegetationMisc
  • SignSymbol
  • Column_Pole
  • Child
  • Truck_Bus
  • Train
  • MotorcycleScooter
  • Archway
  • LaneMkgsNonDriv
  • RoadShoulder
  • Sky
  • Misc_Text
  • Tree
  • Road
  • OtherMoving
  • LaneMkgsDriv
  • Building
  • ParkingBlock
  • Wall
  • SUVPickupTruck
  • Animal
  • Fence
  • Pedestrian
  • CartLuggagePram
  • Car
  • Tunnel
  • Bicyclist
  • Bridge
  • TrafficLight
  • Sidewalk
  • TrafficCone
  • Void

et chaque classe est réprésentée par une combinaison RGB différente :

192 192 0     VegetationMisc
192 128 128 SignSymbol
192 192 128 Column_Pole
192 128 64   Child
192 128 192 Truck_Bus
192 64 128   Train
192 0 192     MotorcycleScooter
192 0 128     Archway
192 0 64       LaneMkgsNonDriv
128 128 192 RoadShoulder
128 128 128 Sky
128 128 64   Misc_Text
128 128 0     Tree
128 64 128   Road
128 64 64     OtherMoving
128 0 192     LaneMkgsDriv
128 0 0     Building
64 192 128  ParkingBlock
64 192 0       Wall
64 128 192   SUVPickupTruck
64 128 64     Animal
64 64 128     Fence
64 64 0     Pedestrian
64 0 192       CartLuggagePram
64 0 128       Car
64 0 64     Tunnel
0 128 192     Bicyclist
0 128 64       Bridge
0 64 64     TrafficLight
0 0 192     Sidewalk
0 0 64       TrafficCone
0 0 0         Void

Les classes sont dans l'ordre et commencent à \(1\). Par exemple, la classe "Sky" est représentée dans le masque par l'entier \(11\).

Voyons à quoi cela ressemble.

1
2
3
4
5
6
7
8
9
%pylab inline

obs = 350

figsize(15,15)
subplot(1, 2, 1)
imshow(x_train[obs])
subplot(1, 2, 2)
imshow(y_train[obs, :, :])
Populating the interactive namespace from numpy and matplotlib

<matplotlib.image.AxesImage at 0x7f6507e15f98>

Le but d'un modèle de segmentation sémantique est donc de prédire la classe de chaque pixels. Finalisons nos datasets.

1
2
3
x_train = x_train / 255
x_val = x_val / 255
x_test = x_test / 255
1
2
3
ds = tf.data.Dataset.from_tensor_slices((x_train, y_train)).shuffle(buffer_size=len(x_train)).batch(3)
ds_val = tf.data.Dataset.from_tensor_slices((x_val, y_val)).shuffle(buffer_size=len(x_val)).batch(3)
ds_test = tf.data.Dataset.from_tensor_slices((x_test, y_test)).shuffle(buffer_size=len(x_test)).batch(3)

IoU métrique

Concernant les métriques spécifiques au problèmes de la segmentation, nous en avaons en particuliers deux :

  • Dice Coefficient : \(\(\text{DC} = \frac{2 TP}{2 TP + FP + FN} = \frac{2|X \cap Y|}{|X| + |Y|}\)\)

  • Intersection over Union : \(\(\text{IoU} = \frac{TP}{TP + FP + FN} = \frac{|X \cap Y|}{|X| + |Y| - |X \cap Y|}\)\)

Par définition, on voit que \(\text{DC} \geq \text{IoU}\).

La convolution transposée

Générons une feature map aléatoire.

1
2
3
fm  = np.random.random(1*256*256*3).astype('float32')
fm = tf.reshape(fm, (-1,256,256,3))
fm.shape
TensorShape([1, 256, 256, 3])

Une convolution classique, avec un stride=1, et un padding='same' ne change pas la dimension de fm.

1
2
3
conv = Conv2D(3, kernel_size=3, strides=1, padding='same')
fm_out = conv(fm)
fm_out.shape
TensorShape([1, 256, 256, 3])

Mais une convolution avec un stride=1, padding='same' elle change la dimension de fm, en la divisant par 2.

Dans le cas où padding=same, la dimension de sortie \(o\) est complètement déterminée par le stride et la dimension d'entrée \(i\), avec la formule suivante.

\[o = \left\lceil \frac{i}{s} \right\rceil\]
1
2
3
conv2 = Conv2D(3, kernel_size=3, strides=2, padding='same')
fm_out2 = conv2(fm)
fm_out2.shape
TensorShape([1, 128, 128, 3])

Pour la convolution transposée, comme cette opération est la contrepartie arrière d'une convolution normale, cela signifie que la dimension de sortie d'une convolution normale correspond à la dimension d'entrée de la convolution transposée. En d'autres termes, alors que la forme de sortie de Conv2D() est divisée par le stride, la dimension de sortie de Conv2DTranspose() est multipliée par celui-ci.

\[o=s\cdot i\]
1
2
3
convT = Conv2DTranspose(3, kernel_size=3, strides=2, padding='same')
fm2 = convT(fm_out2)
fm2.shape
TensorShape([1, 256, 256, 3])

Attention, comme dit prcédemment, on ne récupère que la dimension, on ne récupère évidemment pas les valeurs initiales de fm.

np.sum((fm==fm2).numpy(), axis=(0,1,2,3))
0

Unet

Unet est l'un des premiers réseaux de neurones généralisant les "skip connections" de l'architecture ResNet pour la segmentation sémantique. Il a été à la base développé pour des problèmes de médecines, ie donner une classification des différents types de cellules dans une boite de Petri. L'article d'origine n'avait un jeu de donnée que d'une cinquantaine d'images de boites de Petri différentes, et pourtant il a largement surpassé l'état de l'art comtemporain.

Idée

  • However, in many visual tasks, especially in biomedical image processing, the desired output should include localization, i.e. a class label is supposed to be assigned to each pixel. Moreover, thousands of training images are usually beyond reach in biomedial tasks.

  • The main idea [...] is to supplement a usual contracting network by successive layers, where pooling operators are replaced by upsampling operators. Hence these layers increase the resolution of the output. In order to localize, high resolution features from the contracting path are combined with the upsampled output.

  • The network does not have any fully connected layers and only uses [..] convolution [...].

  • It consists of a contracting path (left side) and an expensive path (right side)

Les briques de bases

Downsampling
  • The contracting path follows the typical architecture of a convolutional network. It consists of the repeated application of two \(3 \times 3\) convolutions (unpadded convolutions), each followed by a rectified linear unit (ReLU) and a \(2 \times 2\) max pooling operation with strides \(2\). for downsampling.

  • At each downsampling step we double the number of features channels.

def conv_relu(tensor, filters):
  x = Conv2D(filters,
             kernel_size=(3,3),
             strides=(1,1),
             padding='same',
             kernel_initializer='he_normal')(tensor)
  x = ReLU()(x)
  x = Conv2D(filters,
             kernel_size=(3,3),
             strides=(1,1),
             padding='same',
             kernel_initializer='he_normal')(x)
  x = ReLU()(x)

  return x
1
2
3
4
5
def downsample(tensor):
  x = MaxPool2D(pool_size=(2,2),
                strides=(2,2))(tensor)

  return x
Upsampling
  • Every step in the expansive path consists of an upsampling of the feature map followed by a \(2 \times 2\) convolution ("up-convolution") that halves the number of feature channels.

  • A concatenation with the correspondingly cropped feature map from the contracting path, and two \(3 \times 3\) convolutions, each followed by a ReLU.

1
2
3
4
5
6
7
8
def upsample(tensor, filters):
  x = Conv2DTranspose(filters = filters,
                      kernel_size = 2,
                      strides = (2, 2),
                      padding = "same",
                      kernel_initializer = 'he_normal')(tensor)

  return x 
Final layer
  • At the final layer a \(1 \times 1\) convolution is used to map each \(64\)-component feature vector to the desired number of classes.

  • In total the network has \(23\) convolutional layers.

Mise en place du modèle

def get_unet(filters, num_classes, img_shape):

  growth_rate = [filters, 2*filters, 4*filters, 8*filters, 16*filters, 8*filters, 4*filters, 2*filters, filters]
  nb_blocks = 4
  upsampling_fm = []

  # input block
  input = Input(shape=img_shape)
  x = input

  #downsampling blocks
  for i in range(nb_blocks):
    x = conv_relu(x, growth_rate[i])
    upsampling_fm.append(x)
    x = downsample(x)

  # Bottleneck
  upsampling = upsampling_fm[::-1]
  x = conv_relu(x, growth_rate[4])

  #upsampling path
  for i in range(nb_blocks):
    x = upsample(x, growth_rate[5+i])
    x = Concatenate()([x, upsampling[i]])
    x = conv_relu(x, growth_rate[i])

  outputs =  Conv2D(num_classes,
                    kernel_size=(1,1),
                    strides=(1,1),
                    kernel_initializer='he_normal',
                    activation='sigmoid')(x) 

  model = Model(input, outputs)

  return model
1
2
3
4
5
6
filters = 32
num_classes = 1
img_shape = (224, 224, 1)

model = get_unet(filters, num_classes, img_shape)
model.summary()
Model: "model_1"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_2 (InputLayer)            [(None, 224, 224, 1) 0                                            
__________________________________________________________________________________________________
conv2d_19 (Conv2D)              (None, 224, 224, 32) 320         input_2[0][0]                    
__________________________________________________________________________________________________
re_lu_18 (ReLU)                 (None, 224, 224, 32) 0           conv2d_19[0][0]                  
__________________________________________________________________________________________________
conv2d_20 (Conv2D)              (None, 224, 224, 32) 9248        re_lu_18[0][0]                   
__________________________________________________________________________________________________
re_lu_19 (ReLU)                 (None, 224, 224, 32) 0           conv2d_20[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_4 (MaxPooling2D)  (None, 112, 112, 32) 0           re_lu_19[0][0]                   
__________________________________________________________________________________________________
conv2d_21 (Conv2D)              (None, 112, 112, 64) 18496       max_pooling2d_4[0][0]            
__________________________________________________________________________________________________
re_lu_20 (ReLU)                 (None, 112, 112, 64) 0           conv2d_21[0][0]                  
__________________________________________________________________________________________________
conv2d_22 (Conv2D)              (None, 112, 112, 64) 36928       re_lu_20[0][0]                   
__________________________________________________________________________________________________
re_lu_21 (ReLU)                 (None, 112, 112, 64) 0           conv2d_22[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_5 (MaxPooling2D)  (None, 56, 56, 64)   0           re_lu_21[0][0]                   
__________________________________________________________________________________________________
conv2d_23 (Conv2D)              (None, 56, 56, 128)  73856       max_pooling2d_5[0][0]            
__________________________________________________________________________________________________
re_lu_22 (ReLU)                 (None, 56, 56, 128)  0           conv2d_23[0][0]                  
__________________________________________________________________________________________________
conv2d_24 (Conv2D)              (None, 56, 56, 128)  147584      re_lu_22[0][0]                   
__________________________________________________________________________________________________
re_lu_23 (ReLU)                 (None, 56, 56, 128)  0           conv2d_24[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_6 (MaxPooling2D)  (None, 28, 28, 128)  0           re_lu_23[0][0]                   
__________________________________________________________________________________________________
conv2d_25 (Conv2D)              (None, 28, 28, 256)  295168      max_pooling2d_6[0][0]            
__________________________________________________________________________________________________
re_lu_24 (ReLU)                 (None, 28, 28, 256)  0           conv2d_25[0][0]                  
__________________________________________________________________________________________________
conv2d_26 (Conv2D)              (None, 28, 28, 256)  590080      re_lu_24[0][0]                   
__________________________________________________________________________________________________
re_lu_25 (ReLU)                 (None, 28, 28, 256)  0           conv2d_26[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_7 (MaxPooling2D)  (None, 14, 14, 256)  0           re_lu_25[0][0]                   
__________________________________________________________________________________________________
conv2d_27 (Conv2D)              (None, 14, 14, 512)  1180160     max_pooling2d_7[0][0]            
__________________________________________________________________________________________________
re_lu_26 (ReLU)                 (None, 14, 14, 512)  0           conv2d_27[0][0]                  
__________________________________________________________________________________________________
conv2d_28 (Conv2D)              (None, 14, 14, 512)  2359808     re_lu_26[0][0]                   
__________________________________________________________________________________________________
re_lu_27 (ReLU)                 (None, 14, 14, 512)  0           conv2d_28[0][0]                  
__________________________________________________________________________________________________
conv2d_transpose_4 (Conv2DTrans (None, 28, 28, 256)  524544      re_lu_27[0][0]                   
__________________________________________________________________________________________________
concatenate_4 (Concatenate)     (None, 28, 28, 512)  0           conv2d_transpose_4[0][0]         
                                                                 re_lu_25[0][0]                   
__________________________________________________________________________________________________
conv2d_29 (Conv2D)              (None, 28, 28, 32)   147488      concatenate_4[0][0]              
__________________________________________________________________________________________________
re_lu_28 (ReLU)                 (None, 28, 28, 32)   0           conv2d_29[0][0]                  
__________________________________________________________________________________________________
conv2d_30 (Conv2D)              (None, 28, 28, 32)   9248        re_lu_28[0][0]                   
__________________________________________________________________________________________________
re_lu_29 (ReLU)                 (None, 28, 28, 32)   0           conv2d_30[0][0]                  
__________________________________________________________________________________________________
conv2d_transpose_5 (Conv2DTrans (None, 56, 56, 128)  16512       re_lu_29[0][0]                   
__________________________________________________________________________________________________
concatenate_5 (Concatenate)     (None, 56, 56, 256)  0           conv2d_transpose_5[0][0]         
                                                                 re_lu_23[0][0]                   
__________________________________________________________________________________________________
conv2d_31 (Conv2D)              (None, 56, 56, 64)   147520      concatenate_5[0][0]              
__________________________________________________________________________________________________
re_lu_30 (ReLU)                 (None, 56, 56, 64)   0           conv2d_31[0][0]                  
__________________________________________________________________________________________________
conv2d_32 (Conv2D)              (None, 56, 56, 64)   36928       re_lu_30[0][0]                   
__________________________________________________________________________________________________
re_lu_31 (ReLU)                 (None, 56, 56, 64)   0           conv2d_32[0][0]                  
__________________________________________________________________________________________________
conv2d_transpose_6 (Conv2DTrans (None, 112, 112, 64) 16448       re_lu_31[0][0]                   
__________________________________________________________________________________________________
concatenate_6 (Concatenate)     (None, 112, 112, 128 0           conv2d_transpose_6[0][0]         
                                                                 re_lu_21[0][0]                   
__________________________________________________________________________________________________
conv2d_33 (Conv2D)              (None, 112, 112, 128 147584      concatenate_6[0][0]              
__________________________________________________________________________________________________
re_lu_32 (ReLU)                 (None, 112, 112, 128 0           conv2d_33[0][0]                  
__________________________________________________________________________________________________
conv2d_34 (Conv2D)              (None, 112, 112, 128 147584      re_lu_32[0][0]                   
__________________________________________________________________________________________________
re_lu_33 (ReLU)                 (None, 112, 112, 128 0           conv2d_34[0][0]                  
__________________________________________________________________________________________________
conv2d_transpose_7 (Conv2DTrans (None, 224, 224, 32) 16416       re_lu_33[0][0]                   
__________________________________________________________________________________________________
concatenate_7 (Concatenate)     (None, 224, 224, 64) 0           conv2d_transpose_7[0][0]         
                                                                 re_lu_19[0][0]                   
__________________________________________________________________________________________________
conv2d_35 (Conv2D)              (None, 224, 224, 256 147712      concatenate_7[0][0]              
__________________________________________________________________________________________________
re_lu_34 (ReLU)                 (None, 224, 224, 256 0           conv2d_35[0][0]                  
__________________________________________________________________________________________________
conv2d_36 (Conv2D)              (None, 224, 224, 256 590080      re_lu_34[0][0]                   
__________________________________________________________________________________________________
re_lu_35 (ReLU)                 (None, 224, 224, 256 0           conv2d_36[0][0]                  
__________________________________________________________________________________________________
conv2d_37 (Conv2D)              (None, 224, 224, 1)  257         re_lu_35[0][0]                   
==================================================================================================
Total params: 6,659,969
Trainable params: 6,659,969
Non-trainable params: 0
__________________________________________________________________________________________________

1
2
3
img = tf.reshape(x_train[0, :, :], (-1, 224,224, 1))
p = model(img)
p.shape
TensorShape([1, 224, 224, 1])
1
2
3
model.compile(loss='binary_crossentropy',
              optimizer=keras.optimizers.RMSprop(),
              metrics=["accuracy"])
1
2
3
4
history = model.fit(x_train, y_train,
                    epochs=100,
                    batch_size=16,
                    validation_split=0.1)
Epoch 1/100
32/32 [==============================] - 21s 658ms/step - loss: 0.0083 - accuracy: 0.9965 - val_loss: 0.0279 - val_accuracy: 0.9912
Epoch 2/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0092 - accuracy: 0.9961 - val_loss: 0.0309 - val_accuracy: 0.9905
Epoch 3/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0126 - accuracy: 0.9952 - val_loss: 0.0240 - val_accuracy: 0.9924
Epoch 4/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0077 - accuracy: 0.9967 - val_loss: 0.0328 - val_accuracy: 0.9918
Epoch 5/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0082 - accuracy: 0.9965 - val_loss: 0.0578 - val_accuracy: 0.9924
Epoch 6/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0077 - accuracy: 0.9967 - val_loss: 0.0270 - val_accuracy: 0.9910
Epoch 7/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0073 - accuracy: 0.9969 - val_loss: 0.0460 - val_accuracy: 0.9921
Epoch 8/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0077 - accuracy: 0.9969 - val_loss: 0.0288 - val_accuracy: 0.9918
Epoch 9/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0074 - accuracy: 0.9970 - val_loss: 0.0276 - val_accuracy: 0.9919
Epoch 10/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0063 - accuracy: 0.9973 - val_loss: 0.0567 - val_accuracy: 0.9914
Epoch 11/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0070 - accuracy: 0.9971 - val_loss: 0.0334 - val_accuracy: 0.9916
Epoch 12/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0748 - accuracy: 0.9909 - val_loss: 0.0275 - val_accuracy: 0.9916
Epoch 13/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0067 - accuracy: 0.9974 - val_loss: 0.0314 - val_accuracy: 0.9910
Epoch 14/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0047 - accuracy: 0.9980 - val_loss: 0.0327 - val_accuracy: 0.9921
Epoch 15/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0062 - accuracy: 0.9974 - val_loss: 0.0323 - val_accuracy: 0.9898
Epoch 16/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0058 - accuracy: 0.9975 - val_loss: 0.0432 - val_accuracy: 0.9918
Epoch 17/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0060 - accuracy: 0.9975 - val_loss: 0.0425 - val_accuracy: 0.9927
Epoch 18/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0057 - accuracy: 0.9976 - val_loss: 0.0459 - val_accuracy: 0.9917
Epoch 19/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0057 - accuracy: 0.9976 - val_loss: 0.0292 - val_accuracy: 0.9901
Epoch 20/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0055 - accuracy: 0.9977 - val_loss: 0.0505 - val_accuracy: 0.9923
Epoch 21/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0054 - accuracy: 0.9977 - val_loss: 0.0648 - val_accuracy: 0.9917
Epoch 22/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0055 - accuracy: 0.9977 - val_loss: 0.0443 - val_accuracy: 0.9922
Epoch 23/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0050 - accuracy: 0.9979 - val_loss: 0.0522 - val_accuracy: 0.9909
Epoch 24/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0051 - accuracy: 0.9978 - val_loss: 0.0456 - val_accuracy: 0.9927
Epoch 25/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0048 - accuracy: 0.9979 - val_loss: 0.0429 - val_accuracy: 0.9921
Epoch 26/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0048 - accuracy: 0.9980 - val_loss: 0.0403 - val_accuracy: 0.9913
Epoch 27/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0045 - accuracy: 0.9981 - val_loss: 0.0598 - val_accuracy: 0.9917
Epoch 28/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0046 - accuracy: 0.9981 - val_loss: 0.0416 - val_accuracy: 0.9904
Epoch 29/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0043 - accuracy: 0.9982 - val_loss: 0.0554 - val_accuracy: 0.9918
Epoch 30/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0430 - accuracy: 0.9935 - val_loss: 0.0317 - val_accuracy: 0.9923
Epoch 31/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0036 - accuracy: 0.9984 - val_loss: 0.0376 - val_accuracy: 0.9924
Epoch 32/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0036 - accuracy: 0.9984 - val_loss: 0.0435 - val_accuracy: 0.9906
Epoch 33/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0042 - accuracy: 0.9983 - val_loss: 0.0421 - val_accuracy: 0.9918
Epoch 34/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0038 - accuracy: 0.9984 - val_loss: 0.0480 - val_accuracy: 0.9921
Epoch 35/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0044 - accuracy: 0.9982 - val_loss: 0.0341 - val_accuracy: 0.9916
Epoch 36/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0045 - accuracy: 0.9982 - val_loss: 0.0343 - val_accuracy: 0.9915
Epoch 37/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0035 - accuracy: 0.9985 - val_loss: 0.0464 - val_accuracy: 0.9913
Epoch 38/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0036 - accuracy: 0.9985 - val_loss: 0.0425 - val_accuracy: 0.9918
Epoch 39/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0040 - accuracy: 0.9983 - val_loss: 0.0527 - val_accuracy: 0.9919
Epoch 40/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0034 - accuracy: 0.9985 - val_loss: 0.0477 - val_accuracy: 0.9911
Epoch 41/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0036 - accuracy: 0.9985 - val_loss: 0.0555 - val_accuracy: 0.9921
Epoch 42/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0037 - accuracy: 0.9985 - val_loss: 0.0412 - val_accuracy: 0.9921
Epoch 43/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0032 - accuracy: 0.9986 - val_loss: 0.0457 - val_accuracy: 0.9919
Epoch 44/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0034 - accuracy: 0.9986 - val_loss: 0.0423 - val_accuracy: 0.9906
Epoch 45/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0034 - accuracy: 0.9986 - val_loss: 0.0396 - val_accuracy: 0.9886
Epoch 46/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0032 - accuracy: 0.9987 - val_loss: 0.0425 - val_accuracy: 0.9924
Epoch 47/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0031 - accuracy: 0.9987 - val_loss: 0.0511 - val_accuracy: 0.9918
Epoch 48/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0031 - accuracy: 0.9987 - val_loss: 0.0469 - val_accuracy: 0.9918
Epoch 49/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0030 - accuracy: 0.9987 - val_loss: 0.0455 - val_accuracy: 0.9917
Epoch 50/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0031 - accuracy: 0.9987 - val_loss: 0.0468 - val_accuracy: 0.9919
Epoch 51/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0029 - accuracy: 0.9988 - val_loss: 0.0427 - val_accuracy: 0.9915
Epoch 52/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0028 - accuracy: 0.9988 - val_loss: 0.0473 - val_accuracy: 0.9919
Epoch 53/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0028 - accuracy: 0.9988 - val_loss: 0.0476 - val_accuracy: 0.9915
Epoch 54/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0026 - accuracy: 0.9989 - val_loss: 0.0480 - val_accuracy: 0.9918
Epoch 55/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0028 - accuracy: 0.9988 - val_loss: 0.0499 - val_accuracy: 0.9923
Epoch 56/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0026 - accuracy: 0.9989 - val_loss: 0.0580 - val_accuracy: 0.9921
Epoch 57/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0026 - accuracy: 0.9989 - val_loss: 0.0525 - val_accuracy: 0.9915
Epoch 58/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0025 - accuracy: 0.9990 - val_loss: 0.0514 - val_accuracy: 0.9917
Epoch 59/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0024 - accuracy: 0.9990 - val_loss: 0.0551 - val_accuracy: 0.9916
Epoch 60/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0026 - accuracy: 0.9989 - val_loss: 0.0591 - val_accuracy: 0.9922
Epoch 61/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0021 - accuracy: 0.9991 - val_loss: 0.0569 - val_accuracy: 0.9919
Epoch 62/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0023 - accuracy: 0.9990 - val_loss: 0.0702 - val_accuracy: 0.9918
Epoch 63/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0023 - accuracy: 0.9990 - val_loss: 0.0481 - val_accuracy: 0.9921
Epoch 64/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0021 - accuracy: 0.9991 - val_loss: 0.0641 - val_accuracy: 0.9922
Epoch 65/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0020 - accuracy: 0.9991 - val_loss: 0.0672 - val_accuracy: 0.9919
Epoch 66/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0021 - accuracy: 0.9991 - val_loss: 0.0704 - val_accuracy: 0.9919
Epoch 67/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0023 - accuracy: 0.9991 - val_loss: 0.0510 - val_accuracy: 0.9921
Epoch 68/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0017 - accuracy: 0.9993 - val_loss: 0.0788 - val_accuracy: 0.9918
Epoch 69/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0019 - accuracy: 0.9992 - val_loss: 0.0563 - val_accuracy: 0.9921
Epoch 70/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0017 - accuracy: 0.9993 - val_loss: 0.0687 - val_accuracy: 0.9923
Epoch 71/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0019 - accuracy: 0.9992 - val_loss: 0.0530 - val_accuracy: 0.9921
Epoch 72/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0017 - accuracy: 0.9993 - val_loss: 0.0545 - val_accuracy: 0.9921
Epoch 73/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0017 - accuracy: 0.9993 - val_loss: 0.0623 - val_accuracy: 0.9912
Epoch 74/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0017 - accuracy: 0.9993 - val_loss: 0.0633 - val_accuracy: 0.9922
Epoch 75/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0015 - accuracy: 0.9994 - val_loss: 0.0539 - val_accuracy: 0.9919
Epoch 76/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0016 - accuracy: 0.9994 - val_loss: 0.0644 - val_accuracy: 0.9922
Epoch 77/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0015 - accuracy: 0.9994 - val_loss: 0.0682 - val_accuracy: 0.9911
Epoch 78/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0017 - accuracy: 0.9994 - val_loss: 0.0599 - val_accuracy: 0.9920
Epoch 79/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0014 - accuracy: 0.9995 - val_loss: 0.0688 - val_accuracy: 0.9920
Epoch 80/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0014 - accuracy: 0.9995 - val_loss: 0.0666 - val_accuracy: 0.9918
Epoch 81/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0013 - accuracy: 0.9995 - val_loss: 0.0717 - val_accuracy: 0.9919
Epoch 82/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0013 - accuracy: 0.9995 - val_loss: 0.0657 - val_accuracy: 0.9919
Epoch 83/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0013 - accuracy: 0.9995 - val_loss: 0.0644 - val_accuracy: 0.9926
Epoch 84/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0012 - accuracy: 0.9995 - val_loss: 0.0669 - val_accuracy: 0.9923
Epoch 85/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0012 - accuracy: 0.9995 - val_loss: 0.0674 - val_accuracy: 0.9918
Epoch 86/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0012 - accuracy: 0.9995 - val_loss: 0.0548 - val_accuracy: 0.9921
Epoch 87/100
32/32 [==============================] - 21s 656ms/step - loss: 9.9234e-04 - accuracy: 0.9996 - val_loss: 0.0708 - val_accuracy: 0.9919
Epoch 88/100
32/32 [==============================] - 21s 656ms/step - loss: 9.9478e-04 - accuracy: 0.9996 - val_loss: 0.0810 - val_accuracy: 0.9918
Epoch 89/100
32/32 [==============================] - 21s 656ms/step - loss: 0.0010 - accuracy: 0.9996 - val_loss: 0.0798 - val_accuracy: 0.9922
Epoch 90/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0016 - accuracy: 0.9995 - val_loss: 0.0602 - val_accuracy: 0.9916
Epoch 91/100
32/32 [==============================] - 21s 656ms/step - loss: 6.5260e-04 - accuracy: 0.9998 - val_loss: 0.0677 - val_accuracy: 0.9922
Epoch 92/100
32/32 [==============================] - 21s 657ms/step - loss: 7.2608e-04 - accuracy: 0.9997 - val_loss: 0.0695 - val_accuracy: 0.9919
Epoch 93/100
32/32 [==============================] - 21s 656ms/step - loss: 9.5700e-04 - accuracy: 0.9996 - val_loss: 0.0624 - val_accuracy: 0.9919
Epoch 94/100
32/32 [==============================] - 21s 656ms/step - loss: 9.3425e-04 - accuracy: 0.9997 - val_loss: 0.0735 - val_accuracy: 0.9920
Epoch 95/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0011 - accuracy: 0.9996 - val_loss: 0.0589 - val_accuracy: 0.9919
Epoch 96/100
32/32 [==============================] - 21s 657ms/step - loss: 7.5235e-04 - accuracy: 0.9997 - val_loss: 0.0711 - val_accuracy: 0.9920
Epoch 97/100
32/32 [==============================] - 21s 657ms/step - loss: 7.0484e-04 - accuracy: 0.9997 - val_loss: 0.0701 - val_accuracy: 0.9920
Epoch 98/100
32/32 [==============================] - 21s 656ms/step - loss: 8.2732e-04 - accuracy: 0.9997 - val_loss: 0.0761 - val_accuracy: 0.9919
Epoch 99/100
32/32 [==============================] - 21s 657ms/step - loss: 0.0011 - accuracy: 0.9996 - val_loss: 0.0624 - val_accuracy: 0.9922
Epoch 100/100
32/32 [==============================] - 21s 656ms/step - loss: 6.2872e-04 - accuracy: 0.9998 - val_loss: 0.0829 - val_accuracy: 0.9923

%pylab inline
figsize(10, 5)

subplot(1, 2, 1)
plot(history.history['accuracy'], label='accuracy')
plot(history.history['val_accuracy'], label='validation accuracy')
legend()

subplot(1, 2, 2)
plot(history.history['loss'], label='loss')
plot(history.history['val_loss'], label='validation loss')

legend()
show()
Populating the interactive namespace from numpy and matplotlib

model.save('unet_nucleus_100_epochs.h5')
1
2
3
img = tf.reshape(x_train[num_obs], (-1, 224, 224))
p = model.predict(img)
p.shape
(1, 224, 224, 1)

Prédiction

%pylab inline
num_obs=13

img = tf.reshape(x_test[num_obs], (-1, 224, 224))
p = model.predict(img)
p.shape

figsize(20, 5)

subplot(1, 3, 1)
imshow(img[0, :, :,])
xlabel('Input')

subplot(1, 3, 2)
imshow(p[0, :, :, 0])
xlabel('Prédiction')

subplot(1, 3, 3)
imshow(y_test[num_obs][:, :, 0])
xlabel('Vérité')

#m = tf.keras.metrics.MeanIoU(num_classes=2)
#m(y_train[num_obs][:, :], p[0, :, :]).numpy()
Populating the interactive namespace from numpy and matplotlib

Text(0.5, 0, 'Vérité')

MeanIoU via custom training loop

epochs = 150
loss_fn = tf.keras.losses.BinaryCrossentropy()
metric_fn = tf.keras.metrics.MeanIoU(num_classes=2)
optimizer = tf.keras.optimizers.RMSprop(lr=1e-3)

@tf.function
def train_step(x, y):
  with tf.GradientTape() as tape:
    #prédiction sur le minibatch
    y_pred = model(x, training=True)
    #calcul de la fonction de perte moyenne sur le minibatch
    loss_value = loss_fn(y, y_pred)

  # calcul des gradients et retropropagation
  grads = tape.gradient(loss_value, model.trainable_weights)
  optimizer.apply_gradients(zip(grads, model.trainable_weights))

  # mise à jour des métriques
  metric_fn.update_state(y, y_pred)

  return loss_value

@tf.function
def test_step(x, y):
  y_pred = model(x, training=False)
  loss_value = loss_fn(y, y_pred)
  metric_fn.update_state(y, y_pred)

  return loss_value

for epoch in range(epochs):
  losses = 0 
  step_counter = 0
  print(f"\nDébut de l'époque {epoch+1},")
  start_time = time.time()

  # itération sur les minibatchs du dataset
  for step, (x_batch_train, y_batch_train) in enumerate(ds):
    loss_value = train_step(x_batch_train, y_batch_train)
    losses += loss_value
    step_counter += 1

    # Log tous les 10 batches
    if step % 10 == 0:
      print(f"Loss sur le batch à l'étape {step} : {float(loss_value):.4f}")

  # Affichage des métriques à la fin de l'époque
  metric = metric_fn.result()
  print()
  print(f"Loss : {losses/step_counter:.4f}")
  print(f"Métrique pour l'époque : {float(metric):.4f} \n")

  # Reset de la métrique à la fin de chaque époque
  metric_fn.reset_states()

  # validation loop à la fin de chaque époque
  for x_batch_val, y_batch_val in ds_val:
    val_loss = test_step(x_batch_val, y_batch_val)

  val_metric = metric_fn.result()
  metric_fn.reset_states()
  print()
  print(f"Loss de validation : {float(val_loss):.4f}")
  print(f"Métrique de validation : {float(val_metric):.4f}")
  print(f"Durée de l'époque: {time.time() - start_time:.2fs}")

Début de l'époque 1,
Loss sur le batch à l'étape 0 : 7.0191
Loss sur le batch à l'étape 10 : 0.0430
Loss sur le batch à l'étape 20 : 0.0293
Loss sur le batch à l'étape 30 : 0.0351

Loss pour l'époque 1: 0.2819
Métrique pour l'époque : 0.4788 

Métrique de validation : 0.4605
Time taken: 49.55s

Début de l'époque 2,
Loss sur le batch à l'étape 0 : 0.0332
Loss sur le batch à l'étape 10 : 0.0199
Loss sur le batch à l'étape 20 : 0.0218
Loss sur le batch à l'étape 30 : 0.0270

Loss pour l'époque 2: 0.0278
Métrique pour l'époque : 0.4580 

Métrique de validation : 0.4872
Time taken: 45.75s

Début de l'époque 3,
Loss sur le batch à l'étape 0 : 0.0195
Loss sur le batch à l'étape 10 : 0.0333
Loss sur le batch à l'étape 20 : 0.0358
Loss sur le batch à l'étape 30 : 0.0282

Loss pour l'époque 3: 0.0322
Métrique pour l'époque : 0.4840 

Métrique de validation : 0.4672
Time taken: 46.34s

Début de l'époque 4,
Loss sur le batch à l'étape 0 : 0.0168
Loss sur le batch à l'étape 10 : 0.0549
Loss sur le batch à l'étape 20 : 0.0284
Loss sur le batch à l'étape 30 : 0.0287

Loss pour l'époque 4: 0.0752
Métrique pour l'époque : 0.4583 

Métrique de validation : 0.4425
Time taken: 46.12s

Début de l'époque 5,
Loss sur le batch à l'étape 0 : 0.0306
Loss sur le batch à l'étape 10 : 0.0268
Loss sur le batch à l'étape 20 : 0.0496
Loss sur le batch à l'étape 30 : 0.0215

Loss pour l'époque 5: 0.0255
Métrique pour l'époque : 0.4507 

Métrique de validation : 0.5737
Time taken: 46.49s

Début de l'époque 6,
Loss sur le batch à l'étape 0 : 0.0251
Loss sur le batch à l'étape 10 : 0.0420
Loss sur le batch à l'étape 20 : 0.0290
Loss sur le batch à l'étape 30 : 0.0344

Loss pour l'époque 6: 0.0254
Métrique pour l'époque : 0.4841 

Métrique de validation : 0.5058
Time taken: 46.35s

Début de l'époque 7,
Loss sur le batch à l'étape 0 : 0.0252
Loss sur le batch à l'étape 10 : 0.0295
Loss sur le batch à l'étape 20 : 0.0303
Loss sur le batch à l'étape 30 : 0.0275

Loss pour l'époque 7: 0.0242
Métrique pour l'époque : 0.5879 

Métrique de validation : 0.6794
Time taken: 46.24s

Début de l'époque 8,
Loss sur le batch à l'étape 0 : 0.0113
Loss sur le batch à l'étape 10 : 0.0311
Loss sur le batch à l'étape 20 : 0.0460
Loss sur le batch à l'étape 30 : 0.0238

Loss pour l'époque 8: 0.0229
Métrique pour l'époque : 0.7405 

Métrique de validation : 0.8725
Time taken: 46.17s

Début de l'époque 9,
Loss sur le batch à l'étape 0 : 0.0195
Loss sur le batch à l'étape 10 : 0.0247
Loss sur le batch à l'étape 20 : 0.0280
Loss sur le batch à l'étape 30 : 0.0113

Loss pour l'époque 9: 0.0199
Métrique pour l'époque : 0.7708 

Métrique de validation : 0.8318
Time taken: 46.25s

Début de l'époque 10,
Loss sur le batch à l'étape 0 : 0.0144
Loss sur le batch à l'étape 10 : 0.0157
Loss sur le batch à l'étape 20 : 0.0269
Loss sur le batch à l'étape 30 : 0.0144

Loss pour l'époque 10: 0.0205
Métrique pour l'époque : 0.7492 

Métrique de validation : 0.7882
Time taken: 46.27s

Début de l'époque 11,
Loss sur le batch à l'étape 0 : 0.0164
Loss sur le batch à l'étape 10 : 0.0134
Loss sur le batch à l'étape 20 : 0.0131
Loss sur le batch à l'étape 30 : 0.0233

Loss pour l'époque 11: 0.0169
Métrique pour l'époque : 0.7501 

Métrique de validation : 0.8674
Time taken: 46.36s

Début de l'époque 12,
Loss sur le batch à l'étape 0 : 0.0080
Loss sur le batch à l'étape 10 : 0.0179
Loss sur le batch à l'étape 20 : 0.0129
Loss sur le batch à l'étape 30 : 0.0139

Loss pour l'époque 12: 0.0182
Métrique pour l'époque : 0.7268 

Métrique de validation : 0.8340
Time taken: 46.35s

Début de l'époque 13,
Loss sur le batch à l'étape 0 : 0.0110
Loss sur le batch à l'étape 10 : 0.0120
Loss sur le batch à l'étape 20 : 0.0267
Loss sur le batch à l'étape 30 : 0.0101

Loss pour l'époque 13: 0.0155
Métrique pour l'époque : 0.8617 

Métrique de validation : 0.9058
Time taken: 46.30s

Début de l'époque 14,
Loss sur le batch à l'étape 0 : 0.0114
Loss sur le batch à l'étape 10 : 0.0208
Loss sur le batch à l'étape 20 : 0.0159
Loss sur le batch à l'étape 30 : 0.0183

Loss pour l'époque 14: 0.0140
Métrique pour l'époque : 0.8874 

Métrique de validation : 0.9075
Time taken: 46.27s

Début de l'époque 15,
Loss sur le batch à l'étape 0 : 0.0148
Loss sur le batch à l'étape 10 : 0.0111
Loss sur le batch à l'étape 20 : 0.0096
Loss sur le batch à l'étape 30 : 0.0134

Loss pour l'époque 15: 0.0134
Métrique pour l'époque : 0.8942 

Métrique de validation : 0.9439
Time taken: 46.31s

Début de l'époque 16,
Loss sur le batch à l'étape 0 : 0.0108
Loss sur le batch à l'étape 10 : 0.0123
Loss sur le batch à l'étape 20 : 0.0134
Loss sur le batch à l'étape 30 : 0.0144

Loss pour l'époque 16: 0.0146
Métrique pour l'époque : 0.9080 

Métrique de validation : 0.9345
Time taken: 46.33s

Début de l'époque 17,
Loss sur le batch à l'étape 0 : 0.0118
Loss sur le batch à l'étape 10 : 0.0082
Loss sur le batch à l'étape 20 : 0.0094
Loss sur le batch à l'étape 30 : 0.0092

Loss pour l'époque 17: 0.0113
Métrique pour l'époque : 0.9381 

Métrique de validation : 0.9214
Time taken: 46.26s

Début de l'époque 18,
Loss sur le batch à l'étape 0 : 0.0099
Loss sur le batch à l'étape 10 : 0.0108
Loss sur le batch à l'étape 20 : 0.0101
Loss sur le batch à l'étape 30 : 0.0112

Loss pour l'époque 18: 0.0122
Métrique pour l'époque : 0.9276 

Métrique de validation : 0.9503
Time taken: 46.31s

Début de l'époque 19,
Loss sur le batch à l'étape 0 : 0.0551
Loss sur le batch à l'étape 10 : 0.0076
Loss sur le batch à l'étape 20 : 0.0116
Loss sur le batch à l'étape 30 : 0.0081

Loss pour l'époque 19: 0.0142
Métrique pour l'époque : 0.9052 

Métrique de validation : 0.9200
Time taken: 46.12s

Début de l'époque 20,
Loss sur le batch à l'étape 0 : 0.0109
Loss sur le batch à l'étape 10 : 0.0100
Loss sur le batch à l'étape 20 : 0.0078
Loss sur le batch à l'étape 30 : 0.0090

Loss pour l'époque 20: 0.0100
Métrique pour l'époque : 0.9258 

Métrique de validation : 0.9278
Time taken: 46.28s

Début de l'époque 21,
Loss sur le batch à l'étape 0 : 0.0109
Loss sur le batch à l'étape 10 : 0.0076
Loss sur le batch à l'étape 20 : 0.0099
Loss sur le batch à l'étape 30 : 0.0103

Loss pour l'époque 21: 0.0100
Métrique pour l'époque : 0.9288 

Métrique de validation : 0.9279
Time taken: 46.35s

Début de l'époque 22,
Loss sur le batch à l'étape 0 : 0.0146
Loss sur le batch à l'étape 10 : 0.0189
Loss sur le batch à l'étape 20 : 0.0060
Loss sur le batch à l'étape 30 : 0.0136

Loss pour l'époque 22: 0.0106
Métrique pour l'époque : 0.9230 

Métrique de validation : 0.9297
Time taken: 46.09s

Début de l'époque 23,
Loss sur le batch à l'étape 0 : 0.0115
Loss sur le batch à l'étape 10 : 0.0110
Loss sur le batch à l'étape 20 : 0.0085
Loss sur le batch à l'étape 30 : 0.0081

Loss pour l'époque 23: 0.0095
Métrique pour l'époque : 0.9433 

Métrique de validation : 0.9500
Time taken: 46.11s

Début de l'époque 24,
Loss sur le batch à l'étape 0 : 0.0082
Loss sur le batch à l'étape 10 : 0.0086
Loss sur le batch à l'étape 20 : 0.0084
Loss sur le batch à l'étape 30 : 0.0090

Loss pour l'époque 24: 0.0088
Métrique pour l'époque : 0.9513 

Métrique de validation : 0.9456
Time taken: 46.20s

Début de l'époque 25,
Loss sur le batch à l'étape 0 : 0.0111
Loss sur le batch à l'étape 10 : 0.0098
Loss sur le batch à l'étape 20 : 0.0117
Loss sur le batch à l'étape 30 : 0.0075

Loss pour l'époque 25: 0.0089
Métrique pour l'époque : 0.9488 

Métrique de validation : 0.9462
Time taken: 46.05s

Début de l'époque 26,
Loss sur le batch à l'étape 0 : 0.0065
Loss sur le batch à l'étape 10 : 0.0066
Loss sur le batch à l'étape 20 : 0.0100
Loss sur le batch à l'étape 30 : 0.0086

Loss pour l'époque 26: 0.0087
Métrique pour l'époque : 0.9487 

Métrique de validation : 0.9410
Time taken: 46.07s

Début de l'époque 27,
Loss sur le batch à l'étape 0 : 0.0063
Loss sur le batch à l'étape 10 : 0.0049
Loss sur le batch à l'étape 20 : 0.0091
Loss sur le batch à l'étape 30 : 0.0073

Loss pour l'époque 27: 0.0082
Métrique pour l'époque : 0.9476 

Métrique de validation : 0.9424
Time taken: 46.03s

Début de l'époque 28,
Loss sur le batch à l'étape 0 : 0.0084
Loss sur le batch à l'étape 10 : 0.0080
Loss sur le batch à l'étape 20 : 0.0067
Loss sur le batch à l'étape 30 : 0.0048

Loss pour l'époque 28: 0.0178
Métrique pour l'époque : 0.9385 

Métrique de validation : 0.9521
Time taken: 46.18s

Début de l'époque 29,
Loss sur le batch à l'étape 0 : 0.0051
Loss sur le batch à l'étape 10 : 0.0046
Loss sur le batch à l'étape 20 : 0.0053
Loss sur le batch à l'étape 30 : 0.0079

Loss pour l'époque 29: 0.0069
Métrique pour l'époque : 0.9534 

Métrique de validation : 0.9517
Time taken: 46.28s

Début de l'époque 30,
Loss sur le batch à l'étape 0 : 0.0120
Loss sur le batch à l'étape 10 : 0.0068
Loss sur le batch à l'étape 20 : 0.0096
Loss sur le batch à l'étape 30 : 0.0064

Loss pour l'époque 30: 0.0076
Métrique pour l'époque : 0.9505 

Métrique de validation : 0.9457
Time taken: 46.32s

Début de l'époque 31,
Loss sur le batch à l'étape 0 : 0.0097
Loss sur le batch à l'étape 10 : 0.0077
Loss sur le batch à l'étape 20 : 0.0060
Loss sur le batch à l'étape 30 : 0.0087

Loss pour l'époque 31: 0.0076
Métrique pour l'époque : 0.9501 

Métrique de validation : 0.9449
Time taken: 46.26s

Début de l'époque 32,
Loss sur le batch à l'étape 0 : 0.0071
Loss sur le batch à l'étape 10 : 0.0069
Loss sur le batch à l'étape 20 : 0.0075
Loss sur le batch à l'étape 30 : 0.0084

Loss pour l'époque 32: 0.0068
Métrique pour l'époque : 0.9477 

Métrique de validation : 0.9411
Time taken: 46.26s

Début de l'époque 33,
Loss sur le batch à l'étape 0 : 0.0107
Loss sur le batch à l'étape 10 : 0.0045
Loss sur le batch à l'étape 20 : 0.0061
Loss sur le batch à l'étape 30 : 0.0044

Loss pour l'époque 33: 0.0072
Métrique pour l'époque : 0.9497 

Métrique de validation : 0.9480
Time taken: 46.14s

Début de l'époque 34,
Loss sur le batch à l'étape 0 : 0.0054
Loss sur le batch à l'étape 10 : 0.0072
Loss sur le batch à l'étape 20 : 0.0052
Loss sur le batch à l'étape 30 : 0.0098

Loss pour l'époque 34: 0.0068
Métrique pour l'époque : 0.9507 

Métrique de validation : 0.9493
Time taken: 46.19s

Début de l'époque 35,
Loss sur le batch à l'étape 0 : 0.0087
Loss sur le batch à l'étape 10 : 0.0042
Loss sur le batch à l'étape 20 : 0.0072
Loss sur le batch à l'étape 30 : 0.0058

Loss pour l'époque 35: 0.0068
Métrique pour l'époque : 0.9478 

Métrique de validation : 0.9457
Time taken: 46.29s

Début de l'époque 36,
Loss sur le batch à l'étape 0 : 0.0068
Loss sur le batch à l'étape 10 : 0.0039
Loss sur le batch à l'étape 20 : 0.0056
Loss sur le batch à l'étape 30 : 0.0054

Loss pour l'époque 36: 0.0063
Métrique pour l'époque : 0.9500 

Métrique de validation : 0.9484
Time taken: 46.22s

Début de l'époque 37,
Loss sur le batch à l'étape 0 : 0.0064
Loss sur le batch à l'étape 10 : 0.0056
Loss sur le batch à l'étape 20 : 0.0068
Loss sur le batch à l'étape 30 : 0.0086

Loss pour l'époque 37: 0.0061
Métrique pour l'époque : 0.9526 

Métrique de validation : 0.9474
Time taken: 46.13s

Début de l'époque 38,
Loss sur le batch à l'étape 0 : 0.0071
Loss sur le batch à l'étape 10 : 0.0067
Loss sur le batch à l'étape 20 : 0.0065
Loss sur le batch à l'étape 30 : 0.0070

Loss pour l'époque 38: 0.0062
Métrique pour l'époque : 0.9523 

Métrique de validation : 0.9510
Time taken: 46.09s

Début de l'époque 39,
Loss sur le batch à l'étape 0 : 0.0063
Loss sur le batch à l'étape 10 : 0.0058
Loss sur le batch à l'étape 20 : 0.0053
Loss sur le batch à l'étape 30 : 0.0085

Loss pour l'époque 39: 0.0068
Métrique pour l'époque : 0.9374 

Métrique de validation : 0.9503
Time taken: 46.27s

Début de l'époque 40,
Loss sur le batch à l'étape 0 : 0.0065
Loss sur le batch à l'étape 10 : 0.0045
Loss sur le batch à l'étape 20 : 0.0042
Loss sur le batch à l'étape 30 : 0.0060

Loss pour l'époque 40: 0.0054
Métrique pour l'époque : 0.9499 

Métrique de validation : 0.9488
Time taken: 46.15s

Début de l'époque 41,
Loss sur le batch à l'étape 0 : 0.0056
Loss sur le batch à l'étape 10 : 0.0053
Loss sur le batch à l'étape 20 : 0.0056
Loss sur le batch à l'étape 30 : 0.0034

Loss pour l'époque 41: 0.0076
Métrique pour l'époque : 0.8844 

Métrique de validation : 0.8885
Time taken: 46.26s

Début de l'époque 42,
Loss sur le batch à l'étape 0 : 0.0048
Loss sur le batch à l'étape 10 : 0.0058
Loss sur le batch à l'étape 20 : 0.0045
Loss sur le batch à l'étape 30 : 0.0125

Loss pour l'époque 42: 0.0054
Métrique pour l'époque : 0.9294 

Métrique de validation : 0.9410
Time taken: 46.10s

Début de l'époque 43,
Loss sur le batch à l'étape 0 : 0.0059
Loss sur le batch à l'étape 10 : 0.0036
Loss sur le batch à l'étape 20 : 0.0071
Loss sur le batch à l'étape 30 : 0.0052

Loss pour l'époque 43: 0.0051
Métrique pour l'époque : 0.9509 

Métrique de validation : 0.9512
Time taken: 46.03s

Début de l'époque 44,
Loss sur le batch à l'étape 0 : 0.0055
Loss sur le batch à l'étape 10 : 0.0036
Loss sur le batch à l'étape 20 : 0.0055
Loss sur le batch à l'étape 30 : 0.0076

Loss pour l'époque 44: 0.0055
Métrique pour l'époque : 0.9509 

Métrique de validation : 0.9496
Time taken: 45.97s

Début de l'époque 45,
Loss sur le batch à l'étape 0 : 0.0067
Loss sur le batch à l'étape 10 : 0.0040
Loss sur le batch à l'étape 20 : 0.0029
Loss sur le batch à l'étape 30 : 0.0050

Loss pour l'époque 45: 0.0054
Métrique pour l'époque : 0.9517 

Métrique de validation : 0.9495
Time taken: 46.00s

Début de l'époque 46,
Loss sur le batch à l'étape 0 : 0.0042
Loss sur le batch à l'étape 10 : 0.0061
Loss sur le batch à l'étape 20 : 0.0057
Loss sur le batch à l'étape 30 : 0.0058

Loss pour l'époque 46: 0.0051
Métrique pour l'époque : 0.9527 

Métrique de validation : 0.9487
Time taken: 46.01s

Début de l'époque 47,
Loss sur le batch à l'étape 0 : 0.0048
Loss sur le batch à l'étape 10 : 0.0053
Loss sur le batch à l'étape 20 : 0.0036
Loss sur le batch à l'étape 30 : 0.0061

Loss pour l'époque 47: 0.0053
Métrique pour l'époque : 0.9519 

Métrique de validation : 0.9515
Time taken: 46.13s

Début de l'époque 48,
Loss sur le batch à l'étape 0 : 0.0035
Loss sur le batch à l'étape 10 : 0.0063
Loss sur le batch à l'étape 20 : 0.0040
Loss sur le batch à l'étape 30 : 0.0046

Loss pour l'époque 48: 0.0047
Métrique pour l'époque : 0.9540 

Métrique de validation : 0.9524
Time taken: 46.17s

Début de l'époque 49,
Loss sur le batch à l'étape 0 : 0.0048
Loss sur le batch à l'étape 10 : 0.0065
Loss sur le batch à l'étape 20 : 0.0053
Loss sur le batch à l'étape 30 : 0.0052

Loss pour l'époque 49: 0.0050
Métrique pour l'époque : 0.9473 

Métrique de validation : 0.9491
Time taken: 46.10s

Début de l'époque 50,
Loss sur le batch à l'étape 0 : 0.0045
Loss sur le batch à l'étape 10 : 0.0036
Loss sur le batch à l'étape 20 : 0.0042
Loss sur le batch à l'étape 30 : 0.0027

Loss pour l'époque 50: 0.0049
Métrique pour l'époque : 0.9534 

Métrique de validation : 0.9522
Time taken: 46.11s

Début de l'époque 51,
Loss sur le batch à l'étape 0 : 0.0043
Loss sur le batch à l'étape 10 : 0.0042
Loss sur le batch à l'étape 20 : 0.0036
Loss sur le batch à l'étape 30 : 0.0081

Loss pour l'époque 51: 0.0048
Métrique pour l'époque : 0.9526 

Métrique de validation : 0.9485
Time taken: 46.11s

Début de l'époque 52,
Loss sur le batch à l'étape 0 : 0.0053
Loss sur le batch à l'étape 10 : 0.0042
Loss sur le batch à l'étape 20 : 0.0035
Loss sur le batch à l'étape 30 : 0.0050

Loss pour l'époque 52: 0.0045
Métrique pour l'époque : 0.9511 

Métrique de validation : 0.9524
Time taken: 46.06s

Début de l'époque 53,
Loss sur le batch à l'étape 0 : 0.0067
Loss sur le batch à l'étape 10 : 0.0040
Loss sur le batch à l'étape 20 : 0.0047
Loss sur le batch à l'étape 30 : 0.0039

Loss pour l'époque 53: 0.0045
Métrique pour l'époque : 0.9523 

Métrique de validation : 0.9413
Time taken: 46.11s

Début de l'époque 54,
Loss sur le batch à l'étape 0 : 0.0046
Loss sur le batch à l'étape 10 : 0.0050
Loss sur le batch à l'étape 20 : 0.0107
Loss sur le batch à l'étape 30 : 0.0040

Loss pour l'époque 54: 0.0047
Métrique pour l'époque : 0.9511 

Métrique de validation : 0.9506
Time taken: 46.12s

Début de l'époque 55,
Loss sur le batch à l'étape 0 : 0.0039
Loss sur le batch à l'étape 10 : 0.0032
Loss sur le batch à l'étape 20 : 0.0039
Loss sur le batch à l'étape 30 : 0.0033

Loss pour l'époque 55: 0.0042
Métrique pour l'époque : 0.9539 

Métrique de validation : 0.9516
Time taken: 46.05s

Début de l'époque 56,
Loss sur le batch à l'étape 0 : 0.0045
Loss sur le batch à l'étape 10 : 0.0035
Loss sur le batch à l'étape 20 : 0.0036
Loss sur le batch à l'étape 30 : 0.0043

Loss pour l'époque 56: 0.0042
Métrique pour l'époque : 0.9537 

Métrique de validation : 0.9508
Time taken: 46.07s

Début de l'époque 57,
Loss sur le batch à l'étape 0 : 0.0047
Loss sur le batch à l'étape 10 : 0.0034
Loss sur le batch à l'étape 20 : 0.0038
Loss sur le batch à l'étape 30 : 0.0033

Loss pour l'époque 57: 0.0040
Métrique pour l'époque : 0.9537 

Métrique de validation : 0.9504
Time taken: 46.09s

Début de l'époque 58,
Loss sur le batch à l'étape 0 : 0.0034
Loss sur le batch à l'étape 10 : 0.0046
Loss sur le batch à l'étape 20 : 0.0065
Loss sur le batch à l'étape 30 : 0.0038

Loss pour l'époque 58: 0.0040
Métrique pour l'époque : 0.9513 

Métrique de validation : 0.9523
Time taken: 46.11s

Début de l'époque 59,
Loss sur le batch à l'étape 0 : 0.0046
Loss sur le batch à l'étape 10 : 0.0042
Loss sur le batch à l'étape 20 : 0.0048
Loss sur le batch à l'étape 30 : 0.0037

Loss pour l'époque 59: 0.0039
Métrique pour l'époque : 0.9529 

Métrique de validation : 0.9524
Time taken: 46.07s

Début de l'époque 60,
Loss sur le batch à l'étape 0 : 0.0048
Loss sur le batch à l'étape 10 : 0.0036
Loss sur le batch à l'étape 20 : 0.0046
Loss sur le batch à l'étape 30 : 0.0028

Loss pour l'époque 60: 0.0037
Métrique pour l'époque : 0.9549 

Métrique de validation : 0.9544
Time taken: 46.07s

Début de l'époque 61,
Loss sur le batch à l'étape 0 : 0.0045
Loss sur le batch à l'étape 10 : 0.0058
Loss sur le batch à l'étape 20 : 0.0052
Loss sur le batch à l'étape 30 : 0.0033

Loss pour l'époque 61: 0.0039
Métrique pour l'époque : 0.9547 

Métrique de validation : 0.9514
Time taken: 46.18s

Début de l'époque 62,
Loss sur le batch à l'étape 0 : 0.0027
Loss sur le batch à l'étape 10 : 0.0031
Loss sur le batch à l'étape 20 : 0.0039
Loss sur le batch à l'étape 30 : 0.0039

Loss pour l'époque 62: 0.0043
Métrique pour l'époque : 0.9541 

Métrique de validation : 0.9502
Time taken: 46.14s

Début de l'époque 63,
Loss sur le batch à l'étape 0 : 0.0041
Loss sur le batch à l'étape 10 : 0.0030
Loss sur le batch à l'étape 20 : 0.0041
Loss sur le batch à l'étape 30 : 0.0027

Loss pour l'époque 63: 0.0033
Métrique pour l'époque : 0.9554 

Métrique de validation : 0.9536
Time taken: 46.10s

Début de l'époque 64,
Loss sur le batch à l'étape 0 : 0.0051
Loss sur le batch à l'étape 10 : 0.0023
Loss sur le batch à l'étape 20 : 0.0039
Loss sur le batch à l'étape 30 : 0.0036

Loss pour l'époque 64: 0.0034
Métrique pour l'époque : 0.9563 

Métrique de validation : 0.9531
Time taken: 46.13s

Début de l'époque 65,
Loss sur le batch à l'étape 0 : 0.0028
Loss sur le batch à l'étape 10 : 0.0034
Loss sur le batch à l'étape 20 : 0.0039
Loss sur le batch à l'étape 30 : 0.0032

Loss pour l'époque 65: 0.0035
Métrique pour l'époque : 0.9557 

Métrique de validation : 0.9521
Time taken: 46.20s

Début de l'époque 66,
Loss sur le batch à l'étape 0 : 0.0042
Loss sur le batch à l'étape 10 : 0.0040
Loss sur le batch à l'étape 20 : 0.0029
Loss sur le batch à l'étape 30 : 0.0032

Loss pour l'époque 66: 0.0034
Métrique pour l'époque : 0.9547 

Métrique de validation : 0.9533
Time taken: 46.08s

Début de l'époque 67,
Loss sur le batch à l'étape 0 : 0.0034
Loss sur le batch à l'étape 10 : 0.0046
Loss sur le batch à l'étape 20 : 0.0028
Loss sur le batch à l'étape 30 : 0.0020

Loss pour l'époque 67: 0.0036
Métrique pour l'époque : 0.9544 

Métrique de validation : 0.9523
Time taken: 46.13s

Début de l'époque 68,
Loss sur le batch à l'étape 0 : 0.0022
Loss sur le batch à l'étape 10 : 0.0029
Loss sur le batch à l'étape 20 : 0.0028
Loss sur le batch à l'étape 30 : 0.0041

Loss pour l'époque 68: 0.0030
Métrique pour l'époque : 0.9548 

Métrique de validation : 0.9529
Time taken: 46.04s

Début de l'époque 69,
Loss sur le batch à l'étape 0 : 0.0035
Loss sur le batch à l'étape 10 : 0.0032
Loss sur le batch à l'étape 20 : 0.0032
Loss sur le batch à l'étape 30 : 0.0032

Loss pour l'époque 69: 0.0031
Métrique pour l'époque : 0.9551 

Métrique de validation : 0.9534
Time taken: 46.18s

Début de l'époque 70,
Loss sur le batch à l'étape 0 : 0.0022
Loss sur le batch à l'étape 10 : 0.0035
Loss sur le batch à l'étape 20 : 0.0031
Loss sur le batch à l'étape 30 : 0.0026

Loss pour l'époque 70: 0.0050
Métrique pour l'époque : 0.9235 

Métrique de validation : 0.9368
Time taken: 46.30s

Début de l'époque 71,
Loss sur le batch à l'étape 0 : 0.0020
Loss sur le batch à l'étape 10 : 0.0036
Loss sur le batch à l'étape 20 : 0.0028
Loss sur le batch à l'étape 30 : 0.0030

Loss pour l'époque 71: 0.0026
Métrique pour l'époque : 0.9457 

Métrique de validation : 0.9512
Time taken: 46.01s

Début de l'époque 72,
Loss sur le batch à l'étape 0 : 0.0030
Loss sur le batch à l'étape 10 : 0.0031
Loss sur le batch à l'étape 20 : 0.0022
Loss sur le batch à l'étape 30 : 0.0036

Loss pour l'époque 72: 0.0030
Métrique pour l'époque : 0.9542 

Métrique de validation : 0.9524
Time taken: 45.84s

Début de l'époque 73,
Loss sur le batch à l'étape 0 : 0.0037
Loss sur le batch à l'étape 10 : 0.0024
Loss sur le batch à l'étape 20 : 0.0039
Loss sur le batch à l'étape 30 : 0.0028

Loss pour l'époque 73: 0.0030
Métrique pour l'époque : 0.9553 

Métrique de validation : 0.9538
Time taken: 46.02s

Début de l'époque 74,
Loss sur le batch à l'étape 0 : 0.0026
Loss sur le batch à l'étape 10 : 0.0025
Loss sur le batch à l'étape 20 : 0.0017
Loss sur le batch à l'étape 30 : 0.0018

Loss pour l'époque 74: 0.0031
Métrique pour l'époque : 0.9552 

Métrique de validation : 0.9518
Time taken: 46.03s

Début de l'époque 75,
Loss sur le batch à l'étape 0 : 0.0022
Loss sur le batch à l'étape 10 : 0.0032
Loss sur le batch à l'étape 20 : 0.0033
Loss sur le batch à l'étape 30 : 0.0017

Loss pour l'époque 75: 0.0027
Métrique pour l'époque : 0.9549 

Métrique de validation : 0.9528
Time taken: 46.02s

Début de l'époque 76,
Loss sur le batch à l'étape 0 : 0.0032
Loss sur le batch à l'étape 10 : 0.0032
Loss sur le batch à l'étape 20 : 0.0022
Loss sur le batch à l'étape 30 : 0.0057

Loss pour l'époque 76: 0.0030
Métrique pour l'époque : 0.9559 

Métrique de validation : 0.9519
Time taken: 46.01s

Début de l'époque 77,
Loss sur le batch à l'étape 0 : 0.0028
Loss sur le batch à l'étape 10 : 0.0032
Loss sur le batch à l'étape 20 : 0.0022
Loss sur le batch à l'étape 30 : 0.0030

Loss pour l'époque 77: 0.0027
Métrique pour l'époque : 0.9549 

Métrique de validation : 0.9536
Time taken: 46.14s

Début de l'époque 78,
Loss sur le batch à l'étape 0 : 0.0026
Loss sur le batch à l'étape 10 : 0.0019
Loss sur le batch à l'étape 20 : 0.0023
Loss sur le batch à l'étape 30 : 0.0027

Loss pour l'époque 78: 0.0026
Métrique pour l'époque : 0.9566 

Métrique de validation : 0.9530
Time taken: 46.13s

Début de l'époque 79,
Loss sur le batch à l'étape 0 : 0.0016
Loss sur le batch à l'étape 10 : 0.0029
Loss sur le batch à l'étape 20 : 0.0023
Loss sur le batch à l'étape 30 : 0.0025

Loss pour l'époque 79: 0.0039
Métrique pour l'époque : 0.9526 

Métrique de validation : 0.9535
Time taken: 46.17s

Début de l'époque 80,
Loss sur le batch à l'étape 0 : 0.0026
Loss sur le batch à l'étape 10 : 0.0017
Loss sur le batch à l'étape 20 : 0.0017
Loss sur le batch à l'étape 30 : 0.0021

Loss pour l'époque 80: 0.0022
Métrique pour l'époque : 0.9591 

Métrique de validation : 0.9545
Time taken: 46.14s

Début de l'époque 81,
Loss sur le batch à l'étape 0 : 0.0024
Loss sur le batch à l'étape 10 : 0.0018
Loss sur le batch à l'étape 20 : 0.0023
Loss sur le batch à l'étape 30 : 0.0026

Loss pour l'époque 81: 0.0024
Métrique pour l'époque : 0.9581 

Métrique de validation : 0.9535
Time taken: 46.21s

Début de l'époque 82,
Loss sur le batch à l'étape 0 : 0.0040
Loss sur le batch à l'étape 10 : 0.0023
Loss sur le batch à l'étape 20 : 0.0027
Loss sur le batch à l'étape 30 : 0.0021

Loss pour l'époque 82: 0.0025
Métrique pour l'époque : 0.9576 

Métrique de validation : 0.9541
Time taken: 46.21s

Début de l'époque 83,
Loss sur le batch à l'étape 0 : 0.0026
Loss sur le batch à l'étape 10 : 0.0018
Loss sur le batch à l'étape 20 : 0.0026
Loss sur le batch à l'étape 30 : 0.0020

Loss pour l'époque 83: 0.0023
Métrique pour l'époque : 0.9574 

Métrique de validation : 0.9547
Time taken: 46.17s

Début de l'époque 84,
Loss sur le batch à l'étape 0 : 0.0021
Loss sur le batch à l'étape 10 : 0.0032
Loss sur le batch à l'étape 20 : 0.0018
Loss sur le batch à l'étape 30 : 0.0028

Loss pour l'époque 84: 0.0023
Métrique pour l'époque : 0.9581 

Métrique de validation : 0.9552
Time taken: 46.21s

Début de l'époque 85,
Loss sur le batch à l'étape 0 : 0.0021
Loss sur le batch à l'étape 10 : 0.0023
Loss sur le batch à l'étape 20 : 0.0022
Loss sur le batch à l'étape 30 : 0.0025

Loss pour l'époque 85: 0.0022
Métrique pour l'époque : 0.9586 

Métrique de validation : 0.9547
Time taken: 46.19s

Début de l'époque 86,
Loss sur le batch à l'étape 0 : 0.0019
Loss sur le batch à l'étape 10 : 0.0018
Loss sur le batch à l'étape 20 : 0.0020
Loss sur le batch à l'étape 30 : 0.0025

Loss pour l'époque 86: 0.0022
Métrique pour l'époque : 0.9587 

Métrique de validation : 0.9560
Time taken: 46.24s

Début de l'époque 87,
Loss sur le batch à l'étape 0 : 0.0014
Loss sur le batch à l'étape 10 : 0.0021
Loss sur le batch à l'étape 20 : 0.0028
Loss sur le batch à l'étape 30 : 0.0019

Loss pour l'époque 87: 0.0022
Métrique pour l'époque : 0.9586 

Métrique de validation : 0.9559
Time taken: 46.27s

Début de l'époque 88,
Loss sur le batch à l'étape 0 : 0.0027
Loss sur le batch à l'étape 10 : 0.0016
Loss sur le batch à l'étape 20 : 0.0016
Loss sur le batch à l'étape 30 : 0.0030

Loss pour l'époque 88: 0.0019
Métrique pour l'époque : 0.9599 

Métrique de validation : 0.9553
Time taken: 46.21s

Début de l'époque 89,
Loss sur le batch à l'étape 0 : 0.0031
Loss sur le batch à l'étape 10 : 0.0020
Loss sur le batch à l'étape 20 : 0.0018
Loss sur le batch à l'étape 30 : 0.0014

Loss pour l'époque 89: 0.0019
Métrique pour l'époque : 0.9592 

Métrique de validation : 0.9551
Time taken: 46.21s

Début de l'époque 90,
Loss sur le batch à l'étape 0 : 0.0026
Loss sur le batch à l'étape 10 : 0.0018
Loss sur le batch à l'étape 20 : 0.0018
Loss sur le batch à l'étape 30 : 0.0015

Loss pour l'époque 90: 0.0019
Métrique pour l'époque : 0.9599 

Métrique de validation : 0.9551
Time taken: 46.23s

Début de l'époque 91,
Loss sur le batch à l'étape 0 : 0.0022
Loss sur le batch à l'étape 10 : 0.0017
Loss sur le batch à l'étape 20 : 0.0021
Loss sur le batch à l'étape 30 : 0.0016

Loss pour l'époque 91: 0.0019
Métrique pour l'époque : 0.9584 

Métrique de validation : 0.9564
Time taken: 46.28s

Début de l'époque 92,
Loss sur le batch à l'étape 0 : 0.0018
Loss sur le batch à l'étape 10 : 0.0026
Loss sur le batch à l'étape 20 : 0.0011
Loss sur le batch à l'étape 30 : 0.0021

Loss pour l'époque 92: 0.0019
Métrique pour l'époque : 0.9587 

Métrique de validation : 0.9553
Time taken: 46.21s

Début de l'époque 93,
Loss sur le batch à l'étape 0 : 0.0018
Loss sur le batch à l'étape 10 : 0.0016
Loss sur le batch à l'étape 20 : 0.0010
Loss sur le batch à l'étape 30 : 0.0015

Loss pour l'époque 93: 0.0017
Métrique pour l'époque : 0.9593 

Métrique de validation : 0.9563
Time taken: 46.18s

Début de l'époque 94,
Loss sur le batch à l'étape 0 : 0.0017
Loss sur le batch à l'étape 10 : 0.0018
Loss sur le batch à l'étape 20 : 0.0013
Loss sur le batch à l'étape 30 : 0.0021

Loss pour l'époque 94: 0.0018
Métrique pour l'époque : 0.9591 

Métrique de validation : 0.9542
Time taken: 46.23s

Début de l'époque 95,
Loss sur le batch à l'étape 0 : 0.0016
Loss sur le batch à l'étape 10 : 0.0009
Loss sur le batch à l'étape 20 : 0.0024
Loss sur le batch à l'étape 30 : 0.0020

Loss pour l'époque 95: 0.0015
Métrique pour l'époque : 0.9602 

Métrique de validation : 0.9557
Time taken: 46.21s

Début de l'époque 96,
Loss sur le batch à l'étape 0 : 0.0016
Loss sur le batch à l'étape 10 : 0.0013
Loss sur le batch à l'étape 20 : 0.0014
Loss sur le batch à l'étape 30 : 0.0015

Loss pour l'époque 96: 0.0015
Métrique pour l'époque : 0.9610 

Métrique de validation : 0.9549
Time taken: 46.27s

Début de l'époque 97,
Loss sur le batch à l'étape 0 : 0.0028
Loss sur le batch à l'étape 10 : 0.0015
Loss sur le batch à l'étape 20 : 0.0013
Loss sur le batch à l'étape 30 : 0.0014

Loss pour l'époque 97: 0.0016
Métrique pour l'époque : 0.9594 

Métrique de validation : 0.9559
Time taken: 46.21s

Début de l'époque 98,
Loss sur le batch à l'étape 0 : 0.0011
Loss sur le batch à l'étape 10 : 0.0010
Loss sur le batch à l'étape 20 : 0.0024
Loss sur le batch à l'étape 30 : 0.0023

Loss pour l'époque 98: 0.0016
Métrique pour l'époque : 0.9603 

Métrique de validation : 0.9549
Time taken: 46.25s

Début de l'époque 99,
Loss sur le batch à l'étape 0 : 0.0016
Loss sur le batch à l'étape 10 : 0.0016
Loss sur le batch à l'étape 20 : 0.0019
Loss sur le batch à l'étape 30 : 0.0025

Loss pour l'époque 99: 0.0015
Métrique pour l'époque : 0.9592 

Métrique de validation : 0.9556
Time taken: 46.23s

Début de l'époque 100,
Loss sur le batch à l'étape 0 : 0.0009
Loss sur le batch à l'étape 10 : 0.0010
Loss sur le batch à l'étape 20 : 0.0015
Loss sur le batch à l'étape 30 : 0.0018

Loss pour l'époque 100: 0.0013
Métrique pour l'époque : 0.9610 

Métrique de validation : 0.9559
Time taken: 46.23s

Début de l'époque 101,
Loss sur le batch à l'étape 0 : 0.0021
Loss sur le batch à l'étape 10 : 0.0010
Loss sur le batch à l'étape 20 : 0.0017
Loss sur le batch à l'étape 30 : 0.0014

Loss pour l'époque 101: 0.0013
Métrique pour l'époque : 0.9609 

Métrique de validation : 0.9554
Time taken: 46.29s

Début de l'époque 102,
Loss sur le batch à l'étape 0 : 0.0016
Loss sur le batch à l'étape 10 : 0.0013
Loss sur le batch à l'étape 20 : 0.0012
Loss sur le batch à l'étape 30 : 0.0011

Loss pour l'époque 102: 0.0012
Métrique pour l'époque : 0.9615 

Métrique de validation : 0.9551
Time taken: 46.23s

Début de l'époque 103,
Loss sur le batch à l'étape 0 : 0.0014
Loss sur le batch à l'étape 10 : 0.0015
Loss sur le batch à l'étape 20 : 0.0019
Loss sur le batch à l'étape 30 : 0.0014

Loss pour l'époque 103: 0.0013
Métrique pour l'époque : 0.9605 

Métrique de validation : 0.9562
Time taken: 46.31s

Début de l'époque 104,
Loss sur le batch à l'étape 0 : 0.0012
Loss sur le batch à l'étape 10 : 0.0013
Loss sur le batch à l'étape 20 : 0.0010
Loss sur le batch à l'étape 30 : 0.0011

Loss pour l'époque 104: 0.0013
Métrique pour l'époque : 0.9609 

Métrique de validation : 0.9556
Time taken: 46.37s

Début de l'époque 105,
Loss sur le batch à l'étape 0 : 0.0011
Loss sur le batch à l'étape 10 : 0.0012
Loss sur le batch à l'étape 20 : 0.0010
Loss sur le batch à l'étape 30 : 0.0005

Loss pour l'époque 105: 0.0012
Métrique pour l'époque : 0.9613 

Métrique de validation : 0.9555
Time taken: 46.34s

Début de l'époque 106,
Loss sur le batch à l'étape 0 : 0.0020
Loss sur le batch à l'étape 10 : 0.0012
Loss sur le batch à l'étape 20 : 0.0015
Loss sur le batch à l'étape 30 : 0.0009

Loss pour l'époque 106: 0.0012
Métrique pour l'époque : 0.9616 

Métrique de validation : 0.9568
Time taken: 46.31s

Début de l'époque 107,
Loss sur le batch à l'étape 0 : 0.0010
Loss sur le batch à l'étape 10 : 0.0007
Loss sur le batch à l'étape 20 : 0.0013
Loss sur le batch à l'étape 30 : 0.0008

Loss pour l'époque 107: 0.0011
Métrique pour l'époque : 0.9611 

Métrique de validation : 0.9565
Time taken: 46.15s

Début de l'époque 108,
Loss sur le batch à l'étape 0 : 0.0007
Loss sur le batch à l'étape 10 : 0.0013
Loss sur le batch à l'étape 20 : 0.0009
Loss sur le batch à l'étape 30 : 0.0013

Loss pour l'époque 108: 0.0010
Métrique pour l'époque : 0.9623 

Métrique de validation : 0.9566
Time taken: 46.14s

Début de l'époque 109,
Loss sur le batch à l'étape 0 : 0.0007
Loss sur le batch à l'étape 10 : 0.0018
Loss sur le batch à l'étape 20 : 0.0017
Loss sur le batch à l'étape 30 : 0.0010

Loss pour l'époque 109: 0.0011
Métrique pour l'époque : 0.9616 

Métrique de validation : 0.9562
Time taken: 46.23s

Début de l'époque 110,
Loss sur le batch à l'étape 0 : 0.0007
Loss sur le batch à l'étape 10 : 0.0012
Loss sur le batch à l'étape 20 : 0.0010
Loss sur le batch à l'étape 30 : 0.0013

Loss pour l'époque 110: 0.0010
Métrique pour l'époque : 0.9624 

Métrique de validation : 0.9564
Time taken: 46.18s

Début de l'époque 111,
Loss sur le batch à l'étape 0 : 0.0006
Loss sur le batch à l'étape 10 : 0.0009
Loss sur le batch à l'étape 20 : 0.0013
Loss sur le batch à l'étape 30 : 0.0009

Loss pour l'époque 111: 0.0010
Métrique pour l'époque : 0.9619 

Métrique de validation : 0.9582
Time taken: 46.17s

Début de l'époque 112,
Loss sur le batch à l'étape 0 : 0.0005
Loss sur le batch à l'étape 10 : 0.0010
Loss sur le batch à l'étape 20 : 0.0006
Loss sur le batch à l'étape 30 : 0.0006

Loss pour l'époque 112: 0.0009
Métrique pour l'époque : 0.9623 

Métrique de validation : 0.9560
Time taken: 46.31s

Début de l'époque 113,
Loss sur le batch à l'étape 0 : 0.0007
Loss sur le batch à l'étape 10 : 0.0008
Loss sur le batch à l'étape 20 : 0.0007
Loss sur le batch à l'étape 30 : 0.0010

Loss pour l'époque 113: 0.0009
Métrique pour l'époque : 0.9630 

Métrique de validation : 0.9580
Time taken: 46.20s

Début de l'époque 114,
Loss sur le batch à l'étape 0 : 0.0008
Loss sur le batch à l'étape 10 : 0.0010
Loss sur le batch à l'étape 20 : 0.0010
Loss sur le batch à l'étape 30 : 0.0008

Loss pour l'époque 114: 0.0009
Métrique pour l'époque : 0.9634 

Métrique de validation : 0.9585
Time taken: 46.19s

Début de l'époque 115,
Loss sur le batch à l'étape 0 : 0.0014
Loss sur le batch à l'étape 10 : 0.0004
Loss sur le batch à l'étape 20 : 0.0011
Loss sur le batch à l'étape 30 : 0.0004

Loss pour l'époque 115: 0.0010
Métrique pour l'époque : 0.9632 

Métrique de validation : 0.9567
Time taken: 46.19s

Début de l'époque 116,
Loss sur le batch à l'étape 0 : 0.0007
Loss sur le batch à l'étape 10 : 0.0008
Loss sur le batch à l'étape 20 : 0.0013
Loss sur le batch à l'étape 30 : 0.0012

Loss pour l'époque 116: 0.0009
Métrique pour l'époque : 0.9633 

Métrique de validation : 0.9556
Time taken: 46.17s

Début de l'époque 117,
Loss sur le batch à l'étape 0 : 0.0008
Loss sur le batch à l'étape 10 : 0.0010
Loss sur le batch à l'étape 20 : 0.0006
Loss sur le batch à l'étape 30 : 0.0007

Loss pour l'époque 117: 0.0007
Métrique pour l'époque : 0.9646 

Métrique de validation : 0.9589
Time taken: 46.25s

Début de l'époque 118,
Loss sur le batch à l'étape 0 : 0.0005
Loss sur le batch à l'étape 10 : 0.0008
Loss sur le batch à l'étape 20 : 0.0008
Loss sur le batch à l'étape 30 : 0.0003

Loss pour l'époque 118: 0.0008
Métrique pour l'époque : 0.9639 

Métrique de validation : 0.9583
Time taken: 46.25s

Début de l'époque 119,
Loss sur le batch à l'étape 0 : 0.0004
Loss sur le batch à l'étape 10 : 0.0012
Loss sur le batch à l'étape 20 : 0.0009
Loss sur le batch à l'étape 30 : 0.0008

Loss pour l'époque 119: 0.0008
Métrique pour l'époque : 0.9649 

Métrique de validation : 0.9571
Time taken: 46.23s

Début de l'époque 120,
Loss sur le batch à l'étape 0 : 0.0004
Loss sur le batch à l'étape 10 : 0.0006
Loss sur le batch à l'étape 20 : 0.0010
Loss sur le batch à l'étape 30 : 0.0007

Loss pour l'époque 120: 0.0007
Métrique pour l'époque : 0.9648 

Métrique de validation : 0.9561
Time taken: 46.16s

Début de l'époque 121,
Loss sur le batch à l'étape 0 : 0.0014
Loss sur le batch à l'étape 10 : 0.0009
Loss sur le batch à l'étape 20 : 0.0006
Loss sur le batch à l'étape 30 : 0.0015

Loss pour l'époque 121: 0.0010
Métrique pour l'époque : 0.9620 

Métrique de validation : 0.9566
Time taken: 46.18s

Début de l'époque 122,
Loss sur le batch à l'étape 0 : 0.0009
Loss sur le batch à l'étape 10 : 0.0005
Loss sur le batch à l'étape 20 : 0.0004
Loss sur le batch à l'étape 30 : 0.0005

Loss pour l'époque 122: 0.0007
Métrique pour l'époque : 0.9660 

Métrique de validation : 0.9571
Time taken: 46.22s

Début de l'époque 123,
Loss sur le batch à l'étape 0 : 0.0005
Loss sur le batch à l'étape 10 : 0.0004
Loss sur le batch à l'étape 20 : 0.0005
Loss sur le batch à l'étape 30 : 0.0004

Loss pour l'époque 123: 0.0005
Métrique pour l'époque : 0.9680 

Métrique de validation : 0.9569
Time taken: 46.21s

Début de l'époque 124,
Loss sur le batch à l'étape 0 : 0.0009
Loss sur le batch à l'étape 10 : 0.0006
Loss sur le batch à l'étape 20 : 0.0009
Loss sur le batch à l'étape 30 : 0.0015

Loss pour l'époque 124: 0.0009
Métrique pour l'époque : 0.9661 

Métrique de validation : 0.9553
Time taken: 46.19s

Début de l'époque 125,
Loss sur le batch à l'étape 0 : 0.0015
Loss sur le batch à l'étape 10 : 0.0010
Loss sur le batch à l'étape 20 : 0.0009
Loss sur le batch à l'étape 30 : 0.0007

Loss pour l'époque 125: 0.0009
Métrique pour l'époque : 0.9630 

Métrique de validation : 0.9578
Time taken: 46.01s

Début de l'époque 126,
Loss sur le batch à l'étape 0 : 0.0003
Loss sur le batch à l'étape 10 : 0.0004
Loss sur le batch à l'étape 20 : 0.0006
Loss sur le batch à l'étape 30 : 0.0007

Loss pour l'époque 126: 0.0005
Métrique pour l'époque : 0.9692 

Métrique de validation : 0.9574
Time taken: 46.10s

Début de l'époque 127,
Loss sur le batch à l'étape 0 : 0.0008
Loss sur le batch à l'étape 10 : 0.0004
Loss sur le batch à l'étape 20 : 0.0009
Loss sur le batch à l'étape 30 : 0.0009

Loss pour l'époque 127: 0.0007
Métrique pour l'époque : 0.9662 

Métrique de validation : 0.9575
Time taken: 46.05s

Début de l'époque 128,
Loss sur le batch à l'étape 0 : 0.0007
Loss sur le batch à l'étape 10 : 0.0005
Loss sur le batch à l'étape 20 : 0.0013
Loss sur le batch à l'étape 30 : 0.0005

Loss pour l'époque 128: 0.0007
Métrique pour l'époque : 0.9657 

Métrique de validation : 0.9574
Time taken: 46.14s

Début de l'époque 129,
Loss sur le batch à l'étape 0 : 0.0009
Loss sur le batch à l'étape 10 : 0.0009
Loss sur le batch à l'étape 20 : 0.0006
Loss sur le batch à l'étape 30 : 0.0004

Loss pour l'époque 129: 0.0007
Métrique pour l'époque : 0.9647 

Métrique de validation : 0.9574
Time taken: 46.10s

Début de l'époque 130,
Loss sur le batch à l'étape 0 : 0.0005
Loss sur le batch à l'étape 10 : 0.0027
Loss sur le batch à l'étape 20 : 0.0006
Loss sur le batch à l'étape 30 : 0.0011

Loss pour l'époque 130: 0.0008
Métrique pour l'époque : 0.9643 

Métrique de validation : 0.9570
Time taken: 46.03s

Début de l'époque 131,
Loss sur le batch à l'étape 0 : 0.0004
Loss sur le batch à l'étape 10 : 0.0003
Loss sur le batch à l'étape 20 : 0.0004
Loss sur le batch à l'étape 30 : 0.0005

Loss pour l'époque 131: 0.0005
Métrique pour l'époque : 0.9671 

Métrique de validation : 0.9597
Time taken: 46.06s

Début de l'époque 132,
Loss sur le batch à l'étape 0 : 0.0009
Loss sur le batch à l'étape 10 : 0.0008
Loss sur le batch à l'étape 20 : 0.0007
Loss sur le batch à l'étape 30 : 0.0004

Loss pour l'époque 132: 0.0006
Métrique pour l'époque : 0.9653 

Métrique de validation : 0.9569
Time taken: 46.07s

Début de l'époque 133,
Loss sur le batch à l'étape 0 : 0.0012
Loss sur le batch à l'étape 10 : 0.0005
Loss sur le batch à l'étape 20 : 0.0012
Loss sur le batch à l'étape 30 : 0.0011

Loss pour l'époque 133: 0.0006
Métrique pour l'époque : 0.9652 

Métrique de validation : 0.9574
Time taken: 46.10s

Début de l'époque 134,
Loss sur le batch à l'étape 0 : 0.0005
Loss sur le batch à l'étape 10 : 0.0003
Loss sur le batch à l'étape 20 : 0.0005
Loss sur le batch à l'étape 30 : 0.0006

Loss pour l'époque 134: 0.0006
Métrique pour l'époque : 0.9647 

Métrique de validation : 0.9576
Time taken: 46.19s

Début de l'époque 135,
Loss sur le batch à l'étape 0 : 0.0010
Loss sur le batch à l'étape 10 : 0.0005
Loss sur le batch à l'étape 20 : 0.0008
Loss sur le batch à l'étape 30 : 0.0010

Loss pour l'époque 135: 0.0007
Métrique pour l'époque : 0.9637 

Métrique de validation : 0.9569
Time taken: 46.15s

Début de l'époque 136,
Loss sur le batch à l'étape 0 : 0.0006
Loss sur le batch à l'étape 10 : 0.0005
Loss sur le batch à l'étape 20 : 0.0005
Loss sur le batch à l'étape 30 : 0.0003

Loss pour l'époque 136: 0.0005
Métrique pour l'époque : 0.9649 

Métrique de validation : 0.9562
Time taken: 46.11s

Début de l'époque 137,
Loss sur le batch à l'étape 0 : 0.0008
Loss sur le batch à l'étape 10 : 0.0006
Loss sur le batch à l'étape 20 : 0.0005
Loss sur le batch à l'étape 30 : 0.0007

Loss pour l'époque 137: 0.0006
Métrique pour l'époque : 0.9643 

Métrique de validation : 0.9575
Time taken: 46.09s

Début de l'époque 138,
Loss sur le batch à l'étape 0 : 0.0004
Loss sur le batch à l'étape 10 : 0.0005
Loss sur le batch à l'étape 20 : 0.0007
Loss sur le batch à l'étape 30 : 0.0006

Loss pour l'époque 138: 0.0005
Métrique pour l'époque : 0.9660 

Métrique de validation : 0.9565
Time taken: 46.21s

Début de l'époque 139,
Loss sur le batch à l'étape 0 : 0.0007
Loss sur le batch à l'étape 10 : 0.0003
Loss sur le batch à l'étape 20 : 0.0007
Loss sur le batch à l'étape 30 : 0.0006

Loss pour l'époque 139: 0.0006
Métrique pour l'époque : 0.9646 

Métrique de validation : 0.9571
Time taken: 46.08s

Début de l'époque 140,
Loss sur le batch à l'étape 0 : 0.0007
Loss sur le batch à l'étape 10 : 0.0003
Loss sur le batch à l'étape 20 : 0.0003
Loss sur le batch à l'étape 30 : 0.0015

Loss pour l'époque 140: 0.0006
Métrique pour l'époque : 0.9662 

Métrique de validation : 0.9570
Time taken: 46.09s

Début de l'époque 141,
Loss sur le batch à l'étape 0 : 0.0003
Loss sur le batch à l'étape 10 : 0.0009
Loss sur le batch à l'étape 20 : 0.0007
Loss sur le batch à l'étape 30 : 0.0004

Loss pour l'époque 141: 0.0005
Métrique pour l'époque : 0.9648 

Métrique de validation : 0.9575
Time taken: 46.11s

Début de l'époque 142,
Loss sur le batch à l'étape 0 : 0.0006
Loss sur le batch à l'étape 10 : 0.0005
Loss sur le batch à l'étape 20 : 0.0003
Loss sur le batch à l'étape 30 : 0.0004

Loss pour l'époque 142: 0.0005
Métrique pour l'époque : 0.9675 

Métrique de validation : 0.9570
Time taken: 46.07s

Début de l'époque 143,
Loss sur le batch à l'étape 0 : 0.0018
Loss sur le batch à l'étape 10 : 0.0004
Loss sur le batch à l'étape 20 : 0.0004
Loss sur le batch à l'étape 30 : 0.0004

Loss pour l'époque 143: 0.0007
Métrique pour l'époque : 0.9632 

Métrique de validation : 0.9589
Time taken: 45.99s

Début de l'époque 144,
Loss sur le batch à l'étape 0 : 0.0003
Loss sur le batch à l'étape 10 : 0.0003
Loss sur le batch à l'étape 20 : 0.0004
Loss sur le batch à l'étape 30 : 0.0006

Loss pour l'époque 144: 0.0004
Métrique pour l'époque : 0.9668 

Métrique de validation : 0.9579
Time taken: 46.07s

Début de l'époque 145,
Loss sur le batch à l'étape 0 : 0.0003
Loss sur le batch à l'étape 10 : 0.0002
Loss sur le batch à l'étape 20 : 0.0008
Loss sur le batch à l'étape 30 : 0.0005

Loss pour l'époque 145: 0.0005
Métrique pour l'époque : 0.9655 

Métrique de validation : 0.9570
Time taken: 46.12s

Début de l'époque 146,
Loss sur le batch à l'étape 0 : 0.0007
Loss sur le batch à l'étape 10 : 0.0008
Loss sur le batch à l'étape 20 : 0.0003
Loss sur le batch à l'étape 30 : 0.0006

Loss pour l'époque 146: 0.0004
Métrique pour l'époque : 0.9680 

Métrique de validation : 0.9590
Time taken: 46.09s

Début de l'époque 147,
Loss sur le batch à l'étape 0 : 0.0004
Loss sur le batch à l'étape 10 : 0.0008
Loss sur le batch à l'étape 20 : 0.0004
Loss sur le batch à l'étape 30 : 0.0002

Loss pour l'époque 147: 0.0005
Métrique pour l'époque : 0.9688 

Métrique de validation : 0.9589
Time taken: 46.05s

Début de l'époque 148,
Loss sur le batch à l'étape 0 : 0.0005
Loss sur le batch à l'étape 10 : 0.0003
Loss sur le batch à l'étape 20 : 0.0003
Loss sur le batch à l'étape 30 : 0.0005

Loss pour l'époque 148: 0.0005
Métrique pour l'époque : 0.9672 

Métrique de validation : 0.9590
Time taken: 46.08s

Début de l'époque 149,
Loss sur le batch à l'étape 0 : 0.0002
Loss sur le batch à l'étape 10 : 0.0004
Loss sur le batch à l'étape 20 : 0.0002
Loss sur le batch à l'étape 30 : 0.0003

Loss pour l'époque 149: 0.0004
Métrique pour l'époque : 0.9696 

Métrique de validation : 0.9574
Time taken: 46.08s

Début de l'époque 150,
Loss sur le batch à l'étape 0 : 0.0005
Loss sur le batch à l'étape 10 : 0.0007
Loss sur le batch à l'étape 20 : 0.0003
Loss sur le batch à l'étape 30 : 0.0002

Loss pour l'époque 150: 0.0005
Métrique pour l'époque : 0.9667 

Métrique de validation : 0.9586
Time taken: 46.21s

model.save('unet_nucleus_150_epochs.h5')

Tiramisu

Idée

Recently, a new CNN architecture, Densely connected Convolutional Networks (DenseNets), has shown excellent results on image classification tasks. The idea of DenseNets is based on the observation that if each layer is directly connected to every other layer in a feed-forward fashion then the network will be more accurate and easier to train.

In this paper, we extend DenseNets to deal with the problem of semantic segmentation.

Les briques de bases

  • we extend DenseNets to work as FCNs by adding an upsampling path to recover the full resoluution.
  • we only upsample the feature maps created the preceding dense block.
  • The higher resolution information is passed by means of a standard skip connection between the downsampling and the upsampling paths. The details of the proposed architecture are shown in Figure 1.

Les layers denses

\[x_{\ell} := H([x_{\ell-1}, x_{\ell-2}, \dots, x_{0}])\]
  • \(H\) is defined as BN-ReLu-Conv(\(3 \times 3\))-Dropout(\(p=0.2\)).
  • The outpout dimension of each layer \(\ell\) has \(k\) features, hereafter referred as to growth rate parameter.
def bn_relu_conv(tensor, filters, kernel_size):
  x = BatchNormalization()(tensor)
  x = ReLU()(x)
  x = Conv2D(filters,
             kernel_size=kernel_size,
             strides=1,
             padding='same',
             kernel_initializer='he_uniform'
             )(x)
  x = Dropout(0.2)(x)

  return x
  • Dense block layers are composed of BN, followed by a ReLU, a \(3\times3\) same convolution (no resolution loss) and dropout with probability \(p=0.2\).
def dense_layer(tensor, reps, filters):

  skip_connection = []
  #growth_rate = 0

  for i in range(reps-1):
    out_conv = bn_relu_conv(tensor, filters, 3)
    #growth_rate += filters
    tensor = Concatenate()([tensor, out_conv])
    skip_connection.append(out_conv)


  out_conv = bn_relu_conv(tensor, filters, 3)
  skip_connection.append(out_conv)
  #pour les avoir dans le bon ordre [x_{l-1}, x_{l-2}, ..., x_{0}]
  skip_connection = skip_connection[::-1]
  x = Concatenate()(skip_connection)

  return x

Vérifions à quoi ressemble le bloc dense que nous avons écrit. On peut le visualiser avec l'option plot_model de tf.keras.

1
2
3
4
5
6
7
8
IMG_SHAPE = 32, 32, 3


input = Input(IMG_SHAPE)
output = dense_layer(input, 4, 16)

model = Model(input, output)
tf.keras.utils.plot_model(model,rankdir='LR')

Vérifions si l'on a le bon nombre de feature map à la fin de chaque bloc dense, sur le chemin contractant. Les Conv(\(1 \times 1\)) des blocs de transition down ne changeant pas le nombre de feature maps, on ne les rajoute pas ici.

filters = 16
#downsampling path
reps = [4, 5, 7, 10, 12]
f = 48
f_size_d=[]

for k in reps:
  c = np.random.random_sample(32*32*f).astype('float32')
  c = tf.reshape(c,(-1,32,32, f))
  out = dense_layer(c, k, filters)
  out = Concatenate()([out,c])
  f_size_d.append(out.shape[3])  
  f = out.shape[3]

print(f_size_d)
[112, 192, 304, 464, 656, 896, 1088]

Transition down

  • A transition down is introduced to reduce the spatial dimensionality of the feature maps. Such transformation is composed of a \(1\times1\) convolution (which conserves the number of feature maps) followed by a \(2 \times 2\) pooling operation.

  • Transition down is composed of BN, followed by a ReLU, a \(1 \times 1\) convolution, dropout with \(p=0.2\) and a non-overlapping max pooling of size \(2 \times 2\).

1
2
3
4
5
6
7
def transition_down(tensor, filters):
  x = bn_relu_conv(tensor, filters, 1)
  x = MaxPool2D(pool_size=(2,2),
                strides=(2,2),
                padding='same')(x)

  return x

Transition up

  • The transition up modules consist of a transpose convolution that upsamples the previous feature maps.
  • Transition up is composed of a \(3 \times 3\) transposed convolution with a stride of \(2\).
1
2
3
4
5
6
7
8
def transition_up(tensor, filters):
  x = Conv2DTranspose(filters=filters,
                      kernel_size=3,
                      strides=(2, 2),
                      padding="same",
                      kernel_initializer='he_uniform')(tensor)

  return x

Mise en place du modèle

  • The upsampled feature maps are then concatenated to the ones coming from the skip connection to form the input of a new dense block.

  • In the upsampling path [...] the input of a danse block is not concatenated with its output. Thus, the transposed convolution is applied only to the feature map obtained by the last dense blocks and not to all feature maps concatenated so far.

  • The growth rate of the layer is set to \(k=16\).

def FCDensenet(filters, nb_layers, img_shape, num_classes, nb_blocks=5, nb_filters=48):

  nb_filters = 48
  upsampling_fm=[]

  # input block
  input = Input(shape=img_shape)
  x = Conv2D(nb_filters,
              kernel_size=3,
              strides=1,
              padding='same',
              kernel_initializer='he_uniform'
              )(input)

  #downsampling blocks
  for i in range(nb_blocks):
    out_conv = dense_layer(x, nb_layers[i], filters)
    out_conv = Concatenate()([out_conv, x])
    nb_filters += filters*nb_layers[i]

    upsampling_fm.append(out_conv)
    upsampling = upsampling_fm[::-1]
    x = transition_down(out_conv, nb_filters)

  # Bottleneck
  #print(f'bottleneck')
  x = dense_layer(x, nb_layers[5], filters)
  nb_filters = filters*nb_layers[5]
  #print(f'x : {x.shape}')


  #upsampling path
  for i in range(nb_blocks):
    #print(f'upsampling block {i}')
    #print(f'there will be {nb_layers[6+i]} layers')

    x = transition_up(x, nb_filters)
    #print(f'x upsampled : {x.shape}')
    #print(f'skip connection : {upsampling[i].shape}')
    x = Concatenate()([x, upsampling[i]])
    #print(f'x_before_dense : {x.shape}')

    if nb_layers[6+i]==nb_layers[-1]:
      #print('last layer')
      out_conv = dense_layer(x, nb_layers[6+i], filters)
      x = Concatenate()([out_conv, x])
      #print(f'x_after_dense : {x.shape}')
    else:
      x = dense_layer(x, nb_layers[6+i], filters)
      nb_filters = filters*nb_layers[6+i]

  # output block
  x = Conv2D(num_classes,
            kernel_size=1,
            strides=(1,1),
            padding='same',
            kernel_initializer='he_uniform')(x)
  x = Activation('softmax')(x)


  model = Model(input, x)

  return model
FC-Densenet103
1
2
3
4
5
6
7
8
filters = 16
nb_blocks = 5
nb_layers = [4, 5, 7, 10, 12 ,15, 12, 10, 7, 5, 4]
img_shape = (224,224,3)

# Free up RAM in case the model definition cells were run multiple times
keras.backend.clear_session()
model = FCDensenet(filters, nb_layers, img_shape, num_classes=32)
model.summary()
Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_1 (InputLayer)            [(None, 224, 224, 3) 0                                            
__________________________________________________________________________________________________
conv2d (Conv2D)                 (None, 224, 224, 48) 1344        input_1[0][0]                    
__________________________________________________________________________________________________
batch_normalization (BatchNorma (None, 224, 224, 48) 192         conv2d[0][0]                     
__________________________________________________________________________________________________
re_lu (ReLU)                    (None, 224, 224, 48) 0           batch_normalization[0][0]        
__________________________________________________________________________________________________
conv2d_1 (Conv2D)               (None, 224, 224, 16) 6928        re_lu[0][0]                      
__________________________________________________________________________________________________
dropout (Dropout)               (None, 224, 224, 16) 0           conv2d_1[0][0]                   
__________________________________________________________________________________________________
concatenate (Concatenate)       (None, 224, 224, 64) 0           conv2d[0][0]                     
                                                                 dropout[0][0]                    
__________________________________________________________________________________________________
batch_normalization_1 (BatchNor (None, 224, 224, 64) 256         concatenate[0][0]                
__________________________________________________________________________________________________
re_lu_1 (ReLU)                  (None, 224, 224, 64) 0           batch_normalization_1[0][0]      
__________________________________________________________________________________________________
conv2d_2 (Conv2D)               (None, 224, 224, 16) 9232        re_lu_1[0][0]                    
__________________________________________________________________________________________________
dropout_1 (Dropout)             (None, 224, 224, 16) 0           conv2d_2[0][0]                   
__________________________________________________________________________________________________
concatenate_1 (Concatenate)     (None, 224, 224, 80) 0           concatenate[0][0]                
                                                                 dropout_1[0][0]                  
__________________________________________________________________________________________________
batch_normalization_2 (BatchNor (None, 224, 224, 80) 320         concatenate_1[0][0]              
__________________________________________________________________________________________________
re_lu_2 (ReLU)                  (None, 224, 224, 80) 0           batch_normalization_2[0][0]      
__________________________________________________________________________________________________
conv2d_3 (Conv2D)               (None, 224, 224, 16) 11536       re_lu_2[0][0]                    
__________________________________________________________________________________________________
dropout_2 (Dropout)             (None, 224, 224, 16) 0           conv2d_3[0][0]                   
__________________________________________________________________________________________________
concatenate_2 (Concatenate)     (None, 224, 224, 96) 0           concatenate_1[0][0]              
                                                                 dropout_2[0][0]                  
__________________________________________________________________________________________________
batch_normalization_3 (BatchNor (None, 224, 224, 96) 384         concatenate_2[0][0]              
__________________________________________________________________________________________________
re_lu_3 (ReLU)                  (None, 224, 224, 96) 0           batch_normalization_3[0][0]      
__________________________________________________________________________________________________
conv2d_4 (Conv2D)               (None, 224, 224, 16) 13840       re_lu_3[0][0]                    
__________________________________________________________________________________________________
dropout_3 (Dropout)             (None, 224, 224, 16) 0           conv2d_4[0][0]                   
__________________________________________________________________________________________________
concatenate_3 (Concatenate)     (None, 224, 224, 64) 0           dropout_3[0][0]                  
                                                                 dropout_2[0][0]                  
                                                                 dropout_1[0][0]                  
                                                                 dropout[0][0]                    
__________________________________________________________________________________________________
concatenate_4 (Concatenate)     (None, 224, 224, 112 0           concatenate_3[0][0]              
                                                                 conv2d[0][0]                     
__________________________________________________________________________________________________
batch_normalization_4 (BatchNor (None, 224, 224, 112 448         concatenate_4[0][0]              
__________________________________________________________________________________________________
re_lu_4 (ReLU)                  (None, 224, 224, 112 0           batch_normalization_4[0][0]      
__________________________________________________________________________________________________
conv2d_5 (Conv2D)               (None, 224, 224, 112 12656       re_lu_4[0][0]                    
__________________________________________________________________________________________________
dropout_4 (Dropout)             (None, 224, 224, 112 0           conv2d_5[0][0]                   
__________________________________________________________________________________________________
max_pooling2d (MaxPooling2D)    (None, 112, 112, 112 0           dropout_4[0][0]                  
__________________________________________________________________________________________________
batch_normalization_5 (BatchNor (None, 112, 112, 112 448         max_pooling2d[0][0]              
__________________________________________________________________________________________________
re_lu_5 (ReLU)                  (None, 112, 112, 112 0           batch_normalization_5[0][0]      
__________________________________________________________________________________________________
conv2d_6 (Conv2D)               (None, 112, 112, 16) 16144       re_lu_5[0][0]                    
__________________________________________________________________________________________________
dropout_5 (Dropout)             (None, 112, 112, 16) 0           conv2d_6[0][0]                   
__________________________________________________________________________________________________
concatenate_5 (Concatenate)     (None, 112, 112, 128 0           max_pooling2d[0][0]              
                                                                 dropout_5[0][0]                  
__________________________________________________________________________________________________
batch_normalization_6 (BatchNor (None, 112, 112, 128 512         concatenate_5[0][0]              
__________________________________________________________________________________________________
re_lu_6 (ReLU)                  (None, 112, 112, 128 0           batch_normalization_6[0][0]      
__________________________________________________________________________________________________
conv2d_7 (Conv2D)               (None, 112, 112, 16) 18448       re_lu_6[0][0]                    
__________________________________________________________________________________________________
dropout_6 (Dropout)             (None, 112, 112, 16) 0           conv2d_7[0][0]                   
__________________________________________________________________________________________________
concatenate_6 (Concatenate)     (None, 112, 112, 144 0           concatenate_5[0][0]              
                                                                 dropout_6[0][0]                  
__________________________________________________________________________________________________
batch_normalization_7 (BatchNor (None, 112, 112, 144 576         concatenate_6[0][0]              
__________________________________________________________________________________________________
re_lu_7 (ReLU)                  (None, 112, 112, 144 0           batch_normalization_7[0][0]      
__________________________________________________________________________________________________
conv2d_8 (Conv2D)               (None, 112, 112, 16) 20752       re_lu_7[0][0]                    
__________________________________________________________________________________________________
dropout_7 (Dropout)             (None, 112, 112, 16) 0           conv2d_8[0][0]                   
__________________________________________________________________________________________________
concatenate_7 (Concatenate)     (None, 112, 112, 160 0           concatenate_6[0][0]              
                                                                 dropout_7[0][0]                  
__________________________________________________________________________________________________
batch_normalization_8 (BatchNor (None, 112, 112, 160 640         concatenate_7[0][0]              
__________________________________________________________________________________________________
re_lu_8 (ReLU)                  (None, 112, 112, 160 0           batch_normalization_8[0][0]      
__________________________________________________________________________________________________
conv2d_9 (Conv2D)               (None, 112, 112, 16) 23056       re_lu_8[0][0]                    
__________________________________________________________________________________________________
dropout_8 (Dropout)             (None, 112, 112, 16) 0           conv2d_9[0][0]                   
__________________________________________________________________________________________________
concatenate_8 (Concatenate)     (None, 112, 112, 176 0           concatenate_7[0][0]              
                                                                 dropout_8[0][0]                  
__________________________________________________________________________________________________
batch_normalization_9 (BatchNor (None, 112, 112, 176 704         concatenate_8[0][0]              
__________________________________________________________________________________________________
re_lu_9 (ReLU)                  (None, 112, 112, 176 0           batch_normalization_9[0][0]      
__________________________________________________________________________________________________
conv2d_10 (Conv2D)              (None, 112, 112, 16) 25360       re_lu_9[0][0]                    
__________________________________________________________________________________________________
dropout_9 (Dropout)             (None, 112, 112, 16) 0           conv2d_10[0][0]                  
__________________________________________________________________________________________________
concatenate_9 (Concatenate)     (None, 112, 112, 80) 0           dropout_9[0][0]                  
                                                                 dropout_8[0][0]                  
                                                                 dropout_7[0][0]                  
                                                                 dropout_6[0][0]                  
                                                                 dropout_5[0][0]                  
__________________________________________________________________________________________________
concatenate_10 (Concatenate)    (None, 112, 112, 192 0           concatenate_9[0][0]              
                                                                 max_pooling2d[0][0]              
__________________________________________________________________________________________________
batch_normalization_10 (BatchNo (None, 112, 112, 192 768         concatenate_10[0][0]             
__________________________________________________________________________________________________
re_lu_10 (ReLU)                 (None, 112, 112, 192 0           batch_normalization_10[0][0]     
__________________________________________________________________________________________________
conv2d_11 (Conv2D)              (None, 112, 112, 192 37056       re_lu_10[0][0]                   
__________________________________________________________________________________________________
dropout_10 (Dropout)            (None, 112, 112, 192 0           conv2d_11[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_1 (MaxPooling2D)  (None, 56, 56, 192)  0           dropout_10[0][0]                 
__________________________________________________________________________________________________
batch_normalization_11 (BatchNo (None, 56, 56, 192)  768         max_pooling2d_1[0][0]            
__________________________________________________________________________________________________
re_lu_11 (ReLU)                 (None, 56, 56, 192)  0           batch_normalization_11[0][0]     
__________________________________________________________________________________________________
conv2d_12 (Conv2D)              (None, 56, 56, 16)   27664       re_lu_11[0][0]                   
__________________________________________________________________________________________________
dropout_11 (Dropout)            (None, 56, 56, 16)   0           conv2d_12[0][0]                  
__________________________________________________________________________________________________
concatenate_11 (Concatenate)    (None, 56, 56, 208)  0           max_pooling2d_1[0][0]            
                                                                 dropout_11[0][0]                 
__________________________________________________________________________________________________
batch_normalization_12 (BatchNo (None, 56, 56, 208)  832         concatenate_11[0][0]             
__________________________________________________________________________________________________
re_lu_12 (ReLU)                 (None, 56, 56, 208)  0           batch_normalization_12[0][0]     
__________________________________________________________________________________________________
conv2d_13 (Conv2D)              (None, 56, 56, 16)   29968       re_lu_12[0][0]                   
__________________________________________________________________________________________________
dropout_12 (Dropout)            (None, 56, 56, 16)   0           conv2d_13[0][0]                  
__________________________________________________________________________________________________
concatenate_12 (Concatenate)    (None, 56, 56, 224)  0           concatenate_11[0][0]             
                                                                 dropout_12[0][0]                 
__________________________________________________________________________________________________
batch_normalization_13 (BatchNo (None, 56, 56, 224)  896         concatenate_12[0][0]             
__________________________________________________________________________________________________
re_lu_13 (ReLU)                 (None, 56, 56, 224)  0           batch_normalization_13[0][0]     
__________________________________________________________________________________________________
conv2d_14 (Conv2D)              (None, 56, 56, 16)   32272       re_lu_13[0][0]                   
__________________________________________________________________________________________________
dropout_13 (Dropout)            (None, 56, 56, 16)   0           conv2d_14[0][0]                  
__________________________________________________________________________________________________
concatenate_13 (Concatenate)    (None, 56, 56, 240)  0           concatenate_12[0][0]             
                                                                 dropout_13[0][0]                 
__________________________________________________________________________________________________
batch_normalization_14 (BatchNo (None, 56, 56, 240)  960         concatenate_13[0][0]             
__________________________________________________________________________________________________
re_lu_14 (ReLU)                 (None, 56, 56, 240)  0           batch_normalization_14[0][0]     
__________________________________________________________________________________________________
conv2d_15 (Conv2D)              (None, 56, 56, 16)   34576       re_lu_14[0][0]                   
__________________________________________________________________________________________________
dropout_14 (Dropout)            (None, 56, 56, 16)   0           conv2d_15[0][0]                  
__________________________________________________________________________________________________
concatenate_14 (Concatenate)    (None, 56, 56, 256)  0           concatenate_13[0][0]             
                                                                 dropout_14[0][0]                 
__________________________________________________________________________________________________
batch_normalization_15 (BatchNo (None, 56, 56, 256)  1024        concatenate_14[0][0]             
__________________________________________________________________________________________________
re_lu_15 (ReLU)                 (None, 56, 56, 256)  0           batch_normalization_15[0][0]     
__________________________________________________________________________________________________
conv2d_16 (Conv2D)              (None, 56, 56, 16)   36880       re_lu_15[0][0]                   
__________________________________________________________________________________________________
dropout_15 (Dropout)            (None, 56, 56, 16)   0           conv2d_16[0][0]                  
__________________________________________________________________________________________________
concatenate_15 (Concatenate)    (None, 56, 56, 272)  0           concatenate_14[0][0]             
                                                                 dropout_15[0][0]                 
__________________________________________________________________________________________________
batch_normalization_16 (BatchNo (None, 56, 56, 272)  1088        concatenate_15[0][0]             
__________________________________________________________________________________________________
re_lu_16 (ReLU)                 (None, 56, 56, 272)  0           batch_normalization_16[0][0]     
__________________________________________________________________________________________________
conv2d_17 (Conv2D)              (None, 56, 56, 16)   39184       re_lu_16[0][0]                   
__________________________________________________________________________________________________
dropout_16 (Dropout)            (None, 56, 56, 16)   0           conv2d_17[0][0]                  
__________________________________________________________________________________________________
concatenate_16 (Concatenate)    (None, 56, 56, 288)  0           concatenate_15[0][0]             
                                                                 dropout_16[0][0]                 
__________________________________________________________________________________________________
batch_normalization_17 (BatchNo (None, 56, 56, 288)  1152        concatenate_16[0][0]             
__________________________________________________________________________________________________
re_lu_17 (ReLU)                 (None, 56, 56, 288)  0           batch_normalization_17[0][0]     
__________________________________________________________________________________________________
conv2d_18 (Conv2D)              (None, 56, 56, 16)   41488       re_lu_17[0][0]                   
__________________________________________________________________________________________________
dropout_17 (Dropout)            (None, 56, 56, 16)   0           conv2d_18[0][0]                  
__________________________________________________________________________________________________
concatenate_17 (Concatenate)    (None, 56, 56, 112)  0           dropout_17[0][0]                 
                                                                 dropout_16[0][0]                 
                                                                 dropout_15[0][0]                 
                                                                 dropout_14[0][0]                 
                                                                 dropout_13[0][0]                 
                                                                 dropout_12[0][0]                 
                                                                 dropout_11[0][0]                 
__________________________________________________________________________________________________
concatenate_18 (Concatenate)    (None, 56, 56, 304)  0           concatenate_17[0][0]             
                                                                 max_pooling2d_1[0][0]            
__________________________________________________________________________________________________
batch_normalization_18 (BatchNo (None, 56, 56, 304)  1216        concatenate_18[0][0]             
__________________________________________________________________________________________________
re_lu_18 (ReLU)                 (None, 56, 56, 304)  0           batch_normalization_18[0][0]     
__________________________________________________________________________________________________
conv2d_19 (Conv2D)              (None, 56, 56, 304)  92720       re_lu_18[0][0]                   
__________________________________________________________________________________________________
dropout_18 (Dropout)            (None, 56, 56, 304)  0           conv2d_19[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_2 (MaxPooling2D)  (None, 28, 28, 304)  0           dropout_18[0][0]                 
__________________________________________________________________________________________________
batch_normalization_19 (BatchNo (None, 28, 28, 304)  1216        max_pooling2d_2[0][0]            
__________________________________________________________________________________________________
re_lu_19 (ReLU)                 (None, 28, 28, 304)  0           batch_normalization_19[0][0]     
__________________________________________________________________________________________________
conv2d_20 (Conv2D)              (None, 28, 28, 16)   43792       re_lu_19[0][0]                   
__________________________________________________________________________________________________
dropout_19 (Dropout)            (None, 28, 28, 16)   0           conv2d_20[0][0]                  
__________________________________________________________________________________________________
concatenate_19 (Concatenate)    (None, 28, 28, 320)  0           max_pooling2d_2[0][0]            
                                                                 dropout_19[0][0]                 
__________________________________________________________________________________________________
batch_normalization_20 (BatchNo (None, 28, 28, 320)  1280        concatenate_19[0][0]             
__________________________________________________________________________________________________
re_lu_20 (ReLU)                 (None, 28, 28, 320)  0           batch_normalization_20[0][0]     
__________________________________________________________________________________________________
conv2d_21 (Conv2D)              (None, 28, 28, 16)   46096       re_lu_20[0][0]                   
__________________________________________________________________________________________________
dropout_20 (Dropout)            (None, 28, 28, 16)   0           conv2d_21[0][0]                  
__________________________________________________________________________________________________
concatenate_20 (Concatenate)    (None, 28, 28, 336)  0           concatenate_19[0][0]             
                                                                 dropout_20[0][0]                 
__________________________________________________________________________________________________
batch_normalization_21 (BatchNo (None, 28, 28, 336)  1344        concatenate_20[0][0]             
__________________________________________________________________________________________________
re_lu_21 (ReLU)                 (None, 28, 28, 336)  0           batch_normalization_21[0][0]     
__________________________________________________________________________________________________
conv2d_22 (Conv2D)              (None, 28, 28, 16)   48400       re_lu_21[0][0]                   
__________________________________________________________________________________________________
dropout_21 (Dropout)            (None, 28, 28, 16)   0           conv2d_22[0][0]                  
__________________________________________________________________________________________________
concatenate_21 (Concatenate)    (None, 28, 28, 352)  0           concatenate_20[0][0]             
                                                                 dropout_21[0][0]                 
__________________________________________________________________________________________________
batch_normalization_22 (BatchNo (None, 28, 28, 352)  1408        concatenate_21[0][0]             
__________________________________________________________________________________________________
re_lu_22 (ReLU)                 (None, 28, 28, 352)  0           batch_normalization_22[0][0]     
__________________________________________________________________________________________________
conv2d_23 (Conv2D)              (None, 28, 28, 16)   50704       re_lu_22[0][0]                   
__________________________________________________________________________________________________
dropout_22 (Dropout)            (None, 28, 28, 16)   0           conv2d_23[0][0]                  
__________________________________________________________________________________________________
concatenate_22 (Concatenate)    (None, 28, 28, 368)  0           concatenate_21[0][0]             
                                                                 dropout_22[0][0]                 
__________________________________________________________________________________________________
batch_normalization_23 (BatchNo (None, 28, 28, 368)  1472        concatenate_22[0][0]             
__________________________________________________________________________________________________
re_lu_23 (ReLU)                 (None, 28, 28, 368)  0           batch_normalization_23[0][0]     
__________________________________________________________________________________________________
conv2d_24 (Conv2D)              (None, 28, 28, 16)   53008       re_lu_23[0][0]                   
__________________________________________________________________________________________________
dropout_23 (Dropout)            (None, 28, 28, 16)   0           conv2d_24[0][0]                  
__________________________________________________________________________________________________
concatenate_23 (Concatenate)    (None, 28, 28, 384)  0           concatenate_22[0][0]             
                                                                 dropout_23[0][0]                 
__________________________________________________________________________________________________
batch_normalization_24 (BatchNo (None, 28, 28, 384)  1536        concatenate_23[0][0]             
__________________________________________________________________________________________________
re_lu_24 (ReLU)                 (None, 28, 28, 384)  0           batch_normalization_24[0][0]     
__________________________________________________________________________________________________
conv2d_25 (Conv2D)              (None, 28, 28, 16)   55312       re_lu_24[0][0]                   
__________________________________________________________________________________________________
dropout_24 (Dropout)            (None, 28, 28, 16)   0           conv2d_25[0][0]                  
__________________________________________________________________________________________________
concatenate_24 (Concatenate)    (None, 28, 28, 400)  0           concatenate_23[0][0]             
                                                                 dropout_24[0][0]                 
__________________________________________________________________________________________________
batch_normalization_25 (BatchNo (None, 28, 28, 400)  1600        concatenate_24[0][0]             
__________________________________________________________________________________________________
re_lu_25 (ReLU)                 (None, 28, 28, 400)  0           batch_normalization_25[0][0]     
__________________________________________________________________________________________________
conv2d_26 (Conv2D)              (None, 28, 28, 16)   57616       re_lu_25[0][0]                   
__________________________________________________________________________________________________
dropout_25 (Dropout)            (None, 28, 28, 16)   0           conv2d_26[0][0]                  
__________________________________________________________________________________________________
concatenate_25 (Concatenate)    (None, 28, 28, 416)  0           concatenate_24[0][0]             
                                                                 dropout_25[0][0]                 
__________________________________________________________________________________________________
batch_normalization_26 (BatchNo (None, 28, 28, 416)  1664        concatenate_25[0][0]             
__________________________________________________________________________________________________
re_lu_26 (ReLU)                 (None, 28, 28, 416)  0           batch_normalization_26[0][0]     
__________________________________________________________________________________________________
conv2d_27 (Conv2D)              (None, 28, 28, 16)   59920       re_lu_26[0][0]                   
__________________________________________________________________________________________________
dropout_26 (Dropout)            (None, 28, 28, 16)   0           conv2d_27[0][0]                  
__________________________________________________________________________________________________
concatenate_26 (Concatenate)    (None, 28, 28, 432)  0           concatenate_25[0][0]             
                                                                 dropout_26[0][0]                 
__________________________________________________________________________________________________
batch_normalization_27 (BatchNo (None, 28, 28, 432)  1728        concatenate_26[0][0]             
__________________________________________________________________________________________________
re_lu_27 (ReLU)                 (None, 28, 28, 432)  0           batch_normalization_27[0][0]     
__________________________________________________________________________________________________
conv2d_28 (Conv2D)              (None, 28, 28, 16)   62224       re_lu_27[0][0]                   
__________________________________________________________________________________________________
dropout_27 (Dropout)            (None, 28, 28, 16)   0           conv2d_28[0][0]                  
__________________________________________________________________________________________________
concatenate_27 (Concatenate)    (None, 28, 28, 448)  0           concatenate_26[0][0]             
                                                                 dropout_27[0][0]                 
__________________________________________________________________________________________________
batch_normalization_28 (BatchNo (None, 28, 28, 448)  1792        concatenate_27[0][0]             
__________________________________________________________________________________________________
re_lu_28 (ReLU)                 (None, 28, 28, 448)  0           batch_normalization_28[0][0]     
__________________________________________________________________________________________________
conv2d_29 (Conv2D)              (None, 28, 28, 16)   64528       re_lu_28[0][0]                   
__________________________________________________________________________________________________
dropout_28 (Dropout)            (None, 28, 28, 16)   0           conv2d_29[0][0]                  
__________________________________________________________________________________________________
concatenate_28 (Concatenate)    (None, 28, 28, 160)  0           dropout_28[0][0]                 
                                                                 dropout_27[0][0]                 
                                                                 dropout_26[0][0]                 
                                                                 dropout_25[0][0]                 
                                                                 dropout_24[0][0]                 
                                                                 dropout_23[0][0]                 
                                                                 dropout_22[0][0]                 
                                                                 dropout_21[0][0]                 
                                                                 dropout_20[0][0]                 
                                                                 dropout_19[0][0]                 
__________________________________________________________________________________________________
concatenate_29 (Concatenate)    (None, 28, 28, 464)  0           concatenate_28[0][0]             
                                                                 max_pooling2d_2[0][0]            
__________________________________________________________________________________________________
batch_normalization_29 (BatchNo (None, 28, 28, 464)  1856        concatenate_29[0][0]             
__________________________________________________________________________________________________
re_lu_29 (ReLU)                 (None, 28, 28, 464)  0           batch_normalization_29[0][0]     
__________________________________________________________________________________________________
conv2d_30 (Conv2D)              (None, 28, 28, 464)  215760      re_lu_29[0][0]                   
__________________________________________________________________________________________________
dropout_29 (Dropout)            (None, 28, 28, 464)  0           conv2d_30[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_3 (MaxPooling2D)  (None, 14, 14, 464)  0           dropout_29[0][0]                 
__________________________________________________________________________________________________
batch_normalization_30 (BatchNo (None, 14, 14, 464)  1856        max_pooling2d_3[0][0]            
__________________________________________________________________________________________________
re_lu_30 (ReLU)                 (None, 14, 14, 464)  0           batch_normalization_30[0][0]     
__________________________________________________________________________________________________
conv2d_31 (Conv2D)              (None, 14, 14, 16)   66832       re_lu_30[0][0]                   
__________________________________________________________________________________________________
dropout_30 (Dropout)            (None, 14, 14, 16)   0           conv2d_31[0][0]                  
__________________________________________________________________________________________________
concatenate_30 (Concatenate)    (None, 14, 14, 480)  0           max_pooling2d_3[0][0]            
                                                                 dropout_30[0][0]                 
__________________________________________________________________________________________________
batch_normalization_31 (BatchNo (None, 14, 14, 480)  1920        concatenate_30[0][0]             
__________________________________________________________________________________________________
re_lu_31 (ReLU)                 (None, 14, 14, 480)  0           batch_normalization_31[0][0]     
__________________________________________________________________________________________________
conv2d_32 (Conv2D)              (None, 14, 14, 16)   69136       re_lu_31[0][0]                   
__________________________________________________________________________________________________
dropout_31 (Dropout)            (None, 14, 14, 16)   0           conv2d_32[0][0]                  
__________________________________________________________________________________________________
concatenate_31 (Concatenate)    (None, 14, 14, 496)  0           concatenate_30[0][0]             
                                                                 dropout_31[0][0]                 
__________________________________________________________________________________________________
batch_normalization_32 (BatchNo (None, 14, 14, 496)  1984        concatenate_31[0][0]             
__________________________________________________________________________________________________
re_lu_32 (ReLU)                 (None, 14, 14, 496)  0           batch_normalization_32[0][0]     
__________________________________________________________________________________________________
conv2d_33 (Conv2D)              (None, 14, 14, 16)   71440       re_lu_32[0][0]                   
__________________________________________________________________________________________________
dropout_32 (Dropout)            (None, 14, 14, 16)   0           conv2d_33[0][0]                  
__________________________________________________________________________________________________
concatenate_32 (Concatenate)    (None, 14, 14, 512)  0           concatenate_31[0][0]             
                                                                 dropout_32[0][0]                 
__________________________________________________________________________________________________
batch_normalization_33 (BatchNo (None, 14, 14, 512)  2048        concatenate_32[0][0]             
__________________________________________________________________________________________________
re_lu_33 (ReLU)                 (None, 14, 14, 512)  0           batch_normalization_33[0][0]     
__________________________________________________________________________________________________
conv2d_34 (Conv2D)              (None, 14, 14, 16)   73744       re_lu_33[0][0]                   
__________________________________________________________________________________________________
dropout_33 (Dropout)            (None, 14, 14, 16)   0           conv2d_34[0][0]                  
__________________________________________________________________________________________________
concatenate_33 (Concatenate)    (None, 14, 14, 528)  0           concatenate_32[0][0]             
                                                                 dropout_33[0][0]                 
__________________________________________________________________________________________________
batch_normalization_34 (BatchNo (None, 14, 14, 528)  2112        concatenate_33[0][0]             
__________________________________________________________________________________________________
re_lu_34 (ReLU)                 (None, 14, 14, 528)  0           batch_normalization_34[0][0]     
__________________________________________________________________________________________________
conv2d_35 (Conv2D)              (None, 14, 14, 16)   76048       re_lu_34[0][0]                   
__________________________________________________________________________________________________
dropout_34 (Dropout)            (None, 14, 14, 16)   0           conv2d_35[0][0]                  
__________________________________________________________________________________________________
concatenate_34 (Concatenate)    (None, 14, 14, 544)  0           concatenate_33[0][0]             
                                                                 dropout_34[0][0]                 
__________________________________________________________________________________________________
batch_normalization_35 (BatchNo (None, 14, 14, 544)  2176        concatenate_34[0][0]             
__________________________________________________________________________________________________
re_lu_35 (ReLU)                 (None, 14, 14, 544)  0           batch_normalization_35[0][0]     
__________________________________________________________________________________________________
conv2d_36 (Conv2D)              (None, 14, 14, 16)   78352       re_lu_35[0][0]                   
__________________________________________________________________________________________________
dropout_35 (Dropout)            (None, 14, 14, 16)   0           conv2d_36[0][0]                  
__________________________________________________________________________________________________
concatenate_35 (Concatenate)    (None, 14, 14, 560)  0           concatenate_34[0][0]             
                                                                 dropout_35[0][0]                 
__________________________________________________________________________________________________
batch_normalization_36 (BatchNo (None, 14, 14, 560)  2240        concatenate_35[0][0]             
__________________________________________________________________________________________________
re_lu_36 (ReLU)                 (None, 14, 14, 560)  0           batch_normalization_36[0][0]     
__________________________________________________________________________________________________
conv2d_37 (Conv2D)              (None, 14, 14, 16)   80656       re_lu_36[0][0]                   
__________________________________________________________________________________________________
dropout_36 (Dropout)            (None, 14, 14, 16)   0           conv2d_37[0][0]                  
__________________________________________________________________________________________________
concatenate_36 (Concatenate)    (None, 14, 14, 576)  0           concatenate_35[0][0]             
                                                                 dropout_36[0][0]                 
__________________________________________________________________________________________________
batch_normalization_37 (BatchNo (None, 14, 14, 576)  2304        concatenate_36[0][0]             
__________________________________________________________________________________________________
re_lu_37 (ReLU)                 (None, 14, 14, 576)  0           batch_normalization_37[0][0]     
__________________________________________________________________________________________________
conv2d_38 (Conv2D)              (None, 14, 14, 16)   82960       re_lu_37[0][0]                   
__________________________________________________________________________________________________
dropout_37 (Dropout)            (None, 14, 14, 16)   0           conv2d_38[0][0]                  
__________________________________________________________________________________________________
concatenate_37 (Concatenate)    (None, 14, 14, 592)  0           concatenate_36[0][0]             
                                                                 dropout_37[0][0]                 
__________________________________________________________________________________________________
batch_normalization_38 (BatchNo (None, 14, 14, 592)  2368        concatenate_37[0][0]             
__________________________________________________________________________________________________
re_lu_38 (ReLU)                 (None, 14, 14, 592)  0           batch_normalization_38[0][0]     
__________________________________________________________________________________________________
conv2d_39 (Conv2D)              (None, 14, 14, 16)   85264       re_lu_38[0][0]                   
__________________________________________________________________________________________________
dropout_38 (Dropout)            (None, 14, 14, 16)   0           conv2d_39[0][0]                  
__________________________________________________________________________________________________
concatenate_38 (Concatenate)    (None, 14, 14, 608)  0           concatenate_37[0][0]             
                                                                 dropout_38[0][0]                 
__________________________________________________________________________________________________
batch_normalization_39 (BatchNo (None, 14, 14, 608)  2432        concatenate_38[0][0]             
__________________________________________________________________________________________________
re_lu_39 (ReLU)                 (None, 14, 14, 608)  0           batch_normalization_39[0][0]     
__________________________________________________________________________________________________
conv2d_40 (Conv2D)              (None, 14, 14, 16)   87568       re_lu_39[0][0]                   
__________________________________________________________________________________________________
dropout_39 (Dropout)            (None, 14, 14, 16)   0           conv2d_40[0][0]                  
__________________________________________________________________________________________________
concatenate_39 (Concatenate)    (None, 14, 14, 624)  0           concatenate_38[0][0]             
                                                                 dropout_39[0][0]                 
__________________________________________________________________________________________________
batch_normalization_40 (BatchNo (None, 14, 14, 624)  2496        concatenate_39[0][0]             
__________________________________________________________________________________________________
re_lu_40 (ReLU)                 (None, 14, 14, 624)  0           batch_normalization_40[0][0]     
__________________________________________________________________________________________________
conv2d_41 (Conv2D)              (None, 14, 14, 16)   89872       re_lu_40[0][0]                   
__________________________________________________________________________________________________
dropout_40 (Dropout)            (None, 14, 14, 16)   0           conv2d_41[0][0]                  
__________________________________________________________________________________________________
concatenate_40 (Concatenate)    (None, 14, 14, 640)  0           concatenate_39[0][0]             
                                                                 dropout_40[0][0]                 
__________________________________________________________________________________________________
batch_normalization_41 (BatchNo (None, 14, 14, 640)  2560        concatenate_40[0][0]             
__________________________________________________________________________________________________
re_lu_41 (ReLU)                 (None, 14, 14, 640)  0           batch_normalization_41[0][0]     
__________________________________________________________________________________________________
conv2d_42 (Conv2D)              (None, 14, 14, 16)   92176       re_lu_41[0][0]                   
__________________________________________________________________________________________________
dropout_41 (Dropout)            (None, 14, 14, 16)   0           conv2d_42[0][0]                  
__________________________________________________________________________________________________
concatenate_41 (Concatenate)    (None, 14, 14, 192)  0           dropout_41[0][0]                 
                                                                 dropout_40[0][0]                 
                                                                 dropout_39[0][0]                 
                                                                 dropout_38[0][0]                 
                                                                 dropout_37[0][0]                 
                                                                 dropout_36[0][0]                 
                                                                 dropout_35[0][0]                 
                                                                 dropout_34[0][0]                 
                                                                 dropout_33[0][0]                 
                                                                 dropout_32[0][0]                 
                                                                 dropout_31[0][0]                 
                                                                 dropout_30[0][0]                 
__________________________________________________________________________________________________
concatenate_42 (Concatenate)    (None, 14, 14, 656)  0           concatenate_41[0][0]             
                                                                 max_pooling2d_3[0][0]            
__________________________________________________________________________________________________
batch_normalization_42 (BatchNo (None, 14, 14, 656)  2624        concatenate_42[0][0]             
__________________________________________________________________________________________________
re_lu_42 (ReLU)                 (None, 14, 14, 656)  0           batch_normalization_42[0][0]     
__________________________________________________________________________________________________
conv2d_43 (Conv2D)              (None, 14, 14, 656)  430992      re_lu_42[0][0]                   
__________________________________________________________________________________________________
dropout_42 (Dropout)            (None, 14, 14, 656)  0           conv2d_43[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_4 (MaxPooling2D)  (None, 7, 7, 656)    0           dropout_42[0][0]                 
__________________________________________________________________________________________________
batch_normalization_43 (BatchNo (None, 7, 7, 656)    2624        max_pooling2d_4[0][0]            
__________________________________________________________________________________________________
re_lu_43 (ReLU)                 (None, 7, 7, 656)    0           batch_normalization_43[0][0]     
__________________________________________________________________________________________________
conv2d_44 (Conv2D)              (None, 7, 7, 16)     94480       re_lu_43[0][0]                   
__________________________________________________________________________________________________
dropout_43 (Dropout)            (None, 7, 7, 16)     0           conv2d_44[0][0]                  
__________________________________________________________________________________________________
concatenate_43 (Concatenate)    (None, 7, 7, 672)    0           max_pooling2d_4[0][0]            
                                                                 dropout_43[0][0]                 
__________________________________________________________________________________________________
batch_normalization_44 (BatchNo (None, 7, 7, 672)    2688        concatenate_43[0][0]             
__________________________________________________________________________________________________
re_lu_44 (ReLU)                 (None, 7, 7, 672)    0           batch_normalization_44[0][0]     
__________________________________________________________________________________________________
conv2d_45 (Conv2D)              (None, 7, 7, 16)     96784       re_lu_44[0][0]                   
__________________________________________________________________________________________________
dropout_44 (Dropout)            (None, 7, 7, 16)     0           conv2d_45[0][0]                  
__________________________________________________________________________________________________
concatenate_44 (Concatenate)    (None, 7, 7, 688)    0           concatenate_43[0][0]             
                                                                 dropout_44[0][0]                 
__________________________________________________________________________________________________
batch_normalization_45 (BatchNo (None, 7, 7, 688)    2752        concatenate_44[0][0]             
__________________________________________________________________________________________________
re_lu_45 (ReLU)                 (None, 7, 7, 688)    0           batch_normalization_45[0][0]     
__________________________________________________________________________________________________
conv2d_46 (Conv2D)              (None, 7, 7, 16)     99088       re_lu_45[0][0]                   
__________________________________________________________________________________________________
dropout_45 (Dropout)            (None, 7, 7, 16)     0           conv2d_46[0][0]                  
__________________________________________________________________________________________________
concatenate_45 (Concatenate)    (None, 7, 7, 704)    0           concatenate_44[0][0]             
                                                                 dropout_45[0][0]                 
__________________________________________________________________________________________________
batch_normalization_46 (BatchNo (None, 7, 7, 704)    2816        concatenate_45[0][0]             
__________________________________________________________________________________________________
re_lu_46 (ReLU)                 (None, 7, 7, 704)    0           batch_normalization_46[0][0]     
__________________________________________________________________________________________________
conv2d_47 (Conv2D)              (None, 7, 7, 16)     101392      re_lu_46[0][0]                   
__________________________________________________________________________________________________
dropout_46 (Dropout)            (None, 7, 7, 16)     0           conv2d_47[0][0]                  
__________________________________________________________________________________________________
concatenate_46 (Concatenate)    (None, 7, 7, 720)    0           concatenate_45[0][0]             
                                                                 dropout_46[0][0]                 
__________________________________________________________________________________________________
batch_normalization_47 (BatchNo (None, 7, 7, 720)    2880        concatenate_46[0][0]             
__________________________________________________________________________________________________
re_lu_47 (ReLU)                 (None, 7, 7, 720)    0           batch_normalization_47[0][0]     
__________________________________________________________________________________________________
conv2d_48 (Conv2D)              (None, 7, 7, 16)     103696      re_lu_47[0][0]                   
__________________________________________________________________________________________________
dropout_47 (Dropout)            (None, 7, 7, 16)     0           conv2d_48[0][0]                  
__________________________________________________________________________________________________
concatenate_47 (Concatenate)    (None, 7, 7, 736)    0           concatenate_46[0][0]             
                                                                 dropout_47[0][0]                 
__________________________________________________________________________________________________
batch_normalization_48 (BatchNo (None, 7, 7, 736)    2944        concatenate_47[0][0]             
__________________________________________________________________________________________________
re_lu_48 (ReLU)                 (None, 7, 7, 736)    0           batch_normalization_48[0][0]     
__________________________________________________________________________________________________
conv2d_49 (Conv2D)              (None, 7, 7, 16)     106000      re_lu_48[0][0]                   
__________________________________________________________________________________________________
dropout_48 (Dropout)            (None, 7, 7, 16)     0           conv2d_49[0][0]                  
__________________________________________________________________________________________________
concatenate_48 (Concatenate)    (None, 7, 7, 752)    0           concatenate_47[0][0]             
                                                                 dropout_48[0][0]                 
__________________________________________________________________________________________________
batch_normalization_49 (BatchNo (None, 7, 7, 752)    3008        concatenate_48[0][0]             
__________________________________________________________________________________________________
re_lu_49 (ReLU)                 (None, 7, 7, 752)    0           batch_normalization_49[0][0]     
__________________________________________________________________________________________________
conv2d_50 (Conv2D)              (None, 7, 7, 16)     108304      re_lu_49[0][0]                   
__________________________________________________________________________________________________
dropout_49 (Dropout)            (None, 7, 7, 16)     0           conv2d_50[0][0]                  
__________________________________________________________________________________________________
concatenate_49 (Concatenate)    (None, 7, 7, 768)    0           concatenate_48[0][0]             
                                                                 dropout_49[0][0]                 
__________________________________________________________________________________________________
batch_normalization_50 (BatchNo (None, 7, 7, 768)    3072        concatenate_49[0][0]             
__________________________________________________________________________________________________
re_lu_50 (ReLU)                 (None, 7, 7, 768)    0           batch_normalization_50[0][0]     
__________________________________________________________________________________________________
conv2d_51 (Conv2D)              (None, 7, 7, 16)     110608      re_lu_50[0][0]                   
__________________________________________________________________________________________________
dropout_50 (Dropout)            (None, 7, 7, 16)     0           conv2d_51[0][0]                  
__________________________________________________________________________________________________
concatenate_50 (Concatenate)    (None, 7, 7, 784)    0           concatenate_49[0][0]             
                                                                 dropout_50[0][0]                 
__________________________________________________________________________________________________
batch_normalization_51 (BatchNo (None, 7, 7, 784)    3136        concatenate_50[0][0]             
__________________________________________________________________________________________________
re_lu_51 (ReLU)                 (None, 7, 7, 784)    0           batch_normalization_51[0][0]     
__________________________________________________________________________________________________
conv2d_52 (Conv2D)              (None, 7, 7, 16)     112912      re_lu_51[0][0]                   
__________________________________________________________________________________________________
dropout_51 (Dropout)            (None, 7, 7, 16)     0           conv2d_52[0][0]                  
__________________________________________________________________________________________________
concatenate_51 (Concatenate)    (None, 7, 7, 800)    0           concatenate_50[0][0]             
                                                                 dropout_51[0][0]                 
__________________________________________________________________________________________________
batch_normalization_52 (BatchNo (None, 7, 7, 800)    3200        concatenate_51[0][0]             
__________________________________________________________________________________________________
re_lu_52 (ReLU)                 (None, 7, 7, 800)    0           batch_normalization_52[0][0]     
__________________________________________________________________________________________________
conv2d_53 (Conv2D)              (None, 7, 7, 16)     115216      re_lu_52[0][0]                   
__________________________________________________________________________________________________
dropout_52 (Dropout)            (None, 7, 7, 16)     0           conv2d_53[0][0]                  
__________________________________________________________________________________________________
concatenate_52 (Concatenate)    (None, 7, 7, 816)    0           concatenate_51[0][0]             
                                                                 dropout_52[0][0]                 
__________________________________________________________________________________________________
batch_normalization_53 (BatchNo (None, 7, 7, 816)    3264        concatenate_52[0][0]             
__________________________________________________________________________________________________
re_lu_53 (ReLU)                 (None, 7, 7, 816)    0           batch_normalization_53[0][0]     
__________________________________________________________________________________________________
conv2d_54 (Conv2D)              (None, 7, 7, 16)     117520      re_lu_53[0][0]                   
__________________________________________________________________________________________________
dropout_53 (Dropout)            (None, 7, 7, 16)     0           conv2d_54[0][0]                  
__________________________________________________________________________________________________
concatenate_53 (Concatenate)    (None, 7, 7, 832)    0           concatenate_52[0][0]             
                                                                 dropout_53[0][0]                 
__________________________________________________________________________________________________
batch_normalization_54 (BatchNo (None, 7, 7, 832)    3328        concatenate_53[0][0]             
__________________________________________________________________________________________________
re_lu_54 (ReLU)                 (None, 7, 7, 832)    0           batch_normalization_54[0][0]     
__________________________________________________________________________________________________
conv2d_55 (Conv2D)              (None, 7, 7, 16)     119824      re_lu_54[0][0]                   
__________________________________________________________________________________________________
dropout_54 (Dropout)            (None, 7, 7, 16)     0           conv2d_55[0][0]                  
__________________________________________________________________________________________________
concatenate_54 (Concatenate)    (None, 7, 7, 848)    0           concatenate_53[0][0]             
                                                                 dropout_54[0][0]                 
__________________________________________________________________________________________________
batch_normalization_55 (BatchNo (None, 7, 7, 848)    3392        concatenate_54[0][0]             
__________________________________________________________________________________________________
re_lu_55 (ReLU)                 (None, 7, 7, 848)    0           batch_normalization_55[0][0]     
__________________________________________________________________________________________________
conv2d_56 (Conv2D)              (None, 7, 7, 16)     122128      re_lu_55[0][0]                   
__________________________________________________________________________________________________
dropout_55 (Dropout)            (None, 7, 7, 16)     0           conv2d_56[0][0]                  
__________________________________________________________________________________________________
concatenate_55 (Concatenate)    (None, 7, 7, 864)    0           concatenate_54[0][0]             
                                                                 dropout_55[0][0]                 
__________________________________________________________________________________________________
batch_normalization_56 (BatchNo (None, 7, 7, 864)    3456        concatenate_55[0][0]             
__________________________________________________________________________________________________
re_lu_56 (ReLU)                 (None, 7, 7, 864)    0           batch_normalization_56[0][0]     
__________________________________________________________________________________________________
conv2d_57 (Conv2D)              (None, 7, 7, 16)     124432      re_lu_56[0][0]                   
__________________________________________________________________________________________________
dropout_56 (Dropout)            (None, 7, 7, 16)     0           conv2d_57[0][0]                  
__________________________________________________________________________________________________
concatenate_56 (Concatenate)    (None, 7, 7, 880)    0           concatenate_55[0][0]             
                                                                 dropout_56[0][0]                 
__________________________________________________________________________________________________
batch_normalization_57 (BatchNo (None, 7, 7, 880)    3520        concatenate_56[0][0]             
__________________________________________________________________________________________________
re_lu_57 (ReLU)                 (None, 7, 7, 880)    0           batch_normalization_57[0][0]     
__________________________________________________________________________________________________
conv2d_58 (Conv2D)              (None, 7, 7, 16)     126736      re_lu_57[0][0]                   
__________________________________________________________________________________________________
dropout_57 (Dropout)            (None, 7, 7, 16)     0           conv2d_58[0][0]                  
__________________________________________________________________________________________________
concatenate_57 (Concatenate)    (None, 7, 7, 240)    0           dropout_57[0][0]                 
                                                                 dropout_56[0][0]                 
                                                                 dropout_55[0][0]                 
                                                                 dropout_54[0][0]                 
                                                                 dropout_53[0][0]                 
                                                                 dropout_52[0][0]                 
                                                                 dropout_51[0][0]                 
                                                                 dropout_50[0][0]                 
                                                                 dropout_49[0][0]                 
                                                                 dropout_48[0][0]                 
                                                                 dropout_47[0][0]                 
                                                                 dropout_46[0][0]                 
                                                                 dropout_45[0][0]                 
                                                                 dropout_44[0][0]                 
                                                                 dropout_43[0][0]                 
__________________________________________________________________________________________________
conv2d_transpose (Conv2DTranspo (None, 14, 14, 240)  518640      concatenate_57[0][0]             
__________________________________________________________________________________________________
concatenate_58 (Concatenate)    (None, 14, 14, 896)  0           conv2d_transpose[0][0]           
                                                                 concatenate_42[0][0]             
__________________________________________________________________________________________________
batch_normalization_58 (BatchNo (None, 14, 14, 896)  3584        concatenate_58[0][0]             
__________________________________________________________________________________________________
re_lu_58 (ReLU)                 (None, 14, 14, 896)  0           batch_normalization_58[0][0]     
__________________________________________________________________________________________________
conv2d_59 (Conv2D)              (None, 14, 14, 16)   129040      re_lu_58[0][0]                   
__________________________________________________________________________________________________
dropout_58 (Dropout)            (None, 14, 14, 16)   0           conv2d_59[0][0]                  
__________________________________________________________________________________________________
concatenate_59 (Concatenate)    (None, 14, 14, 912)  0           concatenate_58[0][0]             
                                                                 dropout_58[0][0]                 
__________________________________________________________________________________________________
batch_normalization_59 (BatchNo (None, 14, 14, 912)  3648        concatenate_59[0][0]             
__________________________________________________________________________________________________
re_lu_59 (ReLU)                 (None, 14, 14, 912)  0           batch_normalization_59[0][0]     
__________________________________________________________________________________________________
conv2d_60 (Conv2D)              (None, 14, 14, 16)   131344      re_lu_59[0][0]                   
__________________________________________________________________________________________________
dropout_59 (Dropout)            (None, 14, 14, 16)   0           conv2d_60[0][0]                  
__________________________________________________________________________________________________
concatenate_60 (Concatenate)    (None, 14, 14, 928)  0           concatenate_59[0][0]             
                                                                 dropout_59[0][0]                 
__________________________________________________________________________________________________
batch_normalization_60 (BatchNo (None, 14, 14, 928)  3712        concatenate_60[0][0]             
__________________________________________________________________________________________________
re_lu_60 (ReLU)                 (None, 14, 14, 928)  0           batch_normalization_60[0][0]     
__________________________________________________________________________________________________
conv2d_61 (Conv2D)              (None, 14, 14, 16)   133648      re_lu_60[0][0]                   
__________________________________________________________________________________________________
dropout_60 (Dropout)            (None, 14, 14, 16)   0           conv2d_61[0][0]                  
__________________________________________________________________________________________________
concatenate_61 (Concatenate)    (None, 14, 14, 944)  0           concatenate_60[0][0]             
                                                                 dropout_60[0][0]                 
__________________________________________________________________________________________________
batch_normalization_61 (BatchNo (None, 14, 14, 944)  3776        concatenate_61[0][0]             
__________________________________________________________________________________________________
re_lu_61 (ReLU)                 (None, 14, 14, 944)  0           batch_normalization_61[0][0]     
__________________________________________________________________________________________________
conv2d_62 (Conv2D)              (None, 14, 14, 16)   135952      re_lu_61[0][0]                   
__________________________________________________________________________________________________
dropout_61 (Dropout)            (None, 14, 14, 16)   0           conv2d_62[0][0]                  
__________________________________________________________________________________________________
concatenate_62 (Concatenate)    (None, 14, 14, 960)  0           concatenate_61[0][0]             
                                                                 dropout_61[0][0]                 
__________________________________________________________________________________________________
batch_normalization_62 (BatchNo (None, 14, 14, 960)  3840        concatenate_62[0][0]             
__________________________________________________________________________________________________
re_lu_62 (ReLU)                 (None, 14, 14, 960)  0           batch_normalization_62[0][0]     
__________________________________________________________________________________________________
conv2d_63 (Conv2D)              (None, 14, 14, 16)   138256      re_lu_62[0][0]                   
__________________________________________________________________________________________________
dropout_62 (Dropout)            (None, 14, 14, 16)   0           conv2d_63[0][0]                  
__________________________________________________________________________________________________
concatenate_63 (Concatenate)    (None, 14, 14, 976)  0           concatenate_62[0][0]             
                                                                 dropout_62[0][0]                 
__________________________________________________________________________________________________
batch_normalization_63 (BatchNo (None, 14, 14, 976)  3904        concatenate_63[0][0]             
__________________________________________________________________________________________________
re_lu_63 (ReLU)                 (None, 14, 14, 976)  0           batch_normalization_63[0][0]     
__________________________________________________________________________________________________
conv2d_64 (Conv2D)              (None, 14, 14, 16)   140560      re_lu_63[0][0]                   
__________________________________________________________________________________________________
dropout_63 (Dropout)            (None, 14, 14, 16)   0           conv2d_64[0][0]                  
__________________________________________________________________________________________________
concatenate_64 (Concatenate)    (None, 14, 14, 992)  0           concatenate_63[0][0]             
                                                                 dropout_63[0][0]                 
__________________________________________________________________________________________________
batch_normalization_64 (BatchNo (None, 14, 14, 992)  3968        concatenate_64[0][0]             
__________________________________________________________________________________________________
re_lu_64 (ReLU)                 (None, 14, 14, 992)  0           batch_normalization_64[0][0]     
__________________________________________________________________________________________________
conv2d_65 (Conv2D)              (None, 14, 14, 16)   142864      re_lu_64[0][0]                   
__________________________________________________________________________________________________
dropout_64 (Dropout)            (None, 14, 14, 16)   0           conv2d_65[0][0]                  
__________________________________________________________________________________________________
concatenate_65 (Concatenate)    (None, 14, 14, 1008) 0           concatenate_64[0][0]             
                                                                 dropout_64[0][0]                 
__________________________________________________________________________________________________
batch_normalization_65 (BatchNo (None, 14, 14, 1008) 4032        concatenate_65[0][0]             
__________________________________________________________________________________________________
re_lu_65 (ReLU)                 (None, 14, 14, 1008) 0           batch_normalization_65[0][0]     
__________________________________________________________________________________________________
conv2d_66 (Conv2D)              (None, 14, 14, 16)   145168      re_lu_65[0][0]                   
__________________________________________________________________________________________________
dropout_65 (Dropout)            (None, 14, 14, 16)   0           conv2d_66[0][0]                  
__________________________________________________________________________________________________
concatenate_66 (Concatenate)    (None, 14, 14, 1024) 0           concatenate_65[0][0]             
                                                                 dropout_65[0][0]                 
__________________________________________________________________________________________________
batch_normalization_66 (BatchNo (None, 14, 14, 1024) 4096        concatenate_66[0][0]             
__________________________________________________________________________________________________
re_lu_66 (ReLU)                 (None, 14, 14, 1024) 0           batch_normalization_66[0][0]     
__________________________________________________________________________________________________
conv2d_67 (Conv2D)              (None, 14, 14, 16)   147472      re_lu_66[0][0]                   
__________________________________________________________________________________________________
dropout_66 (Dropout)            (None, 14, 14, 16)   0           conv2d_67[0][0]                  
__________________________________________________________________________________________________
concatenate_67 (Concatenate)    (None, 14, 14, 1040) 0           concatenate_66[0][0]             
                                                                 dropout_66[0][0]                 
__________________________________________________________________________________________________
batch_normalization_67 (BatchNo (None, 14, 14, 1040) 4160        concatenate_67[0][0]             
__________________________________________________________________________________________________
re_lu_67 (ReLU)                 (None, 14, 14, 1040) 0           batch_normalization_67[0][0]     
__________________________________________________________________________________________________
conv2d_68 (Conv2D)              (None, 14, 14, 16)   149776      re_lu_67[0][0]                   
__________________________________________________________________________________________________
dropout_67 (Dropout)            (None, 14, 14, 16)   0           conv2d_68[0][0]                  
__________________________________________________________________________________________________
concatenate_68 (Concatenate)    (None, 14, 14, 1056) 0           concatenate_67[0][0]             
                                                                 dropout_67[0][0]                 
__________________________________________________________________________________________________
batch_normalization_68 (BatchNo (None, 14, 14, 1056) 4224        concatenate_68[0][0]             
__________________________________________________________________________________________________
re_lu_68 (ReLU)                 (None, 14, 14, 1056) 0           batch_normalization_68[0][0]     
__________________________________________________________________________________________________
conv2d_69 (Conv2D)              (None, 14, 14, 16)   152080      re_lu_68[0][0]                   
__________________________________________________________________________________________________
dropout_68 (Dropout)            (None, 14, 14, 16)   0           conv2d_69[0][0]                  
__________________________________________________________________________________________________
concatenate_69 (Concatenate)    (None, 14, 14, 1072) 0           concatenate_68[0][0]             
                                                                 dropout_68[0][0]                 
__________________________________________________________________________________________________
batch_normalization_69 (BatchNo (None, 14, 14, 1072) 4288        concatenate_69[0][0]             
__________________________________________________________________________________________________
re_lu_69 (ReLU)                 (None, 14, 14, 1072) 0           batch_normalization_69[0][0]     
__________________________________________________________________________________________________
conv2d_70 (Conv2D)              (None, 14, 14, 16)   154384      re_lu_69[0][0]                   
__________________________________________________________________________________________________
dropout_69 (Dropout)            (None, 14, 14, 16)   0           conv2d_70[0][0]                  
__________________________________________________________________________________________________
concatenate_70 (Concatenate)    (None, 14, 14, 192)  0           dropout_69[0][0]                 
                                                                 dropout_68[0][0]                 
                                                                 dropout_67[0][0]                 
                                                                 dropout_66[0][0]                 
                                                                 dropout_65[0][0]                 
                                                                 dropout_64[0][0]                 
                                                                 dropout_63[0][0]                 
                                                                 dropout_62[0][0]                 
                                                                 dropout_61[0][0]                 
                                                                 dropout_60[0][0]                 
                                                                 dropout_59[0][0]                 
                                                                 dropout_58[0][0]                 
__________________________________________________________________________________________________
conv2d_transpose_1 (Conv2DTrans (None, 28, 28, 192)  331968      concatenate_70[0][0]             
__________________________________________________________________________________________________
concatenate_71 (Concatenate)    (None, 28, 28, 656)  0           conv2d_transpose_1[0][0]         
                                                                 concatenate_29[0][0]             
__________________________________________________________________________________________________
batch_normalization_70 (BatchNo (None, 28, 28, 656)  2624        concatenate_71[0][0]             
__________________________________________________________________________________________________
re_lu_70 (ReLU)                 (None, 28, 28, 656)  0           batch_normalization_70[0][0]     
__________________________________________________________________________________________________
conv2d_71 (Conv2D)              (None, 28, 28, 16)   94480       re_lu_70[0][0]                   
__________________________________________________________________________________________________
dropout_70 (Dropout)            (None, 28, 28, 16)   0           conv2d_71[0][0]                  
__________________________________________________________________________________________________
concatenate_72 (Concatenate)    (None, 28, 28, 672)  0           concatenate_71[0][0]             
                                                                 dropout_70[0][0]                 
__________________________________________________________________________________________________
batch_normalization_71 (BatchNo (None, 28, 28, 672)  2688        concatenate_72[0][0]             
__________________________________________________________________________________________________
re_lu_71 (ReLU)                 (None, 28, 28, 672)  0           batch_normalization_71[0][0]     
__________________________________________________________________________________________________
conv2d_72 (Conv2D)              (None, 28, 28, 16)   96784       re_lu_71[0][0]                   
__________________________________________________________________________________________________
dropout_71 (Dropout)            (None, 28, 28, 16)   0           conv2d_72[0][0]                  
__________________________________________________________________________________________________
concatenate_73 (Concatenate)    (None, 28, 28, 688)  0           concatenate_72[0][0]             
                                                                 dropout_71[0][0]                 
__________________________________________________________________________________________________
batch_normalization_72 (BatchNo (None, 28, 28, 688)  2752        concatenate_73[0][0]             
__________________________________________________________________________________________________
re_lu_72 (ReLU)                 (None, 28, 28, 688)  0           batch_normalization_72[0][0]     
__________________________________________________________________________________________________
conv2d_73 (Conv2D)              (None, 28, 28, 16)   99088       re_lu_72[0][0]                   
__________________________________________________________________________________________________
dropout_72 (Dropout)            (None, 28, 28, 16)   0           conv2d_73[0][0]                  
__________________________________________________________________________________________________
concatenate_74 (Concatenate)    (None, 28, 28, 704)  0           concatenate_73[0][0]             
                                                                 dropout_72[0][0]                 
__________________________________________________________________________________________________
batch_normalization_73 (BatchNo (None, 28, 28, 704)  2816        concatenate_74[0][0]             
__________________________________________________________________________________________________
re_lu_73 (ReLU)                 (None, 28, 28, 704)  0           batch_normalization_73[0][0]     
__________________________________________________________________________________________________
conv2d_74 (Conv2D)              (None, 28, 28, 16)   101392      re_lu_73[0][0]                   
__________________________________________________________________________________________________
dropout_73 (Dropout)            (None, 28, 28, 16)   0           conv2d_74[0][0]                  
__________________________________________________________________________________________________
concatenate_75 (Concatenate)    (None, 28, 28, 720)  0           concatenate_74[0][0]             
                                                                 dropout_73[0][0]                 
__________________________________________________________________________________________________
batch_normalization_74 (BatchNo (None, 28, 28, 720)  2880        concatenate_75[0][0]             
__________________________________________________________________________________________________
re_lu_74 (ReLU)                 (None, 28, 28, 720)  0           batch_normalization_74[0][0]     
__________________________________________________________________________________________________
conv2d_75 (Conv2D)              (None, 28, 28, 16)   103696      re_lu_74[0][0]                   
__________________________________________________________________________________________________
dropout_74 (Dropout)            (None, 28, 28, 16)   0           conv2d_75[0][0]                  
__________________________________________________________________________________________________
concatenate_76 (Concatenate)    (None, 28, 28, 736)  0           concatenate_75[0][0]             
                                                                 dropout_74[0][0]                 
__________________________________________________________________________________________________
batch_normalization_75 (BatchNo (None, 28, 28, 736)  2944        concatenate_76[0][0]             
__________________________________________________________________________________________________
re_lu_75 (ReLU)                 (None, 28, 28, 736)  0           batch_normalization_75[0][0]     
__________________________________________________________________________________________________
conv2d_76 (Conv2D)              (None, 28, 28, 16)   106000      re_lu_75[0][0]                   
__________________________________________________________________________________________________
dropout_75 (Dropout)            (None, 28, 28, 16)   0           conv2d_76[0][0]                  
__________________________________________________________________________________________________
concatenate_77 (Concatenate)    (None, 28, 28, 752)  0           concatenate_76[0][0]             
                                                                 dropout_75[0][0]                 
__________________________________________________________________________________________________
batch_normalization_76 (BatchNo (None, 28, 28, 752)  3008        concatenate_77[0][0]             
__________________________________________________________________________________________________
re_lu_76 (ReLU)                 (None, 28, 28, 752)  0           batch_normalization_76[0][0]     
__________________________________________________________________________________________________
conv2d_77 (Conv2D)              (None, 28, 28, 16)   108304      re_lu_76[0][0]                   
__________________________________________________________________________________________________
dropout_76 (Dropout)            (None, 28, 28, 16)   0           conv2d_77[0][0]                  
__________________________________________________________________________________________________
concatenate_78 (Concatenate)    (None, 28, 28, 768)  0           concatenate_77[0][0]             
                                                                 dropout_76[0][0]                 
__________________________________________________________________________________________________
batch_normalization_77 (BatchNo (None, 28, 28, 768)  3072        concatenate_78[0][0]             
__________________________________________________________________________________________________
re_lu_77 (ReLU)                 (None, 28, 28, 768)  0           batch_normalization_77[0][0]     
__________________________________________________________________________________________________
conv2d_78 (Conv2D)              (None, 28, 28, 16)   110608      re_lu_77[0][0]                   
__________________________________________________________________________________________________
dropout_77 (Dropout)            (None, 28, 28, 16)   0           conv2d_78[0][0]                  
__________________________________________________________________________________________________
concatenate_79 (Concatenate)    (None, 28, 28, 784)  0           concatenate_78[0][0]             
                                                                 dropout_77[0][0]                 
__________________________________________________________________________________________________
batch_normalization_78 (BatchNo (None, 28, 28, 784)  3136        concatenate_79[0][0]             
__________________________________________________________________________________________________
re_lu_78 (ReLU)                 (None, 28, 28, 784)  0           batch_normalization_78[0][0]     
__________________________________________________________________________________________________
conv2d_79 (Conv2D)              (None, 28, 28, 16)   112912      re_lu_78[0][0]                   
__________________________________________________________________________________________________
dropout_78 (Dropout)            (None, 28, 28, 16)   0           conv2d_79[0][0]                  
__________________________________________________________________________________________________
concatenate_80 (Concatenate)    (None, 28, 28, 800)  0           concatenate_79[0][0]             
                                                                 dropout_78[0][0]                 
__________________________________________________________________________________________________
batch_normalization_79 (BatchNo (None, 28, 28, 800)  3200        concatenate_80[0][0]             
__________________________________________________________________________________________________
re_lu_79 (ReLU)                 (None, 28, 28, 800)  0           batch_normalization_79[0][0]     
__________________________________________________________________________________________________
conv2d_80 (Conv2D)              (None, 28, 28, 16)   115216      re_lu_79[0][0]                   
__________________________________________________________________________________________________
dropout_79 (Dropout)            (None, 28, 28, 16)   0           conv2d_80[0][0]                  
__________________________________________________________________________________________________
concatenate_81 (Concatenate)    (None, 28, 28, 160)  0           dropout_79[0][0]                 
                                                                 dropout_78[0][0]                 
                                                                 dropout_77[0][0]                 
                                                                 dropout_76[0][0]                 
                                                                 dropout_75[0][0]                 
                                                                 dropout_74[0][0]                 
                                                                 dropout_73[0][0]                 
                                                                 dropout_72[0][0]                 
                                                                 dropout_71[0][0]                 
                                                                 dropout_70[0][0]                 
__________________________________________________________________________________________________
conv2d_transpose_2 (Conv2DTrans (None, 56, 56, 160)  230560      concatenate_81[0][0]             
__________________________________________________________________________________________________
concatenate_82 (Concatenate)    (None, 56, 56, 464)  0           conv2d_transpose_2[0][0]         
                                                                 concatenate_18[0][0]             
__________________________________________________________________________________________________
batch_normalization_80 (BatchNo (None, 56, 56, 464)  1856        concatenate_82[0][0]             
__________________________________________________________________________________________________
re_lu_80 (ReLU)                 (None, 56, 56, 464)  0           batch_normalization_80[0][0]     
__________________________________________________________________________________________________
conv2d_81 (Conv2D)              (None, 56, 56, 16)   66832       re_lu_80[0][0]                   
__________________________________________________________________________________________________
dropout_80 (Dropout)            (None, 56, 56, 16)   0           conv2d_81[0][0]                  
__________________________________________________________________________________________________
concatenate_83 (Concatenate)    (None, 56, 56, 480)  0           concatenate_82[0][0]             
                                                                 dropout_80[0][0]                 
__________________________________________________________________________________________________
batch_normalization_81 (BatchNo (None, 56, 56, 480)  1920        concatenate_83[0][0]             
__________________________________________________________________________________________________
re_lu_81 (ReLU)                 (None, 56, 56, 480)  0           batch_normalization_81[0][0]     
__________________________________________________________________________________________________
conv2d_82 (Conv2D)              (None, 56, 56, 16)   69136       re_lu_81[0][0]                   
__________________________________________________________________________________________________
dropout_81 (Dropout)            (None, 56, 56, 16)   0           conv2d_82[0][0]                  
__________________________________________________________________________________________________
concatenate_84 (Concatenate)    (None, 56, 56, 496)  0           concatenate_83[0][0]             
                                                                 dropout_81[0][0]                 
__________________________________________________________________________________________________
batch_normalization_82 (BatchNo (None, 56, 56, 496)  1984        concatenate_84[0][0]             
__________________________________________________________________________________________________
re_lu_82 (ReLU)                 (None, 56, 56, 496)  0           batch_normalization_82[0][0]     
__________________________________________________________________________________________________
conv2d_83 (Conv2D)              (None, 56, 56, 16)   71440       re_lu_82[0][0]                   
__________________________________________________________________________________________________
dropout_82 (Dropout)            (None, 56, 56, 16)   0           conv2d_83[0][0]                  
__________________________________________________________________________________________________
concatenate_85 (Concatenate)    (None, 56, 56, 512)  0           concatenate_84[0][0]             
                                                                 dropout_82[0][0]                 
__________________________________________________________________________________________________
batch_normalization_83 (BatchNo (None, 56, 56, 512)  2048        concatenate_85[0][0]             
__________________________________________________________________________________________________
re_lu_83 (ReLU)                 (None, 56, 56, 512)  0           batch_normalization_83[0][0]     
__________________________________________________________________________________________________
conv2d_84 (Conv2D)              (None, 56, 56, 16)   73744       re_lu_83[0][0]                   
__________________________________________________________________________________________________
dropout_83 (Dropout)            (None, 56, 56, 16)   0           conv2d_84[0][0]                  
__________________________________________________________________________________________________
concatenate_86 (Concatenate)    (None, 56, 56, 528)  0           concatenate_85[0][0]             
                                                                 dropout_83[0][0]                 
__________________________________________________________________________________________________
batch_normalization_84 (BatchNo (None, 56, 56, 528)  2112        concatenate_86[0][0]             
__________________________________________________________________________________________________
re_lu_84 (ReLU)                 (None, 56, 56, 528)  0           batch_normalization_84[0][0]     
__________________________________________________________________________________________________
conv2d_85 (Conv2D)              (None, 56, 56, 16)   76048       re_lu_84[0][0]                   
__________________________________________________________________________________________________
dropout_84 (Dropout)            (None, 56, 56, 16)   0           conv2d_85[0][0]                  
__________________________________________________________________________________________________
concatenate_87 (Concatenate)    (None, 56, 56, 544)  0           concatenate_86[0][0]             
                                                                 dropout_84[0][0]                 
__________________________________________________________________________________________________
batch_normalization_85 (BatchNo (None, 56, 56, 544)  2176        concatenate_87[0][0]             
__________________________________________________________________________________________________
re_lu_85 (ReLU)                 (None, 56, 56, 544)  0           batch_normalization_85[0][0]     
__________________________________________________________________________________________________
conv2d_86 (Conv2D)              (None, 56, 56, 16)   78352       re_lu_85[0][0]                   
__________________________________________________________________________________________________
dropout_85 (Dropout)            (None, 56, 56, 16)   0           conv2d_86[0][0]                  
__________________________________________________________________________________________________
concatenate_88 (Concatenate)    (None, 56, 56, 560)  0           concatenate_87[0][0]             
                                                                 dropout_85[0][0]                 
__________________________________________________________________________________________________
batch_normalization_86 (BatchNo (None, 56, 56, 560)  2240        concatenate_88[0][0]             
__________________________________________________________________________________________________
re_lu_86 (ReLU)                 (None, 56, 56, 560)  0           batch_normalization_86[0][0]     
__________________________________________________________________________________________________
conv2d_87 (Conv2D)              (None, 56, 56, 16)   80656       re_lu_86[0][0]                   
__________________________________________________________________________________________________
dropout_86 (Dropout)            (None, 56, 56, 16)   0           conv2d_87[0][0]                  
__________________________________________________________________________________________________
concatenate_89 (Concatenate)    (None, 56, 56, 112)  0           dropout_86[0][0]                 
                                                                 dropout_85[0][0]                 
                                                                 dropout_84[0][0]                 
                                                                 dropout_83[0][0]                 
                                                                 dropout_82[0][0]                 
                                                                 dropout_81[0][0]                 
                                                                 dropout_80[0][0]                 
__________________________________________________________________________________________________
conv2d_transpose_3 (Conv2DTrans (None, 112, 112, 112 113008      concatenate_89[0][0]             
__________________________________________________________________________________________________
concatenate_90 (Concatenate)    (None, 112, 112, 304 0           conv2d_transpose_3[0][0]         
                                                                 concatenate_10[0][0]             
__________________________________________________________________________________________________
batch_normalization_87 (BatchNo (None, 112, 112, 304 1216        concatenate_90[0][0]             
__________________________________________________________________________________________________
re_lu_87 (ReLU)                 (None, 112, 112, 304 0           batch_normalization_87[0][0]     
__________________________________________________________________________________________________
conv2d_88 (Conv2D)              (None, 112, 112, 16) 43792       re_lu_87[0][0]                   
__________________________________________________________________________________________________
dropout_87 (Dropout)            (None, 112, 112, 16) 0           conv2d_88[0][0]                  
__________________________________________________________________________________________________
concatenate_91 (Concatenate)    (None, 112, 112, 320 0           concatenate_90[0][0]             
                                                                 dropout_87[0][0]                 
__________________________________________________________________________________________________
batch_normalization_88 (BatchNo (None, 112, 112, 320 1280        concatenate_91[0][0]             
__________________________________________________________________________________________________
re_lu_88 (ReLU)                 (None, 112, 112, 320 0           batch_normalization_88[0][0]     
__________________________________________________________________________________________________
conv2d_89 (Conv2D)              (None, 112, 112, 16) 46096       re_lu_88[0][0]                   
__________________________________________________________________________________________________
dropout_88 (Dropout)            (None, 112, 112, 16) 0           conv2d_89[0][0]                  
__________________________________________________________________________________________________
concatenate_92 (Concatenate)    (None, 112, 112, 336 0           concatenate_91[0][0]             
                                                                 dropout_88[0][0]                 
__________________________________________________________________________________________________
batch_normalization_89 (BatchNo (None, 112, 112, 336 1344        concatenate_92[0][0]             
__________________________________________________________________________________________________
re_lu_89 (ReLU)                 (None, 112, 112, 336 0           batch_normalization_89[0][0]     
__________________________________________________________________________________________________
conv2d_90 (Conv2D)              (None, 112, 112, 16) 48400       re_lu_89[0][0]                   
__________________________________________________________________________________________________
dropout_89 (Dropout)            (None, 112, 112, 16) 0           conv2d_90[0][0]                  
__________________________________________________________________________________________________
concatenate_93 (Concatenate)    (None, 112, 112, 352 0           concatenate_92[0][0]             
                                                                 dropout_89[0][0]                 
__________________________________________________________________________________________________
batch_normalization_90 (BatchNo (None, 112, 112, 352 1408        concatenate_93[0][0]             
__________________________________________________________________________________________________
re_lu_90 (ReLU)                 (None, 112, 112, 352 0           batch_normalization_90[0][0]     
__________________________________________________________________________________________________
conv2d_91 (Conv2D)              (None, 112, 112, 16) 50704       re_lu_90[0][0]                   
__________________________________________________________________________________________________
dropout_90 (Dropout)            (None, 112, 112, 16) 0           conv2d_91[0][0]                  
__________________________________________________________________________________________________
concatenate_94 (Concatenate)    (None, 112, 112, 368 0           concatenate_93[0][0]             
                                                                 dropout_90[0][0]                 
__________________________________________________________________________________________________
batch_normalization_91 (BatchNo (None, 112, 112, 368 1472        concatenate_94[0][0]             
__________________________________________________________________________________________________
re_lu_91 (ReLU)                 (None, 112, 112, 368 0           batch_normalization_91[0][0]     
__________________________________________________________________________________________________
conv2d_92 (Conv2D)              (None, 112, 112, 16) 53008       re_lu_91[0][0]                   
__________________________________________________________________________________________________
dropout_91 (Dropout)            (None, 112, 112, 16) 0           conv2d_92[0][0]                  
__________________________________________________________________________________________________
concatenate_95 (Concatenate)    (None, 112, 112, 80) 0           dropout_91[0][0]                 
                                                                 dropout_90[0][0]                 
                                                                 dropout_89[0][0]                 
                                                                 dropout_88[0][0]                 
                                                                 dropout_87[0][0]                 
__________________________________________________________________________________________________
conv2d_transpose_4 (Conv2DTrans (None, 224, 224, 80) 57680       concatenate_95[0][0]             
__________________________________________________________________________________________________
concatenate_96 (Concatenate)    (None, 224, 224, 192 0           conv2d_transpose_4[0][0]         
                                                                 concatenate_4[0][0]              
__________________________________________________________________________________________________
batch_normalization_92 (BatchNo (None, 224, 224, 192 768         concatenate_96[0][0]             
__________________________________________________________________________________________________
re_lu_92 (ReLU)                 (None, 224, 224, 192 0           batch_normalization_92[0][0]     
__________________________________________________________________________________________________
conv2d_93 (Conv2D)              (None, 224, 224, 16) 27664       re_lu_92[0][0]                   
__________________________________________________________________________________________________
dropout_92 (Dropout)            (None, 224, 224, 16) 0           conv2d_93[0][0]                  
__________________________________________________________________________________________________
concatenate_97 (Concatenate)    (None, 224, 224, 208 0           concatenate_96[0][0]             
                                                                 dropout_92[0][0]                 
__________________________________________________________________________________________________
batch_normalization_93 (BatchNo (None, 224, 224, 208 832         concatenate_97[0][0]             
__________________________________________________________________________________________________
re_lu_93 (ReLU)                 (None, 224, 224, 208 0           batch_normalization_93[0][0]     
__________________________________________________________________________________________________
conv2d_94 (Conv2D)              (None, 224, 224, 16) 29968       re_lu_93[0][0]                   
__________________________________________________________________________________________________
dropout_93 (Dropout)            (None, 224, 224, 16) 0           conv2d_94[0][0]                  
__________________________________________________________________________________________________
concatenate_98 (Concatenate)    (None, 224, 224, 224 0           concatenate_97[0][0]             
                                                                 dropout_93[0][0]                 
__________________________________________________________________________________________________
batch_normalization_94 (BatchNo (None, 224, 224, 224 896         concatenate_98[0][0]             
__________________________________________________________________________________________________
re_lu_94 (ReLU)                 (None, 224, 224, 224 0           batch_normalization_94[0][0]     
__________________________________________________________________________________________________
conv2d_95 (Conv2D)              (None, 224, 224, 16) 32272       re_lu_94[0][0]                   
__________________________________________________________________________________________________
dropout_94 (Dropout)            (None, 224, 224, 16) 0           conv2d_95[0][0]                  
__________________________________________________________________________________________________
concatenate_99 (Concatenate)    (None, 224, 224, 240 0           concatenate_98[0][0]             
                                                                 dropout_94[0][0]                 
__________________________________________________________________________________________________
batch_normalization_95 (BatchNo (None, 224, 224, 240 960         concatenate_99[0][0]             
__________________________________________________________________________________________________
re_lu_95 (ReLU)                 (None, 224, 224, 240 0           batch_normalization_95[0][0]     
__________________________________________________________________________________________________
conv2d_96 (Conv2D)              (None, 224, 224, 16) 34576       re_lu_95[0][0]                   
__________________________________________________________________________________________________
dropout_95 (Dropout)            (None, 224, 224, 16) 0           conv2d_96[0][0]                  
__________________________________________________________________________________________________
concatenate_100 (Concatenate)   (None, 224, 224, 64) 0           dropout_95[0][0]                 
                                                                 dropout_94[0][0]                 
                                                                 dropout_93[0][0]                 
                                                                 dropout_92[0][0]                 
__________________________________________________________________________________________________
concatenate_101 (Concatenate)   (None, 224, 224, 256 0           concatenate_100[0][0]            
                                                                 concatenate_96[0][0]             
__________________________________________________________________________________________________
conv2d_97 (Conv2D)              (None, 224, 224, 32) 8224        concatenate_101[0][0]            
__________________________________________________________________________________________________
activation (Activation)         (None, 224, 224, 32) 0           conv2d_97[0][0]                  
==================================================================================================
Total params: 9,430,560
Trainable params: 9,327,488
Non-trainable params: 103,072
__________________________________________________________________________________________________

p = model.predict(x_train[:1])
p.shape
(1, 224, 224, 32)
  • Finally the model is trained by minimizing the pixel-wise cross-entropy loss.
  • We [..] train them with RMSprop with an initial learning rate of \(1e-3\).
1
2
3
model.compile(loss='sparse_categorical_crossentropy', 
              optimizer=keras.optimizers.RMSprop(lr=1e-3),
              metrics=["accuracy"])
1
2
3
history = model.fit(ds,
                    epochs=100,
                    validation_data=ds_val)
Epoch 1/100
123/123 [==============================] - 48s 393ms/step - loss: 1.7000 - accuracy: 0.5569 - val_loss: 9.1128 - val_accuracy: 0.3007
Epoch 2/100
123/123 [==============================] - 43s 351ms/step - loss: 1.1311 - accuracy: 0.6471 - val_loss: 1.6813 - val_accuracy: 0.5465
Epoch 3/100
123/123 [==============================] - 43s 351ms/step - loss: 0.8990 - accuracy: 0.7045 - val_loss: 1.8816 - val_accuracy: 0.4774
Epoch 4/100
123/123 [==============================] - 43s 351ms/step - loss: 0.7812 - accuracy: 0.7444 - val_loss: 0.8675 - val_accuracy: 0.6934
Epoch 5/100
123/123 [==============================] - 43s 351ms/step - loss: 0.7029 - accuracy: 0.7717 - val_loss: 1.2044 - val_accuracy: 0.6180
Epoch 6/100
123/123 [==============================] - 43s 351ms/step - loss: 0.6366 - accuracy: 0.7987 - val_loss: 1.9921 - val_accuracy: 0.5372
Epoch 7/100
123/123 [==============================] - 43s 351ms/step - loss: 0.5925 - accuracy: 0.8153 - val_loss: 0.7431 - val_accuracy: 0.7931
Epoch 8/100
123/123 [==============================] - 43s 350ms/step - loss: 0.5673 - accuracy: 0.8236 - val_loss: 0.8841 - val_accuracy: 0.7234
Epoch 9/100
123/123 [==============================] - 43s 350ms/step - loss: 0.5283 - accuracy: 0.8344 - val_loss: 0.4967 - val_accuracy: 0.8571
Epoch 10/100
123/123 [==============================] - 43s 350ms/step - loss: 0.5007 - accuracy: 0.8439 - val_loss: 1.2100 - val_accuracy: 0.6635
Epoch 11/100
123/123 [==============================] - 43s 351ms/step - loss: 0.4731 - accuracy: 0.8528 - val_loss: 0.9340 - val_accuracy: 0.6997
Epoch 12/100
123/123 [==============================] - 43s 351ms/step - loss: 0.4596 - accuracy: 0.8558 - val_loss: 0.6056 - val_accuracy: 0.7978
Epoch 13/100
123/123 [==============================] - 43s 350ms/step - loss: 0.4346 - accuracy: 0.8638 - val_loss: 0.5955 - val_accuracy: 0.8054
Epoch 14/100
123/123 [==============================] - 43s 350ms/step - loss: 0.4220 - accuracy: 0.8671 - val_loss: 0.9059 - val_accuracy: 0.7086
Epoch 15/100
123/123 [==============================] - 43s 350ms/step - loss: 0.4042 - accuracy: 0.8727 - val_loss: 0.6410 - val_accuracy: 0.7903
Epoch 16/100
123/123 [==============================] - 43s 351ms/step - loss: 0.3944 - accuracy: 0.8750 - val_loss: 0.4750 - val_accuracy: 0.8408
Epoch 17/100
123/123 [==============================] - 43s 350ms/step - loss: 0.3799 - accuracy: 0.8799 - val_loss: 0.5152 - val_accuracy: 0.8351
Epoch 18/100
123/123 [==============================] - 43s 350ms/step - loss: 0.3625 - accuracy: 0.8835 - val_loss: 0.4473 - val_accuracy: 0.8606
Epoch 19/100
123/123 [==============================] - 43s 351ms/step - loss: 0.3584 - accuracy: 0.8863 - val_loss: 0.7289 - val_accuracy: 0.7750
Epoch 20/100
123/123 [==============================] - 43s 350ms/step - loss: 0.3505 - accuracy: 0.8883 - val_loss: 0.5047 - val_accuracy: 0.8290
Epoch 21/100
123/123 [==============================] - 43s 350ms/step - loss: 0.3388 - accuracy: 0.8916 - val_loss: 0.5658 - val_accuracy: 0.8166
Epoch 22/100
123/123 [==============================] - 43s 351ms/step - loss: 0.3284 - accuracy: 0.8945 - val_loss: 0.5581 - val_accuracy: 0.8154
Epoch 23/100
123/123 [==============================] - 43s 350ms/step - loss: 0.3181 - accuracy: 0.8972 - val_loss: 0.5958 - val_accuracy: 0.8203
Epoch 24/100
123/123 [==============================] - 43s 350ms/step - loss: 0.3262 - accuracy: 0.8970 - val_loss: 0.4110 - val_accuracy: 0.8761
Epoch 25/100
123/123 [==============================] - 43s 351ms/step - loss: 0.3018 - accuracy: 0.9023 - val_loss: 0.5816 - val_accuracy: 0.8087
Epoch 26/100
123/123 [==============================] - 43s 350ms/step - loss: 0.3022 - accuracy: 0.9025 - val_loss: 0.3868 - val_accuracy: 0.8758
Epoch 27/100
123/123 [==============================] - 43s 350ms/step - loss: 0.2884 - accuracy: 0.9061 - val_loss: 0.3972 - val_accuracy: 0.8757
Epoch 28/100
123/123 [==============================] - 43s 350ms/step - loss: 0.2863 - accuracy: 0.9074 - val_loss: 0.9924 - val_accuracy: 0.7346
Epoch 29/100
123/123 [==============================] - 43s 350ms/step - loss: 0.2804 - accuracy: 0.9094 - val_loss: 0.7550 - val_accuracy: 0.8023
Epoch 30/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2726 - accuracy: 0.9112 - val_loss: 0.4430 - val_accuracy: 0.8712
Epoch 31/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2686 - accuracy: 0.9128 - val_loss: 0.4565 - val_accuracy: 0.8693
Epoch 32/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2639 - accuracy: 0.9144 - val_loss: 0.4576 - val_accuracy: 0.8583
Epoch 33/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2616 - accuracy: 0.9144 - val_loss: 0.4432 - val_accuracy: 0.8591
Epoch 34/100
123/123 [==============================] - 43s 352ms/step - loss: 0.2469 - accuracy: 0.9192 - val_loss: 0.6009 - val_accuracy: 0.8319
Epoch 35/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2495 - accuracy: 0.9191 - val_loss: 1.3375 - val_accuracy: 0.6777
Epoch 36/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2442 - accuracy: 0.9198 - val_loss: 0.4646 - val_accuracy: 0.8775
Epoch 37/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2401 - accuracy: 0.9211 - val_loss: 0.3355 - val_accuracy: 0.9030
Epoch 38/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2317 - accuracy: 0.9239 - val_loss: 0.4999 - val_accuracy: 0.8618
Epoch 39/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2368 - accuracy: 0.9230 - val_loss: 0.4376 - val_accuracy: 0.8730
Epoch 40/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2288 - accuracy: 0.9247 - val_loss: 0.4820 - val_accuracy: 0.8596
Epoch 41/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2210 - accuracy: 0.9266 - val_loss: 0.5659 - val_accuracy: 0.8137
Epoch 42/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2191 - accuracy: 0.9273 - val_loss: 0.3579 - val_accuracy: 0.8869
Epoch 43/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2143 - accuracy: 0.9292 - val_loss: 0.3729 - val_accuracy: 0.8863
Epoch 44/100
123/123 [==============================] - 43s 352ms/step - loss: 0.2168 - accuracy: 0.9286 - val_loss: 0.3855 - val_accuracy: 0.8894
Epoch 45/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2090 - accuracy: 0.9304 - val_loss: 0.3963 - val_accuracy: 0.8897
Epoch 46/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2058 - accuracy: 0.9315 - val_loss: 0.3581 - val_accuracy: 0.8983
Epoch 47/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2017 - accuracy: 0.9326 - val_loss: 0.4028 - val_accuracy: 0.8788
Epoch 48/100
123/123 [==============================] - 43s 351ms/step - loss: 0.2027 - accuracy: 0.9326 - val_loss: 0.5269 - val_accuracy: 0.8561
Epoch 49/100
123/123 [==============================] - 43s 352ms/step - loss: 0.1976 - accuracy: 0.9337 - val_loss: 0.3576 - val_accuracy: 0.8962
Epoch 50/100
123/123 [==============================] - 43s 352ms/step - loss: 0.1984 - accuracy: 0.9341 - val_loss: 0.3405 - val_accuracy: 0.9113
Epoch 51/100
123/123 [==============================] - 43s 352ms/step - loss: 0.1917 - accuracy: 0.9356 - val_loss: 0.4795 - val_accuracy: 0.8662
Epoch 52/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1909 - accuracy: 0.9358 - val_loss: 0.4778 - val_accuracy: 0.8651
Epoch 53/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1850 - accuracy: 0.9379 - val_loss: 0.4367 - val_accuracy: 0.8779
Epoch 54/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1844 - accuracy: 0.9379 - val_loss: 0.3973 - val_accuracy: 0.8913
Epoch 55/100
123/123 [==============================] - 43s 352ms/step - loss: 0.1805 - accuracy: 0.9390 - val_loss: 0.4477 - val_accuracy: 0.8826
Epoch 56/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1800 - accuracy: 0.9392 - val_loss: 0.3471 - val_accuracy: 0.8987
Epoch 57/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1792 - accuracy: 0.9398 - val_loss: 0.3472 - val_accuracy: 0.8999
Epoch 58/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1748 - accuracy: 0.9408 - val_loss: 0.3264 - val_accuracy: 0.9033
Epoch 59/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1774 - accuracy: 0.9405 - val_loss: 0.7149 - val_accuracy: 0.8260
Epoch 60/100
123/123 [==============================] - 43s 350ms/step - loss: 0.1714 - accuracy: 0.9418 - val_loss: 0.4711 - val_accuracy: 0.8601
Epoch 61/100
123/123 [==============================] - 43s 350ms/step - loss: 0.1716 - accuracy: 0.9416 - val_loss: 0.3424 - val_accuracy: 0.9060
Epoch 62/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1676 - accuracy: 0.9429 - val_loss: 0.3823 - val_accuracy: 0.8977
Epoch 63/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1644 - accuracy: 0.9440 - val_loss: 0.3168 - val_accuracy: 0.9119
Epoch 64/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1652 - accuracy: 0.9437 - val_loss: 0.3276 - val_accuracy: 0.9053
Epoch 65/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1613 - accuracy: 0.9449 - val_loss: 0.5732 - val_accuracy: 0.8595
Epoch 66/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1604 - accuracy: 0.9450 - val_loss: 0.4227 - val_accuracy: 0.8792
Epoch 67/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1604 - accuracy: 0.9450 - val_loss: 0.2825 - val_accuracy: 0.9182
Epoch 68/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1567 - accuracy: 0.9463 - val_loss: 0.3430 - val_accuracy: 0.8953
Epoch 69/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1567 - accuracy: 0.9462 - val_loss: 0.5003 - val_accuracy: 0.8352
Epoch 70/100
123/123 [==============================] - 43s 352ms/step - loss: 0.1532 - accuracy: 0.9472 - val_loss: 0.3316 - val_accuracy: 0.9040
Epoch 71/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1511 - accuracy: 0.9479 - val_loss: 0.3720 - val_accuracy: 0.8978
Epoch 72/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1515 - accuracy: 0.9477 - val_loss: 0.3675 - val_accuracy: 0.9019
Epoch 73/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1474 - accuracy: 0.9492 - val_loss: 0.4759 - val_accuracy: 0.8688
Epoch 74/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1475 - accuracy: 0.9489 - val_loss: 0.4692 - val_accuracy: 0.8696
Epoch 75/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1467 - accuracy: 0.9492 - val_loss: 0.4158 - val_accuracy: 0.8747
Epoch 76/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1465 - accuracy: 0.9492 - val_loss: 0.3227 - val_accuracy: 0.9141
Epoch 77/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1435 - accuracy: 0.9500 - val_loss: 0.3192 - val_accuracy: 0.9146
Epoch 78/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1420 - accuracy: 0.9506 - val_loss: 0.3807 - val_accuracy: 0.8848
Epoch 79/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1412 - accuracy: 0.9509 - val_loss: 0.3369 - val_accuracy: 0.9101
Epoch 80/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1392 - accuracy: 0.9516 - val_loss: 0.3258 - val_accuracy: 0.9090
Epoch 81/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1372 - accuracy: 0.9523 - val_loss: 0.4064 - val_accuracy: 0.8784
Epoch 82/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1380 - accuracy: 0.9519 - val_loss: 0.3446 - val_accuracy: 0.9037
Epoch 83/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1365 - accuracy: 0.9525 - val_loss: 0.6431 - val_accuracy: 0.7953
Epoch 84/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1359 - accuracy: 0.9529 - val_loss: 0.3985 - val_accuracy: 0.8960
Epoch 85/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1347 - accuracy: 0.9528 - val_loss: 0.3419 - val_accuracy: 0.8967
Epoch 86/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1331 - accuracy: 0.9533 - val_loss: 0.3882 - val_accuracy: 0.9004
Epoch 87/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1324 - accuracy: 0.9535 - val_loss: 0.3790 - val_accuracy: 0.8895
Epoch 88/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1310 - accuracy: 0.9539 - val_loss: 0.3125 - val_accuracy: 0.9154
Epoch 89/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1300 - accuracy: 0.9544 - val_loss: 0.3441 - val_accuracy: 0.9096
Epoch 90/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1284 - accuracy: 0.9548 - val_loss: 0.3716 - val_accuracy: 0.9063
Epoch 91/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1278 - accuracy: 0.9550 - val_loss: 0.3738 - val_accuracy: 0.8969
Epoch 92/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1267 - accuracy: 0.9554 - val_loss: 0.3466 - val_accuracy: 0.9083
Epoch 93/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1256 - accuracy: 0.9556 - val_loss: 0.3364 - val_accuracy: 0.9146
Epoch 94/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1242 - accuracy: 0.9561 - val_loss: 0.3062 - val_accuracy: 0.9176
Epoch 95/100
123/123 [==============================] - 43s 352ms/step - loss: 0.1231 - accuracy: 0.9565 - val_loss: 0.3467 - val_accuracy: 0.9145
Epoch 96/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1228 - accuracy: 0.9565 - val_loss: 0.4429 - val_accuracy: 0.8918
Epoch 97/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1217 - accuracy: 0.9569 - val_loss: 0.4052 - val_accuracy: 0.9002
Epoch 98/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1217 - accuracy: 0.9569 - val_loss: 0.3283 - val_accuracy: 0.9131
Epoch 99/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1196 - accuracy: 0.9575 - val_loss: 0.3455 - val_accuracy: 0.9088
Epoch 100/100
123/123 [==============================] - 43s 351ms/step - loss: 0.1192 - accuracy: 0.9576 - val_loss: 0.3164 - val_accuracy: 0.9156

%pylab inline
figsize(10, 5)

subplot(1, 2, 1)
plot(history.history['accuracy'], label='accuracy')
plot(history.history['val_accuracy'], label='validation accuracy')
legend()

subplot(1, 2, 2)
plot(history.history['loss'], label='loss')
plot(history.history['val_loss'], label='validation loss')

legend()
show()
Populating the interactive namespace from numpy and matplotlib

model.save('fc_densenet_103_camvid_100epochs.h5')
 model.evaluate(x_test, y_test)
8/8 [==============================] - 6s 747ms/step - loss: 0.6612 - accuracy: 0.8556

[0.6612146496772766, 0.855552077293396]

La liste des classes et des couleurs attenantes est à l'adresse http://mi.eng.cam.ac.uk/research/projects/VideoRec/CamVid/data/label_colors.txt

Interact labeller pour la segmentation

http://mi.eng.cam.ac.uk/projects/cvgroup/software/index.html

"The training images were hand-labeled with the assigned colors acting as indices into the list of object classes."

colors = [(192, 192, 128),  
(192, 192, 0),
(192, 128, 192),
(192, 128, 128),
(192, 128, 64),
(192, 64, 128), 
(192, 0, 192),   
(192, 0, 128),
(192, 0, 64),
(128, 128, 192),
(128, 128, 128),
(128, 128, 64),
(128, 128, 0),
(128, 64, 128),
(128, 64, 64),  
(128, 0, 192),    
(128, 0, 0),  
(64, 192, 128), 
(64, 192, 0),
(64, 128, 192),
(64, 128, 64),  
(64, 64, 128),    
(64, 64, 0), 
(64, 0, 192),     
(64, 0, 128),
(64, 0, 64),
(0, 128, 192),
(0, 128, 64),
(0, 64, 64),
(0, 0, 192),
(0, 0, 64),
(0, 0, 0)]
class_weights = {0 : 9.60606490919,
1 : 9.77766487673,
2 : 10.0194993159,
3 : 10.3749043447,
4 : 10.4631076496,
5 : 10.4920586873,
6 : 10.4839211216,
7 : 10.4356039685,
8 : 10.4757462996,
9 : 10.2342992955,
10 : 4.3720296426,
11 : 9.94147719336,
12 : 5.43594061016,
13 : 3.15728309302,
14 : 10.1258833847,
15 : 9.08285926082,
16 : 3.47796865386,
17 : 10.1577327692,
18 : 9.32269173889,
19 :    9.7926997517,
20 :    10.4870856376,
21 :    9.26646394904,
22 :    9.88371158915,
23 :    10.4613353846,
24 :    7.95097080927,
25 :    10.4920560223,
26 :    9.99897358787,
27 :    10.4371404226,
28 :    10.1479245421,
39 :    6.58893008318,
30 :    10.4882678542,
31 :    8.19641542163}
1
2
3
4
img = tf.reshape(x_train[75], (-1, 224, 224, 3))
p = model.predict(img)
p = np.argmax(p, axis=-1)
p.shape
(1, 224, 224)
1
2
3
from tensorflow.keras.models import load_model

model = load_model('fc_densenet_103_camvid_100epochs.h5')
Prédiction
num_obs=240

img = tf.reshape(x_train[num_obs], (-1, 224, 224, 3))
p = model.predict(img)
p = np.argmax(p, axis=-1)
p.shape

figsize(20, 5)

subplot(1, 3, 1)
imshow(img[0, :, : ,:])
xlabel('Input')

subplot(1, 3, 2)
imshow(p[0, :, :])
xlabel('Prédiction')

subplot(1, 3, 3)
imshow(y_train[num_obs][:, :])
xlabel('Vérité')

m = tf.keras.metrics.MeanIoU(num_classes=32)
m(y_train[num_obs][:, :], p[0, :, :]).numpy()
0.7309558
MeanIoU via custom training loop
epochs = 150
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy()
metric_fn = tf.keras.metrics.MeanIoU(num_classes=32)
optimizer = tf.keras.optimizers.RMSprop(lr=1e-3)

@tf.function
def train_step(x, y):
  with tf.GradientTape() as tape:
    #prédiction sur le minibatch
    y_pred = model(x, training=True)
    #calcul de la fonction de perte moyenne sur le minibatch
    loss_value = loss_fn(y, y_pred)

  # calcul des gradients et retropropagation
  grads = tape.gradient(loss_value, model.trainable_weights)
  optimizer.apply_gradients(zip(grads, model.trainable_weights))

  # mise à jour des métriques
  mask_pred = tf.argmax(y_pred, axis=-1)
  metric_fn.update_state(y, mask_pred)

  return loss_value

@tf.function
def test_step(x, y):
  y_pred = model(x, training=False)
  mask_pred = tf.argmax(y_pred, axis=-1)
  metric_fn.update_state(y, mask_pred)

for epoch in range(epochs):
  losses = 0 
  step_counter = 0
  print(f"\nDébut de l'époque {epoch+1},")
  start_time = time.time()

  # itération sur les minibatchs du dataset
  for step, (x_batch_train, y_batch_train) in enumerate(ds):
    loss_value = train_step(x_batch_train, y_batch_train)
    losses += loss_value
    step_counter += 1

    # Log tous les 100 batches
    if step % 100 == 0:
      print(f"Loss sur le batch à l'étape {step} : {float(loss_value):.4f}")

  # Affichage des métriques à la fin de l'époque
  metric = metric_fn.result()
  print(f"Loss pour l'époque : {losses/step_counter:.4f}")
  print(f"Métrique pour l'époque : {float(metric):.4f} \n")

  # Reset de la métrique à la fin de chaque époque
  metric_fn.reset_states()

  # validation loop à la fin de chaque époque
  for x_batch_val, y_batch_val in val_dataset:
    test_step(x_batch_val, y_batch_val)

  val_metric = metric_fn.result()
  metric_fn.reset_states()
  print("Validation acc: %.4f" % (float(val_metric),))
  print("Time taken: %.2fs" % (time.time() - start_time))
FC-Densenet56
  • 56 layers (FC-DenseNet56) with \(4\) layers par dense blocks and a growth rate of \(12\).
1
2
3
4
5
6
7
8
#fc-densenet 56
filters = 12
nb_blocks = 5
nb_layers = [4, 4, 4, 4, 4 ,4, 4, 4, 4, 4, 4]
img_shape = (224,224,3)

model2 = FCDensenet(filters, nb_layers, img_shape, num_classes=32)
model2.summary()
Model: "model_3"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_4 (InputLayer)            [(None, 224, 224, 3) 0                                            
__________________________________________________________________________________________________
conv2d_200 (Conv2D)             (None, 224, 224, 48) 1344        input_4[0][0]                    
__________________________________________________________________________________________________
batch_normalization_194 (BatchN (None, 224, 224, 48) 192         conv2d_200[0][0]                 
__________________________________________________________________________________________________
re_lu_194 (ReLU)                (None, 224, 224, 48) 0           batch_normalization_194[0][0]    
__________________________________________________________________________________________________
conv2d_201 (Conv2D)             (None, 224, 224, 12) 5196        re_lu_194[0][0]                  
__________________________________________________________________________________________________
dropout_194 (Dropout)           (None, 224, 224, 12) 0           conv2d_201[0][0]                 
__________________________________________________________________________________________________
concatenate_220 (Concatenate)   (None, 224, 224, 60) 0           conv2d_200[0][0]                 
                                                                 dropout_194[0][0]                
__________________________________________________________________________________________________
batch_normalization_195 (BatchN (None, 224, 224, 60) 240         concatenate_220[0][0]            
__________________________________________________________________________________________________
re_lu_195 (ReLU)                (None, 224, 224, 60) 0           batch_normalization_195[0][0]    
__________________________________________________________________________________________________
conv2d_202 (Conv2D)             (None, 224, 224, 12) 6492        re_lu_195[0][0]                  
__________________________________________________________________________________________________
dropout_195 (Dropout)           (None, 224, 224, 12) 0           conv2d_202[0][0]                 
__________________________________________________________________________________________________
concatenate_221 (Concatenate)   (None, 224, 224, 72) 0           concatenate_220[0][0]            
                                                                 dropout_195[0][0]                
__________________________________________________________________________________________________
batch_normalization_196 (BatchN (None, 224, 224, 72) 288         concatenate_221[0][0]            
__________________________________________________________________________________________________
re_lu_196 (ReLU)                (None, 224, 224, 72) 0           batch_normalization_196[0][0]    
__________________________________________________________________________________________________
conv2d_203 (Conv2D)             (None, 224, 224, 12) 7788        re_lu_196[0][0]                  
__________________________________________________________________________________________________
dropout_196 (Dropout)           (None, 224, 224, 12) 0           conv2d_203[0][0]                 
__________________________________________________________________________________________________
concatenate_222 (Concatenate)   (None, 224, 224, 84) 0           concatenate_221[0][0]            
                                                                 dropout_196[0][0]                
__________________________________________________________________________________________________
batch_normalization_197 (BatchN (None, 224, 224, 84) 336         concatenate_222[0][0]            
__________________________________________________________________________________________________
re_lu_197 (ReLU)                (None, 224, 224, 84) 0           batch_normalization_197[0][0]    
__________________________________________________________________________________________________
conv2d_204 (Conv2D)             (None, 224, 224, 12) 9084        re_lu_197[0][0]                  
__________________________________________________________________________________________________
dropout_197 (Dropout)           (None, 224, 224, 12) 0           conv2d_204[0][0]                 
__________________________________________________________________________________________________
concatenate_223 (Concatenate)   (None, 224, 224, 48) 0           dropout_197[0][0]                
                                                                 dropout_196[0][0]                
                                                                 dropout_195[0][0]                
                                                                 dropout_194[0][0]                
__________________________________________________________________________________________________
concatenate_224 (Concatenate)   (None, 224, 224, 96) 0           concatenate_223[0][0]            
                                                                 conv2d_200[0][0]                 
__________________________________________________________________________________________________
batch_normalization_198 (BatchN (None, 224, 224, 96) 384         concatenate_224[0][0]            
__________________________________________________________________________________________________
re_lu_198 (ReLU)                (None, 224, 224, 96) 0           batch_normalization_198[0][0]    
__________________________________________________________________________________________________
conv2d_205 (Conv2D)             (None, 224, 224, 96) 9312        re_lu_198[0][0]                  
__________________________________________________________________________________________________
dropout_198 (Dropout)           (None, 224, 224, 96) 0           conv2d_205[0][0]                 
__________________________________________________________________________________________________
max_pooling2d_15 (MaxPooling2D) (None, 112, 112, 96) 0           dropout_198[0][0]                
__________________________________________________________________________________________________
batch_normalization_199 (BatchN (None, 112, 112, 96) 384         max_pooling2d_15[0][0]           
__________________________________________________________________________________________________
re_lu_199 (ReLU)                (None, 112, 112, 96) 0           batch_normalization_199[0][0]    
__________________________________________________________________________________________________
conv2d_206 (Conv2D)             (None, 112, 112, 12) 10380       re_lu_199[0][0]                  
__________________________________________________________________________________________________
dropout_199 (Dropout)           (None, 112, 112, 12) 0           conv2d_206[0][0]                 
__________________________________________________________________________________________________
concatenate_225 (Concatenate)   (None, 112, 112, 108 0           max_pooling2d_15[0][0]           
                                                                 dropout_199[0][0]                
__________________________________________________________________________________________________
batch_normalization_200 (BatchN (None, 112, 112, 108 432         concatenate_225[0][0]            
__________________________________________________________________________________________________
re_lu_200 (ReLU)                (None, 112, 112, 108 0           batch_normalization_200[0][0]    
__________________________________________________________________________________________________
conv2d_207 (Conv2D)             (None, 112, 112, 12) 11676       re_lu_200[0][0]                  
__________________________________________________________________________________________________
dropout_200 (Dropout)           (None, 112, 112, 12) 0           conv2d_207[0][0]                 
__________________________________________________________________________________________________
concatenate_226 (Concatenate)   (None, 112, 112, 120 0           concatenate_225[0][0]            
                                                                 dropout_200[0][0]                
__________________________________________________________________________________________________
batch_normalization_201 (BatchN (None, 112, 112, 120 480         concatenate_226[0][0]            
__________________________________________________________________________________________________
re_lu_201 (ReLU)                (None, 112, 112, 120 0           batch_normalization_201[0][0]    
__________________________________________________________________________________________________
conv2d_208 (Conv2D)             (None, 112, 112, 12) 12972       re_lu_201[0][0]                  
__________________________________________________________________________________________________
dropout_201 (Dropout)           (None, 112, 112, 12) 0           conv2d_208[0][0]                 
__________________________________________________________________________________________________
concatenate_227 (Concatenate)   (None, 112, 112, 132 0           concatenate_226[0][0]            
                                                                 dropout_201[0][0]                
__________________________________________________________________________________________________
batch_normalization_202 (BatchN (None, 112, 112, 132 528         concatenate_227[0][0]            
__________________________________________________________________________________________________
re_lu_202 (ReLU)                (None, 112, 112, 132 0           batch_normalization_202[0][0]    
__________________________________________________________________________________________________
conv2d_209 (Conv2D)             (None, 112, 112, 12) 14268       re_lu_202[0][0]                  
__________________________________________________________________________________________________
dropout_202 (Dropout)           (None, 112, 112, 12) 0           conv2d_209[0][0]                 
__________________________________________________________________________________________________
concatenate_228 (Concatenate)   (None, 112, 112, 48) 0           dropout_202[0][0]                
                                                                 dropout_201[0][0]                
                                                                 dropout_200[0][0]                
                                                                 dropout_199[0][0]                
__________________________________________________________________________________________________
concatenate_229 (Concatenate)   (None, 112, 112, 144 0           concatenate_228[0][0]            
                                                                 max_pooling2d_15[0][0]           
__________________________________________________________________________________________________
batch_normalization_203 (BatchN (None, 112, 112, 144 576         concatenate_229[0][0]            
__________________________________________________________________________________________________
re_lu_203 (ReLU)                (None, 112, 112, 144 0           batch_normalization_203[0][0]    
__________________________________________________________________________________________________
conv2d_210 (Conv2D)             (None, 112, 112, 144 20880       re_lu_203[0][0]                  
__________________________________________________________________________________________________
dropout_203 (Dropout)           (None, 112, 112, 144 0           conv2d_210[0][0]                 
__________________________________________________________________________________________________
max_pooling2d_16 (MaxPooling2D) (None, 56, 56, 144)  0           dropout_203[0][0]                
__________________________________________________________________________________________________
batch_normalization_204 (BatchN (None, 56, 56, 144)  576         max_pooling2d_16[0][0]           
__________________________________________________________________________________________________
re_lu_204 (ReLU)                (None, 56, 56, 144)  0           batch_normalization_204[0][0]    
__________________________________________________________________________________________________
conv2d_211 (Conv2D)             (None, 56, 56, 12)   15564       re_lu_204[0][0]                  
__________________________________________________________________________________________________
dropout_204 (Dropout)           (None, 56, 56, 12)   0           conv2d_211[0][0]                 
__________________________________________________________________________________________________
concatenate_230 (Concatenate)   (None, 56, 56, 156)  0           max_pooling2d_16[0][0]           
                                                                 dropout_204[0][0]                
__________________________________________________________________________________________________
batch_normalization_205 (BatchN (None, 56, 56, 156)  624         concatenate_230[0][0]            
__________________________________________________________________________________________________
re_lu_205 (ReLU)                (None, 56, 56, 156)  0           batch_normalization_205[0][0]    
__________________________________________________________________________________________________
conv2d_212 (Conv2D)             (None, 56, 56, 12)   16860       re_lu_205[0][0]                  
__________________________________________________________________________________________________
dropout_205 (Dropout)           (None, 56, 56, 12)   0           conv2d_212[0][0]                 
__________________________________________________________________________________________________
concatenate_231 (Concatenate)   (None, 56, 56, 168)  0           concatenate_230[0][0]            
                                                                 dropout_205[0][0]                
__________________________________________________________________________________________________
batch_normalization_206 (BatchN (None, 56, 56, 168)  672         concatenate_231[0][0]            
__________________________________________________________________________________________________
re_lu_206 (ReLU)                (None, 56, 56, 168)  0           batch_normalization_206[0][0]    
__________________________________________________________________________________________________
conv2d_213 (Conv2D)             (None, 56, 56, 12)   18156       re_lu_206[0][0]                  
__________________________________________________________________________________________________
dropout_206 (Dropout)           (None, 56, 56, 12)   0           conv2d_213[0][0]                 
__________________________________________________________________________________________________
concatenate_232 (Concatenate)   (None, 56, 56, 180)  0           concatenate_231[0][0]            
                                                                 dropout_206[0][0]                
__________________________________________________________________________________________________
batch_normalization_207 (BatchN (None, 56, 56, 180)  720         concatenate_232[0][0]            
__________________________________________________________________________________________________
re_lu_207 (ReLU)                (None, 56, 56, 180)  0           batch_normalization_207[0][0]    
__________________________________________________________________________________________________
conv2d_214 (Conv2D)             (None, 56, 56, 12)   19452       re_lu_207[0][0]                  
__________________________________________________________________________________________________
dropout_207 (Dropout)           (None, 56, 56, 12)   0           conv2d_214[0][0]                 
__________________________________________________________________________________________________
concatenate_233 (Concatenate)   (None, 56, 56, 48)   0           dropout_207[0][0]                
                                                                 dropout_206[0][0]                
                                                                 dropout_205[0][0]                
                                                                 dropout_204[0][0]                
__________________________________________________________________________________________________
concatenate_234 (Concatenate)   (None, 56, 56, 192)  0           concatenate_233[0][0]            
                                                                 max_pooling2d_16[0][0]           
__________________________________________________________________________________________________
batch_normalization_208 (BatchN (None, 56, 56, 192)  768         concatenate_234[0][0]            
__________________________________________________________________________________________________
re_lu_208 (ReLU)                (None, 56, 56, 192)  0           batch_normalization_208[0][0]    
__________________________________________________________________________________________________
conv2d_215 (Conv2D)             (None, 56, 56, 192)  37056       re_lu_208[0][0]                  
__________________________________________________________________________________________________
dropout_208 (Dropout)           (None, 56, 56, 192)  0           conv2d_215[0][0]                 
__________________________________________________________________________________________________
max_pooling2d_17 (MaxPooling2D) (None, 28, 28, 192)  0           dropout_208[0][0]                
__________________________________________________________________________________________________
batch_normalization_209 (BatchN (None, 28, 28, 192)  768         max_pooling2d_17[0][0]           
__________________________________________________________________________________________________
re_lu_209 (ReLU)                (None, 28, 28, 192)  0           batch_normalization_209[0][0]    
__________________________________________________________________________________________________
conv2d_216 (Conv2D)             (None, 28, 28, 12)   20748       re_lu_209[0][0]                  
__________________________________________________________________________________________________
dropout_209 (Dropout)           (None, 28, 28, 12)   0           conv2d_216[0][0]                 
__________________________________________________________________________________________________
concatenate_235 (Concatenate)   (None, 28, 28, 204)  0           max_pooling2d_17[0][0]           
                                                                 dropout_209[0][0]                
__________________________________________________________________________________________________
batch_normalization_210 (BatchN (None, 28, 28, 204)  816         concatenate_235[0][0]            
__________________________________________________________________________________________________
re_lu_210 (ReLU)                (None, 28, 28, 204)  0           batch_normalization_210[0][0]    
__________________________________________________________________________________________________
conv2d_217 (Conv2D)             (None, 28, 28, 12)   22044       re_lu_210[0][0]                  
__________________________________________________________________________________________________
dropout_210 (Dropout)           (None, 28, 28, 12)   0           conv2d_217[0][0]                 
__________________________________________________________________________________________________
concatenate_236 (Concatenate)   (None, 28, 28, 216)  0           concatenate_235[0][0]            
                                                                 dropout_210[0][0]                
__________________________________________________________________________________________________
batch_normalization_211 (BatchN (None, 28, 28, 216)  864         concatenate_236[0][0]            
__________________________________________________________________________________________________
re_lu_211 (ReLU)                (None, 28, 28, 216)  0           batch_normalization_211[0][0]    
__________________________________________________________________________________________________
conv2d_218 (Conv2D)             (None, 28, 28, 12)   23340       re_lu_211[0][0]                  
__________________________________________________________________________________________________
dropout_211 (Dropout)           (None, 28, 28, 12)   0           conv2d_218[0][0]                 
__________________________________________________________________________________________________
concatenate_237 (Concatenate)   (None, 28, 28, 228)  0           concatenate_236[0][0]            
                                                                 dropout_211[0][0]                
__________________________________________________________________________________________________
batch_normalization_212 (BatchN (None, 28, 28, 228)  912         concatenate_237[0][0]            
__________________________________________________________________________________________________
re_lu_212 (ReLU)                (None, 28, 28, 228)  0           batch_normalization_212[0][0]    
__________________________________________________________________________________________________
conv2d_219 (Conv2D)             (None, 28, 28, 12)   24636       re_lu_212[0][0]                  
__________________________________________________________________________________________________
dropout_212 (Dropout)           (None, 28, 28, 12)   0           conv2d_219[0][0]                 
__________________________________________________________________________________________________
concatenate_238 (Concatenate)   (None, 28, 28, 48)   0           dropout_212[0][0]                
                                                                 dropout_211[0][0]                
                                                                 dropout_210[0][0]                
                                                                 dropout_209[0][0]                
__________________________________________________________________________________________________
concatenate_239 (Concatenate)   (None, 28, 28, 240)  0           concatenate_238[0][0]            
                                                                 max_pooling2d_17[0][0]           
__________________________________________________________________________________________________
batch_normalization_213 (BatchN (None, 28, 28, 240)  960         concatenate_239[0][0]            
__________________________________________________________________________________________________
re_lu_213 (ReLU)                (None, 28, 28, 240)  0           batch_normalization_213[0][0]    
__________________________________________________________________________________________________
conv2d_220 (Conv2D)             (None, 28, 28, 240)  57840       re_lu_213[0][0]                  
__________________________________________________________________________________________________
dropout_213 (Dropout)           (None, 28, 28, 240)  0           conv2d_220[0][0]                 
__________________________________________________________________________________________________
max_pooling2d_18 (MaxPooling2D) (None, 14, 14, 240)  0           dropout_213[0][0]                
__________________________________________________________________________________________________
batch_normalization_214 (BatchN (None, 14, 14, 240)  960         max_pooling2d_18[0][0]           
__________________________________________________________________________________________________
re_lu_214 (ReLU)                (None, 14, 14, 240)  0           batch_normalization_214[0][0]    
__________________________________________________________________________________________________
conv2d_221 (Conv2D)             (None, 14, 14, 12)   25932       re_lu_214[0][0]                  
__________________________________________________________________________________________________
dropout_214 (Dropout)           (None, 14, 14, 12)   0           conv2d_221[0][0]                 
__________________________________________________________________________________________________
concatenate_240 (Concatenate)   (None, 14, 14, 252)  0           max_pooling2d_18[0][0]           
                                                                 dropout_214[0][0]                
__________________________________________________________________________________________________
batch_normalization_215 (BatchN (None, 14, 14, 252)  1008        concatenate_240[0][0]            
__________________________________________________________________________________________________
re_lu_215 (ReLU)                (None, 14, 14, 252)  0           batch_normalization_215[0][0]    
__________________________________________________________________________________________________
conv2d_222 (Conv2D)             (None, 14, 14, 12)   27228       re_lu_215[0][0]                  
__________________________________________________________________________________________________
dropout_215 (Dropout)           (None, 14, 14, 12)   0           conv2d_222[0][0]                 
__________________________________________________________________________________________________
concatenate_241 (Concatenate)   (None, 14, 14, 264)  0           concatenate_240[0][0]            
                                                                 dropout_215[0][0]                
__________________________________________________________________________________________________
batch_normalization_216 (BatchN (None, 14, 14, 264)  1056        concatenate_241[0][0]            
__________________________________________________________________________________________________
re_lu_216 (ReLU)                (None, 14, 14, 264)  0           batch_normalization_216[0][0]    
__________________________________________________________________________________________________
conv2d_223 (Conv2D)             (None, 14, 14, 12)   28524       re_lu_216[0][0]                  
__________________________________________________________________________________________________
dropout_216 (Dropout)           (None, 14, 14, 12)   0           conv2d_223[0][0]                 
__________________________________________________________________________________________________
concatenate_242 (Concatenate)   (None, 14, 14, 276)  0           concatenate_241[0][0]            
                                                                 dropout_216[0][0]                
__________________________________________________________________________________________________
batch_normalization_217 (BatchN (None, 14, 14, 276)  1104        concatenate_242[0][0]            
__________________________________________________________________________________________________
re_lu_217 (ReLU)                (None, 14, 14, 276)  0           batch_normalization_217[0][0]    
__________________________________________________________________________________________________
conv2d_224 (Conv2D)             (None, 14, 14, 12)   29820       re_lu_217[0][0]                  
__________________________________________________________________________________________________
dropout_217 (Dropout)           (None, 14, 14, 12)   0           conv2d_224[0][0]                 
__________________________________________________________________________________________________
concatenate_243 (Concatenate)   (None, 14, 14, 48)   0           dropout_217[0][0]                
                                                                 dropout_216[0][0]                
                                                                 dropout_215[0][0]                
                                                                 dropout_214[0][0]                
__________________________________________________________________________________________________
concatenate_244 (Concatenate)   (None, 14, 14, 288)  0           concatenate_243[0][0]            
                                                                 max_pooling2d_18[0][0]           
__________________________________________________________________________________________________
batch_normalization_218 (BatchN (None, 14, 14, 288)  1152        concatenate_244[0][0]            
__________________________________________________________________________________________________
re_lu_218 (ReLU)                (None, 14, 14, 288)  0           batch_normalization_218[0][0]    
__________________________________________________________________________________________________
conv2d_225 (Conv2D)             (None, 14, 14, 288)  83232       re_lu_218[0][0]                  
__________________________________________________________________________________________________
dropout_218 (Dropout)           (None, 14, 14, 288)  0           conv2d_225[0][0]                 
__________________________________________________________________________________________________
max_pooling2d_19 (MaxPooling2D) (None, 7, 7, 288)    0           dropout_218[0][0]                
__________________________________________________________________________________________________
batch_normalization_219 (BatchN (None, 7, 7, 288)    1152        max_pooling2d_19[0][0]           
__________________________________________________________________________________________________
re_lu_219 (ReLU)                (None, 7, 7, 288)    0           batch_normalization_219[0][0]    
__________________________________________________________________________________________________
conv2d_226 (Conv2D)             (None, 7, 7, 12)     31116       re_lu_219[0][0]                  
__________________________________________________________________________________________________
dropout_219 (Dropout)           (None, 7, 7, 12)     0           conv2d_226[0][0]                 
__________________________________________________________________________________________________
concatenate_245 (Concatenate)   (None, 7, 7, 300)    0           max_pooling2d_19[0][0]           
                                                                 dropout_219[0][0]                
__________________________________________________________________________________________________
batch_normalization_220 (BatchN (None, 7, 7, 300)    1200        concatenate_245[0][0]            
__________________________________________________________________________________________________
re_lu_220 (ReLU)                (None, 7, 7, 300)    0           batch_normalization_220[0][0]    
__________________________________________________________________________________________________
conv2d_227 (Conv2D)             (None, 7, 7, 12)     32412       re_lu_220[0][0]                  
__________________________________________________________________________________________________
dropout_220 (Dropout)           (None, 7, 7, 12)     0           conv2d_227[0][0]                 
__________________________________________________________________________________________________
concatenate_246 (Concatenate)   (None, 7, 7, 312)    0           concatenate_245[0][0]            
                                                                 dropout_220[0][0]                
__________________________________________________________________________________________________
batch_normalization_221 (BatchN (None, 7, 7, 312)    1248        concatenate_246[0][0]            
__________________________________________________________________________________________________
re_lu_221 (ReLU)                (None, 7, 7, 312)    0           batch_normalization_221[0][0]    
__________________________________________________________________________________________________
conv2d_228 (Conv2D)             (None, 7, 7, 12)     33708       re_lu_221[0][0]                  
__________________________________________________________________________________________________
dropout_221 (Dropout)           (None, 7, 7, 12)     0           conv2d_228[0][0]                 
__________________________________________________________________________________________________
concatenate_247 (Concatenate)   (None, 7, 7, 324)    0           concatenate_246[0][0]            
                                                                 dropout_221[0][0]                
__________________________________________________________________________________________________
batch_normalization_222 (BatchN (None, 7, 7, 324)    1296        concatenate_247[0][0]            
__________________________________________________________________________________________________
re_lu_222 (ReLU)                (None, 7, 7, 324)    0           batch_normalization_222[0][0]    
__________________________________________________________________________________________________
conv2d_229 (Conv2D)             (None, 7, 7, 12)     35004       re_lu_222[0][0]                  
__________________________________________________________________________________________________
dropout_222 (Dropout)           (None, 7, 7, 12)     0           conv2d_229[0][0]                 
__________________________________________________________________________________________________
concatenate_248 (Concatenate)   (None, 7, 7, 48)     0           dropout_222[0][0]                
                                                                 dropout_221[0][0]                
                                                                 dropout_220[0][0]                
                                                                 dropout_219[0][0]                
__________________________________________________________________________________________________
conv2d_transpose_15 (Conv2DTran (None, 14, 14, 48)   20784       concatenate_248[0][0]            
__________________________________________________________________________________________________
concatenate_249 (Concatenate)   (None, 14, 14, 336)  0           conv2d_transpose_15[0][0]        
                                                                 concatenate_244[0][0]            
__________________________________________________________________________________________________
batch_normalization_223 (BatchN (None, 14, 14, 336)  1344        concatenate_249[0][0]            
__________________________________________________________________________________________________
re_lu_223 (ReLU)                (None, 14, 14, 336)  0           batch_normalization_223[0][0]    
__________________________________________________________________________________________________
conv2d_230 (Conv2D)             (None, 14, 14, 12)   36300       re_lu_223[0][0]                  
__________________________________________________________________________________________________
dropout_223 (Dropout)           (None, 14, 14, 12)   0           conv2d_230[0][0]                 
__________________________________________________________________________________________________
concatenate_250 (Concatenate)   (None, 14, 14, 348)  0           concatenate_249[0][0]            
                                                                 dropout_223[0][0]                
__________________________________________________________________________________________________
batch_normalization_224 (BatchN (None, 14, 14, 348)  1392        concatenate_250[0][0]            
__________________________________________________________________________________________________
re_lu_224 (ReLU)                (None, 14, 14, 348)  0           batch_normalization_224[0][0]    
__________________________________________________________________________________________________
conv2d_231 (Conv2D)             (None, 14, 14, 12)   37596       re_lu_224[0][0]                  
__________________________________________________________________________________________________
dropout_224 (Dropout)           (None, 14, 14, 12)   0           conv2d_231[0][0]                 
__________________________________________________________________________________________________
concatenate_251 (Concatenate)   (None, 14, 14, 360)  0           concatenate_250[0][0]            
                                                                 dropout_224[0][0]                
__________________________________________________________________________________________________
batch_normalization_225 (BatchN (None, 14, 14, 360)  1440        concatenate_251[0][0]            
__________________________________________________________________________________________________
re_lu_225 (ReLU)                (None, 14, 14, 360)  0           batch_normalization_225[0][0]    
__________________________________________________________________________________________________
conv2d_232 (Conv2D)             (None, 14, 14, 12)   38892       re_lu_225[0][0]                  
__________________________________________________________________________________________________
dropout_225 (Dropout)           (None, 14, 14, 12)   0           conv2d_232[0][0]                 
__________________________________________________________________________________________________
concatenate_252 (Concatenate)   (None, 14, 14, 372)  0           concatenate_251[0][0]            
                                                                 dropout_225[0][0]                
__________________________________________________________________________________________________
batch_normalization_226 (BatchN (None, 14, 14, 372)  1488        concatenate_252[0][0]            
__________________________________________________________________________________________________
re_lu_226 (ReLU)                (None, 14, 14, 372)  0           batch_normalization_226[0][0]    
__________________________________________________________________________________________________
conv2d_233 (Conv2D)             (None, 14, 14, 12)   40188       re_lu_226[0][0]                  
__________________________________________________________________________________________________
dropout_226 (Dropout)           (None, 14, 14, 12)   0           conv2d_233[0][0]                 
__________________________________________________________________________________________________
concatenate_253 (Concatenate)   (None, 14, 14, 48)   0           dropout_226[0][0]                
                                                                 dropout_225[0][0]                
                                                                 dropout_224[0][0]                
                                                                 dropout_223[0][0]                
__________________________________________________________________________________________________
concatenate_254 (Concatenate)   (None, 14, 14, 384)  0           concatenate_253[0][0]            
                                                                 concatenate_249[0][0]            
__________________________________________________________________________________________________
conv2d_transpose_16 (Conv2DTran (None, 28, 28, 48)   165936      concatenate_254[0][0]            
__________________________________________________________________________________________________
concatenate_255 (Concatenate)   (None, 28, 28, 288)  0           conv2d_transpose_16[0][0]        
                                                                 concatenate_239[0][0]            
__________________________________________________________________________________________________
batch_normalization_227 (BatchN (None, 28, 28, 288)  1152        concatenate_255[0][0]            
__________________________________________________________________________________________________
re_lu_227 (ReLU)                (None, 28, 28, 288)  0           batch_normalization_227[0][0]    
__________________________________________________________________________________________________
conv2d_234 (Conv2D)             (None, 28, 28, 12)   31116       re_lu_227[0][0]                  
__________________________________________________________________________________________________
dropout_227 (Dropout)           (None, 28, 28, 12)   0           conv2d_234[0][0]                 
__________________________________________________________________________________________________
concatenate_256 (Concatenate)   (None, 28, 28, 300)  0           concatenate_255[0][0]            
                                                                 dropout_227[0][0]                
__________________________________________________________________________________________________
batch_normalization_228 (BatchN (None, 28, 28, 300)  1200        concatenate_256[0][0]            
__________________________________________________________________________________________________
re_lu_228 (ReLU)                (None, 28, 28, 300)  0           batch_normalization_228[0][0]    
__________________________________________________________________________________________________
conv2d_235 (Conv2D)             (None, 28, 28, 12)   32412       re_lu_228[0][0]                  
__________________________________________________________________________________________________
dropout_228 (Dropout)           (None, 28, 28, 12)   0           conv2d_235[0][0]                 
__________________________________________________________________________________________________
concatenate_257 (Concatenate)   (None, 28, 28, 312)  0           concatenate_256[0][0]            
                                                                 dropout_228[0][0]                
__________________________________________________________________________________________________
batch_normalization_229 (BatchN (None, 28, 28, 312)  1248        concatenate_257[0][0]            
__________________________________________________________________________________________________
re_lu_229 (ReLU)                (None, 28, 28, 312)  0           batch_normalization_229[0][0]    
__________________________________________________________________________________________________
conv2d_236 (Conv2D)             (None, 28, 28, 12)   33708       re_lu_229[0][0]                  
__________________________________________________________________________________________________
dropout_229 (Dropout)           (None, 28, 28, 12)   0           conv2d_236[0][0]                 
__________________________________________________________________________________________________
concatenate_258 (Concatenate)   (None, 28, 28, 324)  0           concatenate_257[0][0]            
                                                                 dropout_229[0][0]                
__________________________________________________________________________________________________
batch_normalization_230 (BatchN (None, 28, 28, 324)  1296        concatenate_258[0][0]            
__________________________________________________________________________________________________
re_lu_230 (ReLU)                (None, 28, 28, 324)  0           batch_normalization_230[0][0]    
__________________________________________________________________________________________________
conv2d_237 (Conv2D)             (None, 28, 28, 12)   35004       re_lu_230[0][0]                  
__________________________________________________________________________________________________
dropout_230 (Dropout)           (None, 28, 28, 12)   0           conv2d_237[0][0]                 
__________________________________________________________________________________________________
concatenate_259 (Concatenate)   (None, 28, 28, 48)   0           dropout_230[0][0]                
                                                                 dropout_229[0][0]                
                                                                 dropout_228[0][0]                
                                                                 dropout_227[0][0]                
__________________________________________________________________________________________________
concatenate_260 (Concatenate)   (None, 28, 28, 336)  0           concatenate_259[0][0]            
                                                                 concatenate_255[0][0]            
__________________________________________________________________________________________________
conv2d_transpose_17 (Conv2DTran (None, 56, 56, 48)   145200      concatenate_260[0][0]            
__________________________________________________________________________________________________
concatenate_261 (Concatenate)   (None, 56, 56, 240)  0           conv2d_transpose_17[0][0]        
                                                                 concatenate_234[0][0]            
__________________________________________________________________________________________________
batch_normalization_231 (BatchN (None, 56, 56, 240)  960         concatenate_261[0][0]            
__________________________________________________________________________________________________
re_lu_231 (ReLU)                (None, 56, 56, 240)  0           batch_normalization_231[0][0]    
__________________________________________________________________________________________________
conv2d_238 (Conv2D)             (None, 56, 56, 12)   25932       re_lu_231[0][0]                  
__________________________________________________________________________________________________
dropout_231 (Dropout)           (None, 56, 56, 12)   0           conv2d_238[0][0]                 
__________________________________________________________________________________________________
concatenate_262 (Concatenate)   (None, 56, 56, 252)  0           concatenate_261[0][0]            
                                                                 dropout_231[0][0]                
__________________________________________________________________________________________________
batch_normalization_232 (BatchN (None, 56, 56, 252)  1008        concatenate_262[0][0]            
__________________________________________________________________________________________________
re_lu_232 (ReLU)                (None, 56, 56, 252)  0           batch_normalization_232[0][0]    
__________________________________________________________________________________________________
conv2d_239 (Conv2D)             (None, 56, 56, 12)   27228       re_lu_232[0][0]                  
__________________________________________________________________________________________________
dropout_232 (Dropout)           (None, 56, 56, 12)   0           conv2d_239[0][0]                 
__________________________________________________________________________________________________
concatenate_263 (Concatenate)   (None, 56, 56, 264)  0           concatenate_262[0][0]            
                                                                 dropout_232[0][0]                
__________________________________________________________________________________________________
batch_normalization_233 (BatchN (None, 56, 56, 264)  1056        concatenate_263[0][0]            
__________________________________________________________________________________________________
re_lu_233 (ReLU)                (None, 56, 56, 264)  0           batch_normalization_233[0][0]    
__________________________________________________________________________________________________
conv2d_240 (Conv2D)             (None, 56, 56, 12)   28524       re_lu_233[0][0]                  
__________________________________________________________________________________________________
dropout_233 (Dropout)           (None, 56, 56, 12)   0           conv2d_240[0][0]                 
__________________________________________________________________________________________________
concatenate_264 (Concatenate)   (None, 56, 56, 276)  0           concatenate_263[0][0]            
                                                                 dropout_233[0][0]                
__________________________________________________________________________________________________
batch_normalization_234 (BatchN (None, 56, 56, 276)  1104        concatenate_264[0][0]            
__________________________________________________________________________________________________
re_lu_234 (ReLU)                (None, 56, 56, 276)  0           batch_normalization_234[0][0]    
__________________________________________________________________________________________________
conv2d_241 (Conv2D)             (None, 56, 56, 12)   29820       re_lu_234[0][0]                  
__________________________________________________________________________________________________
dropout_234 (Dropout)           (None, 56, 56, 12)   0           conv2d_241[0][0]                 
__________________________________________________________________________________________________
concatenate_265 (Concatenate)   (None, 56, 56, 48)   0           dropout_234[0][0]                
                                                                 dropout_233[0][0]                
                                                                 dropout_232[0][0]                
                                                                 dropout_231[0][0]                
__________________________________________________________________________________________________
concatenate_266 (Concatenate)   (None, 56, 56, 288)  0           concatenate_265[0][0]            
                                                                 concatenate_261[0][0]            
__________________________________________________________________________________________________
conv2d_transpose_18 (Conv2DTran (None, 112, 112, 48) 124464      concatenate_266[0][0]            
__________________________________________________________________________________________________
concatenate_267 (Concatenate)   (None, 112, 112, 192 0           conv2d_transpose_18[0][0]        
                                                                 concatenate_229[0][0]            
__________________________________________________________________________________________________
batch_normalization_235 (BatchN (None, 112, 112, 192 768         concatenate_267[0][0]            
__________________________________________________________________________________________________
re_lu_235 (ReLU)                (None, 112, 112, 192 0           batch_normalization_235[0][0]    
__________________________________________________________________________________________________
conv2d_242 (Conv2D)             (None, 112, 112, 12) 20748       re_lu_235[0][0]                  
__________________________________________________________________________________________________
dropout_235 (Dropout)           (None, 112, 112, 12) 0           conv2d_242[0][0]                 
__________________________________________________________________________________________________
concatenate_268 (Concatenate)   (None, 112, 112, 204 0           concatenate_267[0][0]            
                                                                 dropout_235[0][0]                
__________________________________________________________________________________________________
batch_normalization_236 (BatchN (None, 112, 112, 204 816         concatenate_268[0][0]            
__________________________________________________________________________________________________
re_lu_236 (ReLU)                (None, 112, 112, 204 0           batch_normalization_236[0][0]    
__________________________________________________________________________________________________
conv2d_243 (Conv2D)             (None, 112, 112, 12) 22044       re_lu_236[0][0]                  
__________________________________________________________________________________________________
dropout_236 (Dropout)           (None, 112, 112, 12) 0           conv2d_243[0][0]                 
__________________________________________________________________________________________________
concatenate_269 (Concatenate)   (None, 112, 112, 216 0           concatenate_268[0][0]            
                                                                 dropout_236[0][0]                
__________________________________________________________________________________________________
batch_normalization_237 (BatchN (None, 112, 112, 216 864         concatenate_269[0][0]            
__________________________________________________________________________________________________
re_lu_237 (ReLU)                (None, 112, 112, 216 0           batch_normalization_237[0][0]    
__________________________________________________________________________________________________
conv2d_244 (Conv2D)             (None, 112, 112, 12) 23340       re_lu_237[0][0]                  
__________________________________________________________________________________________________
dropout_237 (Dropout)           (None, 112, 112, 12) 0           conv2d_244[0][0]                 
__________________________________________________________________________________________________
concatenate_270 (Concatenate)   (None, 112, 112, 228 0           concatenate_269[0][0]            
                                                                 dropout_237[0][0]                
__________________________________________________________________________________________________
batch_normalization_238 (BatchN (None, 112, 112, 228 912         concatenate_270[0][0]            
__________________________________________________________________________________________________
re_lu_238 (ReLU)                (None, 112, 112, 228 0           batch_normalization_238[0][0]    
__________________________________________________________________________________________________
conv2d_245 (Conv2D)             (None, 112, 112, 12) 24636       re_lu_238[0][0]                  
__________________________________________________________________________________________________
dropout_238 (Dropout)           (None, 112, 112, 12) 0           conv2d_245[0][0]                 
__________________________________________________________________________________________________
concatenate_271 (Concatenate)   (None, 112, 112, 48) 0           dropout_238[0][0]                
                                                                 dropout_237[0][0]                
                                                                 dropout_236[0][0]                
                                                                 dropout_235[0][0]                
__________________________________________________________________________________________________
concatenate_272 (Concatenate)   (None, 112, 112, 240 0           concatenate_271[0][0]            
                                                                 concatenate_267[0][0]            
__________________________________________________________________________________________________
conv2d_transpose_19 (Conv2DTran (None, 224, 224, 48) 103728      concatenate_272[0][0]            
__________________________________________________________________________________________________
concatenate_273 (Concatenate)   (None, 224, 224, 144 0           conv2d_transpose_19[0][0]        
                                                                 concatenate_224[0][0]            
__________________________________________________________________________________________________
batch_normalization_239 (BatchN (None, 224, 224, 144 576         concatenate_273[0][0]            
__________________________________________________________________________________________________
re_lu_239 (ReLU)                (None, 224, 224, 144 0           batch_normalization_239[0][0]    
__________________________________________________________________________________________________
conv2d_246 (Conv2D)             (None, 224, 224, 12) 15564       re_lu_239[0][0]                  
__________________________________________________________________________________________________
dropout_239 (Dropout)           (None, 224, 224, 12) 0           conv2d_246[0][0]                 
__________________________________________________________________________________________________
concatenate_274 (Concatenate)   (None, 224, 224, 156 0           concatenate_273[0][0]            
                                                                 dropout_239[0][0]                
__________________________________________________________________________________________________
batch_normalization_240 (BatchN (None, 224, 224, 156 624         concatenate_274[0][0]            
__________________________________________________________________________________________________
re_lu_240 (ReLU)                (None, 224, 224, 156 0           batch_normalization_240[0][0]    
__________________________________________________________________________________________________
conv2d_247 (Conv2D)             (None, 224, 224, 12) 16860       re_lu_240[0][0]                  
__________________________________________________________________________________________________
dropout_240 (Dropout)           (None, 224, 224, 12) 0           conv2d_247[0][0]                 
__________________________________________________________________________________________________
concatenate_275 (Concatenate)   (None, 224, 224, 168 0           concatenate_274[0][0]            
                                                                 dropout_240[0][0]                
__________________________________________________________________________________________________
batch_normalization_241 (BatchN (None, 224, 224, 168 672         concatenate_275[0][0]            
__________________________________________________________________________________________________
re_lu_241 (ReLU)                (None, 224, 224, 168 0           batch_normalization_241[0][0]    
__________________________________________________________________________________________________
conv2d_248 (Conv2D)             (None, 224, 224, 12) 18156       re_lu_241[0][0]                  
__________________________________________________________________________________________________
dropout_241 (Dropout)           (None, 224, 224, 12) 0           conv2d_248[0][0]                 
__________________________________________________________________________________________________
concatenate_276 (Concatenate)   (None, 224, 224, 180 0           concatenate_275[0][0]            
                                                                 dropout_241[0][0]                
__________________________________________________________________________________________________
batch_normalization_242 (BatchN (None, 224, 224, 180 720         concatenate_276[0][0]            
__________________________________________________________________________________________________
re_lu_242 (ReLU)                (None, 224, 224, 180 0           batch_normalization_242[0][0]    
__________________________________________________________________________________________________
conv2d_249 (Conv2D)             (None, 224, 224, 12) 19452       re_lu_242[0][0]                  
__________________________________________________________________________________________________
dropout_242 (Dropout)           (None, 224, 224, 12) 0           conv2d_249[0][0]                 
__________________________________________________________________________________________________
concatenate_277 (Concatenate)   (None, 224, 224, 48) 0           dropout_242[0][0]                
                                                                 dropout_241[0][0]                
                                                                 dropout_240[0][0]                
                                                                 dropout_239[0][0]                
__________________________________________________________________________________________________
concatenate_278 (Concatenate)   (None, 224, 224, 192 0           concatenate_277[0][0]            
                                                                 concatenate_273[0][0]            
__________________________________________________________________________________________________
conv2d_250 (Conv2D)             (None, 224, 224, 32) 6176        concatenate_278[0][0]            
__________________________________________________________________________________________________
activation_3 (Activation)       (None, 224, 224, 32) 0           conv2d_250[0][0]                 
==================================================================================================
Total params: 1,858,208
Trainable params: 1,837,040
Non-trainable params: 21,168
__________________________________________________________________________________________________

epochs = 150
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy()
metric_fn = tf.keras.metrics.MeanIoU(num_classes=32)
optimizer = tf.keras.optimizers.RMSprop(lr=1e-3)

@tf.function
def train_step(x, y):
  with tf.GradientTape() as tape:
    #prédiction sur le minibatch
    y_pred = model2(x_batch_train, training=True)
    #calcul de la fonction de perte moyenne sur le minibatch
    loss_value = loss_fn(y_batch_train, y_pred)

  # calcul des gradients et retropropagation
  grads = tape.gradient(loss_value, model2.trainable_weights)
  optimizer.apply_gradients(zip(grads, model2.trainable_weights))

  # mise à jour des métriques
  mask_pred = tf.argmax(y_pred, axis=-1)
  metric_fn.update_state(y_batch_train, mask_pred)

  return loss_value


for epoch in range(epochs):
  losses = 0 
  step_counter = 0
  print(f"\nDébut de l'époque {epoch+1},")
  start_time = time.time()

  # itération sur les minibatchs du dataset
  for step, (x_batch_train, y_batch_train) in enumerate(ds):
    loss_value = train_step(x_batch_train, y_batch_train)
    losses += loss_value
    step_counter += 1

    # Log tous les 100 batches
    if step % 100 == 0:
      print(f"Loss sur le batch à l'étape {step} : {float(loss_value):.4f}")

  # Affichage des métriques à la fin de l'époque
  metric = metric_fn.result()
  print(f"Loss pour l'époque : {losses/step_counter:.4f}")
  print(f"Métrique pour l'époque : {float(metric):.4f} \n")

  # Reset de la métrique à la fin de chaque époque
  metric_fn.reset_states()

Début de l'époque 1,
Loss sur le batch à l'étape 0 : 6.2236
Loss sur le batch à l'étape 100 : 0.1210
Loss pour l'époque : 0.5069 

Métrique pour l'époque : 0.5838 


Début de l'époque 2,
Loss sur le batch à l'étape 0 : 1.7736
Loss sur le batch à l'étape 100 : 0.0305
Loss pour l'époque : 0.0815 

Métrique pour l'époque : 0.9157 


Début de l'époque 3,
Loss sur le batch à l'étape 0 : 1.1833
Loss sur le batch à l'étape 100 : 0.0114
Loss pour l'époque : 0.0406 

Métrique pour l'époque : 0.9635 


Début de l'époque 4,
Loss sur le batch à l'étape 0 : 0.7455
Loss sur le batch à l'étape 100 : 0.0044
Loss pour l'époque : 0.0229 

Métrique pour l'époque : 0.9824 


Début de l'époque 5,
Loss sur le batch à l'étape 0 : 0.6260
Loss sur le batch à l'étape 100 : 0.0023
Loss pour l'époque : 0.0155 

Métrique pour l'époque : 0.9891 


Début de l'époque 6,
Loss sur le batch à l'étape 0 : 0.2041
Loss sur le batch à l'étape 100 : 0.0014
Loss pour l'époque : 0.0118 

Métrique pour l'époque : 0.9902 


Début de l'époque 7,
Loss sur le batch à l'étape 0 : 0.1994
Loss sur le batch à l'étape 100 : 0.0017
Loss pour l'époque : 0.0094 

Métrique pour l'époque : 0.9931 


Début de l'époque 8,
Loss sur le batch à l'étape 0 : 0.0930
Loss sur le batch à l'étape 100 : 0.0009
Loss pour l'époque : 0.0091 

Métrique pour l'époque : 0.9930 


Début de l'époque 9,
Loss sur le batch à l'étape 0 : 0.1203
Loss sur le batch à l'étape 100 : 0.0011
Loss pour l'époque : 0.0061 

Métrique pour l'époque : 0.9958 


Début de l'époque 10,
Loss sur le batch à l'étape 0 : 0.1503
Loss sur le batch à l'étape 100 : 0.0007
Loss pour l'époque : 0.0073 

Métrique pour l'époque : 0.9943 


Début de l'époque 11,
Loss sur le batch à l'étape 0 : 0.1016
Loss sur le batch à l'étape 100 : 0.0009
Loss pour l'époque : 0.0060 

Métrique pour l'époque : 0.9956 


Début de l'époque 12,
Loss sur le batch à l'étape 0 : 0.1979
Loss sur le batch à l'étape 100 : 0.0006
Loss pour l'époque : 0.0061 

Métrique pour l'époque : 0.9884 


Début de l'époque 13,
Loss sur le batch à l'étape 0 : 0.0657
Loss sur le batch à l'étape 100 : 0.0006
Loss pour l'époque : 0.0046 

Métrique pour l'époque : 0.9961 


Début de l'époque 14,
Loss sur le batch à l'étape 0 : 0.0976
Loss sur le batch à l'étape 100 : 0.0006
Loss pour l'époque : 0.0049 

Métrique pour l'époque : 0.9968 


Début de l'époque 15,
Loss sur le batch à l'étape 0 : 0.1594
Loss sur le batch à l'étape 100 : 0.0005
Loss pour l'époque : 0.0048 

Métrique pour l'époque : 0.9955 


Début de l'époque 16,
Loss sur le batch à l'étape 0 : 0.0422
Loss sur le batch à l'étape 100 : 0.0009
Loss pour l'époque : 0.0034 

Métrique pour l'époque : 0.9972 


Début de l'époque 17,
Loss sur le batch à l'étape 0 : 0.0528
Loss sur le batch à l'étape 100 : 0.0006
Loss pour l'époque : 0.0036 

Métrique pour l'époque : 0.9956 


Début de l'époque 18,
Loss sur le batch à l'étape 0 : 0.1152
Loss sur le batch à l'étape 100 : 0.0005
Loss pour l'époque : 0.0053 

Métrique pour l'époque : 0.9973 


Début de l'époque 19,
Loss sur le batch à l'étape 0 : 0.1081
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0041 

Métrique pour l'époque : 0.9979 


Début de l'époque 20,
Loss sur le batch à l'étape 0 : 0.0213
Loss sur le batch à l'étape 100 : 0.0057
Loss pour l'époque : 0.0022 

Métrique pour l'époque : 0.9985 


Début de l'époque 21,
Loss sur le batch à l'étape 0 : 0.0283
Loss sur le batch à l'étape 100 : 0.0006
Loss pour l'époque : 0.0031 

Métrique pour l'époque : 0.9975 


Début de l'époque 22,
Loss sur le batch à l'étape 0 : 0.0597
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0031 

Métrique pour l'époque : 0.9978 


Début de l'époque 23,
Loss sur le batch à l'étape 0 : 0.0511
Loss sur le batch à l'étape 100 : 0.0005
Loss pour l'époque : 0.0028 

Métrique pour l'époque : 0.9986 


Début de l'époque 24,
Loss sur le batch à l'étape 0 : 0.0251
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0032 

Métrique pour l'époque : 0.9975 


Début de l'époque 25,
Loss sur le batch à l'étape 0 : 0.0162
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0020 

Métrique pour l'époque : 0.9990 


Début de l'époque 26,
Loss sur le batch à l'étape 0 : 0.0684
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0026 

Métrique pour l'époque : 0.9982 


Début de l'époque 27,
Loss sur le batch à l'étape 0 : 0.0100
Loss sur le batch à l'étape 100 : 0.0138
Loss pour l'époque : 0.0019 

Métrique pour l'époque : 0.9987 


Début de l'époque 28,
Loss sur le batch à l'étape 0 : 0.0796
Loss sur le batch à l'étape 100 : 0.0007
Loss pour l'époque : 0.0024 

Métrique pour l'époque : 0.9961 


Début de l'époque 29,
Loss sur le batch à l'étape 0 : 0.0195
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0025 

Métrique pour l'époque : 0.9979 


Début de l'époque 30,
Loss sur le batch à l'étape 0 : 0.0373
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0020 

Métrique pour l'époque : 0.9988 


Début de l'époque 31,
Loss sur le batch à l'étape 0 : 0.0257
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0017 

Métrique pour l'époque : 0.9990 


Début de l'époque 32,
Loss sur le batch à l'étape 0 : 0.0571
Loss sur le batch à l'étape 100 : 0.0075
Loss pour l'époque : 0.0020 

Métrique pour l'époque : 0.9985 


Début de l'époque 33,
Loss sur le batch à l'étape 0 : 0.0167
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0028 

Métrique pour l'époque : 0.9985 


Début de l'époque 34,
Loss sur le batch à l'étape 0 : 0.1389
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0024 

Métrique pour l'époque : 0.9991 


Début de l'époque 35,
Loss sur le batch à l'étape 0 : 0.0218
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0021 

Métrique pour l'époque : 0.9985 


Début de l'époque 36,
Loss sur le batch à l'étape 0 : 0.0266
Loss sur le batch à l'étape 100 : 0.0019
Loss pour l'époque : 0.0018 

Métrique pour l'époque : 0.9990 


Début de l'époque 37,
Loss sur le batch à l'étape 0 : 0.0375
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0017 

Métrique pour l'époque : 0.9989 


Début de l'époque 38,
Loss sur le batch à l'étape 0 : 0.0757
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0017 

Métrique pour l'époque : 0.9984 


Début de l'époque 39,
Loss sur le batch à l'étape 0 : 0.0158
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0012 

Métrique pour l'époque : 0.9988 


Début de l'époque 40,
Loss sur le batch à l'étape 0 : 0.0213
Loss sur le batch à l'étape 100 : 0.0134
Loss pour l'époque : 0.0016 

Métrique pour l'époque : 0.9989 


Début de l'époque 41,
Loss sur le batch à l'étape 0 : 0.0277
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0013 

Métrique pour l'époque : 0.9985 


Début de l'époque 42,
Loss sur le batch à l'étape 0 : 0.0056
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0014 

Métrique pour l'époque : 0.9219 


Début de l'époque 43,
Loss sur le batch à l'étape 0 : 0.0042
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0014 

Métrique pour l'époque : 0.9992 


Début de l'époque 44,
Loss sur le batch à l'étape 0 : 0.0116
Loss sur le batch à l'étape 100 : 0.0005
Loss pour l'époque : 0.0014 

Métrique pour l'époque : 0.9993 


Début de l'époque 45,
Loss sur le batch à l'étape 0 : 0.0064
Loss sur le batch à l'étape 100 : 0.0005
Loss pour l'époque : 0.0011 

Métrique pour l'époque : 0.9994 


Début de l'époque 46,
Loss sur le batch à l'étape 0 : 0.0045
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0016 

Métrique pour l'époque : 0.9990 


Début de l'époque 47,
Loss sur le batch à l'étape 0 : 0.0124
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0013 

Métrique pour l'époque : 0.9993 


Début de l'époque 48,
Loss sur le batch à l'étape 0 : 0.0082
Loss sur le batch à l'étape 100 : 0.0094
Loss pour l'époque : 0.0010 

Métrique pour l'époque : 0.9994 


Début de l'époque 49,
Loss sur le batch à l'étape 0 : 0.0224
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0013 

Métrique pour l'époque : 0.9992 


Début de l'époque 50,
Loss sur le batch à l'étape 0 : 0.0030
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0013 

Métrique pour l'époque : 0.9990 


Début de l'époque 51,
Loss sur le batch à l'étape 0 : 0.0092
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9993 


Début de l'époque 52,
Loss sur le batch à l'étape 0 : 0.0067
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0012 

Métrique pour l'époque : 0.9992 


Début de l'époque 53,
Loss sur le batch à l'étape 0 : 0.0082
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9995 


Début de l'époque 54,
Loss sur le batch à l'étape 0 : 0.0072
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0012 

Métrique pour l'époque : 0.9993 


Début de l'époque 55,
Loss sur le batch à l'étape 0 : 0.0171
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0010 

Métrique pour l'époque : 0.9993 


Début de l'époque 56,
Loss sur le batch à l'étape 0 : 0.0078
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9994 


Début de l'époque 57,
Loss sur le batch à l'étape 0 : 0.0219
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0010 

Métrique pour l'époque : 0.9995 


Début de l'époque 58,
Loss sur le batch à l'étape 0 : 0.0051
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0011 

Métrique pour l'époque : 0.9996 


Début de l'époque 59,
Loss sur le batch à l'étape 0 : 0.0263
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0011 

Métrique pour l'époque : 0.9996 


Début de l'époque 60,
Loss sur le batch à l'étape 0 : 0.0068
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9994 


Début de l'époque 61,
Loss sur le batch à l'étape 0 : 0.0217
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0010 

Métrique pour l'époque : 0.9995 


Début de l'époque 62,
Loss sur le batch à l'étape 0 : 0.0091
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9996 


Début de l'époque 63,
Loss sur le batch à l'étape 0 : 0.0074
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0050 

Métrique pour l'époque : 0.9992 


Début de l'époque 64,
Loss sur le batch à l'étape 0 : 0.0949
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0017 

Métrique pour l'époque : 0.9993 


Début de l'époque 65,
Loss sur le batch à l'étape 0 : 0.0065
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0010 

Métrique pour l'époque : 0.9995 


Début de l'époque 66,
Loss sur le batch à l'étape 0 : 0.0035
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9997 


Début de l'époque 67,
Loss sur le batch à l'étape 0 : 0.0160
Loss sur le batch à l'étape 100 : 0.0006
Loss pour l'époque : 0.0012 

Métrique pour l'époque : 0.9993 


Début de l'époque 68,
Loss sur le batch à l'étape 0 : 0.0043
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9227 


Début de l'époque 69,
Loss sur le batch à l'étape 0 : 0.0646
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0015 

Métrique pour l'époque : 0.9993 


Début de l'époque 70,
Loss sur le batch à l'étape 0 : 0.0109
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9995 


Début de l'époque 71,
Loss sur le batch à l'étape 0 : 0.0045
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9995 


Début de l'époque 72,
Loss sur le batch à l'étape 0 : 0.0168
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9994 


Début de l'époque 73,
Loss sur le batch à l'étape 0 : 0.0061
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9994 


Début de l'époque 74,
Loss sur le batch à l'étape 0 : 0.0022
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9994 


Début de l'époque 75,
Loss sur le batch à l'étape 0 : 0.0069
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9994 


Début de l'époque 76,
Loss sur le batch à l'étape 0 : 0.0036
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9996 


Début de l'époque 77,
Loss sur le batch à l'étape 0 : 0.0034
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 78,
Loss sur le batch à l'étape 0 : 0.0041
Loss sur le batch à l'étape 100 : 0.0006
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9997 


Début de l'époque 79,
Loss sur le batch à l'étape 0 : 0.0151
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9997 


Début de l'époque 80,
Loss sur le batch à l'étape 0 : 0.0035
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 81,
Loss sur le batch à l'étape 0 : 0.0078
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9995 


Début de l'époque 82,
Loss sur le batch à l'étape 0 : 0.0095
Loss sur le batch à l'étape 100 : 0.0007
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 83,
Loss sur le batch à l'étape 0 : 0.0126
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9995 


Début de l'époque 84,
Loss sur le batch à l'étape 0 : 0.0056
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9997 


Début de l'époque 85,
Loss sur le batch à l'étape 0 : 0.0044
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 86,
Loss sur le batch à l'étape 0 : 0.0024
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9996 


Début de l'époque 87,
Loss sur le batch à l'étape 0 : 0.0030
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9995 


Début de l'époque 88,
Loss sur le batch à l'étape 0 : 0.0122
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9991 


Début de l'époque 89,
Loss sur le batch à l'étape 0 : 0.0050
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9995 


Début de l'époque 90,
Loss sur le batch à l'étape 0 : 0.0070
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9996 


Début de l'époque 91,
Loss sur le batch à l'étape 0 : 0.0019
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 92,
Loss sur le batch à l'étape 0 : 0.0036
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 93,
Loss sur le batch à l'étape 0 : 0.0029
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9996 


Début de l'époque 94,
Loss sur le batch à l'étape 0 : 0.0011
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9998 


Début de l'époque 95,
Loss sur le batch à l'étape 0 : 0.0031
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 96,
Loss sur le batch à l'étape 0 : 0.0053
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9997 


Début de l'époque 97,
Loss sur le batch à l'étape 0 : 0.0035
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9997 


Début de l'époque 98,
Loss sur le batch à l'étape 0 : 0.0019
Loss sur le batch à l'étape 100 : 0.0014
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9996 


Début de l'époque 99,
Loss sur le batch à l'étape 0 : 0.0007
Loss sur le batch à l'étape 100 : 0.0022
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9998 


Début de l'époque 100,
Loss sur le batch à l'étape 0 : 0.0050
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9997 


Début de l'époque 101,
Loss sur le batch à l'étape 0 : 0.0174
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9996 


Début de l'époque 102,
Loss sur le batch à l'étape 0 : 0.0062
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 103,
Loss sur le batch à l'étape 0 : 0.0063
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 104,
Loss sur le batch à l'étape 0 : 0.0033
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 105,
Loss sur le batch à l'étape 0 : 0.0021
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 106,
Loss sur le batch à l'étape 0 : 0.0020
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9228 


Début de l'époque 107,
Loss sur le batch à l'étape 0 : 0.0183
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0009 

Métrique pour l'époque : 0.9228 


Début de l'époque 108,
Loss sur le batch à l'étape 0 : 0.0107
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9998 


Début de l'époque 109,
Loss sur le batch à l'étape 0 : 0.0095
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 110,
Loss sur le batch à l'étape 0 : 0.0060
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9998 


Début de l'époque 111,
Loss sur le batch à l'étape 0 : 0.0027
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9996 


Début de l'époque 112,
Loss sur le batch à l'étape 0 : 0.0009
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 113,
Loss sur le batch à l'étape 0 : 0.0013
Loss sur le batch à l'étape 100 : 0.0005
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 114,
Loss sur le batch à l'étape 0 : 0.0127
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 115,
Loss sur le batch à l'étape 0 : 0.0026
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 116,
Loss sur le batch à l'étape 0 : 0.0056
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9997 


Début de l'époque 117,
Loss sur le batch à l'étape 0 : 0.0015
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9997 


Début de l'époque 118,
Loss sur le batch à l'étape 0 : 0.0031
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9996 


Début de l'époque 119,
Loss sur le batch à l'étape 0 : 0.0009
Loss sur le batch à l'étape 100 : 0.0005
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9997 


Début de l'époque 120,
Loss sur le batch à l'étape 0 : 0.0040
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9997 


Début de l'époque 121,
Loss sur le batch à l'étape 0 : 0.0010
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 122,
Loss sur le batch à l'étape 0 : 0.0024
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 123,
Loss sur le batch à l'étape 0 : 0.0022
Loss sur le batch à l'étape 100 : 0.0022
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9998 


Début de l'époque 124,
Loss sur le batch à l'étape 0 : 0.0029
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 125,
Loss sur le batch à l'étape 0 : 0.0025
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 126,
Loss sur le batch à l'étape 0 : 0.0023
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 127,
Loss sur le batch à l'étape 0 : 0.0020
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 128,
Loss sur le batch à l'étape 0 : 0.0029
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9997 


Début de l'époque 129,
Loss sur le batch à l'étape 0 : 0.0038
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 130,
Loss sur le batch à l'étape 0 : 0.0073
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 131,
Loss sur le batch à l'étape 0 : 0.0038
Loss sur le batch à l'étape 100 : 0.0007
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 132,
Loss sur le batch à l'étape 0 : 0.0047
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 133,
Loss sur le batch à l'étape 0 : 0.0077
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 134,
Loss sur le batch à l'étape 0 : 0.0046
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 135,
Loss sur le batch à l'étape 0 : 0.0026
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0008 

Métrique pour l'époque : 0.9998 


Début de l'époque 136,
Loss sur le batch à l'étape 0 : 0.0080
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 137,
Loss sur le batch à l'étape 0 : 0.0022
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 138,
Loss sur le batch à l'étape 0 : 0.0038
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 139,
Loss sur le batch à l'étape 0 : 0.0018
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 140,
Loss sur le batch à l'étape 0 : 0.0013
Loss sur le batch à l'étape 100 : 0.0004
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 141,
Loss sur le batch à l'étape 0 : 0.0076
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 142,
Loss sur le batch à l'étape 0 : 0.0032
Loss sur le batch à l'étape 100 : 0.0005
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9997 


Début de l'époque 143,
Loss sur le batch à l'étape 0 : 0.0022
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 144,
Loss sur le batch à l'étape 0 : 0.0011
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 145,
Loss sur le batch à l'étape 0 : 0.0019
Loss sur le batch à l'étape 100 : 0.0002
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9229 


Début de l'époque 146,
Loss sur le batch à l'étape 0 : 0.0042
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 147,
Loss sur le batch à l'étape 0 : 0.0009
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 148,
Loss sur le batch à l'étape 0 : 0.0023
Loss sur le batch à l'étape 100 : 0.0006
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


Début de l'époque 149,
Loss sur le batch à l'étape 0 : 0.0088
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0007 

Métrique pour l'époque : 0.9997 


Début de l'époque 150,
Loss sur le batch à l'étape 0 : 0.0022
Loss sur le batch à l'étape 100 : 0.0003
Loss pour l'époque : 0.0006 

Métrique pour l'époque : 0.9998 


num_obs=150

img = tf.reshape(x_train[num_obs], (-1, 224, 224, 3))
p = model2.predict(img)
p = np.argmax(p, axis=-1)
p.shape

figsize(20, 5)

subplot(1, 3, 1)
imshow(img[0, :, : ,:])
xlabel('Input')

subplot(1, 3, 2)
imshow(p[0, :, :])
xlabel('Prédiction')

subplot(1, 3, 3)
imshow(y_train[num_obs][:, :])
xlabel('Vérité')

m = tf.keras.metrics.MeanIoU(num_classes=32)
m(y_train[num_obs][:, :], p[0, :, :]).numpy()
0.42460242
FC-Densenet67
  • 67 layers (FC-DenseNet67) with \(5\) layers per dense block and a growth rate of \(16\).
1
2
3
4
5
6
7
8
#fc-densenet 67
filters = 16
nb_blocks = 5
nb_layers = [5, 5, 5, 5, 5 ,5, 5, 5, 5, 5, 5]
# Free up RAM in case the model definition cells were run multiple times
keras.backend.clear_session()
model = FCDensenet(filters, nb_layers, img_shape, num_classes=32)
model.summary()
Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_1 (InputLayer)            [(None, 224, 224, 3) 0                                            
__________________________________________________________________________________________________
conv2d (Conv2D)                 (None, 224, 224, 48) 1344        input_1[0][0]                    
__________________________________________________________________________________________________
batch_normalization (BatchNorma (None, 224, 224, 48) 192         conv2d[0][0]                     
__________________________________________________________________________________________________
re_lu (ReLU)                    (None, 224, 224, 48) 0           batch_normalization[0][0]        
__________________________________________________________________________________________________
conv2d_1 (Conv2D)               (None, 224, 224, 16) 6928        re_lu[0][0]                      
__________________________________________________________________________________________________
dropout (Dropout)               (None, 224, 224, 16) 0           conv2d_1[0][0]                   
__________________________________________________________________________________________________
concatenate (Concatenate)       (None, 224, 224, 64) 0           conv2d[0][0]                     
                                                                 dropout[0][0]                    
__________________________________________________________________________________________________
batch_normalization_1 (BatchNor (None, 224, 224, 64) 256         concatenate[0][0]                
__________________________________________________________________________________________________
re_lu_1 (ReLU)                  (None, 224, 224, 64) 0           batch_normalization_1[0][0]      
__________________________________________________________________________________________________
conv2d_2 (Conv2D)               (None, 224, 224, 16) 9232        re_lu_1[0][0]                    
__________________________________________________________________________________________________
dropout_1 (Dropout)             (None, 224, 224, 16) 0           conv2d_2[0][0]                   
__________________________________________________________________________________________________
concatenate_1 (Concatenate)     (None, 224, 224, 80) 0           concatenate[0][0]                
                                                                 dropout_1[0][0]                  
__________________________________________________________________________________________________
batch_normalization_2 (BatchNor (None, 224, 224, 80) 320         concatenate_1[0][0]              
__________________________________________________________________________________________________
re_lu_2 (ReLU)                  (None, 224, 224, 80) 0           batch_normalization_2[0][0]      
__________________________________________________________________________________________________
conv2d_3 (Conv2D)               (None, 224, 224, 16) 11536       re_lu_2[0][0]                    
__________________________________________________________________________________________________
dropout_2 (Dropout)             (None, 224, 224, 16) 0           conv2d_3[0][0]                   
__________________________________________________________________________________________________
concatenate_2 (Concatenate)     (None, 224, 224, 96) 0           concatenate_1[0][0]              
                                                                 dropout_2[0][0]                  
__________________________________________________________________________________________________
batch_normalization_3 (BatchNor (None, 224, 224, 96) 384         concatenate_2[0][0]              
__________________________________________________________________________________________________
re_lu_3 (ReLU)                  (None, 224, 224, 96) 0           batch_normalization_3[0][0]      
__________________________________________________________________________________________________
conv2d_4 (Conv2D)               (None, 224, 224, 16) 13840       re_lu_3[0][0]                    
__________________________________________________________________________________________________
dropout_3 (Dropout)             (None, 224, 224, 16) 0           conv2d_4[0][0]                   
__________________________________________________________________________________________________
concatenate_3 (Concatenate)     (None, 224, 224, 112 0           concatenate_2[0][0]              
                                                                 dropout_3[0][0]                  
__________________________________________________________________________________________________
batch_normalization_4 (BatchNor (None, 224, 224, 112 448         concatenate_3[0][0]              
__________________________________________________________________________________________________
re_lu_4 (ReLU)                  (None, 224, 224, 112 0           batch_normalization_4[0][0]      
__________________________________________________________________________________________________
conv2d_5 (Conv2D)               (None, 224, 224, 16) 16144       re_lu_4[0][0]                    
__________________________________________________________________________________________________
dropout_4 (Dropout)             (None, 224, 224, 16) 0           conv2d_5[0][0]                   
__________________________________________________________________________________________________
concatenate_4 (Concatenate)     (None, 224, 224, 80) 0           dropout_4[0][0]                  
                                                                 dropout_3[0][0]                  
                                                                 dropout_2[0][0]                  
                                                                 dropout_1[0][0]                  
                                                                 dropout[0][0]                    
__________________________________________________________________________________________________
concatenate_5 (Concatenate)     (None, 224, 224, 128 0           concatenate_4[0][0]              
                                                                 conv2d[0][0]                     
__________________________________________________________________________________________________
batch_normalization_5 (BatchNor (None, 224, 224, 128 512         concatenate_5[0][0]              
__________________________________________________________________________________________________
re_lu_5 (ReLU)                  (None, 224, 224, 128 0           batch_normalization_5[0][0]      
__________________________________________________________________________________________________
conv2d_6 (Conv2D)               (None, 224, 224, 128 16512       re_lu_5[0][0]                    
__________________________________________________________________________________________________
dropout_5 (Dropout)             (None, 224, 224, 128 0           conv2d_6[0][0]                   
__________________________________________________________________________________________________
max_pooling2d (MaxPooling2D)    (None, 112, 112, 128 0           dropout_5[0][0]                  
__________________________________________________________________________________________________
batch_normalization_6 (BatchNor (None, 112, 112, 128 512         max_pooling2d[0][0]              
__________________________________________________________________________________________________
re_lu_6 (ReLU)                  (None, 112, 112, 128 0           batch_normalization_6[0][0]      
__________________________________________________________________________________________________
conv2d_7 (Conv2D)               (None, 112, 112, 16) 18448       re_lu_6[0][0]                    
__________________________________________________________________________________________________
dropout_6 (Dropout)             (None, 112, 112, 16) 0           conv2d_7[0][0]                   
__________________________________________________________________________________________________
concatenate_6 (Concatenate)     (None, 112, 112, 144 0           max_pooling2d[0][0]              
                                                                 dropout_6[0][0]                  
__________________________________________________________________________________________________
batch_normalization_7 (BatchNor (None, 112, 112, 144 576         concatenate_6[0][0]              
__________________________________________________________________________________________________
re_lu_7 (ReLU)                  (None, 112, 112, 144 0           batch_normalization_7[0][0]      
__________________________________________________________________________________________________
conv2d_8 (Conv2D)               (None, 112, 112, 16) 20752       re_lu_7[0][0]                    
__________________________________________________________________________________________________
dropout_7 (Dropout)             (None, 112, 112, 16) 0           conv2d_8[0][0]                   
__________________________________________________________________________________________________
concatenate_7 (Concatenate)     (None, 112, 112, 160 0           concatenate_6[0][0]              
                                                                 dropout_7[0][0]                  
__________________________________________________________________________________________________
batch_normalization_8 (BatchNor (None, 112, 112, 160 640         concatenate_7[0][0]              
__________________________________________________________________________________________________
re_lu_8 (ReLU)                  (None, 112, 112, 160 0           batch_normalization_8[0][0]      
__________________________________________________________________________________________________
conv2d_9 (Conv2D)               (None, 112, 112, 16) 23056       re_lu_8[0][0]                    
__________________________________________________________________________________________________
dropout_8 (Dropout)             (None, 112, 112, 16) 0           conv2d_9[0][0]                   
__________________________________________________________________________________________________
concatenate_8 (Concatenate)     (None, 112, 112, 176 0           concatenate_7[0][0]              
                                                                 dropout_8[0][0]                  
__________________________________________________________________________________________________
batch_normalization_9 (BatchNor (None, 112, 112, 176 704         concatenate_8[0][0]              
__________________________________________________________________________________________________
re_lu_9 (ReLU)                  (None, 112, 112, 176 0           batch_normalization_9[0][0]      
__________________________________________________________________________________________________
conv2d_10 (Conv2D)              (None, 112, 112, 16) 25360       re_lu_9[0][0]                    
__________________________________________________________________________________________________
dropout_9 (Dropout)             (None, 112, 112, 16) 0           conv2d_10[0][0]                  
__________________________________________________________________________________________________
concatenate_9 (Concatenate)     (None, 112, 112, 192 0           concatenate_8[0][0]              
                                                                 dropout_9[0][0]                  
__________________________________________________________________________________________________
batch_normalization_10 (BatchNo (None, 112, 112, 192 768         concatenate_9[0][0]              
__________________________________________________________________________________________________
re_lu_10 (ReLU)                 (None, 112, 112, 192 0           batch_normalization_10[0][0]     
__________________________________________________________________________________________________
conv2d_11 (Conv2D)              (None, 112, 112, 16) 27664       re_lu_10[0][0]                   
__________________________________________________________________________________________________
dropout_10 (Dropout)            (None, 112, 112, 16) 0           conv2d_11[0][0]                  
__________________________________________________________________________________________________
concatenate_10 (Concatenate)    (None, 112, 112, 80) 0           dropout_10[0][0]                 
                                                                 dropout_9[0][0]                  
                                                                 dropout_8[0][0]                  
                                                                 dropout_7[0][0]                  
                                                                 dropout_6[0][0]                  
__________________________________________________________________________________________________
concatenate_11 (Concatenate)    (None, 112, 112, 208 0           concatenate_10[0][0]             
                                                                 max_pooling2d[0][0]              
__________________________________________________________________________________________________
batch_normalization_11 (BatchNo (None, 112, 112, 208 832         concatenate_11[0][0]             
__________________________________________________________________________________________________
re_lu_11 (ReLU)                 (None, 112, 112, 208 0           batch_normalization_11[0][0]     
__________________________________________________________________________________________________
conv2d_12 (Conv2D)              (None, 112, 112, 208 43472       re_lu_11[0][0]                   
__________________________________________________________________________________________________
dropout_11 (Dropout)            (None, 112, 112, 208 0           conv2d_12[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_1 (MaxPooling2D)  (None, 56, 56, 208)  0           dropout_11[0][0]                 
__________________________________________________________________________________________________
batch_normalization_12 (BatchNo (None, 56, 56, 208)  832         max_pooling2d_1[0][0]            
__________________________________________________________________________________________________
re_lu_12 (ReLU)                 (None, 56, 56, 208)  0           batch_normalization_12[0][0]     
__________________________________________________________________________________________________
conv2d_13 (Conv2D)              (None, 56, 56, 16)   29968       re_lu_12[0][0]                   
__________________________________________________________________________________________________
dropout_12 (Dropout)            (None, 56, 56, 16)   0           conv2d_13[0][0]                  
__________________________________________________________________________________________________
concatenate_12 (Concatenate)    (None, 56, 56, 224)  0           max_pooling2d_1[0][0]            
                                                                 dropout_12[0][0]                 
__________________________________________________________________________________________________
batch_normalization_13 (BatchNo (None, 56, 56, 224)  896         concatenate_12[0][0]             
__________________________________________________________________________________________________
re_lu_13 (ReLU)                 (None, 56, 56, 224)  0           batch_normalization_13[0][0]     
__________________________________________________________________________________________________
conv2d_14 (Conv2D)              (None, 56, 56, 16)   32272       re_lu_13[0][0]                   
__________________________________________________________________________________________________
dropout_13 (Dropout)            (None, 56, 56, 16)   0           conv2d_14[0][0]                  
__________________________________________________________________________________________________
concatenate_13 (Concatenate)    (None, 56, 56, 240)  0           concatenate_12[0][0]             
                                                                 dropout_13[0][0]                 
__________________________________________________________________________________________________
batch_normalization_14 (BatchNo (None, 56, 56, 240)  960         concatenate_13[0][0]             
__________________________________________________________________________________________________
re_lu_14 (ReLU)                 (None, 56, 56, 240)  0           batch_normalization_14[0][0]     
__________________________________________________________________________________________________
conv2d_15 (Conv2D)              (None, 56, 56, 16)   34576       re_lu_14[0][0]                   
__________________________________________________________________________________________________
dropout_14 (Dropout)            (None, 56, 56, 16)   0           conv2d_15[0][0]                  
__________________________________________________________________________________________________
concatenate_14 (Concatenate)    (None, 56, 56, 256)  0           concatenate_13[0][0]             
                                                                 dropout_14[0][0]                 
__________________________________________________________________________________________________
batch_normalization_15 (BatchNo (None, 56, 56, 256)  1024        concatenate_14[0][0]             
__________________________________________________________________________________________________
re_lu_15 (ReLU)                 (None, 56, 56, 256)  0           batch_normalization_15[0][0]     
__________________________________________________________________________________________________
conv2d_16 (Conv2D)              (None, 56, 56, 16)   36880       re_lu_15[0][0]                   
__________________________________________________________________________________________________
dropout_15 (Dropout)            (None, 56, 56, 16)   0           conv2d_16[0][0]                  
__________________________________________________________________________________________________
concatenate_15 (Concatenate)    (None, 56, 56, 272)  0           concatenate_14[0][0]             
                                                                 dropout_15[0][0]                 
__________________________________________________________________________________________________
batch_normalization_16 (BatchNo (None, 56, 56, 272)  1088        concatenate_15[0][0]             
__________________________________________________________________________________________________
re_lu_16 (ReLU)                 (None, 56, 56, 272)  0           batch_normalization_16[0][0]     
__________________________________________________________________________________________________
conv2d_17 (Conv2D)              (None, 56, 56, 16)   39184       re_lu_16[0][0]                   
__________________________________________________________________________________________________
dropout_16 (Dropout)            (None, 56, 56, 16)   0           conv2d_17[0][0]                  
__________________________________________________________________________________________________
concatenate_16 (Concatenate)    (None, 56, 56, 80)   0           dropout_16[0][0]                 
                                                                 dropout_15[0][0]                 
                                                                 dropout_14[0][0]                 
                                                                 dropout_13[0][0]                 
                                                                 dropout_12[0][0]                 
__________________________________________________________________________________________________
concatenate_17 (Concatenate)    (None, 56, 56, 288)  0           concatenate_16[0][0]             
                                                                 max_pooling2d_1[0][0]            
__________________________________________________________________________________________________
batch_normalization_17 (BatchNo (None, 56, 56, 288)  1152        concatenate_17[0][0]             
__________________________________________________________________________________________________
re_lu_17 (ReLU)                 (None, 56, 56, 288)  0           batch_normalization_17[0][0]     
__________________________________________________________________________________________________
conv2d_18 (Conv2D)              (None, 56, 56, 288)  83232       re_lu_17[0][0]                   
__________________________________________________________________________________________________
dropout_17 (Dropout)            (None, 56, 56, 288)  0           conv2d_18[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_2 (MaxPooling2D)  (None, 28, 28, 288)  0           dropout_17[0][0]                 
__________________________________________________________________________________________________
batch_normalization_18 (BatchNo (None, 28, 28, 288)  1152        max_pooling2d_2[0][0]            
__________________________________________________________________________________________________
re_lu_18 (ReLU)                 (None, 28, 28, 288)  0           batch_normalization_18[0][0]     
__________________________________________________________________________________________________
conv2d_19 (Conv2D)              (None, 28, 28, 16)   41488       re_lu_18[0][0]                   
__________________________________________________________________________________________________
dropout_18 (Dropout)            (None, 28, 28, 16)   0           conv2d_19[0][0]                  
__________________________________________________________________________________________________
concatenate_18 (Concatenate)    (None, 28, 28, 304)  0           max_pooling2d_2[0][0]            
                                                                 dropout_18[0][0]                 
__________________________________________________________________________________________________
batch_normalization_19 (BatchNo (None, 28, 28, 304)  1216        concatenate_18[0][0]             
__________________________________________________________________________________________________
re_lu_19 (ReLU)                 (None, 28, 28, 304)  0           batch_normalization_19[0][0]     
__________________________________________________________________________________________________
conv2d_20 (Conv2D)              (None, 28, 28, 16)   43792       re_lu_19[0][0]                   
__________________________________________________________________________________________________
dropout_19 (Dropout)            (None, 28, 28, 16)   0           conv2d_20[0][0]                  
__________________________________________________________________________________________________
concatenate_19 (Concatenate)    (None, 28, 28, 320)  0           concatenate_18[0][0]             
                                                                 dropout_19[0][0]                 
__________________________________________________________________________________________________
batch_normalization_20 (BatchNo (None, 28, 28, 320)  1280        concatenate_19[0][0]             
__________________________________________________________________________________________________
re_lu_20 (ReLU)                 (None, 28, 28, 320)  0           batch_normalization_20[0][0]     
__________________________________________________________________________________________________
conv2d_21 (Conv2D)              (None, 28, 28, 16)   46096       re_lu_20[0][0]                   
__________________________________________________________________________________________________
dropout_20 (Dropout)            (None, 28, 28, 16)   0           conv2d_21[0][0]                  
__________________________________________________________________________________________________
concatenate_20 (Concatenate)    (None, 28, 28, 336)  0           concatenate_19[0][0]             
                                                                 dropout_20[0][0]                 
__________________________________________________________________________________________________
batch_normalization_21 (BatchNo (None, 28, 28, 336)  1344        concatenate_20[0][0]             
__________________________________________________________________________________________________
re_lu_21 (ReLU)                 (None, 28, 28, 336)  0           batch_normalization_21[0][0]     
__________________________________________________________________________________________________
conv2d_22 (Conv2D)              (None, 28, 28, 16)   48400       re_lu_21[0][0]                   
__________________________________________________________________________________________________
dropout_21 (Dropout)            (None, 28, 28, 16)   0           conv2d_22[0][0]                  
__________________________________________________________________________________________________
concatenate_21 (Concatenate)    (None, 28, 28, 352)  0           concatenate_20[0][0]             
                                                                 dropout_21[0][0]                 
__________________________________________________________________________________________________
batch_normalization_22 (BatchNo (None, 28, 28, 352)  1408        concatenate_21[0][0]             
__________________________________________________________________________________________________
re_lu_22 (ReLU)                 (None, 28, 28, 352)  0           batch_normalization_22[0][0]     
__________________________________________________________________________________________________
conv2d_23 (Conv2D)              (None, 28, 28, 16)   50704       re_lu_22[0][0]                   
__________________________________________________________________________________________________
dropout_22 (Dropout)            (None, 28, 28, 16)   0           conv2d_23[0][0]                  
__________________________________________________________________________________________________
concatenate_22 (Concatenate)    (None, 28, 28, 80)   0           dropout_22[0][0]                 
                                                                 dropout_21[0][0]                 
                                                                 dropout_20[0][0]                 
                                                                 dropout_19[0][0]                 
                                                                 dropout_18[0][0]                 
__________________________________________________________________________________________________
concatenate_23 (Concatenate)    (None, 28, 28, 368)  0           concatenate_22[0][0]             
                                                                 max_pooling2d_2[0][0]            
__________________________________________________________________________________________________
batch_normalization_23 (BatchNo (None, 28, 28, 368)  1472        concatenate_23[0][0]             
__________________________________________________________________________________________________
re_lu_23 (ReLU)                 (None, 28, 28, 368)  0           batch_normalization_23[0][0]     
__________________________________________________________________________________________________
conv2d_24 (Conv2D)              (None, 28, 28, 368)  135792      re_lu_23[0][0]                   
__________________________________________________________________________________________________
dropout_23 (Dropout)            (None, 28, 28, 368)  0           conv2d_24[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_3 (MaxPooling2D)  (None, 14, 14, 368)  0           dropout_23[0][0]                 
__________________________________________________________________________________________________
batch_normalization_24 (BatchNo (None, 14, 14, 368)  1472        max_pooling2d_3[0][0]            
__________________________________________________________________________________________________
re_lu_24 (ReLU)                 (None, 14, 14, 368)  0           batch_normalization_24[0][0]     
__________________________________________________________________________________________________
conv2d_25 (Conv2D)              (None, 14, 14, 16)   53008       re_lu_24[0][0]                   
__________________________________________________________________________________________________
dropout_24 (Dropout)            (None, 14, 14, 16)   0           conv2d_25[0][0]                  
__________________________________________________________________________________________________
concatenate_24 (Concatenate)    (None, 14, 14, 384)  0           max_pooling2d_3[0][0]            
                                                                 dropout_24[0][0]                 
__________________________________________________________________________________________________
batch_normalization_25 (BatchNo (None, 14, 14, 384)  1536        concatenate_24[0][0]             
__________________________________________________________________________________________________
re_lu_25 (ReLU)                 (None, 14, 14, 384)  0           batch_normalization_25[0][0]     
__________________________________________________________________________________________________
conv2d_26 (Conv2D)              (None, 14, 14, 16)   55312       re_lu_25[0][0]                   
__________________________________________________________________________________________________
dropout_25 (Dropout)            (None, 14, 14, 16)   0           conv2d_26[0][0]                  
__________________________________________________________________________________________________
concatenate_25 (Concatenate)    (None, 14, 14, 400)  0           concatenate_24[0][0]             
                                                                 dropout_25[0][0]                 
__________________________________________________________________________________________________
batch_normalization_26 (BatchNo (None, 14, 14, 400)  1600        concatenate_25[0][0]             
__________________________________________________________________________________________________
re_lu_26 (ReLU)                 (None, 14, 14, 400)  0           batch_normalization_26[0][0]     
__________________________________________________________________________________________________
conv2d_27 (Conv2D)              (None, 14, 14, 16)   57616       re_lu_26[0][0]                   
__________________________________________________________________________________________________
dropout_26 (Dropout)            (None, 14, 14, 16)   0           conv2d_27[0][0]                  
__________________________________________________________________________________________________
concatenate_26 (Concatenate)    (None, 14, 14, 416)  0           concatenate_25[0][0]             
                                                                 dropout_26[0][0]                 
__________________________________________________________________________________________________
batch_normalization_27 (BatchNo (None, 14, 14, 416)  1664        concatenate_26[0][0]             
__________________________________________________________________________________________________
re_lu_27 (ReLU)                 (None, 14, 14, 416)  0           batch_normalization_27[0][0]     
__________________________________________________________________________________________________
conv2d_28 (Conv2D)              (None, 14, 14, 16)   59920       re_lu_27[0][0]                   
__________________________________________________________________________________________________
dropout_27 (Dropout)            (None, 14, 14, 16)   0           conv2d_28[0][0]                  
__________________________________________________________________________________________________
concatenate_27 (Concatenate)    (None, 14, 14, 432)  0           concatenate_26[0][0]             
                                                                 dropout_27[0][0]                 
__________________________________________________________________________________________________
batch_normalization_28 (BatchNo (None, 14, 14, 432)  1728        concatenate_27[0][0]             
__________________________________________________________________________________________________
re_lu_28 (ReLU)                 (None, 14, 14, 432)  0           batch_normalization_28[0][0]     
__________________________________________________________________________________________________
conv2d_29 (Conv2D)              (None, 14, 14, 16)   62224       re_lu_28[0][0]                   
__________________________________________________________________________________________________
dropout_28 (Dropout)            (None, 14, 14, 16)   0           conv2d_29[0][0]                  
__________________________________________________________________________________________________
concatenate_28 (Concatenate)    (None, 14, 14, 80)   0           dropout_28[0][0]                 
                                                                 dropout_27[0][0]                 
                                                                 dropout_26[0][0]                 
                                                                 dropout_25[0][0]                 
                                                                 dropout_24[0][0]                 
__________________________________________________________________________________________________
concatenate_29 (Concatenate)    (None, 14, 14, 448)  0           concatenate_28[0][0]             
                                                                 max_pooling2d_3[0][0]            
__________________________________________________________________________________________________
batch_normalization_29 (BatchNo (None, 14, 14, 448)  1792        concatenate_29[0][0]             
__________________________________________________________________________________________________
re_lu_29 (ReLU)                 (None, 14, 14, 448)  0           batch_normalization_29[0][0]     
__________________________________________________________________________________________________
conv2d_30 (Conv2D)              (None, 14, 14, 448)  201152      re_lu_29[0][0]                   
__________________________________________________________________________________________________
dropout_29 (Dropout)            (None, 14, 14, 448)  0           conv2d_30[0][0]                  
__________________________________________________________________________________________________
max_pooling2d_4 (MaxPooling2D)  (None, 7, 7, 448)    0           dropout_29[0][0]                 
__________________________________________________________________________________________________
batch_normalization_30 (BatchNo (None, 7, 7, 448)    1792        max_pooling2d_4[0][0]            
__________________________________________________________________________________________________
re_lu_30 (ReLU)                 (None, 7, 7, 448)    0           batch_normalization_30[0][0]     
__________________________________________________________________________________________________
conv2d_31 (Conv2D)              (None, 7, 7, 16)     64528       re_lu_30[0][0]                   
__________________________________________________________________________________________________
dropout_30 (Dropout)            (None, 7, 7, 16)     0           conv2d_31[0][0]                  
__________________________________________________________________________________________________
concatenate_30 (Concatenate)    (None, 7, 7, 464)    0           max_pooling2d_4[0][0]            
                                                                 dropout_30[0][0]                 
__________________________________________________________________________________________________
batch_normalization_31 (BatchNo (None, 7, 7, 464)    1856        concatenate_30[0][0]             
__________________________________________________________________________________________________
re_lu_31 (ReLU)                 (None, 7, 7, 464)    0           batch_normalization_31[0][0]     
__________________________________________________________________________________________________
conv2d_32 (Conv2D)              (None, 7, 7, 16)     66832       re_lu_31[0][0]                   
__________________________________________________________________________________________________
dropout_31 (Dropout)            (None, 7, 7, 16)     0           conv2d_32[0][0]                  
__________________________________________________________________________________________________
concatenate_31 (Concatenate)    (None, 7, 7, 480)    0           concatenate_30[0][0]             
                                                                 dropout_31[0][0]                 
__________________________________________________________________________________________________
batch_normalization_32 (BatchNo (None, 7, 7, 480)    1920        concatenate_31[0][0]             
__________________________________________________________________________________________________
re_lu_32 (ReLU)                 (None, 7, 7, 480)    0           batch_normalization_32[0][0]     
__________________________________________________________________________________________________
conv2d_33 (Conv2D)              (None, 7, 7, 16)     69136       re_lu_32[0][0]                   
__________________________________________________________________________________________________
dropout_32 (Dropout)            (None, 7, 7, 16)     0           conv2d_33[0][0]                  
__________________________________________________________________________________________________
concatenate_32 (Concatenate)    (None, 7, 7, 496)    0           concatenate_31[0][0]             
                                                                 dropout_32[0][0]                 
__________________________________________________________________________________________________
batch_normalization_33 (BatchNo (None, 7, 7, 496)    1984        concatenate_32[0][0]             
__________________________________________________________________________________________________
re_lu_33 (ReLU)                 (None, 7, 7, 496)    0           batch_normalization_33[0][0]     
__________________________________________________________________________________________________
conv2d_34 (Conv2D)              (None, 7, 7, 16)     71440       re_lu_33[0][0]                   
__________________________________________________________________________________________________
dropout_33 (Dropout)            (None, 7, 7, 16)     0           conv2d_34[0][0]                  
__________________________________________________________________________________________________
concatenate_33 (Concatenate)    (None, 7, 7, 512)    0           concatenate_32[0][0]             
                                                                 dropout_33[0][0]                 
__________________________________________________________________________________________________
batch_normalization_34 (BatchNo (None, 7, 7, 512)    2048        concatenate_33[0][0]             
__________________________________________________________________________________________________
re_lu_34 (ReLU)                 (None, 7, 7, 512)    0           batch_normalization_34[0][0]     
__________________________________________________________________________________________________
conv2d_35 (Conv2D)              (None, 7, 7, 16)     73744       re_lu_34[0][0]                   
__________________________________________________________________________________________________
dropout_34 (Dropout)            (None, 7, 7, 16)     0           conv2d_35[0][0]                  
__________________________________________________________________________________________________
concatenate_34 (Concatenate)    (None, 7, 7, 80)     0           dropout_34[0][0]                 
                                                                 dropout_33[0][0]                 
                                                                 dropout_32[0][0]                 
                                                                 dropout_31[0][0]                 
                                                                 dropout_30[0][0]                 
__________________________________________________________________________________________________
conv2d_transpose (Conv2DTranspo (None, 14, 14, 80)   57680       concatenate_34[0][0]             
__________________________________________________________________________________________________
concatenate_35 (Concatenate)    (None, 14, 14, 528)  0           conv2d_transpose[0][0]           
                                                                 concatenate_29[0][0]             
__________________________________________________________________________________________________
batch_normalization_35 (BatchNo (None, 14, 14, 528)  2112        concatenate_35[0][0]             
__________________________________________________________________________________________________
re_lu_35 (ReLU)                 (None, 14, 14, 528)  0           batch_normalization_35[0][0]     
__________________________________________________________________________________________________
conv2d_36 (Conv2D)              (None, 14, 14, 16)   76048       re_lu_35[0][0]                   
__________________________________________________________________________________________________
dropout_35 (Dropout)            (None, 14, 14, 16)   0           conv2d_36[0][0]                  
__________________________________________________________________________________________________
concatenate_36 (Concatenate)    (None, 14, 14, 544)  0           concatenate_35[0][0]             
                                                                 dropout_35[0][0]                 
__________________________________________________________________________________________________
batch_normalization_36 (BatchNo (None, 14, 14, 544)  2176        concatenate_36[0][0]             
__________________________________________________________________________________________________
re_lu_36 (ReLU)                 (None, 14, 14, 544)  0           batch_normalization_36[0][0]     
__________________________________________________________________________________________________
conv2d_37 (Conv2D)              (None, 14, 14, 16)   78352       re_lu_36[0][0]                   
__________________________________________________________________________________________________
dropout_36 (Dropout)            (None, 14, 14, 16)   0           conv2d_37[0][0]                  
__________________________________________________________________________________________________
concatenate_37 (Concatenate)    (None, 14, 14, 560)  0           concatenate_36[0][0]             
                                                                 dropout_36[0][0]                 
__________________________________________________________________________________________________
batch_normalization_37 (BatchNo (None, 14, 14, 560)  2240        concatenate_37[0][0]             
__________________________________________________________________________________________________
re_lu_37 (ReLU)                 (None, 14, 14, 560)  0           batch_normalization_37[0][0]     
__________________________________________________________________________________________________
conv2d_38 (Conv2D)              (None, 14, 14, 16)   80656       re_lu_37[0][0]                   
__________________________________________________________________________________________________
dropout_37 (Dropout)            (None, 14, 14, 16)   0           conv2d_38[0][0]                  
__________________________________________________________________________________________________
concatenate_38 (Concatenate)    (None, 14, 14, 576)  0           concatenate_37[0][0]             
                                                                 dropout_37[0][0]                 
__________________________________________________________________________________________________
batch_normalization_38 (BatchNo (None, 14, 14, 576)  2304        concatenate_38[0][0]             
__________________________________________________________________________________________________
re_lu_38 (ReLU)                 (None, 14, 14, 576)  0           batch_normalization_38[0][0]     
__________________________________________________________________________________________________
conv2d_39 (Conv2D)              (None, 14, 14, 16)   82960       re_lu_38[0][0]                   
__________________________________________________________________________________________________
dropout_38 (Dropout)            (None, 14, 14, 16)   0           conv2d_39[0][0]                  
__________________________________________________________________________________________________
concatenate_39 (Concatenate)    (None, 14, 14, 592)  0           concatenate_38[0][0]             
                                                                 dropout_38[0][0]                 
__________________________________________________________________________________________________
batch_normalization_39 (BatchNo (None, 14, 14, 592)  2368        concatenate_39[0][0]             
__________________________________________________________________________________________________
re_lu_39 (ReLU)                 (None, 14, 14, 592)  0           batch_normalization_39[0][0]     
__________________________________________________________________________________________________
conv2d_40 (Conv2D)              (None, 14, 14, 16)   85264       re_lu_39[0][0]                   
__________________________________________________________________________________________________
dropout_39 (Dropout)            (None, 14, 14, 16)   0           conv2d_40[0][0]                  
__________________________________________________________________________________________________
concatenate_40 (Concatenate)    (None, 14, 14, 80)   0           dropout_39[0][0]                 
                                                                 dropout_38[0][0]                 
                                                                 dropout_37[0][0]                 
                                                                 dropout_36[0][0]                 
                                                                 dropout_35[0][0]                 
__________________________________________________________________________________________________
concatenate_41 (Concatenate)    (None, 14, 14, 608)  0           concatenate_40[0][0]             
                                                                 concatenate_35[0][0]             
__________________________________________________________________________________________________
conv2d_transpose_1 (Conv2DTrans (None, 28, 28, 80)   437840      concatenate_41[0][0]             
__________________________________________________________________________________________________
concatenate_42 (Concatenate)    (None, 28, 28, 448)  0           conv2d_transpose_1[0][0]         
                                                                 concatenate_23[0][0]             
__________________________________________________________________________________________________
batch_normalization_40 (BatchNo (None, 28, 28, 448)  1792        concatenate_42[0][0]             
__________________________________________________________________________________________________
re_lu_40 (ReLU)                 (None, 28, 28, 448)  0           batch_normalization_40[0][0]     
__________________________________________________________________________________________________
conv2d_41 (Conv2D)              (None, 28, 28, 16)   64528       re_lu_40[0][0]                   
__________________________________________________________________________________________________
dropout_40 (Dropout)            (None, 28, 28, 16)   0           conv2d_41[0][0]                  
__________________________________________________________________________________________________
concatenate_43 (Concatenate)    (None, 28, 28, 464)  0           concatenate_42[0][0]             
                                                                 dropout_40[0][0]                 
__________________________________________________________________________________________________
batch_normalization_41 (BatchNo (None, 28, 28, 464)  1856        concatenate_43[0][0]             
__________________________________________________________________________________________________
re_lu_41 (ReLU)                 (None, 28, 28, 464)  0           batch_normalization_41[0][0]     
__________________________________________________________________________________________________
conv2d_42 (Conv2D)              (None, 28, 28, 16)   66832       re_lu_41[0][0]                   
__________________________________________________________________________________________________
dropout_41 (Dropout)            (None, 28, 28, 16)   0           conv2d_42[0][0]                  
__________________________________________________________________________________________________
concatenate_44 (Concatenate)    (None, 28, 28, 480)  0           concatenate_43[0][0]             
                                                                 dropout_41[0][0]                 
__________________________________________________________________________________________________
batch_normalization_42 (BatchNo (None, 28, 28, 480)  1920        concatenate_44[0][0]             
__________________________________________________________________________________________________
re_lu_42 (ReLU)                 (None, 28, 28, 480)  0           batch_normalization_42[0][0]     
__________________________________________________________________________________________________
conv2d_43 (Conv2D)              (None, 28, 28, 16)   69136       re_lu_42[0][0]                   
__________________________________________________________________________________________________
dropout_42 (Dropout)            (None, 28, 28, 16)   0           conv2d_43[0][0]                  
__________________________________________________________________________________________________
concatenate_45 (Concatenate)    (None, 28, 28, 496)  0           concatenate_44[0][0]             
                                                                 dropout_42[0][0]                 
__________________________________________________________________________________________________
batch_normalization_43 (BatchNo (None, 28, 28, 496)  1984        concatenate_45[0][0]             
__________________________________________________________________________________________________
re_lu_43 (ReLU)                 (None, 28, 28, 496)  0           batch_normalization_43[0][0]     
__________________________________________________________________________________________________
conv2d_44 (Conv2D)              (None, 28, 28, 16)   71440       re_lu_43[0][0]                   
__________________________________________________________________________________________________
dropout_43 (Dropout)            (None, 28, 28, 16)   0           conv2d_44[0][0]                  
__________________________________________________________________________________________________
concatenate_46 (Concatenate)    (None, 28, 28, 512)  0           concatenate_45[0][0]             
                                                                 dropout_43[0][0]                 
__________________________________________________________________________________________________
batch_normalization_44 (BatchNo (None, 28, 28, 512)  2048        concatenate_46[0][0]             
__________________________________________________________________________________________________
re_lu_44 (ReLU)                 (None, 28, 28, 512)  0           batch_normalization_44[0][0]     
__________________________________________________________________________________________________
conv2d_45 (Conv2D)              (None, 28, 28, 16)   73744       re_lu_44[0][0]                   
__________________________________________________________________________________________________
dropout_44 (Dropout)            (None, 28, 28, 16)   0           conv2d_45[0][0]                  
__________________________________________________________________________________________________
concatenate_47 (Concatenate)    (None, 28, 28, 80)   0           dropout_44[0][0]                 
                                                                 dropout_43[0][0]                 
                                                                 dropout_42[0][0]                 
                                                                 dropout_41[0][0]                 
                                                                 dropout_40[0][0]                 
__________________________________________________________________________________________________
concatenate_48 (Concatenate)    (None, 28, 28, 528)  0           concatenate_47[0][0]             
                                                                 concatenate_42[0][0]             
__________________________________________________________________________________________________
conv2d_transpose_2 (Conv2DTrans (None, 56, 56, 80)   380240      concatenate_48[0][0]             
__________________________________________________________________________________________________
concatenate_49 (Concatenate)    (None, 56, 56, 368)  0           conv2d_transpose_2[0][0]         
                                                                 concatenate_17[0][0]             
__________________________________________________________________________________________________
batch_normalization_45 (BatchNo (None, 56, 56, 368)  1472        concatenate_49[0][0]             
__________________________________________________________________________________________________
re_lu_45 (ReLU)                 (None, 56, 56, 368)  0           batch_normalization_45[0][0]     
__________________________________________________________________________________________________
conv2d_46 (Conv2D)              (None, 56, 56, 16)   53008       re_lu_45[0][0]                   
__________________________________________________________________________________________________
dropout_45 (Dropout)            (None, 56, 56, 16)   0           conv2d_46[0][0]                  
__________________________________________________________________________________________________
concatenate_50 (Concatenate)    (None, 56, 56, 384)  0           concatenate_49[0][0]             
                                                                 dropout_45[0][0]                 
__________________________________________________________________________________________________
batch_normalization_46 (BatchNo (None, 56, 56, 384)  1536        concatenate_50[0][0]             
__________________________________________________________________________________________________
re_lu_46 (ReLU)                 (None, 56, 56, 384)  0           batch_normalization_46[0][0]     
__________________________________________________________________________________________________
conv2d_47 (Conv2D)              (None, 56, 56, 16)   55312       re_lu_46[0][0]                   
__________________________________________________________________________________________________
dropout_46 (Dropout)            (None, 56, 56, 16)   0           conv2d_47[0][0]                  
__________________________________________________________________________________________________
concatenate_51 (Concatenate)    (None, 56, 56, 400)  0           concatenate_50[0][0]             
                                                                 dropout_46[0][0]                 
__________________________________________________________________________________________________
batch_normalization_47 (BatchNo (None, 56, 56, 400)  1600        concatenate_51[0][0]             
__________________________________________________________________________________________________
re_lu_47 (ReLU)                 (None, 56, 56, 400)  0           batch_normalization_47[0][0]     
__________________________________________________________________________________________________
conv2d_48 (Conv2D)              (None, 56, 56, 16)   57616       re_lu_47[0][0]                   
__________________________________________________________________________________________________
dropout_47 (Dropout)            (None, 56, 56, 16)   0           conv2d_48[0][0]                  
__________________________________________________________________________________________________
concatenate_52 (Concatenate)    (None, 56, 56, 416)  0           concatenate_51[0][0]             
                                                                 dropout_47[0][0]                 
__________________________________________________________________________________________________
batch_normalization_48 (BatchNo (None, 56, 56, 416)  1664        concatenate_52[0][0]             
__________________________________________________________________________________________________
re_lu_48 (ReLU)                 (None, 56, 56, 416)  0           batch_normalization_48[0][0]     
__________________________________________________________________________________________________
conv2d_49 (Conv2D)              (None, 56, 56, 16)   59920       re_lu_48[0][0]                   
__________________________________________________________________________________________________
dropout_48 (Dropout)            (None, 56, 56, 16)   0           conv2d_49[0][0]                  
__________________________________________________________________________________________________
concatenate_53 (Concatenate)    (None, 56, 56, 432)  0           concatenate_52[0][0]             
                                                                 dropout_48[0][0]                 
__________________________________________________________________________________________________
batch_normalization_49 (BatchNo (None, 56, 56, 432)  1728        concatenate_53[0][0]             
__________________________________________________________________________________________________
re_lu_49 (ReLU)                 (None, 56, 56, 432)  0           batch_normalization_49[0][0]     
__________________________________________________________________________________________________
conv2d_50 (Conv2D)              (None, 56, 56, 16)   62224       re_lu_49[0][0]                   
__________________________________________________________________________________________________
dropout_49 (Dropout)            (None, 56, 56, 16)   0           conv2d_50[0][0]                  
__________________________________________________________________________________________________
concatenate_54 (Concatenate)    (None, 56, 56, 80)   0           dropout_49[0][0]                 
                                                                 dropout_48[0][0]                 
                                                                 dropout_47[0][0]                 
                                                                 dropout_46[0][0]                 
                                                                 dropout_45[0][0]                 
__________________________________________________________________________________________________
concatenate_55 (Concatenate)    (None, 56, 56, 448)  0           concatenate_54[0][0]             
                                                                 concatenate_49[0][0]             
__________________________________________________________________________________________________
conv2d_transpose_3 (Conv2DTrans (None, 112, 112, 80) 322640      concatenate_55[0][0]             
__________________________________________________________________________________________________
concatenate_56 (Concatenate)    (None, 112, 112, 288 0           conv2d_transpose_3[0][0]         
                                                                 concatenate_11[0][0]             
__________________________________________________________________________________________________
batch_normalization_50 (BatchNo (None, 112, 112, 288 1152        concatenate_56[0][0]             
__________________________________________________________________________________________________
re_lu_50 (ReLU)                 (None, 112, 112, 288 0           batch_normalization_50[0][0]     
__________________________________________________________________________________________________
conv2d_51 (Conv2D)              (None, 112, 112, 16) 41488       re_lu_50[0][0]                   
__________________________________________________________________________________________________
dropout_50 (Dropout)            (None, 112, 112, 16) 0           conv2d_51[0][0]                  
__________________________________________________________________________________________________
concatenate_57 (Concatenate)    (None, 112, 112, 304 0           concatenate_56[0][0]             
                                                                 dropout_50[0][0]                 
__________________________________________________________________________________________________
batch_normalization_51 (BatchNo (None, 112, 112, 304 1216        concatenate_57[0][0]             
__________________________________________________________________________________________________
re_lu_51 (ReLU)                 (None, 112, 112, 304 0           batch_normalization_51[0][0]     
__________________________________________________________________________________________________
conv2d_52 (Conv2D)              (None, 112, 112, 16) 43792       re_lu_51[0][0]                   
__________________________________________________________________________________________________
dropout_51 (Dropout)            (None, 112, 112, 16) 0           conv2d_52[0][0]                  
__________________________________________________________________________________________________
concatenate_58 (Concatenate)    (None, 112, 112, 320 0           concatenate_57[0][0]             
                                                                 dropout_51[0][0]                 
__________________________________________________________________________________________________
batch_normalization_52 (BatchNo (None, 112, 112, 320 1280        concatenate_58[0][0]             
__________________________________________________________________________________________________
re_lu_52 (ReLU)                 (None, 112, 112, 320 0           batch_normalization_52[0][0]     
__________________________________________________________________________________________________
conv2d_53 (Conv2D)              (None, 112, 112, 16) 46096       re_lu_52[0][0]                   
__________________________________________________________________________________________________
dropout_52 (Dropout)            (None, 112, 112, 16) 0           conv2d_53[0][0]                  
__________________________________________________________________________________________________
concatenate_59 (Concatenate)    (None, 112, 112, 336 0           concatenate_58[0][0]             
                                                                 dropout_52[0][0]                 
__________________________________________________________________________________________________
batch_normalization_53 (BatchNo (None, 112, 112, 336 1344        concatenate_59[0][0]             
__________________________________________________________________________________________________
re_lu_53 (ReLU)                 (None, 112, 112, 336 0           batch_normalization_53[0][0]     
__________________________________________________________________________________________________
conv2d_54 (Conv2D)              (None, 112, 112, 16) 48400       re_lu_53[0][0]                   
__________________________________________________________________________________________________
dropout_53 (Dropout)            (None, 112, 112, 16) 0           conv2d_54[0][0]                  
__________________________________________________________________________________________________
concatenate_60 (Concatenate)    (None, 112, 112, 352 0           concatenate_59[0][0]             
                                                                 dropout_53[0][0]                 
__________________________________________________________________________________________________
batch_normalization_54 (BatchNo (None, 112, 112, 352 1408        concatenate_60[0][0]             
__________________________________________________________________________________________________
re_lu_54 (ReLU)                 (None, 112, 112, 352 0           batch_normalization_54[0][0]     
__________________________________________________________________________________________________
conv2d_55 (Conv2D)              (None, 112, 112, 16) 50704       re_lu_54[0][0]                   
__________________________________________________________________________________________________
dropout_54 (Dropout)            (None, 112, 112, 16) 0           conv2d_55[0][0]                  
__________________________________________________________________________________________________
concatenate_61 (Concatenate)    (None, 112, 112, 80) 0           dropout_54[0][0]                 
                                                                 dropout_53[0][0]                 
                                                                 dropout_52[0][0]                 
                                                                 dropout_51[0][0]                 
                                                                 dropout_50[0][0]                 
__________________________________________________________________________________________________
concatenate_62 (Concatenate)    (None, 112, 112, 368 0           concatenate_61[0][0]             
                                                                 concatenate_56[0][0]             
__________________________________________________________________________________________________
conv2d_transpose_4 (Conv2DTrans (None, 224, 224, 80) 265040      concatenate_62[0][0]             
__________________________________________________________________________________________________
concatenate_63 (Concatenate)    (None, 224, 224, 208 0           conv2d_transpose_4[0][0]         
                                                                 concatenate_5[0][0]              
__________________________________________________________________________________________________
batch_normalization_55 (BatchNo (None, 224, 224, 208 832         concatenate_63[0][0]             
__________________________________________________________________________________________________
re_lu_55 (ReLU)                 (None, 224, 224, 208 0           batch_normalization_55[0][0]     
__________________________________________________________________________________________________
conv2d_56 (Conv2D)              (None, 224, 224, 16) 29968       re_lu_55[0][0]                   
__________________________________________________________________________________________________
dropout_55 (Dropout)            (None, 224, 224, 16) 0           conv2d_56[0][0]                  
__________________________________________________________________________________________________
concatenate_64 (Concatenate)    (None, 224, 224, 224 0           concatenate_63[0][0]             
                                                                 dropout_55[0][0]                 
__________________________________________________________________________________________________
batch_normalization_56 (BatchNo (None, 224, 224, 224 896         concatenate_64[0][0]             
__________________________________________________________________________________________________
re_lu_56 (ReLU)                 (None, 224, 224, 224 0           batch_normalization_56[0][0]     
__________________________________________________________________________________________________
conv2d_57 (Conv2D)              (None, 224, 224, 16) 32272       re_lu_56[0][0]                   
__________________________________________________________________________________________________
dropout_56 (Dropout)            (None, 224, 224, 16) 0           conv2d_57[0][0]                  
__________________________________________________________________________________________________
concatenate_65 (Concatenate)    (None, 224, 224, 240 0           concatenate_64[0][0]             
                                                                 dropout_56[0][0]                 
__________________________________________________________________________________________________
batch_normalization_57 (BatchNo (None, 224, 224, 240 960         concatenate_65[0][0]             
__________________________________________________________________________________________________
re_lu_57 (ReLU)                 (None, 224, 224, 240 0           batch_normalization_57[0][0]     
__________________________________________________________________________________________________
conv2d_58 (Conv2D)              (None, 224, 224, 16) 34576       re_lu_57[0][0]                   
__________________________________________________________________________________________________
dropout_57 (Dropout)            (None, 224, 224, 16) 0           conv2d_58[0][0]                  
__________________________________________________________________________________________________
concatenate_66 (Concatenate)    (None, 224, 224, 256 0           concatenate_65[0][0]             
                                                                 dropout_57[0][0]                 
__________________________________________________________________________________________________
batch_normalization_58 (BatchNo (None, 224, 224, 256 1024        concatenate_66[0][0]             
__________________________________________________________________________________________________
re_lu_58 (ReLU)                 (None, 224, 224, 256 0           batch_normalization_58[0][0]     
__________________________________________________________________________________________________
conv2d_59 (Conv2D)              (None, 224, 224, 16) 36880       re_lu_58[0][0]                   
__________________________________________________________________________________________________
dropout_58 (Dropout)            (None, 224, 224, 16) 0           conv2d_59[0][0]                  
__________________________________________________________________________________________________
concatenate_67 (Concatenate)    (None, 224, 224, 272 0           concatenate_66[0][0]             
                                                                 dropout_58[0][0]                 
__________________________________________________________________________________________________
batch_normalization_59 (BatchNo (None, 224, 224, 272 1088        concatenate_67[0][0]             
__________________________________________________________________________________________________
re_lu_59 (ReLU)                 (None, 224, 224, 272 0           batch_normalization_59[0][0]     
__________________________________________________________________________________________________
conv2d_60 (Conv2D)              (None, 224, 224, 16) 39184       re_lu_59[0][0]                   
__________________________________________________________________________________________________
dropout_59 (Dropout)            (None, 224, 224, 16) 0           conv2d_60[0][0]                  
__________________________________________________________________________________________________
concatenate_68 (Concatenate)    (None, 224, 224, 80) 0           dropout_59[0][0]                 
                                                                 dropout_58[0][0]                 
                                                                 dropout_57[0][0]                 
                                                                 dropout_56[0][0]                 
                                                                 dropout_55[0][0]                 
__________________________________________________________________________________________________
concatenate_69 (Concatenate)    (None, 224, 224, 288 0           concatenate_68[0][0]             
                                                                 concatenate_63[0][0]             
__________________________________________________________________________________________________
conv2d_61 (Conv2D)              (None, 224, 224, 32) 9248        concatenate_69[0][0]             
__________________________________________________________________________________________________
activation (Activation)         (None, 224, 224, 32) 0           conv2d_61[0][0]                  
==================================================================================================
Total params: 4,684,032
Trainable params: 4,644,352
Non-trainable params: 39,680
__________________________________________________________________________________________________

1
2
3
model.compile(loss='sparse_categorical_crossentropy', 
              optimizer=keras.optimizers.RMSprop(lr=1e-3),
              metrics=["accuracy"])
model.fit(ds,
          epochs=2)