基于keras的resnet网络实现

resnet网络解决了在普通网络中,深度加深导致的梯度消失和梯度爆炸的问题。在resnet中,使用了残差学习的方法,使网络层数极大加深;与普通全连接网络的对比中,出现了跨层连接即short-cut。
在这里插入图片描述
改变了网络要学习的目标,由普通全连接网络的H(x)改变为了F(x)=H(x)-x,即残差。

① identity 块
在这里插入图片描述
② The convolutional 块
在这里插入图片描述

两者区别在于是否在shortcut上添加卷积操作

resnet结构图如下
在这里插入图片描述
在这里插入图片描述

参考上述操作描述及过程图可以很简单的编写代码:
** identity 块**

def identity_block(X,f,filters,stage,block):
    conv_name_base = 'res' + str(stage) + block + '_branch'
    bn_name_base = 'bn' + str(stage) + block + '_branch'
# 我认为相当于tensorflow里的一个占位符,之后主体model里输入filters
    F1,F2,F3 = filters
    X_shortcut = X

# First
    X = Conv2D(filters=F1,kernel_size=(1,1),strides=(1,1),padding='valid',
               name=conv_name_base+'2a',kernel_initializer=glorot_uniform(seed=0))(X)
    X = BatchNormalization(axis=3,name=bn_name_base+'2a')(X)
    X = Activation('relu')(X)

# 这里的f也相当于一个占位符,之后输入值
# Second
    X = Conv2D(filters=F2,kernel_size=(f,f),strides=(1,1),padding='same',
               name=conv_name_base+'2b',kernel_initializer=glorot_uniform(seed=0))(X)
    X = BatchNormalization(axis=3,name=bn_name_base+'2b')(X)
    X = Activation('relu')(X)

# Final
    X = Conv2D(filters=F3,kernel_size=(1,1),strides=(1,1),padding='valid',
               name=conv_name_base+'2c',kernel_initializer=glorot_uniform(seed=0))(X)
    X = BatchNormalization(axis=3,name=bn_name_base+'2c')(X)

    X = Add()([X,X_shortcut])
    X = Activation('relu')(X)

    return X

The convolutional 块

def convolutional_block(X,f,filters,stage,block,s=2):
    conv_name_base = 'res' + str(stage) + block +'_branch'
    bn_name_base = 'bn' + str(stage) + block +'_branch'

    F1,F2,F3 = filters
    X_shortcut = X

# First
    X = Conv2D(F1,(1,1),strides=(s,s),name=conv_name_base+'2a',padding='valid',
               kernel_initializer=glorot_uniform(seed=0))(X)
    X = BatchNormalization(axis=3,name=bn_name_base+'2a')(X)
    X = Activation('relu')(X)


#  Second
    X = Conv2D(F2,(f,f),strides=(1,1),name=conv_name_base+'2b',padding='same',
               kernel_initializer=glorot_uniform(seed=0))(X)
    X = BatchNormalization(axis=3,name=bn_name_base+'2b')(X)
    X = Activation('relu')(X)

#  Third
    X = Conv2D(F3,(1,1),strides=(1,1),name=conv_name_base+'2c',padding='valid',
               kernel_initializer=glorot_uniform(seed=0))(X)
    X = BatchNormalization(axis=3,name=bn_name_base+'2c')(X)

#   X_shortcut path
    X_shortcut = Conv2D(F3,(1,1),strides=(s,s),name=conv_name_base+'1',padding='valid',
                        kernel_initializer=glorot_uniform(seed=0))(X_shortcut)
    X_shortcut = BatchNormalization(axis=3,name=bn_name_base+'1')(X_shortcut)

#   ADD
    X = Add()([X,X_shortcut])
    X = Activation('relu')(X)

    return X

resnet

def ResNet50(input_shape=(64,64,3),classes=6):
#   定义输入层的输入形状
    X_input = Input(input_shape)

#  padding-zero
    X = ZeroPadding2D((3,3))(X_input)

