def multi_level_contextual(patch_size, n_channels, nb_classes):# number of convolutional filters to use at each layer ???nb_filters = [64, 64, 64] ???# level of pooling to perform at each layer (POOL x POOL) ???nb_pool = [2, 2, 2] ???# level of convolution to perform at each layer (CONV x CONV) ???nb_conv = [5, 5, 5] ???inputs = Input((patch_size, patch_size, patch_size, n_channels)) ???c1 = Conv3D(nb_filters[0], (nb_conv[0], nb_conv[0], nb_conv[0]), padding=‘same‘, activation=‘relu‘, kernel_regularizer=regularizers.l2(0.01))(inputs) ???c2 = BatchNormalization(epsilon=1e-06, momentum=0.9, weights=None)(c1) ???c3 = MaxPooling3D(pool_size=(nb_pool[0], nb_pool[0], nb_pool[0]))(c2) ???c4 = SpatialDropout3D(0.5)(c3) ???c5 = Conv3D(nb_filters[1],(nb_conv[1], nb_conv[1], nb_conv[1]), padding=‘same‘, activation=‘relu‘, kernel_regularizer=regularizers.l2(0.01))(c4) ???????c6 = BatchNormalization(epsilon=1e-06, momentum=0.9, weights=None)(c5) ???c7 = Conv3D(nb_filters[2],(nb_conv[2], nb_conv[2], nb_conv[2]), padding=‘same‘, activation=‘relu‘, kernel_regularizer=regularizers.l2(0.01))(c6) ???c8 = BatchNormalization(epsilon=1e-06, momentum=0.9, weights=None)(c7) ???c9 = SpatialDropout3D(0.5)(c8) ???c10 = Flatten()(c9) ???????c11 = Dense(256, kernel_initializer=‘glorot_normal‘, activation=‘relu‘, kernel_regularizer=regularizers.l2(0.01))(c10) ???c12 = Dense(nb_classes, kernel_initializer=‘glorot_normal‘, kernel_regularizer=regularizers.l2(0.01))(c11) ???c13 = Activation(‘softmax‘)(c12) ???c00 = Cropping3D(cropping=((patch_size//2-patch_size//4, patch_size//2+patch_size//4), (patch_size//2-patch_size//4, patch_size//2+patch_size//4), (patch_size//2-patch_size//4, patch_size//2+patch_size//4)))(inputs) ???c01 = Conv3D(nb_filters[0], (nb_conv[0], nb_conv[0], nb_conv[0]), padding=‘same‘, activation=‘relu‘, kernel_regularizer=regularizers.l2(0.01))(c00) ???c02 = BatchNormalization(epsilon=1e-06, momentum=0.9, weights=None)(c01) ???c03 = SpatialDropout3D(0.5)(c02) ???c04 = Conv3D(nb_filters[1],(nb_conv[1], nb_conv[1], nb_conv[1]), padding=‘same‘, activation=‘relu‘, kernel_regularizer=regularizers.l2(0.01))(c03) ???c05 = BatchNormalization(epsilon=1e-06, momentum=0.9, weights=None)(c04) ???c06 = Conv3D(nb_filters[2],(nb_conv[2], nb_conv[2], nb_conv[2]), padding=‘same‘, activation=‘relu‘, kernel_regularizer=regularizers.l2(0.01))(c05) ???c07 = BatchNormalization(epsilon=1e-06, momentum=0.9, weights=None)(c06) ???c08 = SpatialDropout3D(0.5)(c07) ???c09 = Flatten()(c08) ???c010 = Dense(128, kernel_initializer=‘glorot_normal‘, activation=‘relu‘, kernel_regularizer=regularizers.l2(0.01))(c09) ???c011 = Dense(nb_classes, kernel_initializer=‘glorot_normal‘, kernel_regularizer=regularizers.l2(0.01))(c010) ???c012 = Activation(‘softmax‘)(c011) ???model = Model(inputs=[inputs], outputs=[(c13+c012)/2]) ???return model
Multi-level Contextual 3D Convolutional Neural Networks
原文地址:https://www.cnblogs.com/zhanfeng-xing/p/8876200.html