天天看點

CV:基于Keras利用CNN主流架構之mini_XCEPTION訓練情感分類模型hdf5并儲存到指定檔案夾下

圖示過程

CV:基于Keras利用CNN主流架構之mini_XCEPTION訓練情感分類模型hdf5并儲存到指定檔案夾下

核心代碼

def mini_XCEPTION(input_shape, num_classes, l2_regularization=0.01):

   regularization = l2(l2_regularization)

   # base

   img_input = Input(input_shape)

   x = Conv2D(8, (3, 3), strides=(1, 1), kernel_regularizer=regularization,

                                           use_bias=False)(img_input)

   x = BatchNormalization()(x)

   x = Activation('relu')(x)

                                           use_bias=False)(x)

   # module 1

   residual = Conv2D(16, (1, 1), strides=(2, 2),

                     padding='same', use_bias=False)(x)

   residual = BatchNormalization()(residual)

   x = SeparableConv2D(16, (3, 3), padding='same',

                       kernel_regularizer=regularization,

                       use_bias=False)(x)

   x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)

   x = layers.add([x, residual])

   # module 2

   residual = Conv2D(32, (1, 1), strides=(2, 2),

   x = SeparableConv2D(32, (3, 3), padding='same',

   # module 3

   residual = Conv2D(64, (1, 1), strides=(2, 2),

   x = SeparableConv2D(64, (3, 3), padding='same',

   # module 4

   residual = Conv2D(128, (1, 1), strides=(2, 2),

   x = SeparableConv2D(128, (3, 3), padding='same',

   x = Conv2D(num_classes, (3, 3),

           #kernel_regularizer=regularization,

           padding='same')(x)

   x = GlobalAveragePooling2D()(x)

   output = Activation('softmax',name='predictions')(x)

   model = Model(img_input, output)

   return model

繼續閱讀