#  stage 1
    X = Conv2D(filters=64,kernel_size=(7,7),strides=(2,2),name='conv',
               kernel_initializer=glorot_uniform(seed=0))(X)
    X = BatchNormalization(axis=3,name='bn_conv1')(X)
    X = Activation('relu')(X)
    X = MaxPool2D(pool_size=(3,3),strides=(2,2))(X)

#  stage 2
    X = convolutional_block(X,f=3,filters=[64,64,256],stage=2,block='a',s=1)
    X = identity_block(X,f=3,filters=[64,64,256],stage=2,block='b')
    X = identity_block(X,f=3,filters=[64,64,256],stage=2,block='c')

#  stage 3
    X = convolutional_block(X,f=3,filters=[128,128,512],stage=3,block='a',s=1)
    X = identity_block(X,f=3,filters=[128,128,512],stage=3,block='b')
    X = identity_block(X,f=3,filters=[128,128,512],stage=3,block='c')
    X = identity_block(X,f=3,filters=[128,128,512],stage=3,block='d')

#  stage 4
    X = convolutional_block(X,f=3,filters=[256,256,1024],stage=4,block='a',s=2)
    X = identity_block(X,f=3,filters=[256,256,1024],stage=4,block='b')
    X = identity_block(X,f=3,filters=[256,256,1024],stage=4,block='c')
    X = identity_block(X,f=3,filters=[256,256,1024],stage=4,block='d')
    X = identity_block(X,f=3,filters=[256,256,1024],stage=4,block='e')
    X = identity_block(X,f=3,filters=[256,256,1024],stage=4,block='f')

#  stage 5
    X = convolutional_block(X,f=3,filters=[512,512,2048],stage=5,block='a',s=2)
    X = identity_block(X,f=3,filters=[512,512,2048],stage=5,block='b')
    X = identity_block(X,f=3,filters=[512,512,2048],stage=5,block='c')

    X = AveragePooling2D(pool_size=(2,2),padding='same')(X)

    X = Flatten()(X)
    X = Dense(classes,activation='softmax',name='fc'+str(classes),
              kernel_initializer=glorot_uniform(seed=0))(X)

    model = Model(inputs=X_input,outputs=X,name='ResNet50')

    return model
