defmulti_level_contextual (patch_size, N_channels, nb_classes):#Number of convolutional filters to use on each layerNb_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 on 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 (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 (+, 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]) returnModel
Multi-level contextual 3D convolutional neural Networks