Keras CIFAR-10图像分类 GoogleNet 篇

Keras CIFAR-10图像分类 GoogleNet 篇


除了用pytorch可以进行图像分类之外,我们也可以利用tensorflow来进行图像分类,其中利用tensorflow的后端keras更是尤为简单,接下来我们就利用keras对CIFAR10数据集进行分类。

keras介绍

在这里插入图片描述

keras是python深度学习中常用的一个学习框架,它有着极其强大的功能,基本能用于常用的各个模型。

keras具有的特性

1、相同的代码可以在cpu和gpu上切换;
2、在模型定义上,可以用函数式API,也可以用Sequential类;
3、支持任意网络架构,如多输入多输出;
4、能够使用卷积网络、循环网络及其组合。

keras与后端引擎

Keras 是一个模型级的库,在开发中只用做高层次的操作,不处于张量计算,微积分计算等低级操作。但是keras最终处理数据时数据都是以张量形式呈现,不处理张量操作的keras是如何解决张量运算的呢?

keras依赖于专门处理张量的后端引擎,关于张量运算方面都是通过后端引擎完成的。这也就是为什么下载keras时需要下载TensorFlow 或者Theano的原因。而TensorFlow 、Theano、以及CNTK都属于处理数值张量的后端引擎。
在这里插入图片描述

keras设计原则

  • 用户友好:Keras是为人类而不是天顶星人设计的API。用户的使用体验始终是我们考虑的首要和中心内容。Keras遵循减少认知困难的最佳实践:Keras提供一致而简洁的API, 能够极大减少一般应用下用户的工作量,同时,Keras提供清晰和具有实践意义的bug反馈。
  • 模块性:模型可理解为一个层的序列或数据的运算图,完全可配置的模块可以用最少的代价自由组合在一起。具体而言,网络层、损失函数、优化器、初始化策略、激活函数、正则化方法都是独立的模块,你可以使用它们来构建自己的模型。
  • 易扩展性:添加新模块超级容易,只需要仿照现有的模块编写新的类或函数即可。创建新模块的便利性使得Keras更适合于先进的研究工作。
  • 与Python协作:Keras没有单独的模型配置文件类型(作为对比,caffe有),模型由python代码描述,使其更紧凑和更易debug,并提供了扩展的便利性。

在这里插入图片描述

安装keras

安装也是很简单的,我们直接安装keras即可,如果需要tensorflow,就还需要安装tensorflow

pip install keras

导入库

import keras
from keras.models import Sequential
from keras.datasets import cifar10
from keras.layers import Conv2D, MaxPooling2D, Dropout, Flatten, Dense, Activation
from keras.optimizers import adam_v2
from keras.utils.vis_utils import plot_model
from keras.utils.np_utils import to_categorical
from keras.callbacks import ModelCheckpoint
import matplotlib.pyplot as plt
import numpy as np
import os
import shutil
import matplotlib
matplotlib.style.use('ggplot')
%matplotlib inline
plt.rcParams['figure.figsize'] = (10.0, 8.0) # set default size of plots
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'

控制GPU显存(可选)

这个是tensorflow来控制选择的GPU,因为存在多卡的时候可以指定GPU,其次还可以控制GPU的显存

这段语句就是动态显存,动态分配显存

config.gpu_options.allow_growth = True

这段语句就是说明,我们使用的最大显存不能超过50%

config.gpu_options.per_process_gpu_memory_fraction = 0.5
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 忽略低级别的警告
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
# The GPU id to use, usually either "0" or "1"
os.environ["CUDA_VISIBLE_DEVICES"]="0"
config = tf.compat.v1.ConfigProto()
# config = tf.ConfigProto()
# config.gpu_options.per_process_gpu_memory_fraction = 0.5
config.gpu_options.allow_growth = True
session = tf.compat.v1.Session(config=config)

加载 CIFAR-10 数据集

CIFAR-10 是由 Hinton 的学生 Alex Krizhevsky 和 Ilya Sutskever 整理的一个用于识别普适物体的小型数据集。一共包含 10 个类别的 RGB 彩色图 片:飞机( arplane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车( truck )。图片的尺寸为 32×32 ,数据集中一共有 50000 张训练圄片和 10000 张测试图片。

与 MNIST 数据集中目比, CIFAR-10 具有以下不同点:

  • CIFAR-10 是 3 通道的彩色 RGB 图像,而 MNIST 是灰度图像。
  • CIFAR-10 的图片尺寸为 32×32, 而 MNIST 的图片尺寸为 28×28,比 MNIST 稍大。
  • 相比于手写字符, CIFAR-10 含有的是现实世界中真实的物体,不仅噪声很大,而且物体的比例、 特征都不尽相同,这为识别带来很大困难。

在这里插入图片描述

num_classes = 10  # 有多少个类别
(x_train, y_train), (x_val, y_val) = cifar10.load_data()
print("训练集的维度大小:",x_train.shape)
print("验证集的维度大小:",x_val.shape)
训练集的维度大小: (50000, 32, 32, 3)
验证集的维度大小: (10000, 32, 32, 3)

可视化数据

class_names = ['airplane','automobile','bird','cat','deer',
               'dog','frog','horse','ship','truck']
fig = plt.figure(figsize=(20,5))
for i in range(num_classes):
    ax = fig.add_subplot(2, 5, 1 + i, xticks=[], yticks=[])
    idx = np.where(y_train[:]==i)[0] # 取得类别样本
    features_idx = x_train[idx,::] # 取得图片
    img_num = np.random.randint(features_idx.shape[0]) # 随机挑选图片
    im = features_idx[img_num,::]
    ax.set_title(class_names[i])
    plt.imshow(im)
plt.show()

在这里插入图片描述

数据预处理

x_train = x_train.astype('float32')/255
x_val = x_val.astype('float32')/255
# 将向量转化为二分类矩阵,也就是one-hot编码
y_train = to_categorical(y_train, num_classes)
y_val = to_categorical(y_val, num_classes)
output_dir = './output'  # 输出目录
if os.path.exists(output_dir) is False:
    os.mkdir(output_dir)
#     shutil.rmtree(output_dir)
#     print('%s文件夹已存在,但是没关系,我们删掉了' % output_dir)
#     os.mkdir(output_dir)
    print('%s已创建' % output_dir)
print('%s文件夹已存在' % output_dir)
model_name = 'googleNet'
./output已创建
./output文件夹已存在

GooLeNet网络

GoogLeNet在2014年由Google团队提出(与VGG网络同年,注意GoogLeNet中的L大写是为了致敬LeNet),斩获当年ImageNet竞赛中Classification Task (分类任务) 第一名。原论文名称是《Going deeper with convolutions》,下面是网络结构图。

在这里插入图片描述

说说该网络中的亮点:

(1)引入了Inception结构(融合不同尺度的特征信息)

(2)使用1x1的卷积核进行降维以及映射处理 (虽然VGG网络中也有,但该论文介绍的更详细)

(3)添加两个辅助分类器帮助训练

(4)丢弃全连接层,使用平均池化层(大大减少模型参数,除去两个辅助分类器,网络大小只有vgg的1/20)

接着我们来分析一下Inception结构:

Inception v1网络是一个精心设计的22层卷积网络,并提出了具有良好局部特征结构Inception模块,即对特征并行地执行多个大小不同的卷积运算与池化,最后再拼接到一起。由于1×1、3×3和5×5的卷积运算对应不同的特征图区域,因此这样做的好处是可以得到更好的图像表征信息。为了让四个分支的输出能够在深度方向进行拼接,必须保证四个分支输出的特征矩阵高度和宽度都相同)。

Inception模块如图3.13所示,使用了三个不同大小的卷积核进行卷积运算,同时还有一个最大值池化,然后将这4部分级联起来(通道拼接),送入下一层。

在这里插入图片描述

分支1是卷积核大小为1x1的卷积层,stride=1,

分支2是卷积核大小为3x3的卷积层,stride=1,padding=1(保证输出特征矩阵的高和宽和输入特征矩阵相等),

分支3是卷积核大小为5x5的卷积层,stride=1,padding=2(保证输出特征矩阵的高和宽和输入特征矩阵相等),

分支4是池化核大小为3x3的最大池化下采样,stride=1,padding=1(保证输出特征矩阵的高和宽和输入特征矩阵相等)。

在上述模块的基础上,为进一步降低网络参数量,Inception又增加了多个1×1的卷积模块。如图3.14所示,这种1×1的模块可以先将特征图降维,再送给3×3和5×5大小的卷积核,由于通道数的降低,参数量也有了较大的减少。

Inception v1网络一共有9个上述堆叠的模块,共有22层,在最后的Inception模块处使用了全局平均池化。

在这里插入图片描述

为了避免深层网络训练时带来的梯度消失问题,作者还引入了两个辅助的分类器,在第3个与第6个Inception模块输出后执行Softmax并计算损失,在训练时和最后的损失一并回传。
接着下来在看看辅助分类器结构,网络中的两个辅助分类器结构是一模一样的,如下图所示:

在这里插入图片描述
辅助分类器:

第一层是一个平均池化下采样层,池化核大小为5x5,stride=3

第二层是卷积层,卷积核大小为1x1,stride=1,卷积核个数是128

第三层是全连接层,节点个数是1024

第四层是全连接层,节点个数是1000(对应分类的类别个数)


Inception v1的参数量是AlexNet的1/12,VGGNet的1/3,适合处理大规模数据,尤其是对于计算资源有限的平台。

Inception v2

在Inception v1网络的基础上,随后又出现了多个Inception版本。Inception v2进一步通过卷积分解与正则化实现更高效的计算,增加了BN层,同时利用两个级联的3×3卷积取代Inception v1版本中的5×5卷积,如图3.15所示,这种方式既减少了卷积参数量,也增加了网络的非线性能力。

在这里插入图片描述

此外除了这两个版本,这几年还分别出了Inception v3和Inception v4。

Inception v3在Inception v2的基础上,使用了RMSProp优化器,在辅助的分类器部分增加了7×7的卷积,并且使用了标签平滑技术。

Inception v4则是将Inception的思想与残差网络进行了结合,显著提升了训练速度与模型准确率,这里对于模块细节不再展开讲述。至于残差网络这一里程碑式的结构,正是由下一节的网络ResNet引出的。

这里演示只展示一个Inception v1的网络结构有兴趣的话也可以尝试其他网络结构

from keras.models import Model
from keras.layers import Flatten
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import Conv2D
from keras.layers import MaxPool2D
from keras.layers import BatchNormalization
from keras.layers import Activation
from keras.layers import Input
from keras.layers import AveragePooling2D
from keras import regularizers
from keras.layers import concatenate
input_shape = (32,32,3)

首先可以构建一个conv2d -> bn -> relu的神经网络

def conv2d_bn_relu(x, filters, kernel_size, name, weight_decay=.0, strides=(1, 1), use_bn=True):
    conv_name = name + "-conv"
    x = Conv2D(filters=filters,
               kernel_size=kernel_size,
               strides=strides,
               padding='same',
               use_bias=False,
               kernel_regularizer=regularizers.l2(weight_decay),
               name=conv_name)(x)
    if use_bn:
        bn_name = name + "-bn"
        x = BatchNormalization(scale=False, axis=3, name=bn_name)(x)
    relu_name = name + "-relu"
    x = Activation('relu', name=relu_name)(x)
    return x
def inception_block_v1(x, filters_num_array, name, weight_decay=.0, use_bn=True):
    """
    :param x: model
    :param filters_num_array: filters num is 4 branch format (1x1, (1x1, 3x3), (1x1, 5x5), (pool, 1x1))
    :return: block added model x
    """
    (br0_filters, br1_filters, br2_filters, br3_filters) = filters_num_array
    # br0
    br0 = conv2d_bn_relu(x,
                         filters=br0_filters, kernel_size=(1, 1), weight_decay=weight_decay,
                         name=name + '-br0-1x1', use_bn=use_bn)

    # br1
    br1 = conv2d_bn_relu(x,
                         filters=br1_filters[0], kernel_size=(1, 1), weight_decay=weight_decay,
                         name=name + '-br1-1x1', use_bn=use_bn)
    br1 = conv2d_bn_relu(br1,
                         filters=br1_filters[1], kernel_size=(3, 3), weight_decay=weight_decay,
                         name=name + '-br1-3x3', use_bn=use_bn)

    # br2
    br2 = conv2d_bn_relu(x,
                         filters=br2_filters[0], kernel_size=(1, 1), weight_decay=weight_decay,
                         name=name + '-br2-1x1', use_bn=use_bn)
    br2 = conv2d_bn_relu(br2, filters=br2_filters[1], kernel_size=(5, 5), name=name + '-br2-5x5', use_bn=use_bn)

    # br3
    br3 = MaxPool2D(pool_size=(3, 3), strides=(1, 1), padding='same', name=name + '-br3-pool')(x)
    br3 = conv2d_bn_relu(br3, filters=br3_filters, kernel_size=(1, 1), weight_decay=weight_decay, name=name + '-br3-1x1')

    x = concatenate([br0, br1, br2, br3], axis=3, name=name)
    return x
def aux_classifier_v1(x, num_classes, name):
    aux_classifier = AveragePooling2D(pool_size=(5, 5), strides=(3, 3), name=name + '-averagePool')(x)
    aux_classifier = conv2d_bn_relu(aux_classifier, filters=128, kernel_size=(1, 1), name=name+'-1x1conv')
    aux_classifier = Flatten(name=name + '-flatten')(aux_classifier)
    aux_classifier = Dense(1024)(aux_classifier)
    aux_classifier = Dropout(0.3, name=name + '-dropout')(aux_classifier)
    aux_classifier = Dense(num_classes, activation='softmax', name=name + '-predictions')(aux_classifier)
    return aux_classifier