# 打印模型结构
model.summary()
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_3 (InputLayer)            (None, 64, 64, 3)    0                                            
__________________________________________________________________________________________________
zero_padding2d_3 (ZeroPadding2D (None, 70, 70, 3)    0           input_3[0][0]                    
__________________________________________________________________________________________________
conv (Conv2D)                   (None, 32, 32, 64)   9472        zero_padding2d_3[0][0]           
__________________________________________________________________________________________________
bn_conv1 (BatchNormalization)   (None, 32, 32, 64)   256         conv[0][0]                       
__________________________________________________________________________________________________
activation_96 (Activation)      (None, 32, 32, 64)   0           bn_conv1[0][0]                   
__________________________________________________________________________________________________
max_pooling2d_3 (MaxPooling2D)  (None, 15, 15, 64)   0           activation_96[0][0]              
__________________________________________________________________________________________________
res2a_branch2a (Conv2D)         (None, 15, 15, 64)   4160        max_pooling2d_3[0][0]            
__________________________________________________________________________________________________
bn2a_branch2a (BatchNormalizati (None, 15, 15, 64)   256         res2a_branch2a[0][0]             
__________________________________________________________________________________________________
activation_97 (Activation)      (None, 15, 15, 64)   0           bn2a_branch2a[0][0]              
__________________________________________________________________________________________________
res2a_branch2b (Conv2D)         (None, 15, 15, 64)   36928       activation_97[0][0]              
__________________________________________________________________________________________________
bn2a_branch2b (BatchNormalizati (None, 15, 15, 64)   256         res2a_branch2b[0][0]             
__________________________________________________________________________________________________
activation_98 (Activation)      (None, 15, 15, 64)   0           bn2a_branch2b[0][0]              
__________________________________________________________________________________________________
res2a_branch2c (Conv2D)         (None, 15, 15, 256)  16640       activation_98[0][0]              
__________________________________________________________________________________________________
res2a_branch1 (Conv2D)          (None, 15, 15, 256)  16640       max_pooling2d_3[0][0]            
__________________________________________________________________________________________________
bn2a_branch2c (BatchNormalizati (None, 15, 15, 256)  1024        res2a_branch2c[0][0]             
__________________________________________________________________________________________________
bn2a_branch1 (BatchNormalizatio (None, 15, 15, 256)  1024        res2a_branch1[0][0]              
__________________________________________________________________________________________________
add_32 (Add)                    (None, 15, 15, 256)  0           bn2a_branch2c[0][0]              
                                                                 bn2a_branch1[0][0]               
__________________________________________________________________________________________________
activation_99 (Activation)      (None, 15, 15, 256)  0           add_32[0][0]                     
__________________________________________________________________________________________________
res2b_branch2a (Conv2D)         (None, 15, 15, 64)   16448       activation_99[0][0]              
__________________________________________________________________________________________________
bn2b_branch2a (BatchNormalizati (None, 15, 15, 64)   256         res2b_branch2a[0][0]             
__________________________________________________________________________________________________
activation_100 (Activation)     (None, 15, 15, 64)   0           bn2b_branch2a[0][0]              
__________________________________________________________________________________________________
res2b_branch2b (Conv2D)         (None, 15, 15, 64)   36928       activation_100[0][0]             
__________________________________________________________________________________________________
bn2b_branch2b (BatchNormalizati (None, 15, 15, 64)   256         res2b_branch2b[0][0]             
__________________________________________________________________________________________________
activation_101 (Activation)     (None, 15, 15, 64)   0           bn2b_branch2b[0][0]              
__________________________________________________________________________________________________
res2b_branch2c (Conv2D)         (None, 15, 15, 256)  16640       activation_101[0][0]             
__________________________________________________________________________________________________
bn2b_branch2c (BatchNormalizati (None, 15, 15, 256)  1024        res2b_branch2c[0][0]             
__________________________________________________________________________________________________
add_33 (Add)                    (None, 15, 15, 256)  0           bn2b_branch2c[0][0]              
                                                                 activation_99[0][0]              
__________________________________________________________________________________________________
activation_102 (Activation)     (None, 15, 15, 256)  0           add_33[0][0]                     
__________________________________________________________________________________________________
res2c_branch2a (Conv2D)         (None, 15, 15, 64)   16448       activation_102[0][0]             
__________________________________________________________________________________________________
bn2c_branch2a (BatchNormalizati (None, 15, 15, 64)   256         res2c_branch2a[0][0]             
__________________________________________________________________________________________________
activation_103 (Activation)     (None, 15, 15, 64)   0           bn2c_branch2a[0][0]              
__________________________________________________________________________________________________
res2c_branch2b (Conv2D)         (None, 15, 15, 64)   36928       activation_103[0][0]             
__________________________________________________________________________________________________
bn2c_branch2b (BatchNormalizati (None, 15, 15, 64)   256         res2c_branch2b[0][0]             
__________________________________________________________________________________________________
activation_104 (Activation)     (None, 15, 15, 64)   0           bn2c_branch2b[0][0]              
__________________________________________________________________________________________________
res2c_branch2c (Conv2D)         (None, 15, 15, 256)  16640       activation_104[0][0]             
__________________________________________________________________________________________________
bn2c_branch2c (BatchNormalizati (None, 15, 15, 256)  1024        res2c_branch2c[0][0]             
__________________________________________________________________________________________________
add_34 (Add)                    (None, 15, 15, 256)  0           bn2c_branch2c[0][0]              
                                                                 activation_102[0][0]             
__________________________________________________________________________________________________
activation_105 (Activation)     (None, 15, 15, 256)  0           add_34[0][0]                     
__________________________________________________________________________________________________
res3a_branch2a (Conv2D)         (None, 15, 15, 128)  32896       activation_105[0][0]             
__________________________________________________________________________________________________
bn3a_branch2a (BatchNormalizati (None, 15, 15, 128)  512         res3a_branch2a[0][0]             
__________________________________________________________________________________________________
activation_106 (Activation)     (None, 15, 15, 128)  0           bn3a_branch2a[0][0]              
__________________________________________________________________________________________________
res3a_branch2b (Conv2D)         (None, 15, 15, 128)  147584      activation_106[0][0]             
__________________________________________________________________________________________________
bn3a_branch2b (BatchNormalizati (None, 15, 15, 128)  512         res3a_branch2b[0][0]             
__________________________________________________________________________________________________
activation_107 (Activation)     (None, 15, 15, 128)  0           bn3a_branch2b[0][0]              
__________________________________________________________________________________________________
res3a_branch2c (Conv2D)         (None, 15, 15, 512)  66048       activation_107[0][0]             
__________________________________________________________________________________________________
res3a_branch1 (Conv2D)          (None, 15, 15, 512)  131584      activation_105[0][0]             
__________________________________________________________________________________________________
bn3a_branch2c (BatchNormalizati (None, 15, 15, 512)  2048        res3a_branch2c[0][0]             
__________________________________________________________________________________________________
bn3a_branch1 (BatchNormalizatio (None, 15, 15, 512)  2048        res3a_branch1[0][0]              
__________________________________________________________________________________________________
add_35 (Add)                    (None, 15, 15, 512)  0           bn3a_branch2c[0][0]              
                                                                 bn3a_branch1[0][0]               
__________________________________________________________________________________________________
activation_108 (Activation)     (None, 15, 15, 512)  0           add_35[0][0]                     
__________________________________________________________________________________________________
res3b_branch2a (Conv2D)         (None, 15, 15, 128)  65664       activation_108[0][0]             
__________________________________________________________________________________________________
bn3b_branch2a (BatchNormalizati (None, 15, 15, 128)  512         res3b_branch2a[0][0]             
__________________________________________________________________________________________________
activation_109 (Activation)     (None, 15, 15, 128)  0           bn3b_branch2a[0][0]              
__________________________________________________________________________________________________
res3b_branch2b (Conv2D)         (None, 15, 15, 128)  147584      activation_109[0][0]             
__________________________________________________________________________________________________
bn3b_branch2b (BatchNormalizati (None, 15, 15, 128)  512         res3b_branch2b[0][0]             
__________________________________________________________________________________________________
activation_110 (Activation)     (None, 15, 15, 128)  0           bn3b_branch2b[0][0]              
__________________________________________________________________________________________________
res3b_branch2c (Conv2D)         (None, 15, 15, 512)  66048       activation_110[0][0]             
__________________________________________________________________________________________________
bn3b_branch2c (BatchNormalizati (None, 15, 15, 512)  2048        res3b_branch2c[0][0]             
__________________________________________________________________________________________________
add_36 (Add)                    (None, 15, 15, 512)  0           bn3b_branch2c[0][0]              
                                                                 activation_108[0][0]             
__________________________________________________________________________________________________
activation_111 (Activation)     (None, 15, 15, 512)  0           add_36[0][0]                     
__________________________________________________________________________________________________
res3c_branch2a (Conv2D)         (None, 15, 15, 128)  65664       activation_111[0][0]             
__________________________________________________________________________________________________
bn3c_branch2a (BatchNormalizati (None, 15, 15, 128)  512         res3c_branch2a[0][0]             
__________________________________________________________________________________________________
activation_112 (Activation)     (None, 15, 15, 128)  0           bn3c_branch2a[0][0]              
__________________________________________________________________________________________________
res3c_branch2b (Conv2D)         (None, 15, 15, 128)  147584      activation_112[0][0]             
__________________________________________________________________________________________________
bn3c_branch2b (BatchNormalizati (None, 15, 15, 128)  512         res3c_branch2b[0][0]             
__________________________________________________________________________________________________
activation_113 (Activation)     (None, 15, 15, 128)  0           bn3c_branch2b[0][0]              
__________________________________________________________________________________________________
res3c_branch2c (Conv2D)         (None, 15, 15, 512)  66048       activation_113[0][0]             
__________________________________________________________________________________________________
bn3c_branch2c (BatchNormalizati (None, 15, 15, 512)  2048        res3c_branch2c[0][0]             
__________________________________________________________________________________________________
add_37 (Add)                    (None, 15, 15, 512)  0           bn3c_branch2c[0][0]              
                                                                 activation_111[0][0]             
__________________________________________________________________________________________________
activation_114 (Activation)     (None, 15, 15, 512)  0           add_37[0][0]                     
__________________________________________________________________________________________________
res3d_branch2a (Conv2D)         (None, 15, 15, 128)  65664       activation_114[0][0]             
__________________________________________________________________________________________________
bn3d_branch2a (BatchNormalizati (None, 15, 15, 128)  512         res3d_branch2a[0][0]             
__________________________________________________________________________________________________
activation_115 (Activation)     (None, 15, 15, 128)  0           bn3d_branch2a[0][0]              
__________________________________________________________________________________________________
res3d_branch2b (Conv2D)         (None, 15, 15, 128)  147584      activation_115[0][0]             
__________________________________________________________________________________________________
bn3d_branch2b (BatchNormalizati (None, 15, 15, 128)  512         res3d_branch2b[0][0]             
__________________________________________________________________________________________________
activation_116 (Activation)     (None, 15, 15, 128)  0           bn3d_branch2b[0][0]              
__________________________________________________________________________________________________
res3d_branch2c (Conv2D)         (None, 15, 15, 512)  66048       activation_116[0][0]             
__________________________________________________________________________________________________
bn3d_branch2c (BatchNormalizati (None, 15, 15, 512)  2048        res3d_branch2c[0][0]             
__________________________________________________________________________________________________
add_38 (Add)                    (None, 15, 15, 512)  0           bn3d_branch2c[0][0]              
                                                                 activation_114[0][0]             
__________________________________________________________________________________________________
activation_117 (Activation)     (None, 15, 15, 512)  0           add_38[0][0]                     
__________________________________________________________________________________________________
res4a_branch2a (Conv2D)         (None, 8, 8, 256)    131328      activation_117[0][0]             
__________________________________________________________________________________________________
bn4a_branch2a (BatchNormalizati (None, 8, 8, 256)    1024        res4a_branch2a[0][0]             
__________________________________________________________________________________________________
activation_118 (Activation)     (None, 8, 8, 256)    0           bn4a_branch2a[0][0]              
__________________________________________________________________________________________________
res4a_branch2b (Conv2D)         (None, 8, 8, 256)    590080      activation_118[0][0]             
__________________________________________________________________________________________________
bn4a_branch2b (BatchNormalizati (None, 8, 8, 256)    1024        res4a_branch2b[0][0]             
__________________________________________________________________________________________________
activation_119 (Activation)     (None, 8, 8, 256)    0           bn4a_branch2b[0][0]              
__________________________________________________________________________________________________
res4a_branch2c (Conv2D)         (None, 8, 8, 1024)   263168      activation_119[0][0]             
__________________________________________________________________________________________________
res4a_branch1 (Conv2D)          (None, 8, 8, 1024)   525312      activation_117[0][0]             
__________________________________________________________________________________________________
bn4a_branch2c (BatchNormalizati (None, 8, 8, 1024)   4096        res4a_branch2c[0][0]             
__________________________________________________________________________________________________
bn4a_branch1 (BatchNormalizatio (None, 8, 8, 1024)   4096        res4a_branch1[0][0]              
__________________________________________________________________________________________________
add_39 (Add)                    (None, 8, 8, 1024)   0           bn4a_branch2c[0][0]              
                                                                 bn4a_branch1[0][0]               
__________________________________________________________________________________________________
activation_120 (Activation)     (None, 8, 8, 1024)   0           add_39[0][0]                     
__________________________________________________________________________________________________
res4b_branch2a (Conv2D)         (None, 8, 8, 256)    262400      activation_120[0][0]             
__________________________________________________________________________________________________
bn4b_branch2a (BatchNormalizati (None, 8, 8, 256)    1024        res4b_branch2a[0][0]             
__________________________________________________________________________________________________
activation_121 (Activation)     (None, 8, 8, 256)    0           bn4b_branch2a[0][0]              
__________________________________________________________________________________________________
res4b_branch2b (Conv2D)         (None, 8, 8, 256)    590080      activation_121[0][0]             
__________________________________________________________________________________________________
bn4b_branch2b (BatchNormalizati (None, 8, 8, 256)    1024        res4b_branch2b[0][0]             
__________________________________________________________________________________________________
activation_122 (Activation)     (None, 8, 8, 256)    0           bn4b_branch2b[0][0]              
__________________________________________________________________________________________________
res4b_branch2c (Conv2D)         (None, 8, 8, 1024)   263168      activation_122[0][0]             
__________________________________________________________________________________________________
bn4b_branch2c (BatchNormalizati (None, 8, 8, 1024)   4096        res4b_branch2c[0][0]             
__________________________________________________________________________________________________
add_40 (Add)                    (None, 8, 8, 1024)   0           bn4b_branch2c[0][0]              
                                                                 activation_120[0][0]             
__________________________________________________________________________________________________
activation_123 (Activation)     (None, 8, 8, 1024)   0           add_40[0][0]                     
__________________________________________________________________________________________________
res4c_branch2a (Conv2D)         (None, 8, 8, 256)    262400      activation_123[0][0]             
__________________________________________________________________________________________________
bn4c_branch2a (BatchNormalizati (None, 8, 8, 256)    1024        res4c_branch2a[0][0]             
__________________________________________________________________________________________________
activation_124 (Activation)     (None, 8, 8, 256)    0           bn4c_branch2a[0][0]              
__________________________________________________________________________________________________
res4c_branch2b (Conv2D)         (None, 8, 8, 256)    590080      activation_124[0][0]             
__________________________________________________________________________________________________
bn4c_branch2b (BatchNormalizati (None, 8, 8, 256)    1024        res4c_branch2b[0][0]             
__________________________________________________________________________________________________
activation_125 (Activation)     (None, 8, 8, 256)    0           bn4c_branch2b[0][0]              
__________________________________________________________________________________________________
res4c_branch2c (Conv2D)         (None, 8, 8, 1024)   263168      activation_125[0][0]             
__________________________________________________________________________________________________
bn4c_branch2c (BatchNormalizati (None, 8, 8, 1024)   4096        res4c_branch2c[0][0]             
__________________________________________________________________________________________________
add_41 (Add)                    (None, 8, 8, 1024)   0           bn4c_branch2c[0][0]              
                                                                 activation_123[0][0]             
__________________________________________________________________________________________________
activation_126 (Activation)     (None, 8, 8, 1024)   0           add_41[0][0]                     
__________________________________________________________________________________________________
res4d_branch2a (Conv2D)         (None, 8, 8, 256)    262400      activation_126[0][0]             
__________________________________________________________________________________________________
bn4d_branch2a (BatchNormalizati (None, 8, 8, 256)    1024        res4d_branch2a[0][0]             
__________________________________________________________________________________________________
activation_127 (Activation)     (None, 8, 8, 256)    0           bn4d_branch2a[0][0]              
__________________________________________________________________________________________________
res4d_branch2b (Conv2D)         (None, 8, 8, 256)    590080      activation_127[0][0]             
__________________________________________________________________________________________________
bn4d_branch2b (BatchNormalizati (None, 8, 8, 256)    1024        res4d_branch2b[0][0]             
__________________________________________________________________________________________________
activation_128 (Activation)     (None, 8, 8, 256)    0           bn4d_branch2b[0][0]              
__________________________________________________________________________________________________
res4d_branch2c (Conv2D)         (None, 8, 8, 1024)   263168      activation_128[0][0]             
__________________________________________________________________________________________________
bn4d_branch2c (BatchNormalizati (None, 8, 8, 1024)   4096        res4d_branch2c[0][0]             
__________________________________________________________________________________________________
add_42 (Add)                    (None, 8, 8, 1024)   0           bn4d_branch2c[0][0]              
                                                                 activation_126[0][0]             
__________________________________________________________________________________________________
activation_129 (Activation)     (None, 8, 8, 1024)   0           add_42[0][0]                     
__________________________________________________________________________________________________
res4e_branch2a (Conv2D)         (None, 8, 8, 256)    262400      activation_129[0][0]             
__________________________________________________________________________________________________
bn4e_branch2a (BatchNormalizati (None, 8, 8, 256)    1024        res4e_branch2a[0][0]             
__________________________________________________________________________________________________
activation_130 (Activation)     (None, 8, 8, 256)    0           bn4e_branch2a[0][0]              
__________________________________________________________________________________________________
res4e_branch2b (Conv2D)         (None, 8, 8, 256)    590080      activation_130[0][0]             
__________________________________________________________________________________________________
bn4e_branch2b (BatchNormalizati (None, 8, 8, 256)    1024        res4e_branch2b[0][0]             
__________________________________________________________________________________________________
activation_131 (Activation)     (None, 8, 8, 256)    0           bn4e_branch2b[0][0]              
__________________________________________________________________________________________________
res4e_branch2c (Conv2D)         (None, 8, 8, 1024)   263168      activation_131[0][0]             
__________________________________________________________________________________________________
bn4e_branch2c (BatchNormalizati (None, 8, 8, 1024)   4096        res4e_branch2c[0][0]             
__________________________________________________________________________________________________
add_43 (Add)                    (None, 8, 8, 1024)   0           bn4e_branch2c[0][0]              
                                                                 activation_129[0][0]             
__________________________________________________________________________________________________
activation_132 (Activation)     (None, 8, 8, 1024)   0           add_43[0][0]                     
__________________________________________________________________________________________________
res5a_branch2a (Conv2D)         (None, 4, 4, 512)    524800      activation_132[0][0]             
__________________________________________________________________________________________________
bn5a_branch2a (BatchNormalizati (None, 4, 4, 512)    2048        res5a_branch2a[0][0]             
__________________________________________________________________________________________________
activation_133 (Activation)     (None, 4, 4, 512)    0           bn5a_branch2a[0][0]              
__________________________________________________________________________________________________
res5a_branch2b (Conv2D)         (None, 4, 4, 512)    2359808     activation_133[0][0]             
__________________________________________________________________________________________________
bn5a_branch2b (BatchNormalizati (None, 4, 4, 512)    2048        res5a_branch2b[0][0]             
__________________________________________________________________________________________________
activation_134 (Activation)     (None, 4, 4, 512)    0           bn5a_branch2b[0][0]              
__________________________________________________________________________________________________
res5a_branch2c (Conv2D)         (None, 4, 4, 2048)   1050624     activation_134[0][0]             
__________________________________________________________________________________________________
res5a_branch1 (Conv2D)          (None, 4, 4, 2048)   2099200     activation_132[0][0]             
__________________________________________________________________________________________________
bn5a_branch2c (BatchNormalizati (None, 4, 4, 2048)   8192        res5a_branch2c[0][0]             
__________________________________________________________________________________________________
bn5a_branch1 (BatchNormalizatio (None, 4, 4, 2048)   8192        res5a_branch1[0][0]              
__________________________________________________________________________________________________
add_44 (Add)                    (None, 4, 4, 2048)   0           bn5a_branch2c[0][0]              
                                                                 bn5a_branch1[0][0]               
__________________________________________________________________________________________________
activation_135 (Activation)     (None, 4, 4, 2048)   0           add_44[0][0]                     
__________________________________________________________________________________________________
res5b_branch2a (Conv2D)         (None, 4, 4, 512)    1049088     activation_135[0][0]             
__________________________________________________________________________________________________
bn5b_branch2a (BatchNormalizati (None, 4, 4, 512)    2048        res5b_branch2a[0][0]             
__________________________________________________________________________________________________
activation_136 (Activation)     (None, 4, 4, 512)    0           bn5b_branch2a[0][0]              
__________________________________________________________________________________________________
res5b_branch2b (Conv2D)         (None, 4, 4, 512)    2359808     activation_136[0][0]             
__________________________________________________________________________________________________
bn5b_branch2b (BatchNormalizati (None, 4, 4, 512)    2048        res5b_branch2b[0][0]             
__________________________________________________________________________________________________
activation_137 (Activation)     (None, 4, 4, 512)    0           bn5b_branch2b[0][0]              
__________________________________________________________________________________________________
res5b_branch2c (Conv2D)         (None, 4, 4, 2048)   1050624     activation_137[0][0]             
__________________________________________________________________________________________________
bn5b_branch2c (BatchNormalizati (None, 4, 4, 2048)   8192        res5b_branch2c[0][0]             
__________________________________________________________________________________________________
add_45 (Add)                    (None, 4, 4, 2048)   0           bn5b_branch2c[0][0]              
                                                                 activation_135[0][0]             
__________________________________________________________________________________________________
activation_138 (Activation)     (None, 4, 4, 2048)   0           add_45[0][0]                     
__________________________________________________________________________________________________
res5c_branch2a (Conv2D)         (None, 4, 4, 512)    1049088     activation_138[0][0]             
__________________________________________________________________________________________________
bn5c_branch2a (BatchNormalizati (None, 4, 4, 512)    2048        res5c_branch2a[0][0]             
__________________________________________________________________________________________________
activation_139 (Activation)     (None, 4, 4, 512)    0           bn5c_branch2a[0][0]              
__________________________________________________________________________________________________
res5c_branch2b (Conv2D)         (None, 4, 4, 512)    2359808     activation_139[0][0]             
__________________________________________________________________________________________________
bn5c_branch2b (BatchNormalizati (None, 4, 4, 512)    2048        res5c_branch2b[0][0]             
__________________________________________________________________________________________________
activation_140 (Activation)     (None, 4, 4, 512)    0           bn5c_branch2b[0][0]              
__________________________________________________________________________________________________
res5c_branch2c (Conv2D)         (None, 4, 4, 2048)   1050624     activation_140[0][0]             
__________________________________________________________________________________________________
bn5c_branch2c (BatchNormalizati (None, 4, 4, 2048)   8192        res5c_branch2c[0][0]             
__________________________________________________________________________________________________
add_46 (Add)                    (None, 4, 4, 2048)   0           bn5c_branch2c[0][0]              
                                                                 activation_138[0][0]             
__________________________________________________________________________________________________
activation_141 (Activation)     (None, 4, 4, 2048)   0           add_46[0][0]                     
__________________________________________________________________________________________________
average_pooling2d_3 (AveragePoo (None, 2, 2, 2048)   0           activation_141[0][0]             
__________________________________________________________________________________________________
flatten_3 (Flatten)             (None, 8192)         0           average_pooling2d_3[0][0]        
__________________________________________________________________________________________________
fc6 (Dense)                     (None, 6)            49158       flatten_3[0][0]                  
==================================================================================================
Total params: 22,515,078
Trainable params: 22,465,030
Non-trainable params: 50,048
__________________________________________________________________________________________________

之前相应模块库导入就不放了,无非就是keras.layers,keras.models这些,参照之前的网络结构图及上面的描述,导入相应的即可。
keras的模型可视化环境配置还有点问题,现在还没搞好,之后贴。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值