def model_EED(input_col, input_row):
_input = Input(shape=(input_col, input_row, 1), name='input')
Feature = Conv2D(nb_filter=64, nb_row=3, nb_col=3, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(_input)
Feature = Conv2D(nb_filter=64, nb_row=3, nb_col=3, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Feature)
Feature3 = Conv2D(nb_filter=64, nb_row=3, nb_col=3, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Feature)
Feature_out = merge(inputs=[Feature, Feature3], mode='sum')
# Upsampling
Upsampling1 = Conv2D(nb_filter=8, nb_row=1, nb_col=1, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Feature_out)
Upsampling2 = Deconvolution2D(nb_filter=8, nb_row=14, nb_col=14,
output_shape=(None, input_col * 2, input_row * 2, 8),
subsample=(2, 2), border_mode='same',
init='glorot_uniform', activation='relu')(Upsampling1)
Upsampling3 = Conv2D(nb_filter=64, nb_row=1, nb_col=1, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Upsampling2)
# Mulyi-scale Reconstruction
Reslayer1 = Conv2D(nb_filter=64, nb_row=3, nb_col=3, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Upsampling3)
Reslayer2 = Conv2D(nb_filter=64, nb_row=3, nb_col=3, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Reslayer1)
Block1 = merge(inputs=[Reslayer1, Reslayer2], mode='sum')
Reslayer3 = Conv2D(nb_filter=64, nb_row=3, nb_col=3, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Block1)
Reslayer4 = Conv2D(nb_filter=64, nb_row=3, nb_col=3, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Reslayer3)
Block2 = merge(inputs=[Reslayer3, Reslayer4], mode='sum')
# ***************//
Multi_scale1 = Conv2D(nb_filter=16, nb_row=1, nb_col=1, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Block2)
Multi_scale2a = Conv2D(nb_filter=16, nb_row=1, nb_col=1, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Multi_scale1)
Multi_scale2b = Conv2D(nb_filter=16, nb_row=3, nb_col=3, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Multi_scale1)
Multi_scale2c = Conv2D(nb_filter=16, nb_row=5, nb_col=5, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Multi_scale1)
Multi_scale2d = Conv2D(nb_filter=16, nb_row=7, nb_col=7, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Multi_scale1)
Multi_scale2 = merge(inputs=[Multi_scale2a, Multi_scale2b, Multi_scale2c, Multi_scale2d], mode='concat')
out = Conv2D(nb_filter=1, nb_row=1, nb_col=1, init='glorot_uniform',
activation='relu', border_mode='same', bias=True)(Multi_scale2)
model = Model(input=_input, output=out)
Adam = adam(lr=0.001)
model.compile(optimizer=Adam, loss='mean_squared_error', metrics=['mean_squared_error'])
return model
评论列表
文章目录