def ResNext(input_shape=None, depth=29, cardinality=8, width=64, weight_decay=5e-4,
include_top=True, weights=None, input_tensor=None,
pooling=None, classes=10):
参数分析
depth:ResNeXt模型中的数量或层数。可以是整数或整数列表。
include_top:是否包含最上层的全连接层
weights: None
/ imagenet
/ path
(to the weight file)
None
表示没有指定权重,对网络参数进行随机初始化.
imagenet
表示加载imagenet与训练的网络权重.
path
表示指向权重文件的路径.
input_tensor: 可选的Keras张量(即layers.Input()
的输出)作为模型的图像输入
pooling:当include_top
为False
时,用于特征提取的可选池模式。
None
表示模型的输出将是最后一个卷积层的4D张量输出。
avg
意味着将对最后一个卷积层的输出应用全局平均池,因此模型的输出将是一个2D张量
max
表示将应用全局最大池。
cardinality:基数,变换集合的大小
classes:分类图像的可选类数,只有在include_top
为真值且没有指定weights
参数时才指定
这一段就是在确认权重的方式,要么是None-随机初始化参数;或者从预训练CIFAR-10的路径迁移学习里面的权重。
if weights not in {'cifar10', None}:
raise ValueError('The `weights` argument should be either '
'`None` (random initialization) or `cifar10` '
'(pre-training on CIFAR-10).')
如果权重取的cifar10则include_top必须=true且claasses=10
if weights == 'cifar10' and include_top and classes != 10:
raise ValueError('If using `weights` as CIFAR 10 with `include_top`'
' as true, `classes` should be 10')
这个点不太明白。。。。可能跟Resnext网络结构有一定关系
if type(depth) == int:
if (depth - 2) % 9 != 0:
raise ValueError('Depth of the network must be such that (depth - 2)'
'should be divisible by 9.')
相当于前面几个if都是确定网络的输入/结构/定义有没有错误的,一个预检查之类的东东
确保正确的输入形状
# Determine proper input shape
input_shape = _obtain_input_shape(input_shape,
default_size=32,
min_size=8,
data_format=K.image_data_format(),
require_flatten=include_top)
这一段代码就是确认输入的形式为shape或者keras所认定的形式
if input_tensor is None:
img_input = Input(shape=input_shape)
else:
if not K.is_keras_tensor(input_tensor):
img_input = Input(tensor=input_tensor, shape=input_shape)
else:
img_input = input_tensor
x = __create_res_next(classes, img_input, include_top, depth, cardinality, width,
weight_decay, pooling)
# Ensure that the model takes into account
# any potential predecessors of `input_tensor`.
if input_tensor is not None:
inputs = get_source_inputs(input_tensor)#
else:
inputs = img_input
# Create model.
model = Model(inputs, x, name='resnext')
get_source_inputs返回计算张量所需的输入张量的列表。输出总是一个张量列表(可能有一个元素)。
def get_source_inputs(tensor, layer=None, node_index=None):
Returns the list of input tensors necessary to compute tensor.
Output will always be a list of tensors (potentially with 1 element).
Arguments
tensor: The tensor to start from.
layer: Origin layer of the tensor. Will be determined via tensor._keras_history if not provided.
node_index: Origin node index of the tensor.
Returns List of input tensors.
model = Model(inputs, x, name='resnext')
模型建立完成
代码里不清楚的点,单拎出来看看
K.image_data_format() == ‘channels_first’
keras自带的下载工具get_file
CIFAR-10
convert_all_kernels_in_model:将模型中全部卷积核在theano和tensorflow中切换
下面这个版本的keras笔记真的好全,大家可以参考一下
keras笔记
下面就是下载权重(这是在weights=cifar10的时候需要用到的,感觉这一段应该放在前面的),因为定义的K.image_data_format() == 'channels_first’所以用theano是能使性能更好,如果使用tensorflow可能性能不是最佳的,程序会有一个警告,但也会运行。
if weights == 'cifar10':
if (depth == 29) and (cardinality == 8) and (width == 64):
# Default parameters match. Weights for this model exist:
if K.image_data_format() == 'channels_first':
if include_top:
weights_path = get_file('resnext_cifar_10_8_64_th_dim_ordering_th_kernels.h5',
CIFAR_TH_WEIGHTS_PATH,
cache_subdir='models')
else:
weights_path = get_file('resnext_cifar_10_8_64_th_dim_ordering_th_kernels_no_top.h5',
CIFAR_TH_WEIGHTS_PATH_NO_TOP,
cache_subdir='models')
model.load_weights(weights_path)
if K.backend() == 'tensorflow':
warnings.warn('You are using the TensorFlow backend, yet you '
'are using the Theano '
'image dimension ordering convention '
'(`image_dim_ordering="th"`). '
'For best performance, set '
'`image_dim_ordering="tf"` in '
'your Keras config '
'at ~/.keras/keras.json.')
convert_all_kernels_in_model(model)
else:
if include_top:
weights_path = get_file('resnext_cifar_10_8_64_tf_dim_ordering_tf_kernels.h5',
CIFAR_TF_WEIGHTS_PATH,
cache_subdir='models')
else:
weights_path = get_file('resnext_cifar_10_8_64_tf_dim_ordering_tf_kernels_no_top.h5',
CIFAR_TF_WEIGHTS_PATH_NO_TOP,
cache_subdir='models')
model.load_weights(weights_path)
if K.backend() == 'theano':
convert_all_kernels_in_model(model)
return model
def ResNextImageNet(input_shape=None, depth=[3, 4, 6, 3], cardinality=32, width=4, weight_decay=5e-4,
include_top=True, weights=None, input_tensor=None,
pooling=None, classes=1000):
参数详解
None
(随机初始化)或 imagenet
(训练 ImageNet)layers.Input()
的输出),用于作为模型的图像输入。include_top
为False
时才会指定(否则输入形状必须是(224,224,3)
(带有tf
维度排序)或(3,224,224)
(带有th
维度排序)。它应该恰好有3个输入通道,宽度和高度应该不小于8。如。(200,200,3)
是一个有效值。include_top
为False
时,用于特征提取的可选池模式。None
表示模型的输出将是最后一个卷积层的4D张量输出。max
表示将应用全局最大池。avg
意味着将对最后一个卷积层的输出应用全局平均pooling,因此模型的输出将是一个2D张量。include_top
为True且没有指定weights
参数时才指定。这一段代码就和cifar10的一模一样,作用也是一样的。
if weights not in {'imagenet', None}:# # 检查weight与分类设置是否正确
raise ValueError('The `weights` argument should be either '
'`None` (random initialization) or `imagenet` '
'(pre-training on ImageNet).')
if weights == 'imagenet' and include_top and classes != 1000:
raise ValueError('If using `weights` as imagenet with `include_top`'
' as true, `classes` should be 1000')#这应该是因为imagenet数据集的规定--它就是有1000个类别啊
if type(depth) == int and (depth - 2) % 9 != 0:
raise ValueError('Depth of the network must be such that (depth - 2)'
'should be divisible by 9.')
# Determine proper input shape
input_shape = _obtain_input_shape(input_shape,
default_size=224,
min_size=112,
data_format=K.image_data_format(),
require_flatten=include_top)
这就是说如果input_tensor =None
则使用shape将图片的宽、高、通道数读入。然后再用input()
转换为keras的格式;
如果是tensor的数据格式,需要两步走:
if input_tensor is None:
img_input = Input(shape=input_shape)#shape()函数返回图片的高,宽以及通道数 # 这里的Input是keras的格式,可以用于转换
else:#是tensor的数据格式
if not K.is_keras_tensor(input_tensor):#判断是否是keras指定的数据类型
img_input = Input(tensor=input_tensor, shape=input_shape)#不是则转换
else:
img_input = input_tensor#是keras指定的数据类型就不变
x = __create_res_next_imagenet(classes, img_input, include_top, depth, cardinality, width,
weight_decay, pooling)
if input_tensor is not None:
inputs = get_source_inputs(input_tensor)
else:
inputs = img_input
# Create model.
model = Model(inputs, x, name='resnext')
上面的if代码是判断输入的格式是不是keras的若现在还是使用tensor的形式可能使整个网络的性能不是最优,所以这些代码就是格式转换,将所有的格式转化为与keras所认定的数据格式.
这部分和cifar的一样
# load weights
if weights == 'imagenet':
if (depth == [3, 4, 6, 3]) and (cardinality == 32) and (width == 4):
# Default parameters match. Weights for this model exist:
if K.image_data_format() == 'channels_first':
if include_top:
weights_path = get_file('resnext_imagenet_32_4_th_dim_ordering_th_kernels.h5',
IMAGENET_TH_WEIGHTS_PATH,
cache_subdir='models')
else:
weights_path = get_file('resnext_imagenet_32_4_th_dim_ordering_th_kernels_no_top.h5',
IMAGENET_TH_WEIGHTS_PATH_NO_TOP,
cache_subdir='models')
model.load_weights(weights_path)
if K.backend() == 'tensorflow':
warnings.warn('You are using the TensorFlow backend, yet you '
'are using the Theano '
'image dimension ordering convention '
'(`image_dim_ordering="th"`). '
'For best performance, set '
'`image_dim_ordering="tf"` in '
'your Keras config '
'at ~/.keras/keras.json.')
convert_all_kernels_in_model(model)
else:
if include_top:
weights_path = get_file('resnext_imagenet_32_4_tf_dim_ordering_tf_kernels.h5',
IMAGENET_TF_WEIGHTS_PATH,
cache_subdir='models')
else:
weights_path = get_file('resnext_imagenet_32_4_tf_dim_ordering_tf_kernels_no_top.h5',
IMAGENET_TF_WEIGHTS_PATH_NO_TOP,
cache_subdir='models')
model.load_weights(weights_path)
if K.backend() == 'theano':
convert_all_kernels_in_model(model)
return model
def __initial_conv_block(input, weight_decay=5e-4):
''' Adds an initial convolution block, with batch normalization and relu activation
Args:
input: input tensor
weight_decay: weight decay factor
Returns: a keras tensor
'''
# 就是判断是不是channel_first,如果是则channel_axis = 1,否之=-1(就重最后一个元素为channel的轴,不就是channel_last)
channel_axis = 1 if K.image_data_format() == 'channels_first' else -1
x = Conv2D(64, (3, 3), padding='same', use_bias=False, kernel_initializer='he_normal',
kernel_regularizer=l2(weight_decay))(input)#64是filters:卷积核的数目(即输出的维度)(3,3)卷积核的宽度和长度
x = BatchNormalization(axis=channel_axis)(x)
x = Activation('relu')(x)
return x
参数详解
same
,则说明输入图片大小和输出图片大小是一致的,如果是valid
则图片经过滤波器后可能会变小更多的参数可以戳下方
Keras中几个重要函数用法
def __initial_conv_block_imagenet(input, weight_decay=5e-4):
''' Adds an initial conv block, with batch norm and relu for the inception resnext
Args:
input: input tensor
weight_decay: weight decay factor
Returns: a keras tensor
'''
channel_axis = 1 if K.image_data_format() == 'channels_first' else -1
x = Conv2D(64, (7, 7), padding='same', use_bias=False, kernel_initializer='he_normal',
kernel_regularizer=l2(weight_decay), strides=(2, 2))(input)
x = BatchNormalization(axis=channel_axis)(x)
x = Activation('relu')(x)
# pool_size整数或长为2的整数tuple,代表在两个方向(竖直,水平)上的下采样因子,
# 如取(2,2)将使图片在两个维度上均变为原长的一半。为整数意为各个维度值相同且为该数字。
x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)#(3,3)pool_size
return x
grouped convolution
def __grouped_convolution_block(input, grouped_channels, cardinality, strides, weight_decay=5e-4):
''' Adds a grouped convolution block. It is an equivalent block from the paper
Args:
input: input tensor
grouped_channels: grouped number of filters
cardinality: cardinality factor describing the number of groups
strides: performs strided convolution for downscaling if > 1
weight_decay: weight decay term
Returns: a keras tensor
'''
init = input
channel_axis = 1 if K.image_data_format() == 'channels_first' else -1
group_list = []
if cardinality == 1:
# with cardinality 1, it is a standard convolution
#由于基数为1,这是一个标准的卷积
x = Conv2D(grouped_channels, (3, 3), padding='same', use_bias=False, strides=(strides, strides),
kernel_initializer='he_normal', kernel_regularizer=l2(weight_decay))(init)
x = BatchNormalization(axis=channel_axis)(x)
x = Activation('relu')(x)
return x
for c in range(cardinality):
x = Lambda(lambda z: z[:, :, :, c * grouped_channels:(c + 1) * grouped_channels]
if K.image_data_format() == 'channels_last' else
lambda z: z[:, c * grouped_channels:(c + 1) * grouped_channels, :, :])(input)#判断分组位置应该在哪儿
x = Conv2D(grouped_channels, (3, 3), padding='same', use_bias=False, strides=(strides, strides),
kernel_initializer='he_normal', kernel_regularizer=l2(weight_decay))(x)
group_list.append(x)#分组训练然后加在一起
group_merge = concatenate(group_list, axis=channel_axis)#数据合并按axis合并
x = BatchNormalization(axis=channel_axis)(group_merge)#看下面的链接
x = Activation('relu')(x)
return x
参数详解
a if condition else b
判断条件大于0,选择a,反之,选择b。
函数后有两个括号(双括号)
BottleneckBlock的相关计算
def __bottleneck_block(input, filters=64, cardinality=8, strides=1, weight_decay=5e-4):
''' Adds a bottleneck
blockbottleneck实现的功能就是对通道数进行压缩,再放大
Args:
input: input tensor
filters: number of output filters
cardinality: cardinality factor described number of
grouped convolutions
strides: performs strided convolution for downsampling if > 1
weight_decay: weight decay factor
Returns: a keras tensor
'''
init = input
grouped_channels = int(filters / cardinality)
channel_axis = 1 if K.image_data_format() == 'channels_first' else -1
# Check if input number of filters is same as 16 * k, else create convolution2d for this input
#检查滤波器的输入数量是否与16 * k相同,否则为这个输入创建卷积2d
#在二值化网络中,channel的数量肯定是受滤波器大小限制的,
#总共就2的k次方中组合,k是滤波器大小
if K.image_data_format() == 'channels_first':
if init._keras_shape[1] != 2 * filters:
init = Conv2D(filters * 2, (1, 1), padding='same', strides=(strides, strides),
use_bias=False, kernel_initializer='he_normal', kernel_regularizer=l2(weight_decay))(init)
init = BatchNormalization(axis=channel_axis)(init)
else:
if init._keras_shape[-1] != 2 * filters:
init = Conv2D(filters * 2, (1, 1), padding='same', strides=(strides, strides),
use_bias=False, kernel_initializer='he_normal', kernel_regularizer=l2(weight_decay))(init)
init = BatchNormalization(axis=channel_axis)(init)
x = Conv2D(filters, (1, 1), padding='same', use_bias=False,
kernel_initializer='he_normal', kernel_regularizer=l2(weight_decay))(input)
x = BatchNormalization(axis=channel_axis)(x)
x = Activation('relu')(x)
x = __grouped_convolution_block(x, grouped_channels, cardinality, strides, weight_decay)
x = Conv2D(filters * 2, (1, 1), padding='same', use_bias=False, kernel_initializer='he_normal',
kernel_regularizer=l2(weight_decay))(x)
x = BatchNormalization(axis=channel_axis)(x)
x = add([init, x])
x = Activation('relu')(x)
return x
先bootleneckBlock 然后池化再全连接
def __create_res_next(nb_classes, img_input, include_top, depth=29, cardinality=8, width=4,
weight_decay=5e-4, pooling=None):
''' Creates a ResNeXt model with specified parameters
Args:
nb_classes: Number of output classes
img_input: Input tensor or layer
include_top: Flag to include the last dense layer
depth: Depth of the network. Can be an positive integer or a list
Compute N = (n - 2) / 9.
For a depth of 56, n = 56, N = (56 - 2) / 9 = 6
For a depth of 101, n = 101, N = (101 - 2) / 9 = 11
cardinality: the size of the set of transformations.
Increasing cardinality improves classification accuracy,
width: Width of the network.
weight_decay: weight_decay (l2 norm)
pooling: Optional pooling mode for feature extraction
when `include_top` is `False`.
- `None` means that the output of the model will be
the 4D tensor output of the
last convolutional layer.
- `avg` means that global average pooling
will be applied to the output of the
last convolutional layer, and thus
the output of the model will be a 2D tensor.
- `max` means that global max pooling will
be applied.
Returns: a Keras Model
'''
if type(depth) is list or type(depth) is tuple:
# If a list is provided, defer to user how many blocks are present
#如果提供了一个列表,请根据用户提供了多少块
N = list(depth)#转化为一个列表
else:#depth是一个整数
# Otherwise, default to 3 blocks each of default number of group convolution blocks
#否则,默认为3块默认的组卷积块数
N = [(depth - 2) // 9 for _ in range(3)]#转换为列表
filters = cardinality * width#滤波器的计算式子
filters_list = []
for i in range(len(N)):
filters_list.append(filters)#将滤波器转为一个list
filters *= 2 # double the size of the filters
x = __initial_conv_block(img_input, weight_decay)
# block 1 (no pooling)
for i in range(N[0]):#i从0开始到N[0]
x = __bottleneck_block(x, filters_list[0], cardinality, strides=1, weight_decay=weight_decay)
N = N[1:] # remove the first block from block definition list列表中第一个元素被删除即N[0]
filters_list = filters_list[1:] # remove the first filter from the filter list
# block 2 to N
for block_idx, n_i in enumerate(N):#enumerate在字典上是枚举、列举的意思
for i in range(n_i):
if i == 0:
x = __bottleneck_block(x, filters_list[block_idx], cardinality, strides=2,
weight_decay=weight_decay)
else:
x = __bottleneck_block(x, filters_list[block_idx], cardinality, strides=1,
weight_decay=weight_decay)
if include_top:
x = GlobalAveragePooling2D()(x)#池化
x = Dense(nb_classes, use_bias=False, kernel_regularizer=l2(weight_decay),
kernel_initializer='he_normal', activation='softmax')(x)#全连接
else:#最后不全连接层,池化
if pooling == 'avg':
x = GlobalAveragePooling2D()(x)
elif pooling == 'max':
x = GlobalMaxPooling2D()(x)
return x
参数详解
Model: "resnext"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_1 (InputLayer) (None, 32, 32, 3) 0
__________________________________________________________________________________________________
conv2d_1 (Conv2D) (None, 32, 32, 64) 1728 input_1[0][0]
__________________________________________________________________________________________________
batch_normalization_1 (BatchNor (None, 32, 32, 64) 256 conv2d_1[0][0]
__________________________________________________________________________________________________
activation_1 (Activation) (None, 32, 32, 64) 0 batch_normalization_1[0][0]
__________________________________________________________________________________________________
conv2d_3 (Conv2D) (None, 32, 32, 512) 32768 activation_1[0][0]
__________________________________________________________________________________________________
batch_normalization_3 (BatchNor (None, 32, 32, 512) 2048 conv2d_3[0][0]
__________________________________________________________________________________________________
activation_2 (Activation) (None, 32, 32, 512) 0 batch_normalization_3[0][0]
__________________________________________________________________________________________________
lambda_1 (Lambda) (None, 32, 32, 64) 0 activation_2[0][0]
__________________________________________________________________________________________________
lambda_2 (Lambda) (None, 32, 32, 64) 0 activation_2[0][0]
__________________________________________________________________________________________________
lambda_3 (Lambda) (None, 32, 32, 64) 0 activation_2[0][0]
__________________________________________________________________________________________________
lambda_4 (Lambda) (None, 32, 32, 64) 0 activation_2[0][0]
__________________________________________________________________________________________________
lambda_5 (Lambda) (None, 32, 32, 64) 0 activation_2[0][0]
__________________________________________________________________________________________________
lambda_6 (Lambda) (None, 32, 32, 64) 0 activation_2[0][0]
__________________________________________________________________________________________________
lambda_7 (Lambda) (None, 32, 32, 64) 0 activation_2[0][0]
__________________________________________________________________________________________________
lambda_8 (Lambda) (None, 32, 32, 64) 0 activation_2[0][0]
__________________________________________________________________________________________________
conv2d_4 (Conv2D) (None, 32, 32, 64) 36864 lambda_1[0][0]
__________________________________________________________________________________________________
conv2d_5 (Conv2D) (None, 32, 32, 64) 36864 lambda_2[0][0]
__________________________________________________________________________________________________
conv2d_6 (Conv2D) (None, 32, 32, 64) 36864 lambda_3[0][0]
__________________________________________________________________________________________________
conv2d_7 (Conv2D) (None, 32, 32, 64) 36864 lambda_4[0][0]
__________________________________________________________________________________________________
conv2d_8 (Conv2D) (None, 32, 32, 64) 36864 lambda_5[0][0]
__________________________________________________________________________________________________
conv2d_9 (Conv2D) (None, 32, 32, 64) 36864 lambda_6[0][0]
__________________________________________________________________________________________________
conv2d_10 (Conv2D) (None, 32, 32, 64) 36864 lambda_7[0][0]
__________________________________________________________________________________________________
conv2d_11 (Conv2D) (None, 32, 32, 64) 36864 lambda_8[0][0]
__________________________________________________________________________________________________
concatenate_1 (Concatenate) (None, 32, 32, 512) 0 conv2d_4[0][0]
conv2d_5[0][0]
conv2d_6[0][0]
conv2d_7[0][0]
conv2d_8[0][0]
conv2d_9[0][0]
conv2d_10[0][0]
conv2d_11[0][0]
__________________________________________________________________________________________________
batch_normalization_4 (BatchNor (None, 32, 32, 512) 2048 concatenate_1[0][0]
__________________________________________________________________________________________________
activation_3 (Activation) (None, 32, 32, 512) 0 batch_normalization_4[0][0]
__________________________________________________________________________________________________
conv2d_2 (Conv2D) (None, 32, 32, 1024) 65536 activation_1[0][0]
__________________________________________________________________________________________________
conv2d_12 (Conv2D) (None, 32, 32, 1024) 524288 activation_3[0][0]
__________________________________________________________________________________________________
batch_normalization_2 (BatchNor (None, 32, 32, 1024) 4096 conv2d_2[0][0]
__________________________________________________________________________________________________
batch_normalization_5 (BatchNor (None, 32, 32, 1024) 4096 conv2d_12[0][0]
__________________________________________________________________________________________________
add_1 (Add) (None, 32, 32, 1024) 0 batch_normalization_2[0][0]
batch_normalization_5[0][0]
__________________________________________________________________________________________________
activation_4 (Activation) (None, 32, 32, 1024) 0 add_1[0][0]
__________________________________________________________________________________________________
conv2d_13 (Conv2D) (None, 32, 32, 512) 524288 activation_4[0][0]
__________________________________________________________________________________________________
batch_normalization_6 (BatchNor (None, 32, 32, 512) 2048 conv2d_13[0][0]
__________________________________________________________________________________________________
activation_5 (Activation) (None, 32, 32, 512) 0 batch_normalization_6[0][0]
__________________________________________________________________________________________________
lambda_9 (Lambda) (None, 32, 32, 64) 0 activation_5[0][0]
__________________________________________________________________________________________________
lambda_10 (Lambda) (None, 32, 32, 64) 0 activation_5[0][0]
__________________________________________________________________________________________________
lambda_11 (Lambda) (None, 32, 32, 64) 0 activation_5[0][0]
__________________________________________________________________________________________________
lambda_12 (Lambda) (None, 32, 32, 64) 0 activation_5[0][0]
__________________________________________________________________________________________________
lambda_13 (Lambda) (None, 32, 32, 64) 0 activation_5[0][0]
__________________________________________________________________________________________________
lambda_14 (Lambda) (None, 32, 32, 64) 0 activation_5[0][0]
__________________________________________________________________________________________________
lambda_15 (Lambda) (None, 32, 32, 64) 0 activation_5[0][0]
__________________________________________________________________________________________________
lambda_16 (Lambda) (None, 32, 32, 64) 0 activation_5[0][0]
__________________________________________________________________________________________________
conv2d_14 (Conv2D) (None, 32, 32, 64) 36864 lambda_9[0][0]
__________________________________________________________________________________________________
conv2d_15 (Conv2D) (None, 32, 32, 64) 36864 lambda_10[0][0]
__________________________________________________________________________________________________
conv2d_16 (Conv2D) (None, 32, 32, 64) 36864 lambda_11[0][0]
__________________________________________________________________________________________________
conv2d_17 (Conv2D) (None, 32, 32, 64) 36864 lambda_12[0][0]
__________________________________________________________________________________________________
conv2d_18 (Conv2D) (None, 32, 32, 64) 36864 lambda_13[0][0]
__________________________________________________________________________________________________
conv2d_19 (Conv2D) (None, 32, 32, 64) 36864 lambda_14[0][0]
__________________________________________________________________________________________________
conv2d_20 (Conv2D) (None, 32, 32, 64) 36864 lambda_15[0][0]
__________________________________________________________________________________________________
conv2d_21 (Conv2D) (None, 32, 32, 64) 36864 lambda_16[0][0]
__________________________________________________________________________________________________
concatenate_2 (Concatenate) (None, 32, 32, 512) 0 conv2d_14[0][0]
conv2d_15[0][0]
conv2d_16[0][0]
conv2d_17[0][0]
conv2d_18[0][0]
conv2d_19[0][0]
conv2d_20[0][0]
conv2d_21[0][0]
__________________________________________________________________________________________________
batch_normalization_7 (BatchNor (None, 32, 32, 512) 2048 concatenate_2[0][0]
__________________________________________________________________________________________________
activation_6 (Activation) (None, 32, 32, 512) 0 batch_normalization_7[0][0]
__________________________________________________________________________________________________
conv2d_22 (Conv2D) (None, 32, 32, 1024) 524288 activation_6[0][0]
__________________________________________________________________________________________________
batch_normalization_8 (BatchNor (None, 32, 32, 1024) 4096 conv2d_22[0][0]
__________________________________________________________________________________________________
add_2 (Add) (None, 32, 32, 1024) 0 activation_4[0][0]
batch_normalization_8[0][0]
__________________________________________________________________________________________________
activation_7 (Activation) (None, 32, 32, 1024) 0 add_2[0][0]
__________________________________________________________________________________________________
conv2d_23 (Conv2D) (None, 32, 32, 512) 524288 activation_7[0][0]
__________________________________________________________________________________________________
batch_normalization_9 (BatchNor (None, 32, 32, 512) 2048 conv2d_23[0][0]
__________________________________________________________________________________________________
activation_8 (Activation) (None, 32, 32, 512) 0 batch_normalization_9[0][0]
__________________________________________________________________________________________________
lambda_17 (Lambda) (None, 32, 32, 64) 0 activation_8[0][0]
__________________________________________________________________________________________________
lambda_18 (Lambda) (None, 32, 32, 64) 0 activation_8[0][0]
__________________________________________________________________________________________________
lambda_19 (Lambda) (None, 32, 32, 64) 0 activation_8[0][0]
__________________________________________________________________________________________________
lambda_20 (Lambda) (None, 32, 32, 64) 0 activation_8[0][0]
__________________________________________________________________________________________________
lambda_21 (Lambda) (None, 32, 32, 64) 0 activation_8[0][0]
__________________________________________________________________________________________________
lambda_22 (Lambda) (None, 32, 32, 64) 0 activation_8[0][0]
__________________________________________________________________________________________________
lambda_23 (Lambda) (None, 32, 32, 64) 0 activation_8[0][0]
__________________________________________________________________________________________________
lambda_24 (Lambda) (None, 32, 32, 64) 0 activation_8[0][0]
__________________________________________________________________________________________________
conv2d_24 (Conv2D) (None, 32, 32, 64) 36864 lambda_17[0][0]
__________________________________________________________________________________________________
conv2d_25 (Conv2D) (None, 32, 32, 64) 36864 lambda_18[0][0]
__________________________________________________________________________________________________
conv2d_26 (Conv2D) (None, 32, 32, 64) 36864 lambda_19[0][0]
__________________________________________________________________________________________________
conv2d_27 (Conv2D) (None, 32, 32, 64) 36864 lambda_20[0][0]
__________________________________________________________________________________________________
conv2d_28 (Conv2D) (None, 32, 32, 64) 36864 lambda_21[0][0]
__________________________________________________________________________________________________
conv2d_29 (Conv2D) (None, 32, 32, 64) 36864 lambda_22[0][0]
__________________________________________________________________________________________________
conv2d_30 (Conv2D) (None, 32, 32, 64) 36864 lambda_23[0][0]
__________________________________________________________________________________________________
conv2d_31 (Conv2D) (None, 32, 32, 64) 36864 lambda_24[0][0]
__________________________________________________________________________________________________
concatenate_3 (Concatenate) (None, 32, 32, 512) 0 conv2d_24[0][0]
conv2d_25[0][0]
conv2d_26[0][0]
conv2d_27[0][0]
conv2d_28[0][0]
conv2d_29[0][0]
conv2d_30[0][0]
conv2d_31[0][0]
__________________________________________________________________________________________________
batch_normalization_10 (BatchNo (None, 32, 32, 512) 2048 concatenate_3[0][0]
__________________________________________________________________________________________________
activation_9 (Activation) (None, 32, 32, 512) 0 batch_normalization_10[0][0]
__________________________________________________________________________________________________
conv2d_32 (Conv2D) (None, 32, 32, 1024) 524288 activation_9[0][0]
__________________________________________________________________________________________________
batch_normalization_11 (BatchNo (None, 32, 32, 1024) 4096 conv2d_32[0][0]
__________________________________________________________________________________________________
add_3 (Add) (None, 32, 32, 1024) 0 activation_7[0][0]
batch_normalization_11[0][0]
__________________________________________________________________________________________________
activation_10 (Activation) (None, 32, 32, 1024) 0 add_3[0][0]
__________________________________________________________________________________________________
conv2d_34 (Conv2D) (None, 32, 32, 1024) 1048576 activation_10[0][0]
__________________________________________________________________________________________________
batch_normalization_13 (BatchNo (None, 32, 32, 1024) 4096 conv2d_34[0][0]
__________________________________________________________________________________________________
activation_11 (Activation) (None, 32, 32, 1024) 0 batch_normalization_13[0][0]
__________________________________________________________________________________________________
lambda_25 (Lambda) (None, 32, 32, 128) 0 activation_11[0][0]
__________________________________________________________________________________________________
lambda_26 (Lambda) (None, 32, 32, 128) 0 activation_11[0][0]
__________________________________________________________________________________________________
lambda_27 (Lambda) (None, 32, 32, 128) 0 activation_11[0][0]
__________________________________________________________________________________________________
lambda_28 (Lambda) (None, 32, 32, 128) 0 activation_11[0][0]
__________________________________________________________________________________________________
lambda_29 (Lambda) (None, 32, 32, 128) 0 activation_11[0][0]
__________________________________________________________________________________________________
lambda_30 (Lambda) (None, 32, 32, 128) 0 activation_11[0][0]
__________________________________________________________________________________________________
lambda_31 (Lambda) (None, 32, 32, 128) 0 activation_11[0][0]
__________________________________________________________________________________________________
lambda_32 (Lambda) (None, 32, 32, 128) 0 activation_11[0][0]
__________________________________________________________________________________________________
conv2d_35 (Conv2D) (None, 16, 16, 128) 147456 lambda_25[0][0]
__________________________________________________________________________________________________
conv2d_36 (Conv2D) (None, 16, 16, 128) 147456 lambda_26[0][0]
__________________________________________________________________________________________________
conv2d_37 (Conv2D) (None, 16, 16, 128) 147456 lambda_27[0][0]
__________________________________________________________________________________________________
conv2d_38 (Conv2D) (None, 16, 16, 128) 147456 lambda_28[0][0]
__________________________________________________________________________________________________
conv2d_39 (Conv2D) (None, 16, 16, 128) 147456 lambda_29[0][0]
__________________________________________________________________________________________________
conv2d_40 (Conv2D) (None, 16, 16, 128) 147456 lambda_30[0][0]
__________________________________________________________________________________________________
conv2d_41 (Conv2D) (None, 16, 16, 128) 147456 lambda_31[0][0]
__________________________________________________________________________________________________
conv2d_42 (Conv2D) (None, 16, 16, 128) 147456 lambda_32[0][0]
__________________________________________________________________________________________________
concatenate_4 (Concatenate) (None, 16, 16, 1024) 0 conv2d_35[0][0]
conv2d_36[0][0]
conv2d_37[0][0]
conv2d_38[0][0]
conv2d_39[0][0]
conv2d_40[0][0]
conv2d_41[0][0]
conv2d_42[0][0]
__________________________________________________________________________________________________
batch_normalization_14 (BatchNo (None, 16, 16, 1024) 4096 concatenate_4[0][0]
__________________________________________________________________________________________________
activation_12 (Activation) (None, 16, 16, 1024) 0 batch_normalization_14[0][0]
__________________________________________________________________________________________________
conv2d_33 (Conv2D) (None, 16, 16, 2048) 2097152 activation_10[0][0]
__________________________________________________________________________________________________
conv2d_43 (Conv2D) (None, 16, 16, 2048) 2097152 activation_12[0][0]
__________________________________________________________________________________________________
batch_normalization_12 (BatchNo (None, 16, 16, 2048) 8192 conv2d_33[0][0]
__________________________________________________________________________________________________
batch_normalization_15 (BatchNo (None, 16, 16, 2048) 8192 conv2d_43[0][0]
__________________________________________________________________________________________________
add_4 (Add) (None, 16, 16, 2048) 0 batch_normalization_12[0][0]
batch_normalization_15[0][0]
__________________________________________________________________________________________________
activation_13 (Activation) (None, 16, 16, 2048) 0 add_4[0][0]
__________________________________________________________________________________________________
conv2d_44 (Conv2D) (None, 16, 16, 1024) 2097152 activation_13[0][0]
__________________________________________________________________________________________________
batch_normalization_16 (BatchNo (None, 16, 16, 1024) 4096 conv2d_44[0][0]
__________________________________________________________________________________________________
activation_14 (Activation) (None, 16, 16, 1024) 0 batch_normalization_16[0][0]
__________________________________________________________________________________________________
lambda_33 (Lambda) (None, 16, 16, 128) 0 activation_14[0][0]
__________________________________________________________________________________________________
lambda_34 (Lambda) (None, 16, 16, 128) 0 activation_14[0][0]
__________________________________________________________________________________________________
lambda_35 (Lambda) (None, 16, 16, 128) 0 activation_14[0][0]
__________________________________________________________________________________________________
lambda_36 (Lambda) (None, 16, 16, 128) 0 activation_14[0][0]
__________________________________________________________________________________________________
lambda_37 (Lambda) (None, 16, 16, 128) 0 activation_14[0][0]
__________________________________________________________________________________________________
lambda_38 (Lambda) (None, 16, 16, 128) 0 activation_14[0][0]
__________________________________________________________________________________________________
lambda_39 (Lambda) (None, 16, 16, 128) 0 activation_14[0][0]
__________________________________________________________________________________________________
lambda_40 (Lambda) (None, 16, 16, 128) 0 activation_14[0][0]
__________________________________________________________________________________________________
conv2d_45 (Conv2D) (None, 16, 16, 128) 147456 lambda_33[0][0]
__________________________________________________________________________________________________
conv2d_46 (Conv2D) (None, 16, 16, 128) 147456 lambda_34[0][0]
__________________________________________________________________________________________________
conv2d_47 (Conv2D) (None, 16, 16, 128) 147456 lambda_35[0][0]
__________________________________________________________________________________________________
conv2d_48 (Conv2D) (None, 16, 16, 128) 147456 lambda_36[0][0]
__________________________________________________________________________________________________
conv2d_49 (Conv2D) (None, 16, 16, 128) 147456 lambda_37[0][0]
__________________________________________________________________________________________________
conv2d_50 (Conv2D) (None, 16, 16, 128) 147456 lambda_38[0][0]
__________________________________________________________________________________________________
conv2d_51 (Conv2D) (None, 16, 16, 128) 147456 lambda_39[0][0]
__________________________________________________________________________________________________
conv2d_52 (Conv2D) (None, 16, 16, 128) 147456 lambda_40[0][0]
__________________________________________________________________________________________________
concatenate_5 (Concatenate) (None, 16, 16, 1024) 0 conv2d_45[0][0]
conv2d_46[0][0]
conv2d_47[0][0]
conv2d_48[0][0]
conv2d_49[0][0]
conv2d_50[0][0]
conv2d_51[0][0]
conv2d_52[0][0]
__________________________________________________________________________________________________
batch_normalization_17 (BatchNo (None, 16, 16, 1024) 4096 concatenate_5[0][0]
__________________________________________________________________________________________________
activation_15 (Activation) (None, 16, 16, 1024) 0 batch_normalization_17[0][0]
__________________________________________________________________________________________________
conv2d_53 (Conv2D) (None, 16, 16, 2048) 2097152 activation_15[0][0]
__________________________________________________________________________________________________
batch_normalization_18 (BatchNo (None, 16, 16, 2048) 8192 conv2d_53[0][0]
__________________________________________________________________________________________________
add_5 (Add) (None, 16, 16, 2048) 0 activation_13[0][0]
batch_normalization_18[0][0]
__________________________________________________________________________________________________
activation_16 (Activation) (None, 16, 16, 2048) 0 add_5[0][0]
__________________________________________________________________________________________________
conv2d_54 (Conv2D) (None, 16, 16, 1024) 2097152 activation_16[0][0]
__________________________________________________________________________________________________
batch_normalization_19 (BatchNo (None, 16, 16, 1024) 4096 conv2d_54[0][0]
__________________________________________________________________________________________________
activation_17 (Activation) (None, 16, 16, 1024) 0 batch_normalization_19[0][0]
__________________________________________________________________________________________________
lambda_41 (Lambda) (None, 16, 16, 128) 0 activation_17[0][0]
__________________________________________________________________________________________________
lambda_42 (Lambda) (None, 16, 16, 128) 0 activation_17[0][0]
__________________________________________________________________________________________________
lambda_43 (Lambda) (None, 16, 16, 128) 0 activation_17[0][0]
__________________________________________________________________________________________________
lambda_44 (Lambda) (None, 16, 16, 128) 0 activation_17[0][0]
__________________________________________________________________________________________________
lambda_45 (Lambda) (None, 16, 16, 128) 0 activation_17[0][0]
__________________________________________________________________________________________________
lambda_46 (Lambda) (None, 16, 16, 128) 0 activation_17[0][0]
__________________________________________________________________________________________________
lambda_47 (Lambda) (None, 16, 16, 128) 0 activation_17[0][0]
__________________________________________________________________________________________________
lambda_48 (Lambda) (None, 16, 16, 128) 0 activation_17[0][0]
__________________________________________________________________________________________________
conv2d_55 (Conv2D) (None, 16, 16, 128) 147456 lambda_41[0][0]
__________________________________________________________________________________________________
conv2d_56 (Conv2D) (None, 16, 16, 128) 147456 lambda_42[0][0]
__________________________________________________________________________________________________
conv2d_57 (Conv2D) (None, 16, 16, 128) 147456 lambda_43[0][0]
__________________________________________________________________________________________________
conv2d_58 (Conv2D) (None, 16, 16, 128) 147456 lambda_44[0][0]
__________________________________________________________________________________________________
conv2d_59 (Conv2D) (None, 16, 16, 128) 147456 lambda_45[0][0]
__________________________________________________________________________________________________
conv2d_60 (Conv2D) (None, 16, 16, 128) 147456 lambda_46[0][0]
__________________________________________________________________________________________________
conv2d_61 (Conv2D) (None, 16, 16, 128) 147456 lambda_47[0][0]
__________________________________________________________________________________________________
conv2d_62 (Conv2D) (None, 16, 16, 128) 147456 lambda_48[0][0]
__________________________________________________________________________________________________
concatenate_6 (Concatenate) (None, 16, 16, 1024) 0 conv2d_55[0][0]
conv2d_56[0][0]
conv2d_57[0][0]
conv2d_58[0][0]
conv2d_59[0][0]
conv2d_60[0][0]
conv2d_61[0][0]
conv2d_62[0][0]
__________________________________________________________________________________________________
batch_normalization_20 (BatchNo (None, 16, 16, 1024) 4096 concatenate_6[0][0]
__________________________________________________________________________________________________
activation_18 (Activation) (None, 16, 16, 1024) 0 batch_normalization_20[0][0]
__________________________________________________________________________________________________
conv2d_63 (Conv2D) (None, 16, 16, 2048) 2097152 activation_18[0][0]
__________________________________________________________________________________________________
batch_normalization_21 (BatchNo (None, 16, 16, 2048) 8192 conv2d_63[0][0]
__________________________________________________________________________________________________
add_6 (Add) (None, 16, 16, 2048) 0 activation_16[0][0]
batch_normalization_21[0][0]
__________________________________________________________________________________________________
activation_19 (Activation) (None, 16, 16, 2048) 0 add_6[0][0]
__________________________________________________________________________________________________
conv2d_65 (Conv2D) (None, 16, 16, 2048) 4194304 activation_19[0][0]
__________________________________________________________________________________________________
batch_normalization_23 (BatchNo (None, 16, 16, 2048) 8192 conv2d_65[0][0]
__________________________________________________________________________________________________
activation_20 (Activation) (None, 16, 16, 2048) 0 batch_normalization_23[0][0]
__________________________________________________________________________________________________
lambda_49 (Lambda) (None, 16, 16, 256) 0 activation_20[0][0]
__________________________________________________________________________________________________
lambda_50 (Lambda) (None, 16, 16, 256) 0 activation_20[0][0]
__________________________________________________________________________________________________
lambda_51 (Lambda) (None, 16, 16, 256) 0 activation_20[0][0]
__________________________________________________________________________________________________
lambda_52 (Lambda) (None, 16, 16, 256) 0 activation_20[0][0]
__________________________________________________________________________________________________
lambda_53 (Lambda) (None, 16, 16, 256) 0 activation_20[0][0]
__________________________________________________________________________________________________
lambda_54 (Lambda) (None, 16, 16, 256) 0 activation_20[0][0]
__________________________________________________________________________________________________
lambda_55 (Lambda) (None, 16, 16, 256) 0 activation_20[0][0]
__________________________________________________________________________________________________
lambda_56 (Lambda) (None, 16, 16, 256) 0 activation_20[0][0]
__________________________________________________________________________________________________
conv2d_66 (Conv2D) (None, 8, 8, 256) 589824 lambda_49[0][0]
__________________________________________________________________________________________________
conv2d_67 (Conv2D) (None, 8, 8, 256) 589824 lambda_50[0][0]
__________________________________________________________________________________________________
conv2d_68 (Conv2D) (None, 8, 8, 256) 589824 lambda_51[0][0]
__________________________________________________________________________________________________
conv2d_69 (Conv2D) (None, 8, 8, 256) 589824 lambda_52[0][0]
__________________________________________________________________________________________________
conv2d_70 (Conv2D) (None, 8, 8, 256) 589824 lambda_53[0][0]
__________________________________________________________________________________________________
conv2d_71 (Conv2D) (None, 8, 8, 256) 589824 lambda_54[0][0]
__________________________________________________________________________________________________
conv2d_72 (Conv2D) (None, 8, 8, 256) 589824 lambda_55[0][0]
__________________________________________________________________________________________________
conv2d_73 (Conv2D) (None, 8, 8, 256) 589824 lambda_56[0][0]
__________________________________________________________________________________________________
concatenate_7 (Concatenate) (None, 8, 8, 2048) 0 conv2d_66[0][0]
conv2d_67[0][0]
conv2d_68[0][0]
conv2d_69[0][0]
conv2d_70[0][0]
conv2d_71[0][0]
conv2d_72[0][0]
conv2d_73[0][0]
__________________________________________________________________________________________________
batch_normalization_24 (BatchNo (None, 8, 8, 2048) 8192 concatenate_7[0][0]
__________________________________________________________________________________________________
activation_21 (Activation) (None, 8, 8, 2048) 0 batch_normalization_24[0][0]
__________________________________________________________________________________________________
conv2d_64 (Conv2D) (None, 8, 8, 4096) 8388608 activation_19[0][0]
__________________________________________________________________________________________________
conv2d_74 (Conv2D) (None, 8, 8, 4096) 8388608 activation_21[0][0]
__________________________________________________________________________________________________
batch_normalization_22 (BatchNo (None, 8, 8, 4096) 16384 conv2d_64[0][0]
__________________________________________________________________________________________________
batch_normalization_25 (BatchNo (None, 8, 8, 4096) 16384 conv2d_74[0][0]
__________________________________________________________________________________________________
add_7 (Add) (None, 8, 8, 4096) 0 batch_normalization_22[0][0]
batch_normalization_25[0][0]
__________________________________________________________________________________________________
activation_22 (Activation) (None, 8, 8, 4096) 0 add_7[0][0]
__________________________________________________________________________________________________
conv2d_75 (Conv2D) (None, 8, 8, 2048) 8388608 activation_22[0][0]
__________________________________________________________________________________________________
batch_normalization_26 (BatchNo (None, 8, 8, 2048) 8192 conv2d_75[0][0]
__________________________________________________________________________________________________
activation_23 (Activation) (None, 8, 8, 2048) 0 batch_normalization_26[0][0]
__________________________________________________________________________________________________
lambda_57 (Lambda) (None, 8, 8, 256) 0 activation_23[0][0]
__________________________________________________________________________________________________
lambda_58 (Lambda) (None, 8, 8, 256) 0 activation_23[0][0]
__________________________________________________________________________________________________
lambda_59 (Lambda) (None, 8, 8, 256) 0 activation_23[0][0]
__________________________________________________________________________________________________
lambda_60 (Lambda) (None, 8, 8, 256) 0 activation_23[0][0]
__________________________________________________________________________________________________
lambda_61 (Lambda) (None, 8, 8, 256) 0 activation_23[0][0]
__________________________________________________________________________________________________
lambda_62 (Lambda) (None, 8, 8, 256) 0 activation_23[0][0]
__________________________________________________________________________________________________
lambda_63 (Lambda) (None, 8, 8, 256) 0 activation_23[0][0]
__________________________________________________________________________________________________
lambda_64 (Lambda) (None, 8, 8, 256) 0 activation_23[0][0]
__________________________________________________________________________________________________
conv2d_76 (Conv2D) (None, 8, 8, 256) 589824 lambda_57[0][0]
__________________________________________________________________________________________________
conv2d_77 (Conv2D) (None, 8, 8, 256) 589824 lambda_58[0][0]
__________________________________________________________________________________________________
conv2d_78 (Conv2D) (None, 8, 8, 256) 589824 lambda_59[0][0]
__________________________________________________________________________________________________
conv2d_79 (Conv2D) (None, 8, 8, 256) 589824 lambda_60[0][0]
__________________________________________________________________________________________________
conv2d_80 (Conv2D) (None, 8, 8, 256) 589824 lambda_61[0][0]
__________________________________________________________________________________________________
conv2d_81 (Conv2D) (None, 8, 8, 256) 589824 lambda_62[0][0]
__________________________________________________________________________________________________
conv2d_82 (Conv2D) (None, 8, 8, 256) 589824 lambda_63[0][0]
__________________________________________________________________________________________________
conv2d_83 (Conv2D) (None, 8, 8, 256) 589824 lambda_64[0][0]
__________________________________________________________________________________________________
concatenate_8 (Concatenate) (None, 8, 8, 2048) 0 conv2d_76[0][0]
conv2d_77[0][0]
conv2d_78[0][0]
conv2d_79[0][0]
conv2d_80[0][0]
conv2d_81[0][0]
conv2d_82[0][0]
conv2d_83[0][0]
__________________________________________________________________________________________________
batch_normalization_27 (BatchNo (None, 8, 8, 2048) 8192 concatenate_8[0][0]
__________________________________________________________________________________________________
activation_24 (Activation) (None, 8, 8, 2048) 0 batch_normalization_27[0][0]
__________________________________________________________________________________________________
conv2d_84 (Conv2D) (None, 8, 8, 4096) 8388608 activation_24[0][0]
__________________________________________________________________________________________________
batch_normalization_28 (BatchNo (None, 8, 8, 4096) 16384 conv2d_84[0][0]
__________________________________________________________________________________________________
add_8 (Add) (None, 8, 8, 4096) 0 activation_22[0][0]
batch_normalization_28[0][0]
__________________________________________________________________________________________________
activation_25 (Activation) (None, 8, 8, 4096) 0 add_8[0][0]
__________________________________________________________________________________________________
conv2d_85 (Conv2D) (None, 8, 8, 2048) 8388608 activation_25[0][0]
__________________________________________________________________________________________________
batch_normalization_29 (BatchNo (None, 8, 8, 2048) 8192 conv2d_85[0][0]
__________________________________________________________________________________________________
activation_26 (Activation) (None, 8, 8, 2048) 0 batch_normalization_29[0][0]
__________________________________________________________________________________________________
lambda_65 (Lambda) (None, 8, 8, 256) 0 activation_26[0][0]
__________________________________________________________________________________________________
lambda_66 (Lambda) (None, 8, 8, 256) 0 activation_26[0][0]
__________________________________________________________________________________________________
lambda_67 (Lambda) (None, 8, 8, 256) 0 activation_26[0][0]
__________________________________________________________________________________________________
lambda_68 (Lambda) (None, 8, 8, 256) 0 activation_26[0][0]
__________________________________________________________________________________________________
lambda_69 (Lambda) (None, 8, 8, 256) 0 activation_26[0][0]
__________________________________________________________________________________________________
lambda_70 (Lambda) (None, 8, 8, 256) 0 activation_26[0][0]
__________________________________________________________________________________________________
lambda_71 (Lambda) (None, 8, 8, 256) 0 activation_26[0][0]
__________________________________________________________________________________________________
lambda_72 (Lambda) (None, 8, 8, 256) 0 activation_26[0][0]
__________________________________________________________________________________________________
conv2d_86 (Conv2D) (None, 8, 8, 256) 589824 lambda_65[0][0]
__________________________________________________________________________________________________
conv2d_87 (Conv2D) (None, 8, 8, 256) 589824 lambda_66[0][0]
__________________________________________________________________________________________________
conv2d_88 (Conv2D) (None, 8, 8, 256) 589824 lambda_67[0][0]
__________________________________________________________________________________________________
conv2d_89 (Conv2D) (None, 8, 8, 256) 589824 lambda_68[0][0]
__________________________________________________________________________________________________
conv2d_90 (Conv2D) (None, 8, 8, 256) 589824 lambda_69[0][0]
__________________________________________________________________________________________________
conv2d_91 (Conv2D) (None, 8, 8, 256) 589824 lambda_70[0][0]
__________________________________________________________________________________________________
conv2d_92 (Conv2D) (None, 8, 8, 256) 589824 lambda_71[0][0]
__________________________________________________________________________________________________
conv2d_93 (Conv2D) (None, 8, 8, 256) 589824 lambda_72[0][0]
__________________________________________________________________________________________________
concatenate_9 (Concatenate) (None, 8, 8, 2048) 0 conv2d_86[0][0]
conv2d_87[0][0]
conv2d_88[0][0]
conv2d_89[0][0]
conv2d_90[0][0]
conv2d_91[0][0]
conv2d_92[0][0]
conv2d_93[0][0]
__________________________________________________________________________________________________
batch_normalization_30 (BatchNo (None, 8, 8, 2048) 8192 concatenate_9[0][0]
__________________________________________________________________________________________________
activation_27 (Activation) (None, 8, 8, 2048) 0 batch_normalization_30[0][0]
__________________________________________________________________________________________________
conv2d_94 (Conv2D) (None, 8, 8, 4096) 8388608 activation_27[0][0]
__________________________________________________________________________________________________
batch_normalization_31 (BatchNo (None, 8, 8, 4096) 16384 conv2d_94[0][0]
__________________________________________________________________________________________________
add_9 (Add) (None, 8, 8, 4096) 0 activation_25[0][0]
batch_normalization_31[0][0]
__________________________________________________________________________________________________
activation_28 (Activation) (None, 8, 8, 4096) 0 add_9[0][0]
__________________________________________________________________________________________________
global_average_pooling2d_1 (Glo (None, 4096) 0 activation_28[0][0]
__________________________________________________________________________________________________
dense_1 (Dense) (None, 10) 40960 global_average_pooling2d_1[0][0]
==================================================================================================
Total params: 89,700,288
Trainable params: 89,599,808
Non-trainable params: 100,480
__________________________________________________________________________________________________