def InceptionV1(input_shape, classes, weight_decay=.0, use_bn=True):
    input = Input(shape=input_shape)
    x = input
    x = conv2d_bn_relu(x,
                       filters=64, kernel_size=(7, 7), name='1a',
                       weight_decay=weight_decay, strides=(2, 2), use_bn=use_bn)
    x = MaxPool2D(pool_size=(3, 3), strides=(2, 2), padding='same', name='1-pool')(x)
    x = conv2d_bn_relu(x,
                       filters=64, kernel_size=(1, 1), weight_decay=weight_decay,
                       name='2a', use_bn=use_bn)
    x = conv2d_bn_relu(x, filters=192, kernel_size=(3, 3), weight_decay=weight_decay,
                       name='2b', use_bn=use_bn)
    x = MaxPool2D(pool_size=(3, 3), strides=(2, 2), padding='same', name='2-pool')(x)

    # inception3a
    x = inception_block_v1(x, (64, (96, 128), (16, 32), 32),
                           weight_decay=weight_decay,
                           name='inception3a', use_bn=use_bn)
    # inception3b
    x = inception_block_v1(x, (128, (128, 192), (32, 96), 64),
                           weight_decay=weight_decay,
                           name='inception3b', use_bn=use_bn)
    x = MaxPool2D(pool_size=(3, 3), strides=(2, 2), padding='same', name='3pool')(x)

    # inception4a
    x = inception_block_v1(x, (192, (96, 208), (16, 48), 64),
                           weight_decay=weight_decay,
                           name='inception4a', use_bn=use_bn)
    # inception4b
    x = inception_block_v1(x, (160, (112, 224), (24, 64), 64),
                           weight_decay=weight_decay,
                           name='inception4b', use_bn=True)
    # inception4c
    x = inception_block_v1(x, (128, (128, 256), (24, 64), 64),
                           weight_decay=weight_decay,
                           name='inception4c', use_bn=use_bn)
    # inception4d
    x = inception_block_v1(x, (112, (144, 288), (32, 64), 64),
                           weight_decay=weight_decay,
                           name='inception4d', use_bn=use_bn)
    # inception4e
    x = inception_block_v1(x, (256, (160, 320), (32, 128), 128),
                           weight_decay=weight_decay,
                           name='inception4e', use_bn=use_bn)
    x = MaxPool2D(pool_size=(3, 3), strides=(2, 2), padding='same', name='4pool')(x)

    # inception5a
    x = inception_block_v1(x, (256, (160, 320), (32, 128), 128),
                           weight_decay=weight_decay,
                           name='inception5a', use_bn=use_bn)
    # inception5b
    x = inception_block_v1(x, (384, (192, 384), (48, 128), 128),
                           weight_decay=weight_decay,
                           name='inception5b', use_bn=use_bn)
    # average pool
    x = AveragePooling2D(pool_size=(7, 7), strides=(1, 1), padding='valid', name='avg7x7')(x)
    x = Dropout(0.4)(x)
    x = Flatten(name='flatten')(x)
    x = Dense(classes, activation='softmax', name='predictions')(x)
    model = Model(input, x, name='inception_v1')
    return model
def InceptionV1ForCIFAR10(input_shape=(32,32,3), classes=10, weight_decay=.0, use_bn=True):
    input = Input(shape=input_shape)
    x = input
    # x = conv2d_bn_relu(x,
    #                    filters=64, kernel_size=(7, 7), name='1a',
    #                    weight_decay=weight_decay, strides=(2, 2), use_bn=use_bn)
    # x = MaxPool2D(pool_size=(3, 3), strides=(2, 2), padding='same', name='1-pool')(x)
    x = conv2d_bn_relu(x,
                       filters=64, kernel_size=(1, 1), weight_decay=weight_decay,
                       name='2a', use_bn=use_bn)
    x = conv2d_bn_relu(x, filters=192, kernel_size=(3, 3), weight_decay=weight_decay,
                       name='2b', use_bn=use_bn)
    # x = MaxPool2D(pool_size=(3, 3), strides=(2, 2), padding='same', name='2-pool')(x)

    # inception3a
    x = inception_block_v1(x, (64, (96, 128), (16, 32), 32),
                           weight_decay=weight_decay,
                           name='inception3a', use_bn=use_bn)
    # inception3b
    x = inception_block_v1(x, (128, (128, 192), (32, 96), 64),
                           weight_decay=weight_decay,
                           name='inception3b', use_bn=use_bn)
    x = MaxPool2D(pool_size=(3, 3), strides=(2, 2), padding='same', name='3pool')(x)

    # inception4a
    x = inception_block_v1(x, (192, (96, 208), (16, 48), 64),
                           weight_decay=weight_decay,
                           name='inception4a', use_bn=use_bn)
    # inception4b
    x = inception_block_v1(x, (160, (112, 224), (24, 64), 64),
                           weight_decay=weight_decay,
                           name='inception4b', use_bn=True)
    # inception4c
    x = inception_block_v1(x, (128, (128, 256), (24, 64), 64),
                           weight_decay=weight_decay,
                           name='inception4c', use_bn=use_bn)
    # inception4d
    x = inception_block_v1(x, (112, (144, 288), (32, 64), 64),
                           weight_decay=weight_decay,
                           name='inception4d', use_bn=use_bn)
    # inception4e
    x = inception_block_v1(x, (256, (160, 320), (32, 128), 128),
                           weight_decay=weight_decay,
                           name='inception4e', use_bn=use_bn)
    x = MaxPool2D(pool_size=(3, 3), strides=(2, 2), padding='same', name='4pool')(x)

    # inception5a
    x = inception_block_v1(x, (256, (160, 320), (32, 128), 128),
                           weight_decay=weight_decay,
                           name='inception5a', use_bn=use_bn)
    # inception5b
    x = inception_block_v1(x, (384, (192, 384), (48, 128), 128),
                           weight_decay=weight_decay,
                           name='inception5b', use_bn=use_bn)

    # average pool
    x = AveragePooling2D(pool_size=(8, 8), strides=(1, 1), padding='valid', name='avg8x8')(x)
    # x = Dropout(0.4)(x)
    x = Flatten(name='flatten')(x)
    x = Dense(classes, activation='softmax', name='predictions')(x)
    model = Model(input, x, name='inception_v1')
    return model
model = InceptionV1ForCIFAR10()
model.summary()
Model: "inception_v1"
__________________________________________________________________________________________________
 Layer (type)                   Output Shape         Param #     Connected to                     
