Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
packtpublishing
GitHub Repository: packtpublishing/machine-learning-for-algorithmic-trading-second-edition
Path: blob/master/18_convolutional_neural_nets/11_satellite_images.ipynb
2923 views
Kernel: Python 3

How to classify satellite images

Imports & Settings

import warnings warnings.filterwarnings('ignore')
%matplotlib inline from pathlib import Path import pandas as pd import matplotlib.pyplot as plt from matplotlib.ticker import FuncFormatter import seaborn as sns import tensorflow as tf from tensorflow.keras.applications.densenet import DenseNet201 from tensorflow.keras.layers import Dense, BatchNormalization from tensorflow.keras.models import Sequential from tensorflow.keras.callbacks import ModelCheckpoint, EarlyStopping from tensorflow.keras.regularizers import l1_l2 from tensorflow.keras.optimizers import Adam import tensorflow_datasets as tfds
gpu_devices = tf.config.experimental.list_physical_devices('GPU') if gpu_devices: print('Using GPU') tf.config.experimental.set_memory_growth(gpu_devices[0], True) else: print('Using CPU')
Using CPU
sns.set_style('whitegrid')
results_path = Path ('results', 'eurosat') if not results_path.exists(): results_path.mkdir(parents=True)

Load EuroSat Dataset

(raw_train, raw_validation), metadata = tfds.load('eurosat', split=[ tfds.Split.TRAIN.subsplit( tfds.percent[:90]), tfds.Split.TRAIN.subsplit( tfds.percent[90:]) ], with_info=True, shuffle_files=False, as_supervised=True, data_dir='../data/tensorflow')

Inspect MetaData

metadata
tfds.core.DatasetInfo( name='eurosat', version=0.0.1, description='EuroSAT dataset is based on Sentinel-2 satellite images covering 13 spectral bands and consisting of 10 classes with 27000 labeled and geo-referenced samples. Two datasets are offered: - rgb: Contains only the optical R, G, B frequency bands encoded as JPEG image. - all: Contains all 13 bands in the original value range (float32). URL: https://github.com/phelber/eurosat ', urls=['https://github.com/phelber/eurosat'], features=FeaturesDict({ 'filename': Text(shape=(), dtype=tf.string), 'image': Image(shape=(64, 64, 3), dtype=tf.uint8), 'label': ClassLabel(shape=(), dtype=tf.int64, num_classes=10), }), total_num_examples=27000, splits={ 'train': 27000, }, supervised_keys=('image', 'label'), citation="""@misc{helber2017eurosat, title={EuroSAT: A Novel Dataset and Deep Learning Benchmark for Land Use and Land Cover Classification}, author={Patrick Helber and Benjamin Bischke and Andreas Dengel and Damian Borth}, year={2017}, eprint={1709.00029}, archivePrefix={arXiv}, primaryClass={cs.CV} }""", redistribution_info=, )
print('Train:\t', raw_train) print('Valid:\t', raw_validation)
Train: <_OptionsDataset shapes: ((64, 64, 3), ()), types: (tf.uint8, tf.int64)> Valid: <_OptionsDataset shapes: ((64, 64, 3), ()), types: (tf.uint8, tf.int64)>

Show sample images

fig, axes = plt.subplots(figsize=(15, 7), ncols=5, nrows=2) axes = axes.flatten() get_label_name = metadata.features['label'].int2str labels = set() c = 0 for img, label in raw_train.as_numpy_iterator(): if label not in labels: axes[c].imshow(img) axes[c].set_title(get_label_name(label)) axes[c].grid(False) axes[c].tick_params(axis='both', which='both', bottom=False, top=False, labelbottom=False, right=False, left=False, labelleft=False) labels.add(label) c += 1 if c == 10: break fig.suptitle('EuroSat Satellite Images', fontsize=16) fig.tight_layout() fig.subplots_adjust(top=.92); # fig.savefig(results_path / 'eurosat_samples', dpi=300);
Image in a Jupyter notebook

Preprocessing

All images will be resized to 160x160:

IMG_SIZE = 64 IMG_SHAPE = (IMG_SIZE, IMG_SIZE, 3)
def format_example(image, label): image = tf.cast(image, tf.float32) image = (image/127.5) - 1 return image, label
train = raw_train.map(format_example) validation = raw_validation.map(format_example)
BATCH_SIZE = 32 SHUFFLE_BUFFER_SIZE = 1000
train_batches = train.shuffle(SHUFFLE_BUFFER_SIZE).batch(BATCH_SIZE) validation_batches = validation.batch(BATCH_SIZE)
for image_batch, label_batch in train_batches.take(1): pass image_batch.shape
TensorShape([32, 64, 64, 3])

Load the DenseNet201 Bottleneck Features

