小编Jer*_*meK的帖子

Keras - 如何与2个独立的FullyConnected层共享CNN的卷积部分

我正致力于CNN,旨在从一组心脏MRI图像中预测2种不同的体积(收缩压和舒张压).

我做的第一件事就是实现2个独立的"顺序"CNN,每个CNN预测一个音量.

首先定义模型:

def get_model():
    dim_img = 64
    model = Sequential()
    model.add(Activation(activation=center_normalize, input_shape=(30, dim_img, dim_img)))

    # CONVOLUTIONAL LAYERS
    model.add(Convolution2D(32, 3, 3, border_mode='same'))
    model.add(Activation('relu'))
    model.add(Convolution2D(32, 3, 3,border_mode='same'))
    model.add(Activation('relu'))
    model.add(Dropout(0.25))

    model.add(Convolution2D(64, 3, 3, border_mode='same'))
    model.add(Activation('relu'))
    model.add(Convolution2D(64, 3, 3, border_mode='same'))
    model.add(Activation('relu'))
    model.add(ZeroPadding2D(padding=(1, 1)))
    model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
    model.add(Dropout(0.25))

    # FULLY CONNECTED LAYERS
    model.add(Flatten())
    model.add(Dense(512, W_regularizer=l2(1e-3)))
    model.add(Activation('relu'))
    model.add(Dropout(0.5))
    model.add(Dense(1))

    adam = Adam(lr=0.0001)
    model.compile(optimizer=adam, loss=root_mean_squared_error)
    return model
Run Code Online (Sandbox Code Playgroud)

然后,我调用两个不同的模型来预测2个不同的卷:

model_systole= get_model()
model_diastole= get_model()
print('Fitting systole model...')
hist_systole = model_systole.fit_generator(generator_train_sys, nb_epoch = 1,samples_per_epoch=N_train,validation_data=generator_validate_sys,nb_val_samples=N_validate)

print('Fitting Diastole model...')
hist_diastole …
Run Code Online (Sandbox Code Playgroud)

python theano conv-neural-network keras tensorflow

3
推荐指数
1
解决办法
891
查看次数

标签 统计

conv-neural-network ×1

keras ×1

python ×1

tensorflow ×1

theano ×1