==================================================================================================
 input_1 (InputLayer)           [(None, 32, 32, 3)]  0           []                               
                                                                                                  
 2a-conv (Conv2D)               (None, 32, 32, 64)   192         ['input_1[0][0]']                
                                                                                                  
 2a-bn (BatchNormalization)     (None, 32, 32, 64)   192         ['2a-conv[0][0]']                
                                                                                                  
 2a-relu (Activation)           (None, 32, 32, 64)   0           ['2a-bn[0][0]']                  
                                                                                                  
 2b-conv (Conv2D)               (None, 32, 32, 192)  110592      ['2a-relu[0][0]']                
                                                                                                  
 2b-bn (BatchNormalization)     (None, 32, 32, 192)  576         ['2b-conv[0][0]']                
                                                                                                  
 2b-relu (Activation)           (None, 32, 32, 192)  0           ['2b-bn[0][0]']                  
                                                                                                  
 inception3a-br1-1x1-conv (Conv  (None, 32, 32, 96)  18432       ['2b-relu[0][0]']                
 2D)                                                                                              
                                                                                                  
 inception3a-br2-1x1-conv (Conv  (None, 32, 32, 16)  3072        ['2b-relu[0][0]']                
 2D)                                                                                              
                                                                                                  
 inception3a-br1-1x1-bn (BatchN  (None, 32, 32, 96)  288         ['inception3a-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br2-1x1-bn (BatchN  (None, 32, 32, 16)  48          ['inception3a-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br1-1x1-relu (Acti  (None, 32, 32, 96)  0           ['inception3a-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br2-1x1-relu (Acti  (None, 32, 32, 16)  0           ['inception3a-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br3-pool (MaxPooli  (None, 32, 32, 192)  0          ['2b-relu[0][0]']                
 ng2D)                                                                                            
                                                                                                  
 inception3a-br0-1x1-conv (Conv  (None, 32, 32, 64)  12288       ['2b-relu[0][0]']                
 2D)                                                                                              
                                                                                                  
 inception3a-br1-3x3-conv (Conv  (None, 32, 32, 128)  110592     ['inception3a-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3a-br2-5x5-conv (Conv  (None, 32, 32, 32)  12800       ['inception3a-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3a-br3-1x1-conv (Conv  (None, 32, 32, 32)  6144        ['inception3a-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception3a-br0-1x1-bn (BatchN  (None, 32, 32, 64)  192         ['inception3a-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br1-3x3-bn (BatchN  (None, 32, 32, 128)  384        ['inception3a-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br2-5x5-bn (BatchN  (None, 32, 32, 32)  96          ['inception3a-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br3-1x1-bn (BatchN  (None, 32, 32, 32)  96          ['inception3a-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br0-1x1-relu (Acti  (None, 32, 32, 64)  0           ['inception3a-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br1-3x3-relu (Acti  (None, 32, 32, 128)  0          ['inception3a-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br2-5x5-relu (Acti  (None, 32, 32, 32)  0           ['inception3a-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br3-1x1-relu (Acti  (None, 32, 32, 32)  0           ['inception3a-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a (Concatenate)      (None, 32, 32, 256)  0           ['inception3a-br0-1x1-relu[0][0]'
                                                                 , 'inception3a-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception3a-br2-5x5-relu[0][0]'
                                                                 , 'inception3a-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception3b-br1-1x1-conv (Conv  (None, 32, 32, 128)  32768      ['inception3a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception3b-br2-1x1-conv (Conv  (None, 32, 32, 32)  8192        ['inception3a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception3b-br1-1x1-bn (BatchN  (None, 32, 32, 128)  384        ['inception3b-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br2-1x1-bn (BatchN  (None, 32, 32, 32)  96          ['inception3b-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br1-1x1-relu (Acti  (None, 32, 32, 128)  0          ['inception3b-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br2-1x1-relu (Acti  (None, 32, 32, 32)  0           ['inception3b-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br3-pool (MaxPooli  (None, 32, 32, 256)  0          ['inception3a[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception3b-br0-1x1-conv (Conv  (None, 32, 32, 128)  32768      ['inception3a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception3b-br1-3x3-conv (Conv  (None, 32, 32, 192)  221184     ['inception3b-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3b-br2-5x5-conv (Conv  (None, 32, 32, 96)  76800       ['inception3b-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3b-br3-1x1-conv (Conv  (None, 32, 32, 64)  16384       ['inception3b-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception3b-br0-1x1-bn (BatchN  (None, 32, 32, 128)  384        ['inception3b-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br1-3x3-bn (BatchN  (None, 32, 32, 192)  576        ['inception3b-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br2-5x5-bn (BatchN  (None, 32, 32, 96)  288         ['inception3b-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br3-1x1-bn (BatchN  (None, 32, 32, 64)  192         ['inception3b-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br0-1x1-relu (Acti  (None, 32, 32, 128)  0          ['inception3b-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br1-3x3-relu (Acti  (None, 32, 32, 192)  0          ['inception3b-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br2-5x5-relu (Acti  (None, 32, 32, 96)  0           ['inception3b-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br3-1x1-relu (Acti  (None, 32, 32, 64)  0           ['inception3b-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b (Concatenate)      (None, 32, 32, 480)  0           ['inception3b-br0-1x1-relu[0][0]'
                                                                 , 'inception3b-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception3b-br2-5x5-relu[0][0]'
                                                                 , 'inception3b-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 3pool (MaxPooling2D)           (None, 16, 16, 480)  0           ['inception3b[0][0]']            
                                                                                                  
 inception4a-br1-1x1-conv (Conv  (None, 16, 16, 96)  46080       ['3pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception4a-br2-1x1-conv (Conv  (None, 16, 16, 16)  7680        ['3pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception4a-br1-1x1-bn (BatchN  (None, 16, 16, 96)  288         ['inception4a-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br2-1x1-bn (BatchN  (None, 16, 16, 16)  48          ['inception4a-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br1-1x1-relu (Acti  (None, 16, 16, 96)  0           ['inception4a-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br2-1x1-relu (Acti  (None, 16, 16, 16)  0           ['inception4a-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br3-pool (MaxPooli  (None, 16, 16, 480)  0          ['3pool[0][0]']                  
 ng2D)                                                                                            
                                                                                                  
 inception4a-br0-1x1-conv (Conv  (None, 16, 16, 192)  92160      ['3pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception4a-br1-3x3-conv (Conv  (None, 16, 16, 208)  179712     ['inception4a-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4a-br2-5x5-conv (Conv  (None, 16, 16, 48)  19200       ['inception4a-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4a-br3-1x1-conv (Conv  (None, 16, 16, 64)  30720       ['inception4a-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4a-br0-1x1-bn (BatchN  (None, 16, 16, 192)  576        ['inception4a-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br1-3x3-bn (BatchN  (None, 16, 16, 208)  624        ['inception4a-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br2-5x5-bn (BatchN  (None, 16, 16, 48)  144         ['inception4a-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4a-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br0-1x1-relu (Acti  (None, 16, 16, 192)  0          ['inception4a-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br1-3x3-relu (Acti  (None, 16, 16, 208)  0          ['inception4a-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br2-5x5-relu (Acti  (None, 16, 16, 48)  0           ['inception4a-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4a-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a (Concatenate)      (None, 16, 16, 512)  0           ['inception4a-br0-1x1-relu[0][0]'
                                                                 , 'inception4a-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4a-br2-5x5-relu[0][0]'
                                                                 , 'inception4a-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4b-br1-1x1-conv (Conv  (None, 16, 16, 112)  57344      ['inception4a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4b-br2-1x1-conv (Conv  (None, 16, 16, 24)  12288       ['inception4a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4b-br1-1x1-bn (BatchN  (None, 16, 16, 112)  336        ['inception4b-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br2-1x1-bn (BatchN  (None, 16, 16, 24)  72          ['inception4b-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br1-1x1-relu (Acti  (None, 16, 16, 112)  0          ['inception4b-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br2-1x1-relu (Acti  (None, 16, 16, 24)  0           ['inception4b-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br3-pool (MaxPooli  (None, 16, 16, 512)  0          ['inception4a[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4b-br0-1x1-conv (Conv  (None, 16, 16, 160)  81920      ['inception4a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4b-br1-3x3-conv (Conv  (None, 16, 16, 224)  225792     ['inception4b-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4b-br2-5x5-conv (Conv  (None, 16, 16, 64)  38400       ['inception4b-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4b-br3-1x1-conv (Conv  (None, 16, 16, 64)  32768       ['inception4b-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4b-br0-1x1-bn (BatchN  (None, 16, 16, 160)  480        ['inception4b-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br1-3x3-bn (BatchN  (None, 16, 16, 224)  672        ['inception4b-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br2-5x5-bn (BatchN  (None, 16, 16, 64)  192         ['inception4b-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4b-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br0-1x1-relu (Acti  (None, 16, 16, 160)  0          ['inception4b-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br1-3x3-relu (Acti  (None, 16, 16, 224)  0          ['inception4b-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br2-5x5-relu (Acti  (None, 16, 16, 64)  0           ['inception4b-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4b-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b (Concatenate)      (None, 16, 16, 512)  0           ['inception4b-br0-1x1-relu[0][0]'
                                                                 , 'inception4b-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4b-br2-5x5-relu[0][0]'
                                                                 , 'inception4b-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4c-br1-1x1-conv (Conv  (None, 16, 16, 128)  65536      ['inception4b[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4c-br2-1x1-conv (Conv  (None, 16, 16, 24)  12288       ['inception4b[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4c-br1-1x1-bn (BatchN  (None, 16, 16, 128)  384        ['inception4c-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br2-1x1-bn (BatchN  (None, 16, 16, 24)  72          ['inception4c-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br1-1x1-relu (Acti  (None, 16, 16, 128)  0          ['inception4c-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br2-1x1-relu (Acti  (None, 16, 16, 24)  0           ['inception4c-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br3-pool (MaxPooli  (None, 16, 16, 512)  0          ['inception4b[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4c-br0-1x1-conv (Conv  (None, 16, 16, 128)  65536      ['inception4b[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4c-br1-3x3-conv (Conv  (None, 16, 16, 256)  294912     ['inception4c-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4c-br2-5x5-conv (Conv  (None, 16, 16, 64)  38400       ['inception4c-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4c-br3-1x1-conv (Conv  (None, 16, 16, 64)  32768       ['inception4c-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4c-br0-1x1-bn (BatchN  (None, 16, 16, 128)  384        ['inception4c-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br1-3x3-bn (BatchN  (None, 16, 16, 256)  768        ['inception4c-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br2-5x5-bn (BatchN  (None, 16, 16, 64)  192         ['inception4c-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4c-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br0-1x1-relu (Acti  (None, 16, 16, 128)  0          ['inception4c-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br1-3x3-relu (Acti  (None, 16, 16, 256)  0          ['inception4c-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br2-5x5-relu (Acti  (None, 16, 16, 64)  0           ['inception4c-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4c-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c (Concatenate)      (None, 16, 16, 512)  0           ['inception4c-br0-1x1-relu[0][0]'
                                                                 , 'inception4c-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4c-br2-5x5-relu[0][0]'
                                                                 , 'inception4c-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4d-br1-1x1-conv (Conv  (None, 16, 16, 144)  73728      ['inception4c[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4d-br2-1x1-conv (Conv  (None, 16, 16, 32)  16384       ['inception4c[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4d-br1-1x1-bn (BatchN  (None, 16, 16, 144)  432        ['inception4d-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br2-1x1-bn (BatchN  (None, 16, 16, 32)  96          ['inception4d-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br1-1x1-relu (Acti  (None, 16, 16, 144)  0          ['inception4d-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br2-1x1-relu (Acti  (None, 16, 16, 32)  0           ['inception4d-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br3-pool (MaxPooli  (None, 16, 16, 512)  0          ['inception4c[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4d-br0-1x1-conv (Conv  (None, 16, 16, 112)  57344      ['inception4c[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4d-br1-3x3-conv (Conv  (None, 16, 16, 288)  373248     ['inception4d-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4d-br2-5x5-conv (Conv  (None, 16, 16, 64)  51200       ['inception4d-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4d-br3-1x1-conv (Conv  (None, 16, 16, 64)  32768       ['inception4d-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4d-br0-1x1-bn (BatchN  (None, 16, 16, 112)  336        ['inception4d-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br1-3x3-bn (BatchN  (None, 16, 16, 288)  864        ['inception4d-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br2-5x5-bn (BatchN  (None, 16, 16, 64)  192         ['inception4d-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4d-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br0-1x1-relu (Acti  (None, 16, 16, 112)  0          ['inception4d-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br1-3x3-relu (Acti  (None, 16, 16, 288)  0          ['inception4d-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br2-5x5-relu (Acti  (None, 16, 16, 64)  0           ['inception4d-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4d-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d (Concatenate)      (None, 16, 16, 528)  0           ['inception4d-br0-1x1-relu[0][0]'
                                                                 , 'inception4d-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4d-br2-5x5-relu[0][0]'
                                                                 , 'inception4d-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4e-br1-1x1-conv (Conv  (None, 16, 16, 160)  84480      ['inception4d[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4e-br2-1x1-conv (Conv  (None, 16, 16, 32)  16896       ['inception4d[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4e-br1-1x1-bn (BatchN  (None, 16, 16, 160)  480        ['inception4e-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br2-1x1-bn (BatchN  (None, 16, 16, 32)  96          ['inception4e-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br1-1x1-relu (Acti  (None, 16, 16, 160)  0          ['inception4e-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br2-1x1-relu (Acti  (None, 16, 16, 32)  0           ['inception4e-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br3-pool (MaxPooli  (None, 16, 16, 528)  0          ['inception4d[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4e-br0-1x1-conv (Conv  (None, 16, 16, 256)  135168     ['inception4d[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4e-br1-3x3-conv (Conv  (None, 16, 16, 320)  460800     ['inception4e-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4e-br2-5x5-conv (Conv  (None, 16, 16, 128)  102400     ['inception4e-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4e-br3-1x1-conv (Conv  (None, 16, 16, 128)  67584      ['inception4e-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4e-br0-1x1-bn (BatchN  (None, 16, 16, 256)  768        ['inception4e-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br1-3x3-bn (BatchN  (None, 16, 16, 320)  960        ['inception4e-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br2-5x5-bn (BatchN  (None, 16, 16, 128)  384        ['inception4e-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br3-1x1-bn (BatchN  (None, 16, 16, 128)  384        ['inception4e-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br0-1x1-relu (Acti  (None, 16, 16, 256)  0          ['inception4e-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br1-3x3-relu (Acti  (None, 16, 16, 320)  0          ['inception4e-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br2-5x5-relu (Acti  (None, 16, 16, 128)  0          ['inception4e-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br3-1x1-relu (Acti  (None, 16, 16, 128)  0          ['inception4e-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e (Concatenate)      (None, 16, 16, 832)  0           ['inception4e-br0-1x1-relu[0][0]'
                                                                 , 'inception4e-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4e-br2-5x5-relu[0][0]'
                                                                 , 'inception4e-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 4pool (MaxPooling2D)           (None, 8, 8, 832)    0           ['inception4e[0][0]']            
                                                                                                  
 inception5a-br1-1x1-conv (Conv  (None, 8, 8, 160)   133120      ['4pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception5a-br2-1x1-conv (Conv  (None, 8, 8, 32)    26624       ['4pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception5a-br1-1x1-bn (BatchN  (None, 8, 8, 160)   480         ['inception5a-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br2-1x1-bn (BatchN  (None, 8, 8, 32)    96          ['inception5a-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br1-1x1-relu (Acti  (None, 8, 8, 160)   0           ['inception5a-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br2-1x1-relu (Acti  (None, 8, 8, 32)    0           ['inception5a-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br3-pool (MaxPooli  (None, 8, 8, 832)   0           ['4pool[0][0]']                  
 ng2D)                                                                                            
                                                                                                  
 inception5a-br0-1x1-conv (Conv  (None, 8, 8, 256)   212992      ['4pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception5a-br1-3x3-conv (Conv  (None, 8, 8, 320)   460800      ['inception5a-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5a-br2-5x5-conv (Conv  (None, 8, 8, 128)   102400      ['inception5a-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5a-br3-1x1-conv (Conv  (None, 8, 8, 128)   106496      ['inception5a-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception5a-br0-1x1-bn (BatchN  (None, 8, 8, 256)   768         ['inception5a-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br1-3x3-bn (BatchN  (None, 8, 8, 320)   960         ['inception5a-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br2-5x5-bn (BatchN  (None, 8, 8, 128)   384         ['inception5a-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br3-1x1-bn (BatchN  (None, 8, 8, 128)   384         ['inception5a-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br0-1x1-relu (Acti  (None, 8, 8, 256)   0           ['inception5a-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br1-3x3-relu (Acti  (None, 8, 8, 320)   0           ['inception5a-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br2-5x5-relu (Acti  (None, 8, 8, 128)   0           ['inception5a-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br3-1x1-relu (Acti  (None, 8, 8, 128)   0           ['inception5a-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a (Concatenate)      (None, 8, 8, 832)    0           ['inception5a-br0-1x1-relu[0][0]'
                                                                 , 'inception5a-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception5a-br2-5x5-relu[0][0]'
                                                                 , 'inception5a-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception5b-br1-1x1-conv (Conv  (None, 8, 8, 192)   159744      ['inception5a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception5b-br2-1x1-conv (Conv  (None, 8, 8, 48)    39936       ['inception5a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception5b-br1-1x1-bn (BatchN  (None, 8, 8, 192)   576         ['inception5b-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br2-1x1-bn (BatchN  (None, 8, 8, 48)    144         ['inception5b-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br1-1x1-relu (Acti  (None, 8, 8, 192)   0           ['inception5b-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br2-1x1-relu (Acti  (None, 8, 8, 48)    0           ['inception5b-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br3-pool (MaxPooli  (None, 8, 8, 832)   0           ['inception5a[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception5b-br0-1x1-conv (Conv  (None, 8, 8, 384)   319488      ['inception5a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception5b-br1-3x3-conv (Conv  (None, 8, 8, 384)   663552      ['inception5b-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5b-br2-5x5-conv (Conv  (None, 8, 8, 128)   153600      ['inception5b-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5b-br3-1x1-conv (Conv  (None, 8, 8, 128)   106496      ['inception5b-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception5b-br0-1x1-bn (BatchN  (None, 8, 8, 384)   1152        ['inception5b-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br1-3x3-bn (BatchN  (None, 8, 8, 384)   1152        ['inception5b-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br2-5x5-bn (BatchN  (None, 8, 8, 128)   384         ['inception5b-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br3-1x1-bn (BatchN  (None, 8, 8, 128)   384         ['inception5b-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br0-1x1-relu (Acti  (None, 8, 8, 384)   0           ['inception5b-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br1-3x3-relu (Acti  (None, 8, 8, 384)   0           ['inception5b-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br2-5x5-relu (Acti  (None, 8, 8, 128)   0           ['inception5b-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br3-1x1-relu (Acti  (None, 8, 8, 128)   0           ['inception5b-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b (Concatenate)      (None, 8, 8, 1024)   0           ['inception5b-br0-1x1-relu[0][0]'
                                                                 , 'inception5b-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception5b-br2-5x5-relu[0][0]'
                                                                 , 'inception5b-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 avg8x8 (AveragePooling2D)      (None, 1, 1, 1024)   0           ['inception5b[0][0]']            
                                                                                                  
 flatten (Flatten)              (None, 1024)         0           ['avg8x8[0][0]']                 
                                                                                                  
 predictions (Dense)            (None, 10)           10250       ['flatten[0][0]']                
                                                                                                  
==================================================================================================
Total params: 5,984,858
Trainable params: 5,970,426
Non-trainable params: 14,432
__________________________________________________________________________________________________
model_img = output_dir + '/cifar10_%s.png'%(model_name)  # 模型结构图保存路径
plot_model(model, to_file=model_img, show_shapes=True) # 模型结构保存为一张图片
print('%s已保存' % model_img)
./output/cifar10_googleNet.png已保存

在这里插入图片描述

开始训练模型

首先我们可以设置我们的迭代次数和batch_size

epochs = 20  # 迭代次数
batch_size = 128  # 批大小

这一部分是设置在训练的时候的一些参数

  • 首先保存最好的模型,先定义我们的model path
  • 设置save_best_only=True,也就是代表只保存一遍
  • monitor='val_loss’代表的是监视val_loss,着重观察val_loss,只选取最小的val_loss的模型进行保存,当然这个我们也可以换成val_acc也是可以的
checkpoint = ModelCheckpoint(output_dir + '/best_%s_simple.h5'%model_name,  # model filename
                             monitor='val_loss', # quantity to monitor
                             verbose=0, # verbosity - 0 or 1
                             save_best_only= True, # The latest best model will not be overwritten
                             mode='auto') # The decision to overwrite model is made 
                                          # automatically depending on the quantity to monitor 

接下来我们就可以定义我们的优化器和损失函数了,keras很简单,并且定义我们需要计算的metrics为准确率即可

adam = adam_v2.Adam(lr = 0.0001)
model.compile(loss = 'categorical_crossentropy', optimizer = adam, metrics = ['accuracy'])

最后我们使用内置的fit函数,并且加上我们所需要的超参数,就可以完成我们的训练了。

history = model.fit(x_train,y_train, 
                    batch_size=batch_size,
                    epochs=epochs,
                    validation_data=(x_val,y_val),
                    shuffle=True,
                    callbacks=[checkpoint])
Epoch 1/20
391/391 [==============================] - 200s 477ms/step - loss: 1.3094 - accuracy: 0.5279 - val_loss: 2.7339 - val_accuracy: 0.2560
Epoch 2/20
391/391 [==============================] - 180s 462ms/step - loss: 0.9067 - accuracy: 0.6792 - val_loss: 0.9504 - val_accuracy: 0.6657
Epoch 3/20
391/391 [==============================] - 179s 458ms/step - loss: 0.7013 - accuracy: 0.7533 - val_loss: 1.0037 - val_accuracy: 0.6628
Epoch 4/20
391/391 [==============================] - 179s 458ms/step - loss: 0.5466 - accuracy: 0.8092 - val_loss: 0.9532 - val_accuracy: 0.6814
Epoch 5/20
391/391 [==============================] - 180s 461ms/step - loss: 0.4244 - accuracy: 0.8540 - val_loss: 0.8690 - val_accuracy: 0.7089
Epoch 6/20
391/391 [==============================] - 180s 461ms/step - loss: 0.3142 - accuracy: 0.8936 - val_loss: 0.7387 - val_accuracy: 0.7597
Epoch 7/20
391/391 [==============================] - 179s 458ms/step - loss: 0.2398 - accuracy: 0.9185 - val_loss: 0.9407 - val_accuracy: 0.7250
Epoch 8/20
391/391 [==============================] - 179s 457ms/step - loss: 0.1662 - accuracy: 0.9448 - val_loss: 1.0208 - val_accuracy: 0.7310
Epoch 9/20
391/391 [==============================] - 179s 458ms/step - loss: 0.1258 - accuracy: 0.9584 - val_loss: 1.0521 - val_accuracy: 0.7229
Epoch 10/20
391/391 [==============================] - 179s 457ms/step - loss: 0.0990 - accuracy: 0.9678 - val_loss: 1.0299 - val_accuracy: 0.7357
Epoch 11/20
391/391 [==============================] - 179s 458ms/step - loss: 0.0852 - accuracy: 0.9716 - val_loss: 0.9104 - val_accuracy: 0.7651
Epoch 12/20
391/391 [==============================] - 179s 458ms/step - loss: 0.0728 - accuracy: 0.9758 - val_loss: 0.9636 - val_accuracy: 0.7624
Epoch 13/20
391/391 [==============================] - 179s 458ms/step - loss: 0.0707 - accuracy: 0.9763 - val_loss: 1.8039 - val_accuracy: 0.6503
Epoch 14/20
391/391 [==============================] - 179s 458ms/step - loss: 0.0636 - accuracy: 0.9790 - val_loss: 0.9348 - val_accuracy: 0.7708
Epoch 15/20
391/391 [==============================] - 179s 458ms/step - loss: 0.0601 - accuracy: 0.9803 - val_loss: 1.5003 - val_accuracy: 0.7187
Epoch 16/20
391/391 [==============================] - 179s 459ms/step - loss: 0.0519 - accuracy: 0.9830 - val_loss: 0.9691 - val_accuracy: 0.7796
Epoch 17/20
391/391 [==============================] - 179s 458ms/step - loss: 0.0478 - accuracy: 0.9842 - val_loss: 1.1247 - val_accuracy: 0.7543
Epoch 18/20
391/391 [==============================] - 179s 458ms/step - loss: 0.0582 - accuracy: 0.9802 - val_loss: 1.2302 - val_accuracy: 0.7420
Epoch 19/20
391/391 [==============================] - 179s 457ms/step - loss: 0.0445 - accuracy: 0.9851 - val_loss: 1.6843 - val_accuracy: 0.6992
Epoch 20/20
391/391 [==============================] - 179s 459ms/step - loss: 0.0434 - accuracy: 0.9847 - val_loss: 1.2670 - val_accuracy: 0.7417

可视化准确率、损失函数

def plot_model_history(model_history):
    fig, axs = plt.subplots(1,2,figsize=(15,5))
    # summarize history for accuracy
    axs[0].plot(range(1,len(model_history.history['accuracy'])+1),model_history.history['accuracy'])
    axs[0].plot(range(1,len(model_history.history['val_accuracy'])+1),model_history.history['val_accuracy'])
    axs[0].set_title('Model Accuracy')
    axs[0].set_ylabel('Accuracy')
    axs[0].set_xlabel('Epoch')
    axs[0].set_xticks(np.arange(1,len(model_history.history['accuracy'])+1),len(model_history.history['accuracy'])/10)
    axs[0].legend(['train', 'val'], loc='best')
    # summarize history for loss
    axs[1].plot(range(1,len(model_history.history['loss'])+1),model_history.history['loss'])
    axs[1].plot(range(1,len(model_history.history['val_loss'])+1),model_history.history['val_loss'])
    axs[1].set_title('Model Loss')
    axs[1].set_ylabel('Loss')
    axs[1].set_xlabel('Epoch')
    axs[1].set_xticks(np.arange(1,len(model_history.history['loss'])+1),len(model_history.history['loss'])/10)
    axs[1].legend(['train', 'val'], loc='best')
    plt.show()
plot_model_history(history)

在这里插入图片描述

保存模型

model_path = output_dir + '/keras_cifar10_%s_model.h5'%model_name
model.save(model_path)
print('%s已保存' % model_path)
./output/keras_cifar10_googleNet_model.h5已保存

预测结果

x_test,y_test = x_val,y_val
# 取验证集里面的图片拿来预测看看
name = {
    
    0: 'airplane', 1: 'automobile', 2: 'bird', 3: 'cat', 4: 'deer',
        5: 'dog', 6: 'frog', 7: 'horse', 8: 'ship', 9: 'truck'}
n = 20  # 取多少张图片

x_test = x_val[:n]
y_test = y_val[:n]

# 预测
y_predict = model.predict(x_test, batch_size=n)

# 绘制预测结果
plt.figure(figsize=(18, 3))  # 指定画布大小
for i in range(n):
    plt.subplot(2, 10, i + 1)
    plt.axis('off')  # 取消x,y轴坐标
    plt.imshow(x_test[i])  # 显示图片
    if y_test[i].argmax() == y_predict[i].argmax():
        # 预测正确,用绿色标题
        plt.title('%s,%s' % (name[y_test[i].argmax()], name[y_predict[i].argmax()]), color='green')
    else:
        # 预测错误,用红色标题
        plt.title('%s,%s' % (name[y_test[i].argmax()], name[y_predict[i].argmax()]), color='red')
predict_img = output_dir + '/predict_%s.png'%(model_name)
print('%s已保存' % predict_img)
plt.savefig(predict_img)  # 保存预测图片
plt.show()  # 显示画布
./output/predict_googleNet.png已保存

在这里插入图片描述

res = model.evaluate(x_test,y_test)
print('{:2f}%'.format(res[1]*100))
1/1 [==============================] - 0s 36ms/step - loss: 1.2039 - accuracy: 0.7000
69.999999%
res = model.evaluate(x_val,y_val)
print('{:2f}%'.format(res[1]*100))
313/313 [==============================] - 12s 35ms/step - loss: 1.2670 - accuracy: 0.7417
74.169999%

数据增强

除了用原图片进行训练之外,我们还有一种方式可以增加准确性,也就是数据增强。下面来介绍一下数据增强

**数据增强(Data Augmentation)**是一种通过让有限的数据产生更多的等价数据来人工扩展训练数据集的技术。它是克服训练数据不足的有效手段,目前在深度学习的各个领域中应用广泛。但是由于生成的数据与真实数据之间的差异,也不可避免地带来了噪声问题。深度神经网络在许多任务中表现良好,但这些网络通常需要大量数据才能避免过度拟合。遗憾的是,许多场景无法获得大量数据,数据增强技术的存在是为了解决这个问题,这是针对有限数据问题的解决方案。数据增强一套技术,可提高训练数据集的大小和质量,以便您可以使用它们来构建更好的深度学习模型。

计算视觉领域的数据增强

计算视觉领域的数据增强算法大致可以分为两类:第一类是基于基本图像处理技术的数据增强,第二个类别是基于深度学习的数据增强算法。

下面先介绍基于基本图像处理技术的数据增强方法:

  • 几何变换(Geometric Transformations):由于训练集与测试集合中可能存在潜在的位置偏差,使得模型在测试集中很难达到训练集中的效果,几何变换可以有效地克服训练数据中存在的位置偏差,而且易于实现,许多图像处理库都包含这个功能。
  • 颜色变换(Color Space):图片在输入计算机之前,通常会被编码为张量(高度×宽度×颜色通道),所以可以在色彩通道空间进行数据增强,比如将某种颜色通道关闭,或者改变亮度值。
  • 旋转 | 反射变换(Rotation/Reflection):选择一个角度,左右旋转图像,可以改变图像内容朝向。关于旋转角度需要慎重考虑,角度太大或者太小都不合适,适宜的角度是1度 到 20度。
  • 噪声注入(Noise Injection):从高斯分布中采样出的随机值矩阵加入到图像的RGB像素中,通过向图像添加噪点可以帮助CNN学习更强大的功能。
  • 内核过滤器(Kernel Filters):内核滤镜是在图像处理中一种非常流行的技术,比如锐化和模糊。将特定功能的内核滤镜与图像进行卷积操作,就可以得到增强后的数据。直观上,数据增强生成的图像可能会使得模型面对这种类型的图像具有更高的鲁棒性。
  • 混合图像(Mix):通过平均图像像素值将图像混合在一起是一种非常违反直觉的数据增强方法。对于人来说,混合图像生成的数据似乎没有意义。虽然这种方法缺乏可解释性,但是作为一种简单有效的数据增强算法,有一系列的工作进行相关的研究。Inoue在图像每个像素点混合像素值来混合图像,Summers和Dinneen又尝试以非线性的方法来混合图像,Takahashi和Matsubara通过随机图像裁剪和拼接来混合图像,以及后来的mixup方法均取得了不错的成果。
  • 随机擦除(Random Erasing):随机擦除是Zhong等人开发的数据增强技术。他们受到Dropout机制的启发,随机选取图片中的一部分,将这部分图片删除,这项技术可以提高模型在图片被部分遮挡的情况下性能,除此之外还可以确保网络关注整个图像,而不只是其中的一部分。
  • 缩放变换(Zoom):图像按照一定的比例进行放大和缩小并不改变图像中的内容,可以增加模型的泛化性能。
  • 移动(Translation):向左,向右,向上或向下移动图像可以避免数据中的位置偏差,比如在人脸识别数据集合中,如果所有图像都居中,使用这种数据增强方法可以避免可能出现的位置偏差导致的错误。
  • 翻转变换(Flipping):通常是关于水平或者竖直的轴进行图像翻转操作,这种扩充是最容易实现的扩充,并且已经证明对ImageNet数据集有效。
  • 裁剪(Cropping):如果输入数据集合的大小是变化的,裁剪可以作为数据预处理的一个手段,通过裁剪图像的中央色块,可以得到新的数据。在实际使用过程之中,这些数据增强算法不是只使用一种,而是使用一套数据增强策略,在AutoAugment这篇文章中,作者尝试让模型自动选择数据增强策略。

img

第二个类别是基于深度学习的数据增强算法:

  • 特征空间增强(Feature Space Augmentation):神经网络可以将图像这种高维向量映射为低维向量,之前讨论的所有图像数据增强方法都应用于输入空间中的图像。现在可以在特征空间进行数据增强操作,例如:SMOTE算法,它是一种流行的增强方法,通过将k个最近的邻居合并以形成新实例来缓解类不平衡问题。
  • 对抗生成(Adversarial Training):对抗攻击表明,图像表示的健壮性远不及预期的健壮性,Moosavi-Dezfooli等人充分证明了这一点。对抗生成可以改善学习的决策边界中的薄弱环节,提高模型的鲁棒性。
  • 基于GAN的数据增强(GAN-based Data Augmentation):使用 GAN 生成模型来生成更多的数据,可用作解决类别不平衡问题的过采样技术。
  • 神经风格转换(Neural Style Transfer):通过神经网络风格迁移来生成不同风格的数据,防止模型过拟合。
from keras.preprocessing.image import ImageDataGenerator
from keras.callbacks import ReduceLROnPlateau
from keras.callbacks import LearningRateScheduler
# fit data with data augmentation or not
data_augmentation = True

# def lr_scheduler(epoch):
#     return lr * (0.1 ** (epoch // 50))

# reduce_lr = LearningRateScheduler(lr_scheduler)
reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.93,
                              patience=1, min_lr=1e-6, verbose=1)
checkpoint = ModelCheckpoint(output_dir + '/best_%s_data_augmentation.h5'%model_name,  # model filename
                             monitor='val_loss', # quantity to monitor
                             verbose=0, # verbosity - 0 or 1
                             save_best_only= True, # The latest best model will not be overwritten
                             mode='auto') # The decision to overwrite model is made 
                                          # automatically depending on the quantity to monitor 
batch_size = 128
epochs = 30
from keras.optimizers import gradient_descent_v2
model = InceptionV1ForCIFAR10()
sgd = gradient_descent_v2.SGD(lr = 0.1, momentum=0.9, nesterov=True)
model.compile(loss = 'categorical_crossentropy', optimizer = sgd, metrics = ['accuracy'])
model.summary()
Model: "inception_v1"
__________________________________________________________________________________________________
 Layer (type)                   Output Shape         Param #     Connected to                     
==================================================================================================
 input_2 (InputLayer)           [(None, 32, 32, 3)]  0           []                               
                                                                                                  
 2a-conv (Conv2D)               (None, 32, 32, 64)   192         ['input_2[0][0]']                
                                                                                                  
 2a-bn (BatchNormalization)     (None, 32, 32, 64)   192         ['2a-conv[0][0]']                
                                                                                                  
 2a-relu (Activation)           (None, 32, 32, 64)   0           ['2a-bn[0][0]']                  
                                                                                                  
 2b-conv (Conv2D)               (None, 32, 32, 192)  110592      ['2a-relu[0][0]']                
                                                                                                  
 2b-bn (BatchNormalization)     (None, 32, 32, 192)  576         ['2b-conv[0][0]']                
                                                                                                  
 2b-relu (Activation)           (None, 32, 32, 192)  0           ['2b-bn[0][0]']                  
                                                                                                  
 inception3a-br1-1x1-conv (Conv  (None, 32, 32, 96)  18432       ['2b-relu[0][0]']    
 2D)                                                                                              
                                                                                                  
 inception3a-br2-1x1-conv (Conv  (None, 32, 32, 16)  3072        ['2b-relu[0][0]']                
 2D)                                                                                              
                                                                                                  
 inception3a-br1-1x1-bn (BatchN  (None, 32, 32, 96)  288         ['inception3a-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br2-1x1-bn (BatchN  (None, 32, 32, 16)  48          ['inception3a-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br1-1x1-relu (Acti  (None, 32, 32, 96)  0           ['inception3a-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br2-1x1-relu (Acti  (None, 32, 32, 16)  0           ['inception3a-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br3-pool (MaxPooli  (None, 32, 32, 192)  0          ['2b-relu[0][0]']                
 ng2D)                                                                                            
                                                                                                  
 inception3a-br0-1x1-conv (Conv  (None, 32, 32, 64)  12288       ['2b-relu[0][0]']                
 2D)                                                                                              
                                                                                                  
 inception3a-br1-3x3-conv (Conv  (None, 32, 32, 128)  110592     ['inception3a-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3a-br2-5x5-conv (Conv  (None, 32, 32, 32)  12800       ['inception3a-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3a-br3-1x1-conv (Conv  (None, 32, 32, 32)  6144        ['inception3a-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception3a-br0-1x1-bn (BatchN  (None, 32, 32, 64)  192         ['inception3a-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br1-3x3-bn (BatchN  (None, 32, 32, 128)  384        ['inception3a-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br2-5x5-bn (BatchN  (None, 32, 32, 32)  96          ['inception3a-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br3-1x1-bn (BatchN  (None, 32, 32, 32)  96          ['inception3a-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br0-1x1-relu (Acti  (None, 32, 32, 64)  0           ['inception3a-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br1-3x3-relu (Acti  (None, 32, 32, 128)  0          ['inception3a-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br2-5x5-relu (Acti  (None, 32, 32, 32)  0           ['inception3a-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br3-1x1-relu (Acti  (None, 32, 32, 32)  0           ['inception3a-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a (Concatenate)      (None, 32, 32, 256)  0           ['inception3a-br0-1x1-relu[0][0]'
                                                                 , 'inception3a-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception3a-br2-5x5-relu[0][0]'
                                                                 , 'inception3a-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception3b-br1-1x1-conv (Conv  (None, 32, 32, 128)  32768      ['inception3a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception3b-br2-1x1-conv (Conv  (None, 32, 32, 32)  8192        ['inception3a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception3b-br1-1x1-bn (BatchN  (None, 32, 32, 128)  384        ['inception3b-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br2-1x1-bn (BatchN  (None, 32, 32, 32)  96          ['inception3b-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br1-1x1-relu (Acti  (None, 32, 32, 128)  0          ['inception3b-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br2-1x1-relu (Acti  (None, 32, 32, 32)  0           ['inception3b-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br3-pool (MaxPooli  (None, 32, 32, 256)  0          ['inception3a[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception3b-br0-1x1-conv (Conv  (None, 32, 32, 128)  32768      ['inception3a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception3b-br1-3x3-conv (Conv  (None, 32, 32, 192)  221184     ['inception3b-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3b-br2-5x5-conv (Conv  (None, 32, 32, 96)  76800       ['inception3b-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3b-br3-1x1-conv (Conv  (None, 32, 32, 64)  16384       ['inception3b-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception3b-br0-1x1-bn (BatchN  (None, 32, 32, 128)  384        ['inception3b-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br1-3x3-bn (BatchN  (None, 32, 32, 192)  576        ['inception3b-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br2-5x5-bn (BatchN  (None, 32, 32, 96)  288         ['inception3b-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br3-1x1-bn (BatchN  (None, 32, 32, 64)  192         ['inception3b-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br0-1x1-relu (Acti  (None, 32, 32, 128)  0          ['inception3b-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br1-3x3-relu (Acti  (None, 32, 32, 192)  0          ['inception3b-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br2-5x5-relu (Acti  (None, 32, 32, 96)  0           ['inception3b-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br3-1x1-relu (Acti  (None, 32, 32, 64)  0           ['inception3b-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b (Concatenate)      (None, 32, 32, 480)  0           ['inception3b-br0-1x1-relu[0][0]'
                                                                 , 'inception3b-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception3b-br2-5x5-relu[0][0]'
                                                                 , 'inception3b-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 3pool (MaxPooling2D)           (None, 16, 16, 480)  0           ['inception3b[0][0]']            
                                                                                                  
 inception4a-br1-1x1-conv (Conv  (None, 16, 16, 96)  46080       ['3pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception4a-br2-1x1-conv (Conv  (None, 16, 16, 16)  7680        ['3pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception4a-br1-1x1-bn (BatchN  (None, 16, 16, 96)  288         ['inception4a-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br2-1x1-bn (BatchN  (None, 16, 16, 16)  48          ['inception4a-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br1-1x1-relu (Acti  (None, 16, 16, 96)  0           ['inception4a-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br2-1x1-relu (Acti  (None, 16, 16, 16)  0           ['inception4a-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br3-pool (MaxPooli  (None, 16, 16, 480)  0          ['3pool[0][0]']                  
 ng2D)                                                                                            
                                                                                                  
 inception4a-br0-1x1-conv (Conv  (None, 16, 16, 192)  92160      ['3pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception4a-br1-3x3-conv (Conv  (None, 16, 16, 208)  179712     ['inception4a-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4a-br2-5x5-conv (Conv  (None, 16, 16, 48)  19200       ['inception4a-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4a-br3-1x1-conv (Conv  (None, 16, 16, 64)  30720       ['inception4a-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4a-br0-1x1-bn (BatchN  (None, 16, 16, 192)  576        ['inception4a-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br1-3x3-bn (BatchN  (None, 16, 16, 208)  624        ['inception4a-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br2-5x5-bn (BatchN  (None, 16, 16, 48)  144         ['inception4a-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4a-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br0-1x1-relu (Acti  (None, 16, 16, 192)  0          ['inception4a-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br1-3x3-relu (Acti  (None, 16, 16, 208)  0          ['inception4a-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br2-5x5-relu (Acti  (None, 16, 16, 48)  0           ['inception4a-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4a-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a (Concatenate)      (None, 16, 16, 512)  0           ['inception4a-br0-1x1-relu[0][0]'
                                                                 , 'inception4a-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4a-br2-5x5-relu[0][0]'
                                                                 , 'inception4a-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4b-br1-1x1-conv (Conv  (None, 16, 16, 112)  57344      ['inception4a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4b-br2-1x1-conv (Conv  (None, 16, 16, 24)  12288       ['inception4a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4b-br1-1x1-bn (BatchN  (None, 16, 16, 112)  336        ['inception4b-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br2-1x1-bn (BatchN  (None, 16, 16, 24)  72          ['inception4b-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br1-1x1-relu (Acti  (None, 16, 16, 112)  0          ['inception4b-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br2-1x1-relu (Acti  (None, 16, 16, 24)  0           ['inception4b-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br3-pool (MaxPooli  (None, 16, 16, 512)  0          ['inception4a[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4b-br0-1x1-conv (Conv  (None, 16, 16, 160)  81920      ['inception4a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4b-br1-3x3-conv (Conv  (None, 16, 16, 224)  225792     ['inception4b-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4b-br2-5x5-conv (Conv  (None, 16, 16, 64)  38400       ['inception4b-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4b-br3-1x1-conv (Conv  (None, 16, 16, 64)  32768       ['inception4b-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4b-br0-1x1-bn (BatchN  (None, 16, 16, 160)  480        ['inception4b-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br1-3x3-bn (BatchN  (None, 16, 16, 224)  672        ['inception4b-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br2-5x5-bn (BatchN  (None, 16, 16, 64)  192         ['inception4b-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4b-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br0-1x1-relu (Acti  (None, 16, 16, 160)  0          ['inception4b-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br1-3x3-relu (Acti  (None, 16, 16, 224)  0          ['inception4b-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br2-5x5-relu (Acti  (None, 16, 16, 64)  0           ['inception4b-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4b-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b (Concatenate)      (None, 16, 16, 512)  0           ['inception4b-br0-1x1-relu[0][0]'
                                                                 , 'inception4b-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4b-br2-5x5-relu[0][0]'
                                                                 , 'inception4b-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4c-br1-1x1-conv (Conv  (None, 16, 16, 128)  65536      ['inception4b[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4c-br2-1x1-conv (Conv  (None, 16, 16, 24)  12288       ['inception4b[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4c-br1-1x1-bn (BatchN  (None, 16, 16, 128)  384        ['inception4c-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br2-1x1-bn (BatchN  (None, 16, 16, 24)  72          ['inception4c-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br1-1x1-relu (Acti  (None, 16, 16, 128)  0          ['inception4c-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br2-1x1-relu (Acti  (None, 16, 16, 24)  0           ['inception4c-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br3-pool (MaxPooli  (None, 16, 16, 512)  0          ['inception4b[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4c-br0-1x1-conv (Conv  (None, 16, 16, 128)  65536      ['inception4b[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4c-br1-3x3-conv (Conv  (None, 16, 16, 256)  294912     ['inception4c-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4c-br2-5x5-conv (Conv  (None, 16, 16, 64)  38400       ['inception4c-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4c-br3-1x1-conv (Conv  (None, 16, 16, 64)  32768       ['inception4c-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4c-br0-1x1-bn (BatchN  (None, 16, 16, 128)  384        ['inception4c-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br1-3x3-bn (BatchN  (None, 16, 16, 256)  768        ['inception4c-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br2-5x5-bn (BatchN  (None, 16, 16, 64)  192         ['inception4c-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4c-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br0-1x1-relu (Acti  (None, 16, 16, 128)  0          ['inception4c-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br1-3x3-relu (Acti  (None, 16, 16, 256)  0          ['inception4c-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br2-5x5-relu (Acti  (None, 16, 16, 64)  0           ['inception4c-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4c-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c (Concatenate)      (None, 16, 16, 512)  0           ['inception4c-br0-1x1-relu[0][0]'
                                                                 , 'inception4c-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4c-br2-5x5-relu[0][0]'
                                                                 , 'inception4c-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4d-br1-1x1-conv (Conv  (None, 16, 16, 144)  73728      ['inception4c[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4d-br2-1x1-conv (Conv  (None, 16, 16, 32)  16384       ['inception4c[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4d-br1-1x1-bn (BatchN  (None, 16, 16, 144)  432        ['inception4d-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br2-1x1-bn (BatchN  (None, 16, 16, 32)  96          ['inception4d-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br1-1x1-relu (Acti  (None, 16, 16, 144)  0          ['inception4d-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br2-1x1-relu (Acti  (None, 16, 16, 32)  0           ['inception4d-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br3-pool (MaxPooli  (None, 16, 16, 512)  0          ['inception4c[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4d-br0-1x1-conv (Conv  (None, 16, 16, 112)  57344      ['inception4c[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4d-br1-3x3-conv (Conv  (None, 16, 16, 288)  373248     ['inception4d-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4d-br2-5x5-conv (Conv  (None, 16, 16, 64)  51200       ['inception4d-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4d-br3-1x1-conv (Conv  (None, 16, 16, 64)  32768       ['inception4d-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4d-br0-1x1-bn (BatchN  (None, 16, 16, 112)  336        ['inception4d-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br1-3x3-bn (BatchN  (None, 16, 16, 288)  864        ['inception4d-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br2-5x5-bn (BatchN  (None, 16, 16, 64)  192         ['inception4d-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4d-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br0-1x1-relu (Acti  (None, 16, 16, 112)  0          ['inception4d-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br1-3x3-relu (Acti  (None, 16, 16, 288)  0          ['inception4d-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br2-5x5-relu (Acti  (None, 16, 16, 64)  0           ['inception4d-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4d-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d (Concatenate)      (None, 16, 16, 528)  0           ['inception4d-br0-1x1-relu[0][0]'
                                                                 , 'inception4d-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4d-br2-5x5-relu[0][0]'
                                                                 , 'inception4d-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4e-br1-1x1-conv (Conv  (None, 16, 16, 160)  84480      ['inception4d[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4e-br2-1x1-conv (Conv  (None, 16, 16, 32)  16896       ['inception4d[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4e-br1-1x1-bn (BatchN  (None, 16, 16, 160)  480        ['inception4e-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br2-1x1-bn (BatchN  (None, 16, 16, 32)  96          ['inception4e-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br1-1x1-relu (Acti  (None, 16, 16, 160)  0          ['inception4e-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br2-1x1-relu (Acti  (None, 16, 16, 32)  0           ['inception4e-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br3-pool (MaxPooli  (None, 16, 16, 528)  0          ['inception4d[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4e-br0-1x1-conv (Conv  (None, 16, 16, 256)  135168     ['inception4d[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4e-br1-3x3-conv (Conv  (None, 16, 16, 320)  460800     ['inception4e-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4e-br2-5x5-conv (Conv  (None, 16, 16, 128)  102400     ['inception4e-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4e-br3-1x1-conv (Conv  (None, 16, 16, 128)  67584      ['inception4e-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4e-br0-1x1-bn (BatchN  (None, 16, 16, 256)  768        ['inception4e-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br1-3x3-bn (BatchN  (None, 16, 16, 320)  960        ['inception4e-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br2-5x5-bn (BatchN  (None, 16, 16, 128)  384        ['inception4e-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br3-1x1-bn (BatchN  (None, 16, 16, 128)  384        ['inception4e-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br0-1x1-relu (Acti  (None, 16, 16, 256)  0          ['inception4e-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br1-3x3-relu (Acti  (None, 16, 16, 320)  0          ['inception4e-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br2-5x5-relu (Acti  (None, 16, 16, 128)  0          ['inception4e-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br3-1x1-relu (Acti  (None, 16, 16, 128)  0          ['inception4e-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e (Concatenate)      (None, 16, 16, 832)  0           ['inception4e-br0-1x1-relu[0][0]'
                                                                 , 'inception4e-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4e-br2-5x5-relu[0][0]'
                                                                 , 'inception4e-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 4pool (MaxPooling2D)           (None, 8, 8, 832)    0           ['inception4e[0][0]']            
                                                                                                  
 inception5a-br1-1x1-conv (Conv  (None, 8, 8, 160)   133120      ['4pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception5a-br2-1x1-conv (Conv  (None, 8, 8, 32)    26624       ['4pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception5a-br1-1x1-bn (BatchN  (None, 8, 8, 160)   480         ['inception5a-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br2-1x1-bn (BatchN  (None, 8, 8, 32)    96          ['inception5a-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br1-1x1-relu (Acti  (None, 8, 8, 160)   0           ['inception5a-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br2-1x1-relu (Acti  (None, 8, 8, 32)    0           ['inception5a-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br3-pool (MaxPooli  (None, 8, 8, 832)   0           ['4pool[0][0]']                  
 ng2D)                                                                                            
                                                                                                  
 inception5a-br0-1x1-conv (Conv  (None, 8, 8, 256)   212992      ['4pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception5a-br1-3x3-conv (Conv  (None, 8, 8, 320)   460800      ['inception5a-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5a-br2-5x5-conv (Conv  (None, 8, 8, 128)   102400      ['inception5a-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5a-br3-1x1-conv (Conv  (None, 8, 8, 128)   106496      ['inception5a-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception5a-br0-1x1-bn (BatchN  (None, 8, 8, 256)   768         ['inception5a-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br1-3x3-bn (BatchN  (None, 8, 8, 320)   960         ['inception5a-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br2-5x5-bn (BatchN  (None, 8, 8, 128)   384         ['inception5a-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br3-1x1-bn (BatchN  (None, 8, 8, 128)   384         ['inception5a-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br0-1x1-relu (Acti  (None, 8, 8, 256)   0           ['inception5a-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br1-3x3-relu (Acti  (None, 8, 8, 320)   0           ['inception5a-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br2-5x5-relu (Acti  (None, 8, 8, 128)   0           ['inception5a-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br3-1x1-relu (Acti  (None, 8, 8, 128)   0           ['inception5a-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a (Concatenate)      (None, 8, 8, 832)    0           ['inception5a-br0-1x1-relu[0][0]'
                                                                 , 'inception5a-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception5a-br2-5x5-relu[0][0]'
                                                                 , 'inception5a-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception5b-br1-1x1-conv (Conv  (None, 8, 8, 192)   159744      ['inception5a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception5b-br2-1x1-conv (Conv  (None, 8, 8, 48)    39936       ['inception5a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception5b-br1-1x1-bn (BatchN  (None, 8, 8, 192)   576         ['inception5b-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br2-1x1-bn (BatchN  (None, 8, 8, 48)    144         ['inception5b-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br1-1x1-relu (Acti  (None, 8, 8, 192)   0           ['inception5b-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br2-1x1-relu (Acti  (None, 8, 8, 48)    0           ['inception5b-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br3-pool (MaxPooli  (None, 8, 8, 832)   0           ['inception5a[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception5b-br0-1x1-conv (Conv  (None, 8, 8, 384)   319488      ['inception5a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception5b-br1-3x3-conv (Conv  (None, 8, 8, 384)   663552      ['inception5b-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5b-br2-5x5-conv (Conv  (None, 8, 8, 128)   153600      ['inception5b-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5b-br3-1x1-conv (Conv  (None, 8, 8, 128)   106496      ['inception5b-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception5b-br0-1x1-bn (BatchN  (None, 8, 8, 384)   1152        ['inception5b-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br1-3x3-bn (BatchN  (None, 8, 8, 384)   1152        ['inception5b-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br2-5x5-bn (BatchN  (None, 8, 8, 128)   384         ['inception5b-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br3-1x1-bn (BatchN  (None, 8, 8, 128)   384         ['inception5b-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br0-1x1-relu (Acti  (None, 8, 8, 384)   0           ['inception5b-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br1-3x3-relu (Acti  (None, 8, 8, 384)   0           ['inception5b-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br2-5x5-relu (Acti  (None, 8, 8, 128)   0           ['inception5b-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br3-1x1-relu (Acti  (None, 8, 8, 128)   0           ['inception5b-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b (Concatenate)      (None, 8, 8, 1024)   0           ['inception5b-br0-1x1-relu[0][0]'
                                                                 , 'inception5b-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception5b-br2-5x5-relu[0][0]'
                                                                 , 'inception5b-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 avg8x8 (AveragePooling2D)      (None, 1, 1, 1024)   0           ['inception5b[0][0]']            
                                                                                                  
 flatten (Flatten)              (None, 1024)         0           ['avg8x8[0][0]']                 
                                                                                                  
 predictions (Dense)            (None, 10)           10250       ['flatten[0][0]']                
                                                                                                  
==================================================================================================
Total params: 5,984,858
Trainable params: 5,970,426
Non-trainable params: 14,432
__________________________________________________________________________________________________


 2D)                                                                                              
                                                                                                  
 inception3a-br2-1x1-conv (Conv  (None, 32, 32, 16)  3072        ['2b-relu[0][0]']                
 2D)                                                                                              
                                                                                                  
 inception3a-br1-1x1-bn (BatchN  (None, 32, 32, 96)  288         ['inception3a-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br2-1x1-bn (BatchN  (None, 32, 32, 16)  48          ['inception3a-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br1-1x1-relu (Acti  (None, 32, 32, 96)  0           ['inception3a-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br2-1x1-relu (Acti  (None, 32, 32, 16)  0           ['inception3a-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br3-pool (MaxPooli  (None, 32, 32, 192)  0          ['2b-relu[0][0]']                
 ng2D)                                                                                            
                                                                                                  
 inception3a-br0-1x1-conv (Conv  (None, 32, 32, 64)  12288       ['2b-relu[0][0]']                
 2D)                                                                                              
                                                                                                  
 inception3a-br1-3x3-conv (Conv  (None, 32, 32, 128)  110592     ['inception3a-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3a-br2-5x5-conv (Conv  (None, 32, 32, 32)  12800       ['inception3a-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3a-br3-1x1-conv (Conv  (None, 32, 32, 32)  6144        ['inception3a-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception3a-br0-1x1-bn (BatchN  (None, 32, 32, 64)  192         ['inception3a-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br1-3x3-bn (BatchN  (None, 32, 32, 128)  384        ['inception3a-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br2-5x5-bn (BatchN  (None, 32, 32, 32)  96          ['inception3a-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br3-1x1-bn (BatchN  (None, 32, 32, 32)  96          ['inception3a-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3a-br0-1x1-relu (Acti  (None, 32, 32, 64)  0           ['inception3a-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br1-3x3-relu (Acti  (None, 32, 32, 128)  0          ['inception3a-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br2-5x5-relu (Acti  (None, 32, 32, 32)  0           ['inception3a-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a-br3-1x1-relu (Acti  (None, 32, 32, 32)  0           ['inception3a-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3a (Concatenate)      (None, 32, 32, 256)  0           ['inception3a-br0-1x1-relu[0][0]'
                                                                 , 'inception3a-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception3a-br2-5x5-relu[0][0]'
                                                                 , 'inception3a-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception3b-br1-1x1-conv (Conv  (None, 32, 32, 128)  32768      ['inception3a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception3b-br2-1x1-conv (Conv  (None, 32, 32, 32)  8192        ['inception3a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception3b-br1-1x1-bn (BatchN  (None, 32, 32, 128)  384        ['inception3b-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br2-1x1-bn (BatchN  (None, 32, 32, 32)  96          ['inception3b-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br1-1x1-relu (Acti  (None, 32, 32, 128)  0          ['inception3b-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br2-1x1-relu (Acti  (None, 32, 32, 32)  0           ['inception3b-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br3-pool (MaxPooli  (None, 32, 32, 256)  0          ['inception3a[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception3b-br0-1x1-conv (Conv  (None, 32, 32, 128)  32768      ['inception3a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception3b-br1-3x3-conv (Conv  (None, 32, 32, 192)  221184     ['inception3b-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3b-br2-5x5-conv (Conv  (None, 32, 32, 96)  76800       ['inception3b-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception3b-br3-1x1-conv (Conv  (None, 32, 32, 64)  16384       ['inception3b-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception3b-br0-1x1-bn (BatchN  (None, 32, 32, 128)  384        ['inception3b-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br1-3x3-bn (BatchN  (None, 32, 32, 192)  576        ['inception3b-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br2-5x5-bn (BatchN  (None, 32, 32, 96)  288         ['inception3b-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br3-1x1-bn (BatchN  (None, 32, 32, 64)  192         ['inception3b-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception3b-br0-1x1-relu (Acti  (None, 32, 32, 128)  0          ['inception3b-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br1-3x3-relu (Acti  (None, 32, 32, 192)  0          ['inception3b-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br2-5x5-relu (Acti  (None, 32, 32, 96)  0           ['inception3b-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b-br3-1x1-relu (Acti  (None, 32, 32, 64)  0           ['inception3b-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception3b (Concatenate)      (None, 32, 32, 480)  0           ['inception3b-br0-1x1-relu[0][0]'
                                                                 , 'inception3b-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception3b-br2-5x5-relu[0][0]'
                                                                 , 'inception3b-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 3pool (MaxPooling2D)           (None, 16, 16, 480)  0           ['inception3b[0][0]']            
                                                                                                  
 inception4a-br1-1x1-conv (Conv  (None, 16, 16, 96)  46080       ['3pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception4a-br2-1x1-conv (Conv  (None, 16, 16, 16)  7680        ['3pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception4a-br1-1x1-bn (BatchN  (None, 16, 16, 96)  288         ['inception4a-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br2-1x1-bn (BatchN  (None, 16, 16, 16)  48          ['inception4a-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br1-1x1-relu (Acti  (None, 16, 16, 96)  0           ['inception4a-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br2-1x1-relu (Acti  (None, 16, 16, 16)  0           ['inception4a-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br3-pool (MaxPooli  (None, 16, 16, 480)  0          ['3pool[0][0]']                  
 ng2D)                                                                                            
                                                                                                  
 inception4a-br0-1x1-conv (Conv  (None, 16, 16, 192)  92160      ['3pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception4a-br1-3x3-conv (Conv  (None, 16, 16, 208)  179712     ['inception4a-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4a-br2-5x5-conv (Conv  (None, 16, 16, 48)  19200       ['inception4a-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4a-br3-1x1-conv (Conv  (None, 16, 16, 64)  30720       ['inception4a-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4a-br0-1x1-bn (BatchN  (None, 16, 16, 192)  576        ['inception4a-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br1-3x3-bn (BatchN  (None, 16, 16, 208)  624        ['inception4a-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br2-5x5-bn (BatchN  (None, 16, 16, 48)  144         ['inception4a-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4a-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4a-br0-1x1-relu (Acti  (None, 16, 16, 192)  0          ['inception4a-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br1-3x3-relu (Acti  (None, 16, 16, 208)  0          ['inception4a-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br2-5x5-relu (Acti  (None, 16, 16, 48)  0           ['inception4a-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4a-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4a (Concatenate)      (None, 16, 16, 512)  0           ['inception4a-br0-1x1-relu[0][0]'
                                                                 , 'inception4a-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4a-br2-5x5-relu[0][0]'
                                                                 , 'inception4a-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4b-br1-1x1-conv (Conv  (None, 16, 16, 112)  57344      ['inception4a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4b-br2-1x1-conv (Conv  (None, 16, 16, 24)  12288       ['inception4a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4b-br1-1x1-bn (BatchN  (None, 16, 16, 112)  336        ['inception4b-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br2-1x1-bn (BatchN  (None, 16, 16, 24)  72          ['inception4b-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br1-1x1-relu (Acti  (None, 16, 16, 112)  0          ['inception4b-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br2-1x1-relu (Acti  (None, 16, 16, 24)  0           ['inception4b-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br3-pool (MaxPooli  (None, 16, 16, 512)  0          ['inception4a[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4b-br0-1x1-conv (Conv  (None, 16, 16, 160)  81920      ['inception4a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4b-br1-3x3-conv (Conv  (None, 16, 16, 224)  225792     ['inception4b-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4b-br2-5x5-conv (Conv  (None, 16, 16, 64)  38400       ['inception4b-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4b-br3-1x1-conv (Conv  (None, 16, 16, 64)  32768       ['inception4b-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4b-br0-1x1-bn (BatchN  (None, 16, 16, 160)  480        ['inception4b-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br1-3x3-bn (BatchN  (None, 16, 16, 224)  672        ['inception4b-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br2-5x5-bn (BatchN  (None, 16, 16, 64)  192         ['inception4b-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4b-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4b-br0-1x1-relu (Acti  (None, 16, 16, 160)  0          ['inception4b-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br1-3x3-relu (Acti  (None, 16, 16, 224)  0          ['inception4b-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br2-5x5-relu (Acti  (None, 16, 16, 64)  0           ['inception4b-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4b-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4b (Concatenate)      (None, 16, 16, 512)  0           ['inception4b-br0-1x1-relu[0][0]'
                                                                 , 'inception4b-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4b-br2-5x5-relu[0][0]'
                                                                 , 'inception4b-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4c-br1-1x1-conv (Conv  (None, 16, 16, 128)  65536      ['inception4b[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4c-br2-1x1-conv (Conv  (None, 16, 16, 24)  12288       ['inception4b[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4c-br1-1x1-bn (BatchN  (None, 16, 16, 128)  384        ['inception4c-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br2-1x1-bn (BatchN  (None, 16, 16, 24)  72          ['inception4c-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br1-1x1-relu (Acti  (None, 16, 16, 128)  0          ['inception4c-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br2-1x1-relu (Acti  (None, 16, 16, 24)  0           ['inception4c-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br3-pool (MaxPooli  (None, 16, 16, 512)  0          ['inception4b[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4c-br0-1x1-conv (Conv  (None, 16, 16, 128)  65536      ['inception4b[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4c-br1-3x3-conv (Conv  (None, 16, 16, 256)  294912     ['inception4c-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4c-br2-5x5-conv (Conv  (None, 16, 16, 64)  38400       ['inception4c-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4c-br3-1x1-conv (Conv  (None, 16, 16, 64)  32768       ['inception4c-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4c-br0-1x1-bn (BatchN  (None, 16, 16, 128)  384        ['inception4c-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br1-3x3-bn (BatchN  (None, 16, 16, 256)  768        ['inception4c-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br2-5x5-bn (BatchN  (None, 16, 16, 64)  192         ['inception4c-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4c-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4c-br0-1x1-relu (Acti  (None, 16, 16, 128)  0          ['inception4c-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br1-3x3-relu (Acti  (None, 16, 16, 256)  0          ['inception4c-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br2-5x5-relu (Acti  (None, 16, 16, 64)  0           ['inception4c-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4c-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4c (Concatenate)      (None, 16, 16, 512)  0           ['inception4c-br0-1x1-relu[0][0]'
                                                                 , 'inception4c-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4c-br2-5x5-relu[0][0]'
                                                                 , 'inception4c-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4d-br1-1x1-conv (Conv  (None, 16, 16, 144)  73728      ['inception4c[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4d-br2-1x1-conv (Conv  (None, 16, 16, 32)  16384       ['inception4c[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4d-br1-1x1-bn (BatchN  (None, 16, 16, 144)  432        ['inception4d-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br2-1x1-bn (BatchN  (None, 16, 16, 32)  96          ['inception4d-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br1-1x1-relu (Acti  (None, 16, 16, 144)  0          ['inception4d-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br2-1x1-relu (Acti  (None, 16, 16, 32)  0           ['inception4d-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br3-pool (MaxPooli  (None, 16, 16, 512)  0          ['inception4c[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4d-br0-1x1-conv (Conv  (None, 16, 16, 112)  57344      ['inception4c[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4d-br1-3x3-conv (Conv  (None, 16, 16, 288)  373248     ['inception4d-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4d-br2-5x5-conv (Conv  (None, 16, 16, 64)  51200       ['inception4d-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4d-br3-1x1-conv (Conv  (None, 16, 16, 64)  32768       ['inception4d-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4d-br0-1x1-bn (BatchN  (None, 16, 16, 112)  336        ['inception4d-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br1-3x3-bn (BatchN  (None, 16, 16, 288)  864        ['inception4d-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br2-5x5-bn (BatchN  (None, 16, 16, 64)  192         ['inception4d-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br3-1x1-bn (BatchN  (None, 16, 16, 64)  192         ['inception4d-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4d-br0-1x1-relu (Acti  (None, 16, 16, 112)  0          ['inception4d-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br1-3x3-relu (Acti  (None, 16, 16, 288)  0          ['inception4d-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br2-5x5-relu (Acti  (None, 16, 16, 64)  0           ['inception4d-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d-br3-1x1-relu (Acti  (None, 16, 16, 64)  0           ['inception4d-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4d (Concatenate)      (None, 16, 16, 528)  0           ['inception4d-br0-1x1-relu[0][0]'
                                                                 , 'inception4d-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4d-br2-5x5-relu[0][0]'
                                                                 , 'inception4d-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception4e-br1-1x1-conv (Conv  (None, 16, 16, 160)  84480      ['inception4d[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4e-br2-1x1-conv (Conv  (None, 16, 16, 32)  16896       ['inception4d[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4e-br1-1x1-bn (BatchN  (None, 16, 16, 160)  480        ['inception4e-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br2-1x1-bn (BatchN  (None, 16, 16, 32)  96          ['inception4e-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br1-1x1-relu (Acti  (None, 16, 16, 160)  0          ['inception4e-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br2-1x1-relu (Acti  (None, 16, 16, 32)  0           ['inception4e-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br3-pool (MaxPooli  (None, 16, 16, 528)  0          ['inception4d[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception4e-br0-1x1-conv (Conv  (None, 16, 16, 256)  135168     ['inception4d[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception4e-br1-3x3-conv (Conv  (None, 16, 16, 320)  460800     ['inception4e-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4e-br2-5x5-conv (Conv  (None, 16, 16, 128)  102400     ['inception4e-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception4e-br3-1x1-conv (Conv  (None, 16, 16, 128)  67584      ['inception4e-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception4e-br0-1x1-bn (BatchN  (None, 16, 16, 256)  768        ['inception4e-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br1-3x3-bn (BatchN  (None, 16, 16, 320)  960        ['inception4e-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br2-5x5-bn (BatchN  (None, 16, 16, 128)  384        ['inception4e-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br3-1x1-bn (BatchN  (None, 16, 16, 128)  384        ['inception4e-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception4e-br0-1x1-relu (Acti  (None, 16, 16, 256)  0          ['inception4e-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br1-3x3-relu (Acti  (None, 16, 16, 320)  0          ['inception4e-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br2-5x5-relu (Acti  (None, 16, 16, 128)  0          ['inception4e-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e-br3-1x1-relu (Acti  (None, 16, 16, 128)  0          ['inception4e-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception4e (Concatenate)      (None, 16, 16, 832)  0           ['inception4e-br0-1x1-relu[0][0]'
                                                                 , 'inception4e-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception4e-br2-5x5-relu[0][0]'
                                                                 , 'inception4e-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 4pool (MaxPooling2D)           (None, 8, 8, 832)    0           ['inception4e[0][0]']            
                                                                                                  
 inception5a-br1-1x1-conv (Conv  (None, 8, 8, 160)   133120      ['4pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception5a-br2-1x1-conv (Conv  (None, 8, 8, 32)    26624       ['4pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception5a-br1-1x1-bn (BatchN  (None, 8, 8, 160)   480         ['inception5a-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br2-1x1-bn (BatchN  (None, 8, 8, 32)    96          ['inception5a-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br1-1x1-relu (Acti  (None, 8, 8, 160)   0           ['inception5a-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br2-1x1-relu (Acti  (None, 8, 8, 32)    0           ['inception5a-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br3-pool (MaxPooli  (None, 8, 8, 832)   0           ['4pool[0][0]']                  
 ng2D)                                                                                            
                                                                                                  
 inception5a-br0-1x1-conv (Conv  (None, 8, 8, 256)   212992      ['4pool[0][0]']                  
 2D)                                                                                              
                                                                                                  
 inception5a-br1-3x3-conv (Conv  (None, 8, 8, 320)   460800      ['inception5a-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5a-br2-5x5-conv (Conv  (None, 8, 8, 128)   102400      ['inception5a-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5a-br3-1x1-conv (Conv  (None, 8, 8, 128)   106496      ['inception5a-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception5a-br0-1x1-bn (BatchN  (None, 8, 8, 256)   768         ['inception5a-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br1-3x3-bn (BatchN  (None, 8, 8, 320)   960         ['inception5a-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br2-5x5-bn (BatchN  (None, 8, 8, 128)   384         ['inception5a-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br3-1x1-bn (BatchN  (None, 8, 8, 128)   384         ['inception5a-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5a-br0-1x1-relu (Acti  (None, 8, 8, 256)   0           ['inception5a-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br1-3x3-relu (Acti  (None, 8, 8, 320)   0           ['inception5a-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br2-5x5-relu (Acti  (None, 8, 8, 128)   0           ['inception5a-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a-br3-1x1-relu (Acti  (None, 8, 8, 128)   0           ['inception5a-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5a (Concatenate)      (None, 8, 8, 832)    0           ['inception5a-br0-1x1-relu[0][0]'
                                                                 , 'inception5a-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception5a-br2-5x5-relu[0][0]'
                                                                 , 'inception5a-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 inception5b-br1-1x1-conv (Conv  (None, 8, 8, 192)   159744      ['inception5a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception5b-br2-1x1-conv (Conv  (None, 8, 8, 48)    39936       ['inception5a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception5b-br1-1x1-bn (BatchN  (None, 8, 8, 192)   576         ['inception5b-br1-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br2-1x1-bn (BatchN  (None, 8, 8, 48)    144         ['inception5b-br2-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br1-1x1-relu (Acti  (None, 8, 8, 192)   0           ['inception5b-br1-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br2-1x1-relu (Acti  (None, 8, 8, 48)    0           ['inception5b-br2-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br3-pool (MaxPooli  (None, 8, 8, 832)   0           ['inception5a[0][0]']            
 ng2D)                                                                                            
                                                                                                  
 inception5b-br0-1x1-conv (Conv  (None, 8, 8, 384)   319488      ['inception5a[0][0]']            
 2D)                                                                                              
                                                                                                  
 inception5b-br1-3x3-conv (Conv  (None, 8, 8, 384)   663552      ['inception5b-br1-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5b-br2-5x5-conv (Conv  (None, 8, 8, 128)   153600      ['inception5b-br2-1x1-relu[0][0]'
 2D)                                                             ]                                
                                                                                                  
 inception5b-br3-1x1-conv (Conv  (None, 8, 8, 128)   106496      ['inception5b-br3-pool[0][0]']   
 2D)                                                                                              
                                                                                                  
 inception5b-br0-1x1-bn (BatchN  (None, 8, 8, 384)   1152        ['inception5b-br0-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br1-3x3-bn (BatchN  (None, 8, 8, 384)   1152        ['inception5b-br1-3x3-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br2-5x5-bn (BatchN  (None, 8, 8, 128)   384         ['inception5b-br2-5x5-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br3-1x1-bn (BatchN  (None, 8, 8, 128)   384         ['inception5b-br3-1x1-conv[0][0]'
 ormalization)                                                   ]                                
                                                                                                  
 inception5b-br0-1x1-relu (Acti  (None, 8, 8, 384)   0           ['inception5b-br0-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br1-3x3-relu (Acti  (None, 8, 8, 384)   0           ['inception5b-br1-3x3-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br2-5x5-relu (Acti  (None, 8, 8, 128)   0           ['inception5b-br2-5x5-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b-br3-1x1-relu (Acti  (None, 8, 8, 128)   0           ['inception5b-br3-1x1-bn[0][0]'] 
 vation)                                                                                          
                                                                                                  
 inception5b (Concatenate)      (None, 8, 8, 1024)   0           ['inception5b-br0-1x1-relu[0][0]'
                                                                 , 'inception5b-br1-3x3-relu[0][0]
                                                                 ',                               
                                                                  'inception5b-br2-5x5-relu[0][0]'
                                                                 , 'inception5b-br3-1x1-relu[0][0]
                                                                 ']                               
                                                                                                  
 avg8x8 (AveragePooling2D)      (None, 1, 1, 1024)   0           ['inception5b[0][0]']            
                                                                                                  
 flatten (Flatten)              (None, 1024)         0           ['avg8x8[0][0]']                 
                                                                                                  
 predictions (Dense)            (None, 10)           10250       ['flatten[0][0]']                
                                                                                                  
==================================================================================================
Total params: 5,984,858
Trainable params: 5,970,426
Non-trainable params: 14,432
__________________________________________________________________________________________________

这段代码我们使用的是基于基本图像处理的数据增强,我们设置了一些,比如roattion_range也就是旋转的角度,以及左右偏移大概0.1,以及水平翻转等,这些都是可以在我们的ImageDataGenerator中进行设置

%%time
if data_augmentation:
    # datagen
    datagen = ImageDataGenerator(
        featurewise_center=False,  # set input mean to 0 over the dataset
        samplewise_center=False,  # set each sample mean to 0
        featurewise_std_normalization=False,  # divide inputs by std of the dataset
        samplewise_std_normalization=False,  # divide each input by its std
        zca_whitening=False,  # apply ZCA whitening
        rotation_range=15,  # randomly rotate images in the range (degrees, 0 to 180)
        width_shift_range=0.1,  # randomly shift images horizontally (fraction of total width)
        height_shift_range=0.1,  # randomly shift images vertically (fraction of total height)
        horizontal_flip=True,  # randomly flip images
        vertical_flip=False, # randomly flip images
    ) 
    # (std, mean, and principal components if ZCA whitening is applied).
    datagen.fit(x_train)
    print('train with data augmentation')
    history = model.fit_generator(generator=datagen.flow(x_train, y_train, batch_size=batch_size), 
                                epochs=epochs,
                                callbacks=[reduce_lr],
                                validation_data=(x_val, y_val)
                                )
else:
    print('train without data augmentation')
    history = model.fit(x_train, y_train, 
                      batch_size=batch_size, epochs=epochs, 
                      callbacks=[reduce_lr],
                      validation_data=(x_val, y_val)
                      )
train with data augmentation
Epoch 1/30
391/391 [==============================] - 517s 1s/step - loss: 1.5435 - accuracy: 0.4563 - val_loss: 1.4637 - val_accuracy: 0.5141 - lr: 0.1000
Epoch 2/30
391/391 [==============================] - 479s 1s/step - loss: 0.9685 - accuracy: 0.6567 - val_loss: 1.1314 - val_accuracy: 0.6326 - lr: 0.1000
Epoch 3/30
391/391 [==============================] - 478s 1s/step - loss: 0.7247 - accuracy: 0.7472 - val_loss: 0.8824 - val_accuracy: 0.7100 - lr: 0.1000
Epoch 4/30
391/391 [==============================] - ETA: 0s - loss: 0.5924 - accuracy: 0.7954
Epoch 4: ReduceLROnPlateau reducing learning rate to 0.093000001385808.
391/391 [==============================] - 479s 1s/step - loss: 0.5924 - accuracy: 0.7954 - val_loss: 1.1754 - val_accuracy: 0.6716 - lr: 0.1000
Epoch 5/30
391/391 [==============================] - 479s 1s/step - loss: 0.4967 - accuracy: 0.8290 - val_loss: 0.7147 - val_accuracy: 0.7688 - lr: 0.0930
Epoch 6/30
391/391 [==============================] - 479s 1s/step - loss: 0.4283 - accuracy: 0.8504 - val_loss: 0.5568 - val_accuracy: 0.8125 - lr: 0.0930
Epoch 7/30
391/391 [==============================] - 479s 1s/step - loss: 0.3841 - accuracy: 0.8672 - val_loss: 0.4610 - val_accuracy: 0.8434 - lr: 0.0930
Epoch 8/30
391/391 [==============================] - ETA: 0s - loss: 0.3445 - accuracy: 0.8803
Epoch 8: ReduceLROnPlateau reducing learning rate to 0.08649000205099583.
391/391 [==============================] - 479s 1s/step - loss: 0.3445 - accuracy: 0.8803 - val_loss: 0.5123 - val_accuracy: 0.8343 - lr: 0.0930
Epoch 9/30
391/391 [==============================] - 478s 1s/step - loss: 0.3034 - accuracy: 0.8949 - val_loss: 0.4373 - val_accuracy: 0.8478 - lr: 0.0865
Epoch 10/30
391/391 [==============================] - ETA: 0s - loss: 0.2811 - accuracy: 0.9021
Epoch 10: ReduceLROnPlateau reducing learning rate to 0.0804357048869133.
391/391 [==============================] - 478s 1s/step - loss: 0.2811 - accuracy: 0.9021 - val_loss: 0.7654 - val_accuracy: 0.7912 - lr: 0.0865
Epoch 11/30
391/391 [==============================] - ETA: 0s - loss: 0.2444 - accuracy: 0.9160
Epoch 11: ReduceLROnPlateau reducing learning rate to 0.07480520859360695.
391/391 [==============================] - 478s 1s/step - loss: 0.2444 - accuracy: 0.9160 - val_loss: 0.5647 - val_accuracy: 0.8336 - lr: 0.0804
Epoch 12/30
391/391 [==============================] - ETA: 0s - loss: 0.2210 - accuracy: 0.9224
Epoch 12: ReduceLROnPlateau reducing learning rate to 0.06956884302198887.
391/391 [==============================] - 479s 1s/step - loss: 0.2210 - accuracy: 0.9224 - val_loss: 0.5110 - val_accuracy: 0.8455 - lr: 0.0748
Epoch 13/30
391/391 [==============================] - 480s 1s/step - loss: 0.1933 - accuracy: 0.9329 - val_loss: 0.3669 - val_accuracy: 0.8872 - lr: 0.0696
Epoch 14/30
391/391 [==============================] - ETA: 0s - loss: 0.1786 - accuracy: 0.9379
Epoch 14: ReduceLROnPlateau reducing learning rate to 0.06469902366399766.
391/391 [==============================] - 479s 1s/step - loss: 0.1786 - accuracy: 0.9379 - val_loss: 0.5728 - val_accuracy: 0.8439 - lr: 0.0696
Epoch 15/30
391/391 [==============================] - ETA: 0s - loss: 0.1634 - accuracy: 0.9414
Epoch 15: ReduceLROnPlateau reducing learning rate to 0.06017009228467941.
391/391 [==============================] - 478s 1s/step - loss: 0.1634 - accuracy: 0.9414 - val_loss: 0.5808 - val_accuracy: 0.8468 - lr: 0.0647
Epoch 16/30
391/391 [==============================] - ETA: 0s - loss: 0.1416 - accuracy: 0.9501
Epoch 16: ReduceLROnPlateau reducing learning rate to 0.05595818527042866.
391/391 [==============================] - 479s 1s/step - loss: 0.1416 - accuracy: 0.9501 - val_loss: 0.5402 - val_accuracy: 0.8560 - lr: 0.0602
Epoch 17/30
391/391 [==============================] - ETA: 0s - loss: 0.1281 - accuracy: 0.9552
Epoch 17: ReduceLROnPlateau reducing learning rate to 0.05204111237078905.
391/391 [==============================] - 478s 1s/step - loss: 0.1281 - accuracy: 0.9552 - val_loss: 0.4609 - val_accuracy: 0.8759 - lr: 0.0560
Epoch 18/30
391/391 [==============================] - 487s 1s/step - loss: 0.1143 - accuracy: 0.9587 - val_loss: 0.3379 - val_accuracy: 0.9004 - lr: 0.0520
Epoch 19/30
391/391 [==============================] - ETA: 0s - loss: 0.1081 - accuracy: 0.9622
Epoch 19: ReduceLROnPlateau reducing learning rate to 0.04839823544025421.
391/391 [==============================] - 478s 1s/step - loss: 0.1081 - accuracy: 0.9622 - val_loss: 0.4783 - val_accuracy: 0.8749 - lr: 0.0520
Epoch 20/30
391/391 [==============================] - ETA: 0s - loss: 0.0949 - accuracy: 0.9657
Epoch 20: ReduceLROnPlateau reducing learning rate to 0.04501035757362843.
391/391 [==============================] - 479s 1s/step - loss: 0.0949 - accuracy: 0.9657 - val_loss: 0.4170 - val_accuracy: 0.8907 - lr: 0.0484
Epoch 21/30
391/391 [==============================] - ETA: 0s - loss: 0.0818 - accuracy: 0.9711
Epoch 21: ReduceLROnPlateau reducing learning rate to 0.04185963302850723.
391/391 [==============================] - 479s 1s/step - loss: 0.0818 - accuracy: 0.9711 - val_loss: 0.4150 - val_accuracy: 0.8899 - lr: 0.0450
Epoch 22/30
391/391 [==============================] - ETA: 0s - loss: 0.0729 - accuracy: 0.9738
Epoch 22: ReduceLROnPlateau reducing learning rate to 0.03892945982515812.
391/391 [==============================] - 478s 1s/step - loss: 0.0729 - accuracy: 0.9738 - val_loss: 0.4291 - val_accuracy: 0.8956 - lr: 0.0419
Epoch 23/30
391/391 [==============================] - ETA: 0s - loss: 0.0636 - accuracy: 0.9783
Epoch 23: ReduceLROnPlateau reducing learning rate to 0.03620439659804106.
391/391 [==============================] - 479s 1s/step - loss: 0.0636 - accuracy: 0.9783 - val_loss: 0.4060 - val_accuracy: 0.9007 - lr: 0.0389
Epoch 24/30
391/391 [==============================] - ETA: 0s - loss: 0.0606 - accuracy: 0.9791
Epoch 24: ReduceLROnPlateau reducing learning rate to 0.03367008984088898.
391/391 [==============================] - 479s 1s/step - loss: 0.0606 - accuracy: 0.9791 - val_loss: 0.4204 - val_accuracy: 0.9040 - lr: 0.0362
Epoch 25/30
391/391 [==============================] - ETA: 0s - loss: 0.0534 - accuracy: 0.9814
Epoch 25: ReduceLROnPlateau reducing learning rate to 0.03131318382918835.
391/391 [==============================] - 478s 1s/step - loss: 0.0534 - accuracy: 0.9814 - val_loss: 0.4334 - val_accuracy: 0.9018 - lr: 0.0337
Epoch 26/30
391/391 [==============================] - ETA: 0s - loss: 0.0451 - accuracy: 0.9839
Epoch 26: ReduceLROnPlateau reducing learning rate to 0.02912126172333956.
391/391 [==============================] - 478s 1s/step - loss: 0.0451 - accuracy: 0.9839 - val_loss: 0.4527 - val_accuracy: 0.8986 - lr: 0.0313
Epoch 27/30
391/391 [==============================] - ETA: 0s - loss: 0.0394 - accuracy: 0.9861
Epoch 27: ReduceLROnPlateau reducing learning rate to 0.027082772813737395.
391/391 [==============================] - 479s 1s/step - loss: 0.0394 - accuracy: 0.9861 - val_loss: 0.4816 - val_accuracy: 0.8999 - lr: 0.0291
Epoch 28/30
391/391 [==============================] - ETA: 0s - loss: 0.0381 - accuracy: 0.9868
Epoch 28: ReduceLROnPlateau reducing learning rate to 0.025186978820711376.
391/391 [==============================] - 480s 1s/step - loss: 0.0381 - accuracy: 0.9868 - val_loss: 0.3836 - val_accuracy: 0.9145 - lr: 0.0271
Epoch 29/30
391/391 [==============================] - ETA: 0s - loss: 0.0332 - accuracy: 0.9888
Epoch 29: ReduceLROnPlateau reducing learning rate to 0.02342388980090618.
391/391 [==============================] - 487s 1s/step - loss: 0.0332 - accuracy: 0.9888 - val_loss: 0.3788 - val_accuracy: 0.9146 - lr: 0.0252
Epoch 30/30
391/391 [==============================] - ETA: 0s - loss: 0.0255 - accuracy: 0.9913
Epoch 30: ReduceLROnPlateau reducing learning rate to 0.02178421737626195.
391/391 [==============================] - 479s 1s/step - loss: 0.0255 - accuracy: 0.9913 - val_loss: 0.4110 - val_accuracy: 0.9167 - lr: 0.0234
CPU times: user 3h 8min 49s, sys: 2min 28s, total: 3h 11min 17s
Wall time: 4h 17s
plot_model_history(history)

在这里插入图片描述

从结果可以看出,使用了数据增强之后,我们的结果是比没有进行数据增强是好的,已经达到了91.67%+的准确率,如果设置好数据增强的参数,很有可能可以得到更高的准确率,数据增强还是对结果有比较大的影响的。

loss,acc = model.evaluate(x_val,y_val)
print('evaluate loss:%f acc:%f' % (loss, acc))
313/313 [==============================] - 34s 109ms/step - loss: 0.4110 - accuracy: 0.9167
evaluate loss:0.410978 acc:0.916700

猜你喜欢

转载自blog.csdn.net/weixin_45508265/article/details/126669709
今日推荐