densenet = DenseNet201(input_shape=IMG_SHAPE, include_top=False, weights='imagenet', pooling='max', classes=1000) densenet.summary()
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/densenet/densenet201_weights_tf_dim_ordering_tf_kernels_notop.h5 74842112/74836368 [==============================] - 1s 0us/step Model: "densenet201" __________________________________________________________________________________________________ Layer (type) Output Shape Param # Connected to ================================================================================================== input_1 (InputLayer) [(None, 64, 64, 3)] 0 __________________________________________________________________________________________________ zero_padding2d (ZeroPadding2D) (None, 70, 70, 3) 0 input_1[0][0] __________________________________________________________________________________________________ conv1/conv (Conv2D) (None, 32, 32, 64) 9408 zero_padding2d[0][0] __________________________________________________________________________________________________ conv1/bn (BatchNormalization) (None, 32, 32, 64) 256 conv1/conv[0][0] __________________________________________________________________________________________________ conv1/relu (Activation) (None, 32, 32, 64) 0 conv1/bn[0][0] __________________________________________________________________________________________________ zero_padding2d_1 (ZeroPadding2D (None, 34, 34, 64) 0 conv1/relu[0][0] __________________________________________________________________________________________________ pool1 (MaxPooling2D) (None, 16, 16, 64) 0 zero_padding2d_1[0][0] __________________________________________________________________________________________________ conv2_block1_0_bn (BatchNormali (None, 16, 16, 64) 256 pool1[0][0] __________________________________________________________________________________________________ conv2_block1_0_relu (Activation (None, 16, 16, 64) 0 conv2_block1_0_bn[0][0] __________________________________________________________________________________________________ conv2_block1_1_conv (Conv2D) (None, 16, 16, 128) 8192 conv2_block1_0_relu[0][0] __________________________________________________________________________________________________ conv2_block1_1_bn (BatchNormali (None, 16, 16, 128) 512 conv2_block1_1_conv[0][0] __________________________________________________________________________________________________ conv2_block1_1_relu (Activation (None, 16, 16, 128) 0 conv2_block1_1_bn[0][0] __________________________________________________________________________________________________ conv2_block1_2_conv (Conv2D) (None, 16, 16, 32) 36864 conv2_block1_1_relu[0][0] __________________________________________________________________________________________________ conv2_block1_concat (Concatenat (None, 16, 16, 96) 0 pool1[0][0] conv2_block1_2_conv[0][0] __________________________________________________________________________________________________ conv2_block2_0_bn (BatchNormali (None, 16, 16, 96) 384 conv2_block1_concat[0][0] __________________________________________________________________________________________________ conv2_block2_0_relu (Activation (None, 16, 16, 96) 0 conv2_block2_0_bn[0][0] __________________________________________________________________________________________________ conv2_block2_1_conv (Conv2D) (None, 16, 16, 128) 12288 conv2_block2_0_relu[0][0] __________________________________________________________________________________________________ conv2_block2_1_bn (BatchNormali (None, 16, 16, 128) 512 conv2_block2_1_conv[0][0] __________________________________________________________________________________________________ conv2_block2_1_relu (Activation (None, 16, 16, 128) 0 conv2_block2_1_bn[0][0] __________________________________________________________________________________________________ conv2_block2_2_conv (Conv2D) (None, 16, 16, 32) 36864 conv2_block2_1_relu[0][0] __________________________________________________________________________________________________ conv2_block2_concat (Concatenat (None, 16, 16, 128) 0 conv2_block1_concat[0][0] conv2_block2_2_conv[0][0] __________________________________________________________________________________________________ conv2_block3_0_bn (BatchNormali (None, 16, 16, 128) 512 conv2_block2_concat[0][0] __________________________________________________________________________________________________ conv2_block3_0_relu (Activation (None, 16, 16, 128) 0 conv2_block3_0_bn[0][0] __________________________________________________________________________________________________ conv2_block3_1_conv (Conv2D) (None, 16, 16, 128) 16384 conv2_block3_0_relu[0][0] __________________________________________________________________________________________________ conv2_block3_1_bn (BatchNormali (None, 16, 16, 128) 512 conv2_block3_1_conv[0][0] __________________________________________________________________________________________________ conv2_block3_1_relu (Activation (None, 16, 16, 128) 0 conv2_block3_1_bn[0][0] __________________________________________________________________________________________________ conv2_block3_2_conv (Conv2D) (None, 16, 16, 32) 36864 conv2_block3_1_relu[0][0] __________________________________________________________________________________________________ conv2_block3_concat (Concatenat (None, 16, 16, 160) 0 conv2_block2_concat[0][0] conv2_block3_2_conv[0][0] __________________________________________________________________________________________________ conv2_block4_0_bn (BatchNormali (None, 16, 16, 160) 640 conv2_block3_concat[0][0] __________________________________________________________________________________________________ conv2_block4_0_relu (Activation (None, 16, 16, 160) 0 conv2_block4_0_bn[0][0] __________________________________________________________________________________________________ conv2_block4_1_conv (Conv2D) (None, 16, 16, 128) 20480 conv2_block4_0_relu[0][0] __________________________________________________________________________________________________ conv2_block4_1_bn (BatchNormali (None, 16, 16, 128) 512 conv2_block4_1_conv[0][0] __________________________________________________________________________________________________ conv2_block4_1_relu (Activation (None, 16, 16, 128) 0 conv2_block4_1_bn[0][0] __________________________________________________________________________________________________ conv2_block4_2_conv (Conv2D) (None, 16, 16, 32) 36864 conv2_block4_1_relu[0][0] __________________________________________________________________________________________________ conv2_block4_concat (Concatenat (None, 16, 16, 192) 0 conv2_block3_concat[0][0] conv2_block4_2_conv[0][0] __________________________________________________________________________________________________ conv2_block5_0_bn (BatchNormali (None, 16, 16, 192) 768 conv2_block4_concat[0][0] __________________________________________________________________________________________________ conv2_block5_0_relu (Activation (None, 16, 16, 192) 0 conv2_block5_0_bn[0][0] __________________________________________________________________________________________________ conv2_block5_1_conv (Conv2D) (None, 16, 16, 128) 24576 conv2_block5_0_relu[0][0] __________________________________________________________________________________________________ conv2_block5_1_bn (BatchNormali (None, 16, 16, 128) 512 conv2_block5_1_conv[0][0] __________________________________________________________________________________________________ conv2_block5_1_relu (Activation (None, 16, 16, 128) 0 conv2_block5_1_bn[0][0] __________________________________________________________________________________________________ conv2_block5_2_conv (Conv2D) (None, 16, 16, 32) 36864 conv2_block5_1_relu[0][0] __________________________________________________________________________________________________ conv2_block5_concat (Concatenat (None, 16, 16, 224) 0 conv2_block4_concat[0][0] conv2_block5_2_conv[0][0] __________________________________________________________________________________________________ conv2_block6_0_bn (BatchNormali (None, 16, 16, 224) 896 conv2_block5_concat[0][0] __________________________________________________________________________________________________ conv2_block6_0_relu (Activation (None, 16, 16, 224) 0 conv2_block6_0_bn[0][0] __________________________________________________________________________________________________ conv2_block6_1_conv (Conv2D) (None, 16, 16, 128) 28672 conv2_block6_0_relu[0][0] __________________________________________________________________________________________________ conv2_block6_1_bn (BatchNormali (None, 16, 16, 128) 512 conv2_block6_1_conv[0][0] __________________________________________________________________________________________________ conv2_block6_1_relu (Activation (None, 16, 16, 128) 0 conv2_block6_1_bn[0][0] __________________________________________________________________________________________________ conv2_block6_2_conv (Conv2D) (None, 16, 16, 32) 36864 conv2_block6_1_relu[0][0] __________________________________________________________________________________________________ conv2_block6_concat (Concatenat (None, 16, 16, 256) 0 conv2_block5_concat[0][0] conv2_block6_2_conv[0][0] __________________________________________________________________________________________________ pool2_bn (BatchNormalization) (None, 16, 16, 256) 1024 conv2_block6_concat[0][0] __________________________________________________________________________________________________ pool2_relu (Activation) (None, 16, 16, 256) 0 pool2_bn[0][0] __________________________________________________________________________________________________ pool2_conv (Conv2D) (None, 16, 16, 128) 32768 pool2_relu[0][0] __________________________________________________________________________________________________ pool2_pool (AveragePooling2D) (None, 8, 8, 128) 0 pool2_conv[0][0] __________________________________________________________________________________________________ conv3_block1_0_bn (BatchNormali (None, 8, 8, 128) 512 pool2_pool[0][0] __________________________________________________________________________________________________ conv3_block1_0_relu (Activation (None, 8, 8, 128) 0 conv3_block1_0_bn[0][0] __________________________________________________________________________________________________ conv3_block1_1_conv (Conv2D) (None, 8, 8, 128) 16384 conv3_block1_0_relu[0][0] __________________________________________________________________________________________________ conv3_block1_1_bn (BatchNormali (None, 8, 8, 128) 512 conv3_block1_1_conv[0][0] __________________________________________________________________________________________________ conv3_block1_1_relu (Activation (None, 8, 8, 128) 0 conv3_block1_1_bn[0][0] __________________________________________________________________________________________________ conv3_block1_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block1_1_relu[0][0] __________________________________________________________________________________________________ conv3_block1_concat (Concatenat (None, 8, 8, 160) 0 pool2_pool[0][0] conv3_block1_2_conv[0][0] __________________________________________________________________________________________________ conv3_block2_0_bn (BatchNormali (None, 8, 8, 160) 640 conv3_block1_concat[0][0] __________________________________________________________________________________________________ conv3_block2_0_relu (Activation (None, 8, 8, 160) 0 conv3_block2_0_bn[0][0] __________________________________________________________________________________________________ conv3_block2_1_conv (Conv2D) (None, 8, 8, 128) 20480 conv3_block2_0_relu[0][0] __________________________________________________________________________________________________ conv3_block2_1_bn (BatchNormali (None, 8, 8, 128) 512 conv3_block2_1_conv[0][0] __________________________________________________________________________________________________ conv3_block2_1_relu (Activation (None, 8, 8, 128) 0 conv3_block2_1_bn[0][0] __________________________________________________________________________________________________ conv3_block2_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block2_1_relu[0][0] __________________________________________________________________________________________________ conv3_block2_concat (Concatenat (None, 8, 8, 192) 0 conv3_block1_concat[0][0] conv3_block2_2_conv[0][0] __________________________________________________________________________________________________ conv3_block3_0_bn (BatchNormali (None, 8, 8, 192) 768 conv3_block2_concat[0][0] __________________________________________________________________________________________________ conv3_block3_0_relu (Activation (None, 8, 8, 192) 0 conv3_block3_0_bn[0][0] __________________________________________________________________________________________________ conv3_block3_1_conv (Conv2D) (None, 8, 8, 128) 24576 conv3_block3_0_relu[0][0] __________________________________________________________________________________________________ conv3_block3_1_bn (BatchNormali (None, 8, 8, 128) 512 conv3_block3_1_conv[0][0] __________________________________________________________________________________________________ conv3_block3_1_relu (Activation (None, 8, 8, 128) 0 conv3_block3_1_bn[0][0] __________________________________________________________________________________________________ conv3_block3_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block3_1_relu[0][0] __________________________________________________________________________________________________ conv3_block3_concat (Concatenat (None, 8, 8, 224) 0 conv3_block2_concat[0][0] conv3_block3_2_conv[0][0] __________________________________________________________________________________________________ conv3_block4_0_bn (BatchNormali (None, 8, 8, 224) 896 conv3_block3_concat[0][0] __________________________________________________________________________________________________ conv3_block4_0_relu (Activation (None, 8, 8, 224) 0 conv3_block4_0_bn[0][0] __________________________________________________________________________________________________ conv3_block4_1_conv (Conv2D) (None, 8, 8, 128) 28672 conv3_block4_0_relu[0][0] __________________________________________________________________________________________________ conv3_block4_1_bn (BatchNormali (None, 8, 8, 128) 512 conv3_block4_1_conv[0][0] __________________________________________________________________________________________________ conv3_block4_1_relu (Activation (None, 8, 8, 128) 0 conv3_block4_1_bn[0][0] __________________________________________________________________________________________________ conv3_block4_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block4_1_relu[0][0] __________________________________________________________________________________________________ conv3_block4_concat (Concatenat (None, 8, 8, 256) 0 conv3_block3_concat[0][0] conv3_block4_2_conv[0][0] __________________________________________________________________________________________________ conv3_block5_0_bn (BatchNormali (None, 8, 8, 256) 1024 conv3_block4_concat[0][0] __________________________________________________________________________________________________ conv3_block5_0_relu (Activation (None, 8, 8, 256) 0 conv3_block5_0_bn[0][0] __________________________________________________________________________________________________ conv3_block5_1_conv (Conv2D) (None, 8, 8, 128) 32768 conv3_block5_0_relu[0][0] __________________________________________________________________________________________________ conv3_block5_1_bn (BatchNormali (None, 8, 8, 128) 512 conv3_block5_1_conv[0][0] __________________________________________________________________________________________________ conv3_block5_1_relu (Activation (None, 8, 8, 128) 0 conv3_block5_1_bn[0][0] __________________________________________________________________________________________________ conv3_block5_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block5_1_relu[0][0] __________________________________________________________________________________________________ conv3_block5_concat (Concatenat (None, 8, 8, 288) 0 conv3_block4_concat[0][0] conv3_block5_2_conv[0][0] __________________________________________________________________________________________________ conv3_block6_0_bn (BatchNormali (None, 8, 8, 288) 1152 conv3_block5_concat[0][0] __________________________________________________________________________________________________ conv3_block6_0_relu (Activation (None, 8, 8, 288) 0 conv3_block6_0_bn[0][0] __________________________________________________________________________________________________ conv3_block6_1_conv (Conv2D) (None, 8, 8, 128) 36864 conv3_block6_0_relu[0][0] __________________________________________________________________________________________________ conv3_block6_1_bn (BatchNormali (None, 8, 8, 128) 512 conv3_block6_1_conv[0][0] __________________________________________________________________________________________________ conv3_block6_1_relu (Activation (None, 8, 8, 128) 0 conv3_block6_1_bn[0][0] __________________________________________________________________________________________________ conv3_block6_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block6_1_relu[0][0] __________________________________________________________________________________________________ conv3_block6_concat (Concatenat (None, 8, 8, 320) 0 conv3_block5_concat[0][0] conv3_block6_2_conv[0][0] __________________________________________________________________________________________________ conv3_block7_0_bn (BatchNormali (None, 8, 8, 320) 1280 conv3_block6_concat[0][0] __________________________________________________________________________________________________ conv3_block7_0_relu (Activation (None, 8, 8, 320) 0 conv3_block7_0_bn[0][0] __________________________________________________________________________________________________ conv3_block7_1_conv (Conv2D) (None, 8, 8, 128) 40960 conv3_block7_0_relu[0][0] __________________________________________________________________________________________________ conv3_block7_1_bn (BatchNormali (None, 8, 8, 128) 512 conv3_block7_1_conv[0][0] __________________________________________________________________________________________________ conv3_block7_1_relu (Activation (None, 8, 8, 128) 0 conv3_block7_1_bn[0][0] __________________________________________________________________________________________________ conv3_block7_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block7_1_relu[0][0] __________________________________________________________________________________________________ conv3_block7_concat (Concatenat (None, 8, 8, 352) 0 conv3_block6_concat[0][0] conv3_block7_2_conv[0][0] __________________________________________________________________________________________________ conv3_block8_0_bn (BatchNormali (None, 8, 8, 352) 1408 conv3_block7_concat[0][0] __________________________________________________________________________________________________ conv3_block8_0_relu (Activation (None, 8, 8, 352) 0 conv3_block8_0_bn[0][0] __________________________________________________________________________________________________ conv3_block8_1_conv (Conv2D) (None, 8, 8, 128) 45056 conv3_block8_0_relu[0][0] __________________________________________________________________________________________________ conv3_block8_1_bn (BatchNormali (None, 8, 8, 128) 512 conv3_block8_1_conv[0][0] __________________________________________________________________________________________________ conv3_block8_1_relu (Activation (None, 8, 8, 128) 0 conv3_block8_1_bn[0][0] __________________________________________________________________________________________________ conv3_block8_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block8_1_relu[0][0] __________________________________________________________________________________________________ conv3_block8_concat (Concatenat (None, 8, 8, 384) 0 conv3_block7_concat[0][0] conv3_block8_2_conv[0][0] __________________________________________________________________________________________________ conv3_block9_0_bn (BatchNormali (None, 8, 8, 384) 1536 conv3_block8_concat[0][0] __________________________________________________________________________________________________ conv3_block9_0_relu (Activation (None, 8, 8, 384) 0 conv3_block9_0_bn[0][0] __________________________________________________________________________________________________ conv3_block9_1_conv (Conv2D) (None, 8, 8, 128) 49152 conv3_block9_0_relu[0][0] __________________________________________________________________________________________________ conv3_block9_1_bn (BatchNormali (None, 8, 8, 128) 512 conv3_block9_1_conv[0][0] __________________________________________________________________________________________________ conv3_block9_1_relu (Activation (None, 8, 8, 128) 0 conv3_block9_1_bn[0][0] __________________________________________________________________________________________________ conv3_block9_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block9_1_relu[0][0] __________________________________________________________________________________________________ conv3_block9_concat (Concatenat (None, 8, 8, 416) 0 conv3_block8_concat[0][0] conv3_block9_2_conv[0][0] __________________________________________________________________________________________________ conv3_block10_0_bn (BatchNormal (None, 8, 8, 416) 1664 conv3_block9_concat[0][0] __________________________________________________________________________________________________ conv3_block10_0_relu (Activatio (None, 8, 8, 416) 0 conv3_block10_0_bn[0][0] __________________________________________________________________________________________________ conv3_block10_1_conv (Conv2D) (None, 8, 8, 128) 53248 conv3_block10_0_relu[0][0] __________________________________________________________________________________________________ conv3_block10_1_bn (BatchNormal (None, 8, 8, 128) 512 conv3_block10_1_conv[0][0] __________________________________________________________________________________________________ conv3_block10_1_relu (Activatio (None, 8, 8, 128) 0 conv3_block10_1_bn[0][0] __________________________________________________________________________________________________ conv3_block10_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block10_1_relu[0][0] __________________________________________________________________________________________________ conv3_block10_concat (Concatena (None, 8, 8, 448) 0 conv3_block9_concat[0][0] conv3_block10_2_conv[0][0] __________________________________________________________________________________________________ conv3_block11_0_bn (BatchNormal (None, 8, 8, 448) 1792 conv3_block10_concat[0][0] __________________________________________________________________________________________________ conv3_block11_0_relu (Activatio (None, 8, 8, 448) 0 conv3_block11_0_bn[0][0] __________________________________________________________________________________________________ conv3_block11_1_conv (Conv2D) (None, 8, 8, 128) 57344 conv3_block11_0_relu[0][0] __________________________________________________________________________________________________ conv3_block11_1_bn (BatchNormal (None, 8, 8, 128) 512 conv3_block11_1_conv[0][0] __________________________________________________________________________________________________ conv3_block11_1_relu (Activatio (None, 8, 8, 128) 0 conv3_block11_1_bn[0][0] __________________________________________________________________________________________________ conv3_block11_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block11_1_relu[0][0] __________________________________________________________________________________________________ conv3_block11_concat (Concatena (None, 8, 8, 480) 0 conv3_block10_concat[0][0] conv3_block11_2_conv[0][0] __________________________________________________________________________________________________ conv3_block12_0_bn (BatchNormal (None, 8, 8, 480) 1920 conv3_block11_concat[0][0] __________________________________________________________________________________________________ conv3_block12_0_relu (Activatio (None, 8, 8, 480) 0 conv3_block12_0_bn[0][0] __________________________________________________________________________________________________ conv3_block12_1_conv (Conv2D) (None, 8, 8, 128) 61440 conv3_block12_0_relu[0][0] __________________________________________________________________________________________________ conv3_block12_1_bn (BatchNormal (None, 8, 8, 128) 512 conv3_block12_1_conv[0][0] __________________________________________________________________________________________________ conv3_block12_1_relu (Activatio (None, 8, 8, 128) 0 conv3_block12_1_bn[0][0] __________________________________________________________________________________________________ conv3_block12_2_conv (Conv2D) (None, 8, 8, 32) 36864 conv3_block12_1_relu[0][0] __________________________________________________________________________________________________ conv3_block12_concat (Concatena (None, 8, 8, 512) 0 conv3_block11_concat[0][0] conv3_block12_2_conv[0][0] __________________________________________________________________________________________________ pool3_bn (BatchNormalization) (None, 8, 8, 512) 2048 conv3_block12_concat[0][0] __________________________________________________________________________________________________ pool3_relu (Activation) (None, 8, 8, 512) 0 pool3_bn[0][0] __________________________________________________________________________________________________ pool3_conv (Conv2D) (None, 8, 8, 256) 131072 pool3_relu[0][0] __________________________________________________________________________________________________ pool3_pool (AveragePooling2D) (None, 4, 4, 256) 0 pool3_conv[0][0] __________________________________________________________________________________________________ conv4_block1_0_bn (BatchNormali (None, 4, 4, 256) 1024 pool3_pool[0][0] __________________________________________________________________________________________________ conv4_block1_0_relu (Activation (None, 4, 4, 256) 0 conv4_block1_0_bn[0][0] __________________________________________________________________________________________________ conv4_block1_1_conv (Conv2D) (None, 4, 4, 128) 32768 conv4_block1_0_relu[0][0] __________________________________________________________________________________________________ conv4_block1_1_bn (BatchNormali (None, 4, 4, 128) 512 conv4_block1_1_conv[0][0] __________________________________________________________________________________________________ conv4_block1_1_relu (Activation (None, 4, 4, 128) 0 conv4_block1_1_bn[0][0] __________________________________________________________________________________________________ conv4_block1_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block1_1_relu[0][0] __________________________________________________________________________________________________ conv4_block1_concat (Concatenat (None, 4, 4, 288) 0 pool3_pool[0][0] conv4_block1_2_conv[0][0] __________________________________________________________________________________________________ conv4_block2_0_bn (BatchNormali (None, 4, 4, 288) 1152 conv4_block1_concat[0][0] __________________________________________________________________________________________________ conv4_block2_0_relu (Activation (None, 4, 4, 288) 0 conv4_block2_0_bn[0][0] __________________________________________________________________________________________________ conv4_block2_1_conv (Conv2D) (None, 4, 4, 128) 36864 conv4_block2_0_relu[0][0] __________________________________________________________________________________________________ conv4_block2_1_bn (BatchNormali (None, 4, 4, 128) 512 conv4_block2_1_conv[0][0] __________________________________________________________________________________________________ conv4_block2_1_relu (Activation (None, 4, 4, 128) 0 conv4_block2_1_bn[0][0] __________________________________________________________________________________________________ conv4_block2_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block2_1_relu[0][0] __________________________________________________________________________________________________ conv4_block2_concat (Concatenat (None, 4, 4, 320) 0 conv4_block1_concat[0][0] conv4_block2_2_conv[0][0] __________________________________________________________________________________________________ conv4_block3_0_bn (BatchNormali (None, 4, 4, 320) 1280 conv4_block2_concat[0][0] __________________________________________________________________________________________________ conv4_block3_0_relu (Activation (None, 4, 4, 320) 0 conv4_block3_0_bn[0][0] __________________________________________________________________________________________________ conv4_block3_1_conv (Conv2D) (None, 4, 4, 128) 40960 conv4_block3_0_relu[0][0] __________________________________________________________________________________________________ conv4_block3_1_bn (BatchNormali (None, 4, 4, 128) 512 conv4_block3_1_conv[0][0] __________________________________________________________________________________________________ conv4_block3_1_relu (Activation (None, 4, 4, 128) 0 conv4_block3_1_bn[0][0] __________________________________________________________________________________________________ conv4_block3_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block3_1_relu[0][0] __________________________________________________________________________________________________ conv4_block3_concat (Concatenat (None, 4, 4, 352) 0 conv4_block2_concat[0][0] conv4_block3_2_conv[0][0] __________________________________________________________________________________________________ conv4_block4_0_bn (BatchNormali (None, 4, 4, 352) 1408 conv4_block3_concat[0][0] __________________________________________________________________________________________________ conv4_block4_0_relu (Activation (None, 4, 4, 352) 0 conv4_block4_0_bn[0][0] __________________________________________________________________________________________________ conv4_block4_1_conv (Conv2D) (None, 4, 4, 128) 45056 conv4_block4_0_relu[0][0] __________________________________________________________________________________________________ conv4_block4_1_bn (BatchNormali (None, 4, 4, 128) 512 conv4_block4_1_conv[0][0] __________________________________________________________________________________________________ conv4_block4_1_relu (Activation (None, 4, 4, 128) 0 conv4_block4_1_bn[0][0] __________________________________________________________________________________________________ conv4_block4_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block4_1_relu[0][0] __________________________________________________________________________________________________ conv4_block4_concat (Concatenat (None, 4, 4, 384) 0 conv4_block3_concat[0][0] conv4_block4_2_conv[0][0] __________________________________________________________________________________________________ conv4_block5_0_bn (BatchNormali (None, 4, 4, 384) 1536 conv4_block4_concat[0][0] __________________________________________________________________________________________________ conv4_block5_0_relu (Activation (None, 4, 4, 384) 0 conv4_block5_0_bn[0][0] __________________________________________________________________________________________________ conv4_block5_1_conv (Conv2D) (None, 4, 4, 128) 49152 conv4_block5_0_relu[0][0] __________________________________________________________________________________________________ conv4_block5_1_bn (BatchNormali (None, 4, 4, 128) 512 conv4_block5_1_conv[0][0] __________________________________________________________________________________________________ conv4_block5_1_relu (Activation (None, 4, 4, 128) 0 conv4_block5_1_bn[0][0] __________________________________________________________________________________________________ conv4_block5_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block5_1_relu[0][0] __________________________________________________________________________________________________ conv4_block5_concat (Concatenat (None, 4, 4, 416) 0 conv4_block4_concat[0][0] conv4_block5_2_conv[0][0] __________________________________________________________________________________________________ conv4_block6_0_bn (BatchNormali (None, 4, 4, 416) 1664 conv4_block5_concat[0][0] __________________________________________________________________________________________________ conv4_block6_0_relu (Activation (None, 4, 4, 416) 0 conv4_block6_0_bn[0][0] __________________________________________________________________________________________________ conv4_block6_1_conv (Conv2D) (None, 4, 4, 128) 53248 conv4_block6_0_relu[0][0] __________________________________________________________________________________________________ conv4_block6_1_bn (BatchNormali (None, 4, 4, 128) 512 conv4_block6_1_conv[0][0] __________________________________________________________________________________________________ conv4_block6_1_relu (Activation (None, 4, 4, 128) 0 conv4_block6_1_bn[0][0] __________________________________________________________________________________________________ conv4_block6_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block6_1_relu[0][0] __________________________________________________________________________________________________ conv4_block6_concat (Concatenat (None, 4, 4, 448) 0 conv4_block5_concat[0][0] conv4_block6_2_conv[0][0] __________________________________________________________________________________________________ conv4_block7_0_bn (BatchNormali (None, 4, 4, 448) 1792 conv4_block6_concat[0][0] __________________________________________________________________________________________________ conv4_block7_0_relu (Activation (None, 4, 4, 448) 0 conv4_block7_0_bn[0][0] __________________________________________________________________________________________________ conv4_block7_1_conv (Conv2D) (None, 4, 4, 128) 57344 conv4_block7_0_relu[0][0] __________________________________________________________________________________________________ conv4_block7_1_bn (BatchNormali (None, 4, 4, 128) 512 conv4_block7_1_conv[0][0] __________________________________________________________________________________________________ conv4_block7_1_relu (Activation (None, 4, 4, 128) 0 conv4_block7_1_bn[0][0] __________________________________________________________________________________________________ conv4_block7_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block7_1_relu[0][0] __________________________________________________________________________________________________ conv4_block7_concat (Concatenat (None, 4, 4, 480) 0 conv4_block6_concat[0][0] conv4_block7_2_conv[0][0] __________________________________________________________________________________________________ conv4_block8_0_bn (BatchNormali (None, 4, 4, 480) 1920 conv4_block7_concat[0][0] __________________________________________________________________________________________________ conv4_block8_0_relu (Activation (None, 4, 4, 480) 0 conv4_block8_0_bn[0][0] __________________________________________________________________________________________________ conv4_block8_1_conv (Conv2D) (None, 4, 4, 128) 61440 conv4_block8_0_relu[0][0] __________________________________________________________________________________________________ conv4_block8_1_bn (BatchNormali (None, 4, 4, 128) 512 conv4_block8_1_conv[0][0] __________________________________________________________________________________________________ conv4_block8_1_relu (Activation (None, 4, 4, 128) 0 conv4_block8_1_bn[0][0] __________________________________________________________________________________________________ conv4_block8_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block8_1_relu[0][0] __________________________________________________________________________________________________ conv4_block8_concat (Concatenat (None, 4, 4, 512) 0 conv4_block7_concat[0][0] conv4_block8_2_conv[0][0] __________________________________________________________________________________________________ conv4_block9_0_bn (BatchNormali (None, 4, 4, 512) 2048 conv4_block8_concat[0][0] __________________________________________________________________________________________________ conv4_block9_0_relu (Activation (None, 4, 4, 512) 0 conv4_block9_0_bn[0][0] __________________________________________________________________________________________________ conv4_block9_1_conv (Conv2D) (None, 4, 4, 128) 65536 conv4_block9_0_relu[0][0] __________________________________________________________________________________________________ conv4_block9_1_bn (BatchNormali (None, 4, 4, 128) 512 conv4_block9_1_conv[0][0] __________________________________________________________________________________________________ conv4_block9_1_relu (Activation (None, 4, 4, 128) 0 conv4_block9_1_bn[0][0] __________________________________________________________________________________________________ conv4_block9_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block9_1_relu[0][0] __________________________________________________________________________________________________ conv4_block9_concat (Concatenat (None, 4, 4, 544) 0 conv4_block8_concat[0][0] conv4_block9_2_conv[0][0] __________________________________________________________________________________________________ conv4_block10_0_bn (BatchNormal (None, 4, 4, 544) 2176 conv4_block9_concat[0][0] __________________________________________________________________________________________________ conv4_block10_0_relu (Activatio (None, 4, 4, 544) 0 conv4_block10_0_bn[0][0] __________________________________________________________________________________________________ conv4_block10_1_conv (Conv2D) (None, 4, 4, 128) 69632 conv4_block10_0_relu[0][0] __________________________________________________________________________________________________ conv4_block10_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block10_1_conv[0][0] __________________________________________________________________________________________________ conv4_block10_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block10_1_bn[0][0] __________________________________________________________________________________________________ conv4_block10_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block10_1_relu[0][0] __________________________________________________________________________________________________ conv4_block10_concat (Concatena (None, 4, 4, 576) 0 conv4_block9_concat[0][0] conv4_block10_2_conv[0][0] __________________________________________________________________________________________________ conv4_block11_0_bn (BatchNormal (None, 4, 4, 576) 2304 conv4_block10_concat[0][0] __________________________________________________________________________________________________ conv4_block11_0_relu (Activatio (None, 4, 4, 576) 0 conv4_block11_0_bn[0][0] __________________________________________________________________________________________________ conv4_block11_1_conv (Conv2D) (None, 4, 4, 128) 73728 conv4_block11_0_relu[0][0] __________________________________________________________________________________________________ conv4_block11_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block11_1_conv[0][0] __________________________________________________________________________________________________ conv4_block11_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block11_1_bn[0][0] __________________________________________________________________________________________________ conv4_block11_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block11_1_relu[0][0] __________________________________________________________________________________________________ conv4_block11_concat (Concatena (None, 4, 4, 608) 0 conv4_block10_concat[0][0] conv4_block11_2_conv[0][0] __________________________________________________________________________________________________ conv4_block12_0_bn (BatchNormal (None, 4, 4, 608) 2432 conv4_block11_concat[0][0] __________________________________________________________________________________________________ conv4_block12_0_relu (Activatio (None, 4, 4, 608) 0 conv4_block12_0_bn[0][0] __________________________________________________________________________________________________ conv4_block12_1_conv (Conv2D) (None, 4, 4, 128) 77824 conv4_block12_0_relu[0][0] __________________________________________________________________________________________________ conv4_block12_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block12_1_conv[0][0] __________________________________________________________________________________________________ conv4_block12_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block12_1_bn[0][0] __________________________________________________________________________________________________ conv4_block12_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block12_1_relu[0][0] __________________________________________________________________________________________________ conv4_block12_concat (Concatena (None, 4, 4, 640) 0 conv4_block11_concat[0][0] conv4_block12_2_conv[0][0] __________________________________________________________________________________________________ conv4_block13_0_bn (BatchNormal (None, 4, 4, 640) 2560 conv4_block12_concat[0][0] __________________________________________________________________________________________________ conv4_block13_0_relu (Activatio (None, 4, 4, 640) 0 conv4_block13_0_bn[0][0] __________________________________________________________________________________________________ conv4_block13_1_conv (Conv2D) (None, 4, 4, 128) 81920 conv4_block13_0_relu[0][0] __________________________________________________________________________________________________ conv4_block13_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block13_1_conv[0][0] __________________________________________________________________________________________________ conv4_block13_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block13_1_bn[0][0] __________________________________________________________________________________________________ conv4_block13_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block13_1_relu[0][0] __________________________________________________________________________________________________ conv4_block13_concat (Concatena (None, 4, 4, 672) 0 conv4_block12_concat[0][0] conv4_block13_2_conv[0][0] __________________________________________________________________________________________________ conv4_block14_0_bn (BatchNormal (None, 4, 4, 672) 2688 conv4_block13_concat[0][0] __________________________________________________________________________________________________ conv4_block14_0_relu (Activatio (None, 4, 4, 672) 0 conv4_block14_0_bn[0][0] __________________________________________________________________________________________________ conv4_block14_1_conv (Conv2D) (None, 4, 4, 128) 86016 conv4_block14_0_relu[0][0] __________________________________________________________________________________________________ conv4_block14_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block14_1_conv[0][0] __________________________________________________________________________________________________ conv4_block14_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block14_1_bn[0][0] __________________________________________________________________________________________________ conv4_block14_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block14_1_relu[0][0] __________________________________________________________________________________________________ conv4_block14_concat (Concatena (None, 4, 4, 704) 0 conv4_block13_concat[0][0] conv4_block14_2_conv[0][0] __________________________________________________________________________________________________ conv4_block15_0_bn (BatchNormal (None, 4, 4, 704) 2816 conv4_block14_concat[0][0] __________________________________________________________________________________________________ conv4_block15_0_relu (Activatio (None, 4, 4, 704) 0 conv4_block15_0_bn[0][0] __________________________________________________________________________________________________ conv4_block15_1_conv (Conv2D) (None, 4, 4, 128) 90112 conv4_block15_0_relu[0][0] __________________________________________________________________________________________________ conv4_block15_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block15_1_conv[0][0] __________________________________________________________________________________________________ conv4_block15_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block15_1_bn[0][0] __________________________________________________________________________________________________ conv4_block15_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block15_1_relu[0][0] __________________________________________________________________________________________________ conv4_block15_concat (Concatena (None, 4, 4, 736) 0 conv4_block14_concat[0][0] conv4_block15_2_conv[0][0] __________________________________________________________________________________________________ conv4_block16_0_bn (BatchNormal (None, 4, 4, 736) 2944 conv4_block15_concat[0][0] __________________________________________________________________________________________________ conv4_block16_0_relu (Activatio (None, 4, 4, 736) 0 conv4_block16_0_bn[0][0] __________________________________________________________________________________________________ conv4_block16_1_conv (Conv2D) (None, 4, 4, 128) 94208 conv4_block16_0_relu[0][0] __________________________________________________________________________________________________ conv4_block16_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block16_1_conv[0][0] __________________________________________________________________________________________________ conv4_block16_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block16_1_bn[0][0] __________________________________________________________________________________________________ conv4_block16_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block16_1_relu[0][0] __________________________________________________________________________________________________ conv4_block16_concat (Concatena (None, 4, 4, 768) 0 conv4_block15_concat[0][0] conv4_block16_2_conv[0][0] __________________________________________________________________________________________________ conv4_block17_0_bn (BatchNormal (None, 4, 4, 768) 3072 conv4_block16_concat[0][0] __________________________________________________________________________________________________ conv4_block17_0_relu (Activatio (None, 4, 4, 768) 0 conv4_block17_0_bn[0][0] __________________________________________________________________________________________________ conv4_block17_1_conv (Conv2D) (None, 4, 4, 128) 98304 conv4_block17_0_relu[0][0] __________________________________________________________________________________________________ conv4_block17_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block17_1_conv[0][0] __________________________________________________________________________________________________ conv4_block17_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block17_1_bn[0][0] __________________________________________________________________________________________________ conv4_block17_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block17_1_relu[0][0] __________________________________________________________________________________________________ conv4_block17_concat (Concatena (None, 4, 4, 800) 0 conv4_block16_concat[0][0] conv4_block17_2_conv[0][0] __________________________________________________________________________________________________ conv4_block18_0_bn (BatchNormal (None, 4, 4, 800) 3200 conv4_block17_concat[0][0] __________________________________________________________________________________________________ conv4_block18_0_relu (Activatio (None, 4, 4, 800) 0 conv4_block18_0_bn[0][0] __________________________________________________________________________________________________ conv4_block18_1_conv (Conv2D) (None, 4, 4, 128) 102400 conv4_block18_0_relu[0][0] __________________________________________________________________________________________________ conv4_block18_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block18_1_conv[0][0] __________________________________________________________________________________________________ conv4_block18_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block18_1_bn[0][0] __________________________________________________________________________________________________ conv4_block18_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block18_1_relu[0][0] __________________________________________________________________________________________________ conv4_block18_concat (Concatena (None, 4, 4, 832) 0 conv4_block17_concat[0][0] conv4_block18_2_conv[0][0] __________________________________________________________________________________________________ conv4_block19_0_bn (BatchNormal (None, 4, 4, 832) 3328 conv4_block18_concat[0][0] __________________________________________________________________________________________________ conv4_block19_0_relu (Activatio (None, 4, 4, 832) 0 conv4_block19_0_bn[0][0] __________________________________________________________________________________________________ conv4_block19_1_conv (Conv2D) (None, 4, 4, 128) 106496 conv4_block19_0_relu[0][0] __________________________________________________________________________________________________ conv4_block19_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block19_1_conv[0][0] __________________________________________________________________________________________________ conv4_block19_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block19_1_bn[0][0] __________________________________________________________________________________________________ conv4_block19_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block19_1_relu[0][0] __________________________________________________________________________________________________ conv4_block19_concat (Concatena (None, 4, 4, 864) 0 conv4_block18_concat[0][0] conv4_block19_2_conv[0][0] __________________________________________________________________________________________________ conv4_block20_0_bn (BatchNormal (None, 4, 4, 864) 3456 conv4_block19_concat[0][0] __________________________________________________________________________________________________ conv4_block20_0_relu (Activatio (None, 4, 4, 864) 0 conv4_block20_0_bn[0][0] __________________________________________________________________________________________________ conv4_block20_1_conv (Conv2D) (None, 4, 4, 128) 110592 conv4_block20_0_relu[0][0] __________________________________________________________________________________________________ conv4_block20_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block20_1_conv[0][0] __________________________________________________________________________________________________ conv4_block20_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block20_1_bn[0][0] __________________________________________________________________________________________________ conv4_block20_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block20_1_relu[0][0] __________________________________________________________________________________________________ conv4_block20_concat (Concatena (None, 4, 4, 896) 0 conv4_block19_concat[0][0] conv4_block20_2_conv[0][0] __________________________________________________________________________________________________ conv4_block21_0_bn (BatchNormal (None, 4, 4, 896) 3584 conv4_block20_concat[0][0] __________________________________________________________________________________________________ conv4_block21_0_relu (Activatio (None, 4, 4, 896) 0 conv4_block21_0_bn[0][0] __________________________________________________________________________________________________ conv4_block21_1_conv (Conv2D) (None, 4, 4, 128) 114688 conv4_block21_0_relu[0][0] __________________________________________________________________________________________________ conv4_block21_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block21_1_conv[0][0] __________________________________________________________________________________________________ conv4_block21_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block21_1_bn[0][0] __________________________________________________________________________________________________ conv4_block21_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block21_1_relu[0][0] __________________________________________________________________________________________________ conv4_block21_concat (Concatena (None, 4, 4, 928) 0 conv4_block20_concat[0][0] conv4_block21_2_conv[0][0] __________________________________________________________________________________________________ conv4_block22_0_bn (BatchNormal (None, 4, 4, 928) 3712 conv4_block21_concat[0][0] __________________________________________________________________________________________________ conv4_block22_0_relu (Activatio (None, 4, 4, 928) 0 conv4_block22_0_bn[0][0] __________________________________________________________________________________________________ conv4_block22_1_conv (Conv2D) (None, 4, 4, 128) 118784 conv4_block22_0_relu[0][0] __________________________________________________________________________________________________ conv4_block22_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block22_1_conv[0][0] __________________________________________________________________________________________________ conv4_block22_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block22_1_bn[0][0] __________________________________________________________________________________________________ conv4_block22_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block22_1_relu[0][0] __________________________________________________________________________________________________ conv4_block22_concat (Concatena (None, 4, 4, 960) 0 conv4_block21_concat[0][0] conv4_block22_2_conv[0][0] __________________________________________________________________________________________________ conv4_block23_0_bn (BatchNormal (None, 4, 4, 960) 3840 conv4_block22_concat[0][0] __________________________________________________________________________________________________ conv4_block23_0_relu (Activatio (None, 4, 4, 960) 0 conv4_block23_0_bn[0][0] __________________________________________________________________________________________________ conv4_block23_1_conv (Conv2D) (None, 4, 4, 128) 122880 conv4_block23_0_relu[0][0] __________________________________________________________________________________________________ conv4_block23_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block23_1_conv[0][0] __________________________________________________________________________________________________ conv4_block23_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block23_1_bn[0][0] __________________________________________________________________________________________________ conv4_block23_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block23_1_relu[0][0] __________________________________________________________________________________________________ conv4_block23_concat (Concatena (None, 4, 4, 992) 0 conv4_block22_concat[0][0] conv4_block23_2_conv[0][0] __________________________________________________________________________________________________ conv4_block24_0_bn (BatchNormal (None, 4, 4, 992) 3968 conv4_block23_concat[0][0] __________________________________________________________________________________________________ conv4_block24_0_relu (Activatio (None, 4, 4, 992) 0 conv4_block24_0_bn[0][0] __________________________________________________________________________________________________ conv4_block24_1_conv (Conv2D) (None, 4, 4, 128) 126976 conv4_block24_0_relu[0][0] __________________________________________________________________________________________________ conv4_block24_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block24_1_conv[0][0] __________________________________________________________________________________________________ conv4_block24_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block24_1_bn[0][0] __________________________________________________________________________________________________ conv4_block24_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block24_1_relu[0][0] __________________________________________________________________________________________________ conv4_block24_concat (Concatena (None, 4, 4, 1024) 0 conv4_block23_concat[0][0] conv4_block24_2_conv[0][0] __________________________________________________________________________________________________ conv4_block25_0_bn (BatchNormal (None, 4, 4, 1024) 4096 conv4_block24_concat[0][0] __________________________________________________________________________________________________ conv4_block25_0_relu (Activatio (None, 4, 4, 1024) 0 conv4_block25_0_bn[0][0] __________________________________________________________________________________________________ conv4_block25_1_conv (Conv2D) (None, 4, 4, 128) 131072 conv4_block25_0_relu[0][0] __________________________________________________________________________________________________ conv4_block25_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block25_1_conv[0][0] __________________________________________________________________________________________________ conv4_block25_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block25_1_bn[0][0] __________________________________________________________________________________________________ conv4_block25_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block25_1_relu[0][0] __________________________________________________________________________________________________ conv4_block25_concat (Concatena (None, 4, 4, 1056) 0 conv4_block24_concat[0][0] conv4_block25_2_conv[0][0] __________________________________________________________________________________________________ conv4_block26_0_bn (BatchNormal (None, 4, 4, 1056) 4224 conv4_block25_concat[0][0] __________________________________________________________________________________________________ conv4_block26_0_relu (Activatio (None, 4, 4, 1056) 0 conv4_block26_0_bn[0][0] __________________________________________________________________________________________________ conv4_block26_1_conv (Conv2D) (None, 4, 4, 128) 135168 conv4_block26_0_relu[0][0] __________________________________________________________________________________________________ conv4_block26_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block26_1_conv[0][0] __________________________________________________________________________________________________ conv4_block26_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block26_1_bn[0][0] __________________________________________________________________________________________________ conv4_block26_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block26_1_relu[0][0] __________________________________________________________________________________________________ conv4_block26_concat (Concatena (None, 4, 4, 1088) 0 conv4_block25_concat[0][0] conv4_block26_2_conv[0][0] __________________________________________________________________________________________________ conv4_block27_0_bn (BatchNormal (None, 4, 4, 1088) 4352 conv4_block26_concat[0][0] __________________________________________________________________________________________________ conv4_block27_0_relu (Activatio (None, 4, 4, 1088) 0 conv4_block27_0_bn[0][0] __________________________________________________________________________________________________ conv4_block27_1_conv (Conv2D) (None, 4, 4, 128) 139264 conv4_block27_0_relu[0][0] __________________________________________________________________________________________________ conv4_block27_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block27_1_conv[0][0] __________________________________________________________________________________________________ conv4_block27_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block27_1_bn[0][0] __________________________________________________________________________________________________ conv4_block27_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block27_1_relu[0][0] __________________________________________________________________________________________________ conv4_block27_concat (Concatena (None, 4, 4, 1120) 0 conv4_block26_concat[0][0] conv4_block27_2_conv[0][0] __________________________________________________________________________________________________ conv4_block28_0_bn (BatchNormal (None, 4, 4, 1120) 4480 conv4_block27_concat[0][0] __________________________________________________________________________________________________ conv4_block28_0_relu (Activatio (None, 4, 4, 1120) 0 conv4_block28_0_bn[0][0] __________________________________________________________________________________________________ conv4_block28_1_conv (Conv2D) (None, 4, 4, 128) 143360 conv4_block28_0_relu[0][0] __________________________________________________________________________________________________ conv4_block28_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block28_1_conv[0][0] __________________________________________________________________________________________________ conv4_block28_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block28_1_bn[0][0] __________________________________________________________________________________________________ conv4_block28_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block28_1_relu[0][0] __________________________________________________________________________________________________ conv4_block28_concat (Concatena (None, 4, 4, 1152) 0 conv4_block27_concat[0][0] conv4_block28_2_conv[0][0] __________________________________________________________________________________________________ conv4_block29_0_bn (BatchNormal (None, 4, 4, 1152) 4608 conv4_block28_concat[0][0] __________________________________________________________________________________________________ conv4_block29_0_relu (Activatio (None, 4, 4, 1152) 0 conv4_block29_0_bn[0][0] __________________________________________________________________________________________________ conv4_block29_1_conv (Conv2D) (None, 4, 4, 128) 147456 conv4_block29_0_relu[0][0] __________________________________________________________________________________________________ conv4_block29_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block29_1_conv[0][0] __________________________________________________________________________________________________ conv4_block29_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block29_1_bn[0][0] __________________________________________________________________________________________________ conv4_block29_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block29_1_relu[0][0] __________________________________________________________________________________________________ conv4_block29_concat (Concatena (None, 4, 4, 1184) 0 conv4_block28_concat[0][0] conv4_block29_2_conv[0][0] __________________________________________________________________________________________________ conv4_block30_0_bn (BatchNormal (None, 4, 4, 1184) 4736 conv4_block29_concat[0][0] __________________________________________________________________________________________________ conv4_block30_0_relu (Activatio (None, 4, 4, 1184) 0 conv4_block30_0_bn[0][0] __________________________________________________________________________________________________ conv4_block30_1_conv (Conv2D) (None, 4, 4, 128) 151552 conv4_block30_0_relu[0][0] __________________________________________________________________________________________________ conv4_block30_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block30_1_conv[0][0] __________________________________________________________________________________________________ conv4_block30_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block30_1_bn[0][0] __________________________________________________________________________________________________ conv4_block30_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block30_1_relu[0][0] __________________________________________________________________________________________________ conv4_block30_concat (Concatena (None, 4, 4, 1216) 0 conv4_block29_concat[0][0] conv4_block30_2_conv[0][0] __________________________________________________________________________________________________ conv4_block31_0_bn (BatchNormal (None, 4, 4, 1216) 4864 conv4_block30_concat[0][0] __________________________________________________________________________________________________ conv4_block31_0_relu (Activatio (None, 4, 4, 1216) 0 conv4_block31_0_bn[0][0] __________________________________________________________________________________________________ conv4_block31_1_conv (Conv2D) (None, 4, 4, 128) 155648 conv4_block31_0_relu[0][0] __________________________________________________________________________________________________ conv4_block31_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block31_1_conv[0][0] __________________________________________________________________________________________________ conv4_block31_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block31_1_bn[0][0] __________________________________________________________________________________________________ conv4_block31_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block31_1_relu[0][0] __________________________________________________________________________________________________ conv4_block31_concat (Concatena (None, 4, 4, 1248) 0 conv4_block30_concat[0][0] conv4_block31_2_conv[0][0] __________________________________________________________________________________________________ conv4_block32_0_bn (BatchNormal (None, 4, 4, 1248) 4992 conv4_block31_concat[0][0] __________________________________________________________________________________________________ conv4_block32_0_relu (Activatio (None, 4, 4, 1248) 0 conv4_block32_0_bn[0][0] __________________________________________________________________________________________________ conv4_block32_1_conv (Conv2D) (None, 4, 4, 128) 159744 conv4_block32_0_relu[0][0] __________________________________________________________________________________________________ conv4_block32_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block32_1_conv[0][0] __________________________________________________________________________________________________ conv4_block32_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block32_1_bn[0][0] __________________________________________________________________________________________________ conv4_block32_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block32_1_relu[0][0] __________________________________________________________________________________________________ conv4_block32_concat (Concatena (None, 4, 4, 1280) 0 conv4_block31_concat[0][0] conv4_block32_2_conv[0][0] __________________________________________________________________________________________________ conv4_block33_0_bn (BatchNormal (None, 4, 4, 1280) 5120 conv4_block32_concat[0][0] __________________________________________________________________________________________________ conv4_block33_0_relu (Activatio (None, 4, 4, 1280) 0 conv4_block33_0_bn[0][0] __________________________________________________________________________________________________ conv4_block33_1_conv (Conv2D) (None, 4, 4, 128) 163840 conv4_block33_0_relu[0][0] __________________________________________________________________________________________________ conv4_block33_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block33_1_conv[0][0] __________________________________________________________________________________________________ conv4_block33_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block33_1_bn[0][0] __________________________________________________________________________________________________ conv4_block33_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block33_1_relu[0][0] __________________________________________________________________________________________________ conv4_block33_concat (Concatena (None, 4, 4, 1312) 0 conv4_block32_concat[0][0] conv4_block33_2_conv[0][0] __________________________________________________________________________________________________ conv4_block34_0_bn (BatchNormal (None, 4, 4, 1312) 5248 conv4_block33_concat[0][0] __________________________________________________________________________________________________ conv4_block34_0_relu (Activatio (None, 4, 4, 1312) 0 conv4_block34_0_bn[0][0] __________________________________________________________________________________________________ conv4_block34_1_conv (Conv2D) (None, 4, 4, 128) 167936 conv4_block34_0_relu[0][0] __________________________________________________________________________________________________ conv4_block34_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block34_1_conv[0][0] __________________________________________________________________________________________________ conv4_block34_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block34_1_bn[0][0] __________________________________________________________________________________________________ conv4_block34_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block34_1_relu[0][0] __________________________________________________________________________________________________ conv4_block34_concat (Concatena (None, 4, 4, 1344) 0 conv4_block33_concat[0][0] conv4_block34_2_conv[0][0] __________________________________________________________________________________________________ conv4_block35_0_bn (BatchNormal (None, 4, 4, 1344) 5376 conv4_block34_concat[0][0] __________________________________________________________________________________________________ conv4_block35_0_relu (Activatio (None, 4, 4, 1344) 0 conv4_block35_0_bn[0][0] __________________________________________________________________________________________________ conv4_block35_1_conv (Conv2D) (None, 4, 4, 128) 172032 conv4_block35_0_relu[0][0] __________________________________________________________________________________________________ conv4_block35_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block35_1_conv[0][0] __________________________________________________________________________________________________ conv4_block35_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block35_1_bn[0][0] __________________________________________________________________________________________________ conv4_block35_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block35_1_relu[0][0] __________________________________________________________________________________________________ conv4_block35_concat (Concatena (None, 4, 4, 1376) 0 conv4_block34_concat[0][0] conv4_block35_2_conv[0][0] __________________________________________________________________________________________________ conv4_block36_0_bn (BatchNormal (None, 4, 4, 1376) 5504 conv4_block35_concat[0][0] __________________________________________________________________________________________________ conv4_block36_0_relu (Activatio (None, 4, 4, 1376) 0 conv4_block36_0_bn[0][0] __________________________________________________________________________________________________ conv4_block36_1_conv (Conv2D) (None, 4, 4, 128) 176128 conv4_block36_0_relu[0][0] __________________________________________________________________________________________________ conv4_block36_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block36_1_conv[0][0] __________________________________________________________________________________________________ conv4_block36_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block36_1_bn[0][0] __________________________________________________________________________________________________ conv4_block36_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block36_1_relu[0][0] __________________________________________________________________________________________________ conv4_block36_concat (Concatena (None, 4, 4, 1408) 0 conv4_block35_concat[0][0] conv4_block36_2_conv[0][0] __________________________________________________________________________________________________ conv4_block37_0_bn (BatchNormal (None, 4, 4, 1408) 5632 conv4_block36_concat[0][0] __________________________________________________________________________________________________ conv4_block37_0_relu (Activatio (None, 4, 4, 1408) 0 conv4_block37_0_bn[0][0] __________________________________________________________________________________________________ conv4_block37_1_conv (Conv2D) (None, 4, 4, 128) 180224 conv4_block37_0_relu[0][0] __________________________________________________________________________________________________ conv4_block37_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block37_1_conv[0][0] __________________________________________________________________________________________________ conv4_block37_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block37_1_bn[0][0] __________________________________________________________________________________________________ conv4_block37_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block37_1_relu[0][0] __________________________________________________________________________________________________ conv4_block37_concat (Concatena (None, 4, 4, 1440) 0 conv4_block36_concat[0][0] conv4_block37_2_conv[0][0] __________________________________________________________________________________________________ conv4_block38_0_bn (BatchNormal (None, 4, 4, 1440) 5760 conv4_block37_concat[0][0] __________________________________________________________________________________________________ conv4_block38_0_relu (Activatio (None, 4, 4, 1440) 0 conv4_block38_0_bn[0][0] __________________________________________________________________________________________________ conv4_block38_1_conv (Conv2D) (None, 4, 4, 128) 184320 conv4_block38_0_relu[0][0] __________________________________________________________________________________________________ conv4_block38_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block38_1_conv[0][0] __________________________________________________________________________________________________ conv4_block38_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block38_1_bn[0][0] __________________________________________________________________________________________________ conv4_block38_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block38_1_relu[0][0] __________________________________________________________________________________________________ conv4_block38_concat (Concatena (None, 4, 4, 1472) 0 conv4_block37_concat[0][0] conv4_block38_2_conv[0][0] __________________________________________________________________________________________________ conv4_block39_0_bn (BatchNormal (None, 4, 4, 1472) 5888 conv4_block38_concat[0][0] __________________________________________________________________________________________________ conv4_block39_0_relu (Activatio (None, 4, 4, 1472) 0 conv4_block39_0_bn[0][0] __________________________________________________________________________________________________ conv4_block39_1_conv (Conv2D) (None, 4, 4, 128) 188416 conv4_block39_0_relu[0][0] __________________________________________________________________________________________________ conv4_block39_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block39_1_conv[0][0] __________________________________________________________________________________________________ conv4_block39_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block39_1_bn[0][0] __________________________________________________________________________________________________ conv4_block39_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block39_1_relu[0][0] __________________________________________________________________________________________________ conv4_block39_concat (Concatena (None, 4, 4, 1504) 0 conv4_block38_concat[0][0] conv4_block39_2_conv[0][0] __________________________________________________________________________________________________ conv4_block40_0_bn (BatchNormal (None, 4, 4, 1504) 6016 conv4_block39_concat[0][0] __________________________________________________________________________________________________ conv4_block40_0_relu (Activatio (None, 4, 4, 1504) 0 conv4_block40_0_bn[0][0] __________________________________________________________________________________________________ conv4_block40_1_conv (Conv2D) (None, 4, 4, 128) 192512 conv4_block40_0_relu[0][0] __________________________________________________________________________________________________ conv4_block40_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block40_1_conv[0][0] __________________________________________________________________________________________________ conv4_block40_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block40_1_bn[0][0] __________________________________________________________________________________________________ conv4_block40_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block40_1_relu[0][0] __________________________________________________________________________________________________ conv4_block40_concat (Concatena (None, 4, 4, 1536) 0 conv4_block39_concat[0][0] conv4_block40_2_conv[0][0] __________________________________________________________________________________________________ conv4_block41_0_bn (BatchNormal (None, 4, 4, 1536) 6144 conv4_block40_concat[0][0] __________________________________________________________________________________________________ conv4_block41_0_relu (Activatio (None, 4, 4, 1536) 0 conv4_block41_0_bn[0][0] __________________________________________________________________________________________________ conv4_block41_1_conv (Conv2D) (None, 4, 4, 128) 196608 conv4_block41_0_relu[0][0] __________________________________________________________________________________________________ conv4_block41_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block41_1_conv[0][0] __________________________________________________________________________________________________ conv4_block41_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block41_1_bn[0][0] __________________________________________________________________________________________________ conv4_block41_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block41_1_relu[0][0] __________________________________________________________________________________________________ conv4_block41_concat (Concatena (None, 4, 4, 1568) 0 conv4_block40_concat[0][0] conv4_block41_2_conv[0][0] __________________________________________________________________________________________________ conv4_block42_0_bn (BatchNormal (None, 4, 4, 1568) 6272 conv4_block41_concat[0][0] __________________________________________________________________________________________________ conv4_block42_0_relu (Activatio (None, 4, 4, 1568) 0 conv4_block42_0_bn[0][0] __________________________________________________________________________________________________ conv4_block42_1_conv (Conv2D) (None, 4, 4, 128) 200704 conv4_block42_0_relu[0][0] __________________________________________________________________________________________________ conv4_block42_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block42_1_conv[0][0] __________________________________________________________________________________________________ conv4_block42_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block42_1_bn[0][0] __________________________________________________________________________________________________ conv4_block42_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block42_1_relu[0][0] __________________________________________________________________________________________________ conv4_block42_concat (Concatena (None, 4, 4, 1600) 0 conv4_block41_concat[0][0] conv4_block42_2_conv[0][0] __________________________________________________________________________________________________ conv4_block43_0_bn (BatchNormal (None, 4, 4, 1600) 6400 conv4_block42_concat[0][0] __________________________________________________________________________________________________ conv4_block43_0_relu (Activatio (None, 4, 4, 1600) 0 conv4_block43_0_bn[0][0] __________________________________________________________________________________________________ conv4_block43_1_conv (Conv2D) (None, 4, 4, 128) 204800 conv4_block43_0_relu[0][0] __________________________________________________________________________________________________ conv4_block43_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block43_1_conv[0][0] __________________________________________________________________________________________________ conv4_block43_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block43_1_bn[0][0] __________________________________________________________________________________________________ conv4_block43_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block43_1_relu[0][0] __________________________________________________________________________________________________ conv4_block43_concat (Concatena (None, 4, 4, 1632) 0 conv4_block42_concat[0][0] conv4_block43_2_conv[0][0] __________________________________________________________________________________________________ conv4_block44_0_bn (BatchNormal (None, 4, 4, 1632) 6528 conv4_block43_concat[0][0] __________________________________________________________________________________________________ conv4_block44_0_relu (Activatio (None, 4, 4, 1632) 0 conv4_block44_0_bn[0][0] __________________________________________________________________________________________________ conv4_block44_1_conv (Conv2D) (None, 4, 4, 128) 208896 conv4_block44_0_relu[0][0] __________________________________________________________________________________________________ conv4_block44_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block44_1_conv[0][0] __________________________________________________________________________________________________ conv4_block44_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block44_1_bn[0][0] __________________________________________________________________________________________________ conv4_block44_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block44_1_relu[0][0] __________________________________________________________________________________________________ conv4_block44_concat (Concatena (None, 4, 4, 1664) 0 conv4_block43_concat[0][0] conv4_block44_2_conv[0][0] __________________________________________________________________________________________________ conv4_block45_0_bn (BatchNormal (None, 4, 4, 1664) 6656 conv4_block44_concat[0][0] __________________________________________________________________________________________________ conv4_block45_0_relu (Activatio (None, 4, 4, 1664) 0 conv4_block45_0_bn[0][0] __________________________________________________________________________________________________ conv4_block45_1_conv (Conv2D) (None, 4, 4, 128) 212992 conv4_block45_0_relu[0][0] __________________________________________________________________________________________________ conv4_block45_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block45_1_conv[0][0] __________________________________________________________________________________________________ conv4_block45_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block45_1_bn[0][0] __________________________________________________________________________________________________ conv4_block45_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block45_1_relu[0][0] __________________________________________________________________________________________________ conv4_block45_concat (Concatena (None, 4, 4, 1696) 0 conv4_block44_concat[0][0] conv4_block45_2_conv[0][0] __________________________________________________________________________________________________ conv4_block46_0_bn (BatchNormal (None, 4, 4, 1696) 6784 conv4_block45_concat[0][0] __________________________________________________________________________________________________ conv4_block46_0_relu (Activatio (None, 4, 4, 1696) 0 conv4_block46_0_bn[0][0] __________________________________________________________________________________________________ conv4_block46_1_conv (Conv2D) (None, 4, 4, 128) 217088 conv4_block46_0_relu[0][0] __________________________________________________________________________________________________ conv4_block46_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block46_1_conv[0][0] __________________________________________________________________________________________________ conv4_block46_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block46_1_bn[0][0] __________________________________________________________________________________________________ conv4_block46_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block46_1_relu[0][0] __________________________________________________________________________________________________ conv4_block46_concat (Concatena (None, 4, 4, 1728) 0 conv4_block45_concat[0][0] conv4_block46_2_conv[0][0] __________________________________________________________________________________________________ conv4_block47_0_bn (BatchNormal (None, 4, 4, 1728) 6912 conv4_block46_concat[0][0] __________________________________________________________________________________________________ conv4_block47_0_relu (Activatio (None, 4, 4, 1728) 0 conv4_block47_0_bn[0][0] __________________________________________________________________________________________________ conv4_block47_1_conv (Conv2D) (None, 4, 4, 128) 221184 conv4_block47_0_relu[0][0] __________________________________________________________________________________________________ conv4_block47_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block47_1_conv[0][0] __________________________________________________________________________________________________ conv4_block47_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block47_1_bn[0][0] __________________________________________________________________________________________________ conv4_block47_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block47_1_relu[0][0] __________________________________________________________________________________________________ conv4_block47_concat (Concatena (None, 4, 4, 1760) 0 conv4_block46_concat[0][0] conv4_block47_2_conv[0][0] __________________________________________________________________________________________________ conv4_block48_0_bn (BatchNormal (None, 4, 4, 1760) 7040 conv4_block47_concat[0][0] __________________________________________________________________________________________________ conv4_block48_0_relu (Activatio (None, 4, 4, 1760) 0 conv4_block48_0_bn[0][0] __________________________________________________________________________________________________ conv4_block48_1_conv (Conv2D) (None, 4, 4, 128) 225280 conv4_block48_0_relu[0][0] __________________________________________________________________________________________________ conv4_block48_1_bn (BatchNormal (None, 4, 4, 128) 512 conv4_block48_1_conv[0][0] __________________________________________________________________________________________________ conv4_block48_1_relu (Activatio (None, 4, 4, 128) 0 conv4_block48_1_bn[0][0] __________________________________________________________________________________________________ conv4_block48_2_conv (Conv2D) (None, 4, 4, 32) 36864 conv4_block48_1_relu[0][0] __________________________________________________________________________________________________ conv4_block48_concat (Concatena (None, 4, 4, 1792) 0 conv4_block47_concat[0][0] conv4_block48_2_conv[0][0] __________________________________________________________________________________________________ pool4_bn (BatchNormalization) (None, 4, 4, 1792) 7168 conv4_block48_concat[0][0] __________________________________________________________________________________________________ pool4_relu (Activation) (None, 4, 4, 1792) 0 pool4_bn[0][0] __________________________________________________________________________________________________ pool4_conv (Conv2D) (None, 4, 4, 896) 1605632 pool4_relu[0][0] __________________________________________________________________________________________________ pool4_pool (AveragePooling2D) (None, 2, 2, 896) 0 pool4_conv[0][0] __________________________________________________________________________________________________ conv5_block1_0_bn (BatchNormali (None, 2, 2, 896) 3584 pool4_pool[0][0] __________________________________________________________________________________________________ conv5_block1_0_relu (Activation (None, 2, 2, 896) 0 conv5_block1_0_bn[0][0] __________________________________________________________________________________________________ conv5_block1_1_conv (Conv2D) (None, 2, 2, 128) 114688 conv5_block1_0_relu[0][0] __________________________________________________________________________________________________ conv5_block1_1_bn (BatchNormali (None, 2, 2, 128) 512 conv5_block1_1_conv[0][0] __________________________________________________________________________________________________ conv5_block1_1_relu (Activation (None, 2, 2, 128) 0 conv5_block1_1_bn[0][0] __________________________________________________________________________________________________ conv5_block1_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block1_1_relu[0][0] __________________________________________________________________________________________________ conv5_block1_concat (Concatenat (None, 2, 2, 928) 0 pool4_pool[0][0] conv5_block1_2_conv[0][0] __________________________________________________________________________________________________ conv5_block2_0_bn (BatchNormali (None, 2, 2, 928) 3712 conv5_block1_concat[0][0] __________________________________________________________________________________________________ conv5_block2_0_relu (Activation (None, 2, 2, 928) 0 conv5_block2_0_bn[0][0] __________________________________________________________________________________________________ conv5_block2_1_conv (Conv2D) (None, 2, 2, 128) 118784 conv5_block2_0_relu[0][0] __________________________________________________________________________________________________ conv5_block2_1_bn (BatchNormali (None, 2, 2, 128) 512 conv5_block2_1_conv[0][0] __________________________________________________________________________________________________ conv5_block2_1_relu (Activation (None, 2, 2, 128) 0 conv5_block2_1_bn[0][0] __________________________________________________________________________________________________ conv5_block2_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block2_1_relu[0][0] __________________________________________________________________________________________________ conv5_block2_concat (Concatenat (None, 2, 2, 960) 0 conv5_block1_concat[0][0] conv5_block2_2_conv[0][0] __________________________________________________________________________________________________ conv5_block3_0_bn (BatchNormali (None, 2, 2, 960) 3840 conv5_block2_concat[0][0] __________________________________________________________________________________________________ conv5_block3_0_relu (Activation (None, 2, 2, 960) 0 conv5_block3_0_bn[0][0] __________________________________________________________________________________________________ conv5_block3_1_conv (Conv2D) (None, 2, 2, 128) 122880 conv5_block3_0_relu[0][0] __________________________________________________________________________________________________ conv5_block3_1_bn (BatchNormali (None, 2, 2, 128) 512 conv5_block3_1_conv[0][0] __________________________________________________________________________________________________ conv5_block3_1_relu (Activation (None, 2, 2, 128) 0 conv5_block3_1_bn[0][0] __________________________________________________________________________________________________ conv5_block3_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block3_1_relu[0][0] __________________________________________________________________________________________________ conv5_block3_concat (Concatenat (None, 2, 2, 992) 0 conv5_block2_concat[0][0] conv5_block3_2_conv[0][0] __________________________________________________________________________________________________ conv5_block4_0_bn (BatchNormali (None, 2, 2, 992) 3968 conv5_block3_concat[0][0] __________________________________________________________________________________________________ conv5_block4_0_relu (Activation (None, 2, 2, 992) 0 conv5_block4_0_bn[0][0] __________________________________________________________________________________________________ conv5_block4_1_conv (Conv2D) (None, 2, 2, 128) 126976 conv5_block4_0_relu[0][0] __________________________________________________________________________________________________ conv5_block4_1_bn (BatchNormali (None, 2, 2, 128) 512 conv5_block4_1_conv[0][0] __________________________________________________________________________________________________ conv5_block4_1_relu (Activation (None, 2, 2, 128) 0 conv5_block4_1_bn[0][0] __________________________________________________________________________________________________ conv5_block4_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block4_1_relu[0][0] __________________________________________________________________________________________________ conv5_block4_concat (Concatenat (None, 2, 2, 1024) 0 conv5_block3_concat[0][0] conv5_block4_2_conv[0][0] __________________________________________________________________________________________________ conv5_block5_0_bn (BatchNormali (None, 2, 2, 1024) 4096 conv5_block4_concat[0][0] __________________________________________________________________________________________________ conv5_block5_0_relu (Activation (None, 2, 2, 1024) 0 conv5_block5_0_bn[0][0] __________________________________________________________________________________________________ conv5_block5_1_conv (Conv2D) (None, 2, 2, 128) 131072 conv5_block5_0_relu[0][0] __________________________________________________________________________________________________ conv5_block5_1_bn (BatchNormali (None, 2, 2, 128) 512 conv5_block5_1_conv[0][0] __________________________________________________________________________________________________ conv5_block5_1_relu (Activation (None, 2, 2, 128) 0 conv5_block5_1_bn[0][0] __________________________________________________________________________________________________ conv5_block5_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block5_1_relu[0][0] __________________________________________________________________________________________________ conv5_block5_concat (Concatenat (None, 2, 2, 1056) 0 conv5_block4_concat[0][0] conv5_block5_2_conv[0][0] __________________________________________________________________________________________________ conv5_block6_0_bn (BatchNormali (None, 2, 2, 1056) 4224 conv5_block5_concat[0][0] __________________________________________________________________________________________________ conv5_block6_0_relu (Activation (None, 2, 2, 1056) 0 conv5_block6_0_bn[0][0] __________________________________________________________________________________________________ conv5_block6_1_conv (Conv2D) (None, 2, 2, 128) 135168 conv5_block6_0_relu[0][0] __________________________________________________________________________________________________ conv5_block6_1_bn (BatchNormali (None, 2, 2, 128) 512 conv5_block6_1_conv[0][0] __________________________________________________________________________________________________ conv5_block6_1_relu (Activation (None, 2, 2, 128) 0 conv5_block6_1_bn[0][0] __________________________________________________________________________________________________ conv5_block6_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block6_1_relu[0][0] __________________________________________________________________________________________________ conv5_block6_concat (Concatenat (None, 2, 2, 1088) 0 conv5_block5_concat[0][0] conv5_block6_2_conv[0][0] __________________________________________________________________________________________________ conv5_block7_0_bn (BatchNormali (None, 2, 2, 1088) 4352 conv5_block6_concat[0][0] __________________________________________________________________________________________________ conv5_block7_0_relu (Activation (None, 2, 2, 1088) 0 conv5_block7_0_bn[0][0] __________________________________________________________________________________________________ conv5_block7_1_conv (Conv2D) (None, 2, 2, 128) 139264 conv5_block7_0_relu[0][0] __________________________________________________________________________________________________ conv5_block7_1_bn (BatchNormali (None, 2, 2, 128) 512 conv5_block7_1_conv[0][0] __________________________________________________________________________________________________ conv5_block7_1_relu (Activation (None, 2, 2, 128) 0 conv5_block7_1_bn[0][0] __________________________________________________________________________________________________ conv5_block7_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block7_1_relu[0][0] __________________________________________________________________________________________________ conv5_block7_concat (Concatenat (None, 2, 2, 1120) 0 conv5_block6_concat[0][0] conv5_block7_2_conv[0][0] __________________________________________________________________________________________________ conv5_block8_0_bn (BatchNormali (None, 2, 2, 1120) 4480 conv5_block7_concat[0][0] __________________________________________________________________________________________________ conv5_block8_0_relu (Activation (None, 2, 2, 1120) 0 conv5_block8_0_bn[0][0] __________________________________________________________________________________________________ conv5_block8_1_conv (Conv2D) (None, 2, 2, 128) 143360 conv5_block8_0_relu[0][0] __________________________________________________________________________________________________ conv5_block8_1_bn (BatchNormali (None, 2, 2, 128) 512 conv5_block8_1_conv[0][0] __________________________________________________________________________________________________ conv5_block8_1_relu (Activation (None, 2, 2, 128) 0 conv5_block8_1_bn[0][0] __________________________________________________________________________________________________ conv5_block8_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block8_1_relu[0][0] __________________________________________________________________________________________________ conv5_block8_concat (Concatenat (None, 2, 2, 1152) 0 conv5_block7_concat[0][0] conv5_block8_2_conv[0][0] __________________________________________________________________________________________________ conv5_block9_0_bn (BatchNormali (None, 2, 2, 1152) 4608 conv5_block8_concat[0][0] __________________________________________________________________________________________________ conv5_block9_0_relu (Activation (None, 2, 2, 1152) 0 conv5_block9_0_bn[0][0] __________________________________________________________________________________________________ conv5_block9_1_conv (Conv2D) (None, 2, 2, 128) 147456 conv5_block9_0_relu[0][0] __________________________________________________________________________________________________ conv5_block9_1_bn (BatchNormali (None, 2, 2, 128) 512 conv5_block9_1_conv[0][0] __________________________________________________________________________________________________ conv5_block9_1_relu (Activation (None, 2, 2, 128) 0 conv5_block9_1_bn[0][0] __________________________________________________________________________________________________ conv5_block9_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block9_1_relu[0][0] __________________________________________________________________________________________________ conv5_block9_concat (Concatenat (None, 2, 2, 1184) 0 conv5_block8_concat[0][0] conv5_block9_2_conv[0][0] __________________________________________________________________________________________________ conv5_block10_0_bn (BatchNormal (None, 2, 2, 1184) 4736 conv5_block9_concat[0][0] __________________________________________________________________________________________________ conv5_block10_0_relu (Activatio (None, 2, 2, 1184) 0 conv5_block10_0_bn[0][0] __________________________________________________________________________________________________ conv5_block10_1_conv (Conv2D) (None, 2, 2, 128) 151552 conv5_block10_0_relu[0][0] __________________________________________________________________________________________________ conv5_block10_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block10_1_conv[0][0] __________________________________________________________________________________________________ conv5_block10_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block10_1_bn[0][0] __________________________________________________________________________________________________ conv5_block10_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block10_1_relu[0][0] __________________________________________________________________________________________________ conv5_block10_concat (Concatena (None, 2, 2, 1216) 0 conv5_block9_concat[0][0] conv5_block10_2_conv[0][0] __________________________________________________________________________________________________ conv5_block11_0_bn (BatchNormal (None, 2, 2, 1216) 4864 conv5_block10_concat[0][0] __________________________________________________________________________________________________ conv5_block11_0_relu (Activatio (None, 2, 2, 1216) 0 conv5_block11_0_bn[0][0] __________________________________________________________________________________________________ conv5_block11_1_conv (Conv2D) (None, 2, 2, 128) 155648 conv5_block11_0_relu[0][0] __________________________________________________________________________________________________ conv5_block11_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block11_1_conv[0][0] __________________________________________________________________________________________________ conv5_block11_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block11_1_bn[0][0] __________________________________________________________________________________________________ conv5_block11_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block11_1_relu[0][0] __________________________________________________________________________________________________ conv5_block11_concat (Concatena (None, 2, 2, 1248) 0 conv5_block10_concat[0][0] conv5_block11_2_conv[0][0] __________________________________________________________________________________________________ conv5_block12_0_bn (BatchNormal (None, 2, 2, 1248) 4992 conv5_block11_concat[0][0] __________________________________________________________________________________________________ conv5_block12_0_relu (Activatio (None, 2, 2, 1248) 0 conv5_block12_0_bn[0][0] __________________________________________________________________________________________________ conv5_block12_1_conv (Conv2D) (None, 2, 2, 128) 159744 conv5_block12_0_relu[0][0] __________________________________________________________________________________________________ conv5_block12_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block12_1_conv[0][0] __________________________________________________________________________________________________ conv5_block12_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block12_1_bn[0][0] __________________________________________________________________________________________________ conv5_block12_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block12_1_relu[0][0] __________________________________________________________________________________________________ conv5_block12_concat (Concatena (None, 2, 2, 1280) 0 conv5_block11_concat[0][0] conv5_block12_2_conv[0][0] __________________________________________________________________________________________________ conv5_block13_0_bn (BatchNormal (None, 2, 2, 1280) 5120 conv5_block12_concat[0][0] __________________________________________________________________________________________________ conv5_block13_0_relu (Activatio (None, 2, 2, 1280) 0 conv5_block13_0_bn[0][0] __________________________________________________________________________________________________ conv5_block13_1_conv (Conv2D) (None, 2, 2, 128) 163840 conv5_block13_0_relu[0][0] __________________________________________________________________________________________________ conv5_block13_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block13_1_conv[0][0] __________________________________________________________________________________________________ conv5_block13_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block13_1_bn[0][0] __________________________________________________________________________________________________ conv5_block13_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block13_1_relu[0][0] __________________________________________________________________________________________________ conv5_block13_concat (Concatena (None, 2, 2, 1312) 0 conv5_block12_concat[0][0] conv5_block13_2_conv[0][0] __________________________________________________________________________________________________ conv5_block14_0_bn (BatchNormal (None, 2, 2, 1312) 5248 conv5_block13_concat[0][0] __________________________________________________________________________________________________ conv5_block14_0_relu (Activatio (None, 2, 2, 1312) 0 conv5_block14_0_bn[0][0] __________________________________________________________________________________________________ conv5_block14_1_conv (Conv2D) (None, 2, 2, 128) 167936 conv5_block14_0_relu[0][0] __________________________________________________________________________________________________ conv5_block14_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block14_1_conv[0][0] __________________________________________________________________________________________________ conv5_block14_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block14_1_bn[0][0] __________________________________________________________________________________________________ conv5_block14_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block14_1_relu[0][0] __________________________________________________________________________________________________ conv5_block14_concat (Concatena (None, 2, 2, 1344) 0 conv5_block13_concat[0][0] conv5_block14_2_conv[0][0] __________________________________________________________________________________________________ conv5_block15_0_bn (BatchNormal (None, 2, 2, 1344) 5376 conv5_block14_concat[0][0] __________________________________________________________________________________________________ conv5_block15_0_relu (Activatio (None, 2, 2, 1344) 0 conv5_block15_0_bn[0][0] __________________________________________________________________________________________________ conv5_block15_1_conv (Conv2D) (None, 2, 2, 128) 172032 conv5_block15_0_relu[0][0] __________________________________________________________________________________________________ conv5_block15_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block15_1_conv[0][0] __________________________________________________________________________________________________ conv5_block15_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block15_1_bn[0][0] __________________________________________________________________________________________________ conv5_block15_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block15_1_relu[0][0] __________________________________________________________________________________________________ conv5_block15_concat (Concatena (None, 2, 2, 1376) 0 conv5_block14_concat[0][0] conv5_block15_2_conv[0][0] __________________________________________________________________________________________________ conv5_block16_0_bn (BatchNormal (None, 2, 2, 1376) 5504 conv5_block15_concat[0][0] __________________________________________________________________________________________________ conv5_block16_0_relu (Activatio (None, 2, 2, 1376) 0 conv5_block16_0_bn[0][0] __________________________________________________________________________________________________ conv5_block16_1_conv (Conv2D) (None, 2, 2, 128) 176128 conv5_block16_0_relu[0][0] __________________________________________________________________________________________________ conv5_block16_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block16_1_conv[0][0] __________________________________________________________________________________________________ conv5_block16_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block16_1_bn[0][0] __________________________________________________________________________________________________ conv5_block16_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block16_1_relu[0][0] __________________________________________________________________________________________________ conv5_block16_concat (Concatena (None, 2, 2, 1408) 0 conv5_block15_concat[0][0] conv5_block16_2_conv[0][0] __________________________________________________________________________________________________ conv5_block17_0_bn (BatchNormal (None, 2, 2, 1408) 5632 conv5_block16_concat[0][0] __________________________________________________________________________________________________ conv5_block17_0_relu (Activatio (None, 2, 2, 1408) 0 conv5_block17_0_bn[0][0] __________________________________________________________________________________________________ conv5_block17_1_conv (Conv2D) (None, 2, 2, 128) 180224 conv5_block17_0_relu[0][0] __________________________________________________________________________________________________ conv5_block17_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block17_1_conv[0][0] __________________________________________________________________________________________________ conv5_block17_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block17_1_bn[0][0] __________________________________________________________________________________________________ conv5_block17_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block17_1_relu[0][0] __________________________________________________________________________________________________ conv5_block17_concat (Concatena (None, 2, 2, 1440) 0 conv5_block16_concat[0][0] conv5_block17_2_conv[0][0] __________________________________________________________________________________________________ conv5_block18_0_bn (BatchNormal (None, 2, 2, 1440) 5760 conv5_block17_concat[0][0] __________________________________________________________________________________________________ conv5_block18_0_relu (Activatio (None, 2, 2, 1440) 0 conv5_block18_0_bn[0][0] __________________________________________________________________________________________________ conv5_block18_1_conv (Conv2D) (None, 2, 2, 128) 184320 conv5_block18_0_relu[0][0] __________________________________________________________________________________________________ conv5_block18_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block18_1_conv[0][0] __________________________________________________________________________________________________ conv5_block18_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block18_1_bn[0][0] __________________________________________________________________________________________________ conv5_block18_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block18_1_relu[0][0] __________________________________________________________________________________________________ conv5_block18_concat (Concatena (None, 2, 2, 1472) 0 conv5_block17_concat[0][0] conv5_block18_2_conv[0][0] __________________________________________________________________________________________________ conv5_block19_0_bn (BatchNormal (None, 2, 2, 1472) 5888 conv5_block18_concat[0][0] __________________________________________________________________________________________________ conv5_block19_0_relu (Activatio (None, 2, 2, 1472) 0 conv5_block19_0_bn[0][0] __________________________________________________________________________________________________ conv5_block19_1_conv (Conv2D) (None, 2, 2, 128) 188416 conv5_block19_0_relu[0][0] __________________________________________________________________________________________________ conv5_block19_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block19_1_conv[0][0] __________________________________________________________________________________________________ conv5_block19_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block19_1_bn[0][0] __________________________________________________________________________________________________ conv5_block19_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block19_1_relu[0][0] __________________________________________________________________________________________________ conv5_block19_concat (Concatena (None, 2, 2, 1504) 0 conv5_block18_concat[0][0] conv5_block19_2_conv[0][0] __________________________________________________________________________________________________ conv5_block20_0_bn (BatchNormal (None, 2, 2, 1504) 6016 conv5_block19_concat[0][0] __________________________________________________________________________________________________ conv5_block20_0_relu (Activatio (None, 2, 2, 1504) 0 conv5_block20_0_bn[0][0] __________________________________________________________________________________________________ conv5_block20_1_conv (Conv2D) (None, 2, 2, 128) 192512 conv5_block20_0_relu[0][0] __________________________________________________________________________________________________ conv5_block20_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block20_1_conv[0][0] __________________________________________________________________________________________________ conv5_block20_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block20_1_bn[0][0] __________________________________________________________________________________________________ conv5_block20_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block20_1_relu[0][0] __________________________________________________________________________________________________ conv5_block20_concat (Concatena (None, 2, 2, 1536) 0 conv5_block19_concat[0][0] conv5_block20_2_conv[0][0] __________________________________________________________________________________________________ conv5_block21_0_bn (BatchNormal (None, 2, 2, 1536) 6144 conv5_block20_concat[0][0] __________________________________________________________________________________________________ conv5_block21_0_relu (Activatio (None, 2, 2, 1536) 0 conv5_block21_0_bn[0][0] __________________________________________________________________________________________________ conv5_block21_1_conv (Conv2D) (None, 2, 2, 128) 196608 conv5_block21_0_relu[0][0] __________________________________________________________________________________________________ conv5_block21_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block21_1_conv[0][0] __________________________________________________________________________________________________ conv5_block21_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block21_1_bn[0][0] __________________________________________________________________________________________________ conv5_block21_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block21_1_relu[0][0] __________________________________________________________________________________________________ conv5_block21_concat (Concatena (None, 2, 2, 1568) 0 conv5_block20_concat[0][0] conv5_block21_2_conv[0][0] __________________________________________________________________________________________________ conv5_block22_0_bn (BatchNormal (None, 2, 2, 1568) 6272 conv5_block21_concat[0][0] __________________________________________________________________________________________________ conv5_block22_0_relu (Activatio (None, 2, 2, 1568) 0 conv5_block22_0_bn[0][0] __________________________________________________________________________________________________ conv5_block22_1_conv (Conv2D) (None, 2, 2, 128) 200704 conv5_block22_0_relu[0][0] __________________________________________________________________________________________________ conv5_block22_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block22_1_conv[0][0] __________________________________________________________________________________________________ conv5_block22_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block22_1_bn[0][0] __________________________________________________________________________________________________ conv5_block22_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block22_1_relu[0][0] __________________________________________________________________________________________________ conv5_block22_concat (Concatena (None, 2, 2, 1600) 0 conv5_block21_concat[0][0] conv5_block22_2_conv[0][0] __________________________________________________________________________________________________ conv5_block23_0_bn (BatchNormal (None, 2, 2, 1600) 6400 conv5_block22_concat[0][0] __________________________________________________________________________________________________ conv5_block23_0_relu (Activatio (None, 2, 2, 1600) 0 conv5_block23_0_bn[0][0] __________________________________________________________________________________________________ conv5_block23_1_conv (Conv2D) (None, 2, 2, 128) 204800 conv5_block23_0_relu[0][0] __________________________________________________________________________________________________ conv5_block23_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block23_1_conv[0][0] __________________________________________________________________________________________________ conv5_block23_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block23_1_bn[0][0] __________________________________________________________________________________________________ conv5_block23_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block23_1_relu[0][0] __________________________________________________________________________________________________ conv5_block23_concat (Concatena (None, 2, 2, 1632) 0 conv5_block22_concat[0][0] conv5_block23_2_conv[0][0] __________________________________________________________________________________________________ conv5_block24_0_bn (BatchNormal (None, 2, 2, 1632) 6528 conv5_block23_concat[0][0] __________________________________________________________________________________________________ conv5_block24_0_relu (Activatio (None, 2, 2, 1632) 0 conv5_block24_0_bn[0][0] __________________________________________________________________________________________________ conv5_block24_1_conv (Conv2D) (None, 2, 2, 128) 208896 conv5_block24_0_relu[0][0] __________________________________________________________________________________________________ conv5_block24_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block24_1_conv[0][0] __________________________________________________________________________________________________ conv5_block24_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block24_1_bn[0][0] __________________________________________________________________________________________________ conv5_block24_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block24_1_relu[0][0] __________________________________________________________________________________________________ conv5_block24_concat (Concatena (None, 2, 2, 1664) 0 conv5_block23_concat[0][0] conv5_block24_2_conv[0][0] __________________________________________________________________________________________________ conv5_block25_0_bn (BatchNormal (None, 2, 2, 1664) 6656 conv5_block24_concat[0][0] __________________________________________________________________________________________________ conv5_block25_0_relu (Activatio (None, 2, 2, 1664) 0 conv5_block25_0_bn[0][0] __________________________________________________________________________________________________ conv5_block25_1_conv (Conv2D) (None, 2, 2, 128) 212992 conv5_block25_0_relu[0][0] __________________________________________________________________________________________________ conv5_block25_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block25_1_conv[0][0] __________________________________________________________________________________________________ conv5_block25_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block25_1_bn[0][0] __________________________________________________________________________________________________ conv5_block25_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block25_1_relu[0][0] __________________________________________________________________________________________________ conv5_block25_concat (Concatena (None, 2, 2, 1696) 0 conv5_block24_concat[0][0] conv5_block25_2_conv[0][0] __________________________________________________________________________________________________ conv5_block26_0_bn (BatchNormal (None, 2, 2, 1696) 6784 conv5_block25_concat[0][0] __________________________________________________________________________________________________ conv5_block26_0_relu (Activatio (None, 2, 2, 1696) 0 conv5_block26_0_bn[0][0] __________________________________________________________________________________________________ conv5_block26_1_conv (Conv2D) (None, 2, 2, 128) 217088 conv5_block26_0_relu[0][0] __________________________________________________________________________________________________ conv5_block26_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block26_1_conv[0][0] __________________________________________________________________________________________________ conv5_block26_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block26_1_bn[0][0] __________________________________________________________________________________________________ conv5_block26_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block26_1_relu[0][0] __________________________________________________________________________________________________ conv5_block26_concat (Concatena (None, 2, 2, 1728) 0 conv5_block25_concat[0][0] conv5_block26_2_conv[0][0] __________________________________________________________________________________________________ conv5_block27_0_bn (BatchNormal (None, 2, 2, 1728) 6912 conv5_block26_concat[0][0] __________________________________________________________________________________________________ conv5_block27_0_relu (Activatio (None, 2, 2, 1728) 0 conv5_block27_0_bn[0][0] __________________________________________________________________________________________________ conv5_block27_1_conv (Conv2D) (None, 2, 2, 128) 221184 conv5_block27_0_relu[0][0] __________________________________________________________________________________________________ conv5_block27_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block27_1_conv[0][0] __________________________________________________________________________________________________ conv5_block27_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block27_1_bn[0][0] __________________________________________________________________________________________________ conv5_block27_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block27_1_relu[0][0] __________________________________________________________________________________________________ conv5_block27_concat (Concatena (None, 2, 2, 1760) 0 conv5_block26_concat[0][0] conv5_block27_2_conv[0][0] __________________________________________________________________________________________________ conv5_block28_0_bn (BatchNormal (None, 2, 2, 1760) 7040 conv5_block27_concat[0][0] __________________________________________________________________________________________________ conv5_block28_0_relu (Activatio (None, 2, 2, 1760) 0 conv5_block28_0_bn[0][0] __________________________________________________________________________________________________ conv5_block28_1_conv (Conv2D) (None, 2, 2, 128) 225280 conv5_block28_0_relu[0][0] __________________________________________________________________________________________________ conv5_block28_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block28_1_conv[0][0] __________________________________________________________________________________________________ conv5_block28_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block28_1_bn[0][0] __________________________________________________________________________________________________ conv5_block28_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block28_1_relu[0][0] __________________________________________________________________________________________________ conv5_block28_concat (Concatena (None, 2, 2, 1792) 0 conv5_block27_concat[0][0] conv5_block28_2_conv[0][0] __________________________________________________________________________________________________ conv5_block29_0_bn (BatchNormal (None, 2, 2, 1792) 7168 conv5_block28_concat[0][0] __________________________________________________________________________________________________ conv5_block29_0_relu (Activatio (None, 2, 2, 1792) 0 conv5_block29_0_bn[0][0] __________________________________________________________________________________________________ conv5_block29_1_conv (Conv2D) (None, 2, 2, 128) 229376 conv5_block29_0_relu[0][0] __________________________________________________________________________________________________ conv5_block29_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block29_1_conv[0][0] __________________________________________________________________________________________________ conv5_block29_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block29_1_bn[0][0] __________________________________________________________________________________________________ conv5_block29_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block29_1_relu[0][0] __________________________________________________________________________________________________ conv5_block29_concat (Concatena (None, 2, 2, 1824) 0 conv5_block28_concat[0][0] conv5_block29_2_conv[0][0] __________________________________________________________________________________________________ conv5_block30_0_bn (BatchNormal (None, 2, 2, 1824) 7296 conv5_block29_concat[0][0] __________________________________________________________________________________________________ conv5_block30_0_relu (Activatio (None, 2, 2, 1824) 0 conv5_block30_0_bn[0][0] __________________________________________________________________________________________________ conv5_block30_1_conv (Conv2D) (None, 2, 2, 128) 233472 conv5_block30_0_relu[0][0] __________________________________________________________________________________________________ conv5_block30_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block30_1_conv[0][0] __________________________________________________________________________________________________ conv5_block30_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block30_1_bn[0][0] __________________________________________________________________________________________________ conv5_block30_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block30_1_relu[0][0] __________________________________________________________________________________________________ conv5_block30_concat (Concatena (None, 2, 2, 1856) 0 conv5_block29_concat[0][0] conv5_block30_2_conv[0][0] __________________________________________________________________________________________________ conv5_block31_0_bn (BatchNormal (None, 2, 2, 1856) 7424 conv5_block30_concat[0][0] __________________________________________________________________________________________________ conv5_block31_0_relu (Activatio (None, 2, 2, 1856) 0 conv5_block31_0_bn[0][0] __________________________________________________________________________________________________ conv5_block31_1_conv (Conv2D) (None, 2, 2, 128) 237568 conv5_block31_0_relu[0][0] __________________________________________________________________________________________________ conv5_block31_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block31_1_conv[0][0] __________________________________________________________________________________________________ conv5_block31_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block31_1_bn[0][0] __________________________________________________________________________________________________ conv5_block31_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block31_1_relu[0][0] __________________________________________________________________________________________________ conv5_block31_concat (Concatena (None, 2, 2, 1888) 0 conv5_block30_concat[0][0] conv5_block31_2_conv[0][0] __________________________________________________________________________________________________ conv5_block32_0_bn (BatchNormal (None, 2, 2, 1888) 7552 conv5_block31_concat[0][0] __________________________________________________________________________________________________ conv5_block32_0_relu (Activatio (None, 2, 2, 1888) 0 conv5_block32_0_bn[0][0] __________________________________________________________________________________________________ conv5_block32_1_conv (Conv2D) (None, 2, 2, 128) 241664 conv5_block32_0_relu[0][0] __________________________________________________________________________________________________ conv5_block32_1_bn (BatchNormal (None, 2, 2, 128) 512 conv5_block32_1_conv[0][0] __________________________________________________________________________________________________ conv5_block32_1_relu (Activatio (None, 2, 2, 128) 0 conv5_block32_1_bn[0][0] __________________________________________________________________________________________________ conv5_block32_2_conv (Conv2D) (None, 2, 2, 32) 36864 conv5_block32_1_relu[0][0] __________________________________________________________________________________________________ conv5_block32_concat (Concatena (None, 2, 2, 1920) 0 conv5_block31_concat[0][0] conv5_block32_2_conv[0][0] __________________________________________________________________________________________________ bn (BatchNormalization) (None, 2, 2, 1920) 7680 conv5_block32_concat[0][0] __________________________________________________________________________________________________ relu (Activation) (None, 2, 2, 1920) 0 bn[0][0] __________________________________________________________________________________________________ max_pool (GlobalMaxPooling2D) (None, 1920) 0 relu[0][0] ================================================================================================== Total params: 18,321,984 Trainable params: 18,092,928 Non-trainable params: 229,056 __________________________________________________________________________________________________
feature_batch = densenet(image_batch) feature_batch.shape
TensorShape([32, 1920])
len(densenet.layers)
708

Add new layers to model

model = Sequential([ densenet, BatchNormalization(), Dense(2048, activation='relu', kernel_regularizer=l1_l2(0.01)), BatchNormalization(), Dense(2048, activation='relu', kernel_regularizer=l1_l2(0.01)), BatchNormalization(), Dense(2048, activation='relu', kernel_regularizer=l1_l2(0.01)), BatchNormalization(), Dense(2048, activation='relu', kernel_regularizer=l1_l2(0.01)), BatchNormalization(), Dense(10, activation='softmax') ])
for layer in model.layers: layer.trainable = True
model.compile(loss='sparse_categorical_crossentropy', optimizer=Adam(lr=1e-4), metrics=['accuracy'])
model.summary()
Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= densenet201 (Functional) (None, 1920) 18321984 _________________________________________________________________ batch_normalization (BatchNo (None, 1920) 7680 _________________________________________________________________ dense (Dense) (None, 2048) 3934208 _________________________________________________________________ batch_normalization_1 (Batch (None, 2048) 8192 _________________________________________________________________ dense_1 (Dense) (None, 2048) 4196352 _________________________________________________________________ batch_normalization_2 (Batch (None, 2048) 8192 _________________________________________________________________ dense_2 (Dense) (None, 2048) 4196352 _________________________________________________________________ batch_normalization_3 (Batch (None, 2048) 8192 _________________________________________________________________ dense_3 (Dense) (None, 2048) 4196352 _________________________________________________________________ batch_normalization_4 (Batch (None, 2048) 8192 _________________________________________________________________ dense_4 (Dense) (None, 10) 20490 ================================================================= Total params: 34,906,186 Trainable params: 34,656,906 Non-trainable params: 249,280 _________________________________________________________________

Compute baseline metrics

initial_epochs = 10 validation_steps = 20 initial_loss, initial_accuracy = model.evaluate(validation_batches, steps = validation_steps)
20/20 [==============================] - 3s 140ms/step - loss: 3256.2627 - accuracy: 0.1109
print(f'Initial loss: {initial_loss:.2f} | initial_accuracy accuracy: {initial_accuracy:.2%}')
Initial loss: 3256.26 | initial_accuracy accuracy: 11.09%

Train model

Define Callbacks

early_stopping = EarlyStopping(monitor='val_accuracy', patience=10)
eurosat_path = (results_path / 'cnn.weights.best.hdf5').as_posix() checkpointer = ModelCheckpoint(filepath=eurosat_path, verbose=1, monitor='val_accuracy', save_best_only=True)
epochs = 100
history = model.fit(train_batches, epochs=epochs, validation_data=validation_batches, callbacks=[checkpointer, early_stopping])
Epoch 1/100 760/Unknown - 70s 92ms/step - loss: 700.4531 - accuracy: 0.8181 Epoch 00001: val_accuracy improved from -inf to 0.94444, saving model to results/eurosat/cnn.weights.best.hdf5 760/760 [==============================] - 74s 97ms/step - loss: 700.4531 - accuracy: 0.8181 - val_loss: 4.1437 - val_accuracy: 0.9444 Epoch 2/100 760/760 [==============================] - ETA: 0s - loss: 2.5708 - accuracy: 0.9230 Epoch 00002: val_accuracy improved from 0.94444 to 0.94963, saving model to results/eurosat/cnn.weights.best.hdf5 760/760 [==============================] - 75s 98ms/step - loss: 2.5708 - accuracy: 0.9230 - val_loss: 2.3430 - val_accuracy: 0.9496 Epoch 3/100 760/760 [==============================] - ETA: 0s - loss: 2.3192 - accuracy: 0.9536 Epoch 00003: val_accuracy did not improve from 0.94963 760/760 [==============================] - 71s 94ms/step - loss: 2.3192 - accuracy: 0.9536 - val_loss: 2.5888 - val_accuracy: 0.9107 Epoch 4/100 760/760 [==============================] - ETA: 0s - loss: 2.3036 - accuracy: 0.9686 Epoch 00004: val_accuracy improved from 0.94963 to 0.96407, saving model to results/eurosat/cnn.weights.best.hdf5 760/760 [==============================] - 83s 109ms/step - loss: 2.3036 - accuracy: 0.9686 - val_loss: 2.5276 - val_accuracy: 0.9641 Epoch 5/100 760/760 [==============================] - ETA: 0s - loss: 2.1611 - accuracy: 0.9746 Epoch 00005: val_accuracy did not improve from 0.96407 760/760 [==============================] - 102s 134ms/step - loss: 2.1611 - accuracy: 0.9746 - val_loss: 2.2576 - val_accuracy: 0.9496 Epoch 6/100 760/760 [==============================] - ETA: 0s - loss: 2.1564 - accuracy: 0.9795 Epoch 00006: val_accuracy did not improve from 0.96407 760/760 [==============================] - 101s 133ms/step - loss: 2.1564 - accuracy: 0.9795 - val_loss: 2.3695 - val_accuracy: 0.9633 Epoch 7/100 760/760 [==============================] - ETA: 0s - loss: 2.0421 - accuracy: 0.9819 Epoch 00007: val_accuracy did not improve from 0.96407 760/760 [==============================] - 102s 134ms/step - loss: 2.0421 - accuracy: 0.9819 - val_loss: 2.0737 - val_accuracy: 0.9641 Epoch 8/100 760/760 [==============================] - ETA: 0s - loss: 2.0481 - accuracy: 0.9845 Epoch 00008: val_accuracy did not improve from 0.96407 760/760 [==============================] - 102s 135ms/step - loss: 2.0481 - accuracy: 0.9845 - val_loss: 2.3596 - val_accuracy: 0.9385 Epoch 9/100 760/760 [==============================] - ETA: 0s - loss: 2.2188 - accuracy: 0.9676 Epoch 00009: val_accuracy did not improve from 0.96407 760/760 [==============================] - 101s 133ms/step - loss: 2.2188 - accuracy: 0.9676 - val_loss: 2.5635 - val_accuracy: 0.8733 Epoch 10/100 760/760 [==============================] - ETA: 0s - loss: 2.0949 - accuracy: 0.9826 Epoch 00010: val_accuracy did not improve from 0.96407 760/760 [==============================] - 102s 134ms/step - loss: 2.0949 - accuracy: 0.9826 - val_loss: 2.3571 - val_accuracy: 0.9470 Epoch 11/100 760/760 [==============================] - ETA: 0s - loss: 2.0105 - accuracy: 0.9886 Epoch 00011: val_accuracy improved from 0.96407 to 0.96704, saving model to results/eurosat/cnn.weights.best.hdf5 760/760 [==============================] - 105s 138ms/step - loss: 2.0105 - accuracy: 0.9886 - val_loss: 2.0671 - val_accuracy: 0.9670 Epoch 12/100 760/760 [==============================] - ETA: 0s - loss: 1.9271 - accuracy: 0.9895 Epoch 00012: val_accuracy improved from 0.96704 to 0.97630, saving model to results/eurosat/cnn.weights.best.hdf5 760/760 [==============================] - 106s 140ms/step - loss: 1.9271 - accuracy: 0.9895 - val_loss: 1.9610 - val_accuracy: 0.9763 Epoch 13/100 760/760 [==============================] - ETA: 0s - loss: 2.0319 - accuracy: 0.9854 Epoch 00013: val_accuracy did not improve from 0.97630 760/760 [==============================] - 102s 134ms/step - loss: 2.0319 - accuracy: 0.9854 - val_loss: 2.4892 - val_accuracy: 0.9419 Epoch 14/100 760/760 [==============================] - ETA: 0s - loss: 2.0903 - accuracy: 0.9786 Epoch 00014: val_accuracy improved from 0.97630 to 0.97704, saving model to results/eurosat/cnn.weights.best.hdf5 760/760 [==============================] - 102s 134ms/step - loss: 2.0903 - accuracy: 0.9786 - val_loss: 2.0443 - val_accuracy: 0.9770 Epoch 15/100 760/760 [==============================] - ETA: 0s - loss: 1.9076 - accuracy: 0.9940 Epoch 00015: val_accuracy improved from 0.97704 to 0.98074, saving model to results/eurosat/cnn.weights.best.hdf5 760/760 [==============================] - 104s 137ms/step - loss: 1.9076 - accuracy: 0.9940 - val_loss: 1.9274 - val_accuracy: 0.9807 Epoch 16/100 760/760 [==============================] - ETA: 0s - loss: 2.0973 - accuracy: 0.9888 Epoch 00016: val_accuracy did not improve from 0.98074 760/760 [==============================] - 103s 135ms/step - loss: 2.0973 - accuracy: 0.9888 - val_loss: 2.2508 - val_accuracy: 0.9648 Epoch 17/100 760/760 [==============================] - ETA: 0s - loss: 2.0802 - accuracy: 0.9858 Epoch 00017: val_accuracy did not improve from 0.98074 760/760 [==============================] - 102s 135ms/step - loss: 2.0802 - accuracy: 0.9858 - val_loss: 2.0436 - val_accuracy: 0.9619 Epoch 18/100 760/760 [==============================] - ETA: 0s - loss: 2.0126 - accuracy: 0.9894 Epoch 00018: val_accuracy did not improve from 0.98074 760/760 [==============================] - 110s 145ms/step - loss: 2.0126 - accuracy: 0.9894 - val_loss: 2.0002 - val_accuracy: 0.9752 Epoch 19/100 760/760 [==============================] - ETA: 0s - loss: 2.0331 - accuracy: 0.9859 Epoch 00019: val_accuracy did not improve from 0.98074 760/760 [==============================] - 130s 170ms/step - loss: 2.0331 - accuracy: 0.9859 - val_loss: 1.9779 - val_accuracy: 0.9726 Epoch 20/100 760/760 [==============================] - ETA: 0s - loss: 1.9184 - accuracy: 0.9937 Epoch 00020: val_accuracy did not improve from 0.98074 760/760 [==============================] - 131s 172ms/step - loss: 1.9184 - accuracy: 0.9937 - val_loss: 1.9657 - val_accuracy: 0.9748 Epoch 21/100 760/760 [==============================] - ETA: 0s - loss: 1.8805 - accuracy: 0.9951 Epoch 00021: val_accuracy did not improve from 0.98074 760/760 [==============================] - 132s 173ms/step - loss: 1.8805 - accuracy: 0.9951 - val_loss: 2.2087 - val_accuracy: 0.9204 Epoch 22/100 760/760 [==============================] - ETA: 0s - loss: 2.3553 - accuracy: 0.9720 Epoch 00022: val_accuracy did not improve from 0.98074 760/760 [==============================] - 105s 139ms/step - loss: 2.3553 - accuracy: 0.9720 - val_loss: 4.7075 - val_accuracy: 0.8170 Epoch 23/100 760/760 [==============================] - ETA: 0s - loss: 2.0543 - accuracy: 0.9889 Epoch 00023: val_accuracy did not improve from 0.98074 760/760 [==============================] - 102s 134ms/step - loss: 2.0543 - accuracy: 0.9889 - val_loss: 2.2079 - val_accuracy: 0.9737 Epoch 24/100 760/760 [==============================] - ETA: 0s - loss: 1.9796 - accuracy: 0.9888 Epoch 00024: val_accuracy did not improve from 0.98074 760/760 [==============================] - 103s 135ms/step - loss: 1.9796 - accuracy: 0.9888 - val_loss: 7.1897 - val_accuracy: 0.7819 Epoch 25/100 760/760 [==============================] - ETA: 0s - loss: 1.9561 - accuracy: 0.9883 Epoch 00025: val_accuracy did not improve from 0.98074 760/760 [==============================] - 102s 134ms/step - loss: 1.9561 - accuracy: 0.9883 - val_loss: 1.9583 - val_accuracy: 0.9763

Plot Learning Curves

def plot_learning_curves(df): fig, axes = plt.subplots(ncols=2, figsize=(15, 4)) df[['accuracy', 'val_accuracy']].plot(ax=axes[0], title='Accuracy') df[['loss', 'val_loss']].plot(ax=axes[1], title='Cross-Entropy') for ax in axes: ax.legend(['Training', 'Validation']) fig.tight_layout();
metrics = pd.DataFrame(history.history) metrics.index = metrics.index.to_series().add(1) fig, axes = plt.subplots(ncols=2, figsize=(15, 4)) metrics[['accuracy', 'val_accuracy']].plot(ax=axes[0], title=f'Accuracy (Best: {metrics.val_accuracy.max():.2%})') axes[0].axvline(metrics.val_accuracy.idxmax(), ls='--', lw=1, c='k') metrics[['loss', 'val_loss']].plot(ax=axes[1], title='Cross-Entropy', logy=True) for ax in axes: ax.legend(['Training', 'Validation']) ax.set_xlabel('Epoch') axes[0].yaxis.set_major_formatter(FuncFormatter(lambda y, _: '{:.0%}'.format(y))) axes[0].set_ylabel('Accuracy') axes[1].set_ylabel('Loss') sns.despine() fig.tight_layout() fig.savefig(results_path / 'satellite_accuracy', dpi=300);
Image in a Jupyter notebook