Example #1
0
def identity(x,
             filters,
             weights_decay=0.,
             kernel_initializer='he_uniform',
             use_bias=False,
             bottleneck=2,
             activation=lambda: Activation('relu')):
    conv = Conv3D(filters // bottleneck,
                  kernel_size=(1, 1, 1),
                  padding='same',
                  use_bias=use_bias,
                  kernel_initializer=kernel_initializer,
                  kernel_regularizer=l2_penality(weights_decay))(x)
    bn = BatchNormalization(scale=False, axis=-1)(conv)
    conv = activation()(bn)
    conv = Conv3D(filters // bottleneck,
                  kernel_size=(3, 3, 3),
                  padding='same',
                  use_bias=use_bias,
                  kernel_initializer=kernel_initializer,
                  kernel_regularizer=l2_penality(weights_decay))(conv)
    bn = BatchNormalization(scale=False, axis=-1)(conv)
    conv = activation()(bn)
    conv = Conv3D(filters,
                  kernel_size=(1, 1, 1),
                  padding='same',
                  use_bias=use_bias,
                  kernel_initializer=kernel_initializer,
                  kernel_regularizer=l2_penality(weights_decay))(conv)
    bn = BatchNormalization(scale=False, axis=-1)(conv)
    residual = add([x, bn])
    relu = activation()(residual)
    return relu
Example #2
0
def Reduction_A(x, filters, weights_decay=0., kernel_initializer='he_uniform', use_bias=False, bottleneck=2, activation=lambda: Activation('relu')):
    #down1
    down1 = Conv3D(filters//bottleneck, kernel_size=(1,1,1), strides=(2,2,2), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(x)
    down1 = BatchNormalization(scale=False, axis=-1)(down1)
    down1 = activation()(down1)
    #down2
    down2 = MaxPooling3D((3, 3, 3), strides=(2, 2, 2),padding='same')(x)
    #down3
    down3 = Conv3D(filters//bottleneck, kernel_size=(1,1,1), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(x)
    down3 = BatchNormalization(scale=False, axis=-1)(down3)
    down3 = activation()(down3)
    
    down3 = Conv3D(filters//bottleneck, kernel_size=(3,3,3), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(down3)
    down3 = BatchNormalization(scale=False, axis=-1)(down3)
    down3 = activation()(down3)
    
    down3 = Conv3D(filters, kernel_size=(3,3,3), strides=(2,2,2), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(down3)
    down3 = BatchNormalization(scale=False, axis=-1)(down3)
    down3 = activation()(down3)
    
    down_mixed = concatenate([down1,down2,down3],axis=-1)
    
    down_mixed = Conv3D(filters, kernel_size=(1,1,1), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(down_mixed)
    down_mixed = BatchNormalization(scale=False, axis=-1)(down_mixed)
    down_mixed = activation()(down_mixed)
    return down_mixed
Example #3
0
def get_model(dhw=[48,48,48],weights_decay = 0.,kernel_initializer='he_uniform',weights=None, deeper=False, activation=lambda: Activation('relu')):
    shape = dhw+[1]
    
    inputs = Input(shape = shape)
    conv1 = Conv3D(32, kernel_size=(3, 3, 3), padding='same', use_bias=False, kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(inputs)
    
    id1 = identity_resnet_A(conv1, filters=32, weights_decay=weights_decay, kernel_initializer=kernel_initializer,
                    use_bias=False, bottleneck=2,activation=activation)

    down1 = Reduction_A(id1, filters=64, weights_decay=weights_decay, kernel_initializer=kernel_initializer,
               use_bias=False, bottleneck=2,activation=activation)
    
    id2 = identity_resnet_A(down1, filters=64, weights_decay=weights_decay, kernel_initializer=kernel_initializer,
                    use_bias=False, bottleneck=2,activation=activation)

    down2 = Reduction_A(id2, filters=128, weights_decay=weights_decay, kernel_initializer=kernel_initializer,
               use_bias=False, bottleneck=2,activation=activation)
    
    id3 = identity_resnet_A(down2, filters=128, weights_decay=weights_decay, kernel_initializer=kernel_initializer,
                    use_bias=False, bottleneck=2,activation=activation)

    down3 = Reduction_A(id3, filters=256, weights_decay=weights_decay, kernel_initializer=kernel_initializer,
               use_bias=False, bottleneck=2,activation=activation)
    
       
    pool = GlobalAvgPool3D()(down3)
    outputs = Dense(1, kernel_regularizer=l2_penality(weights_decay), kernel_initializer=kernel_initializer, activation='sigmoid')(pool)
    model = Model(inputs, outputs)
    if weights is not None:
        model.load_weights(weights, by_name=True)
    return model
Example #4
0
def identity_resnet_A(x, filters, weights_decay=0., kernel_initializer='he_uniform', use_bias=False, bottleneck=2, activation=lambda: Activation('relu')):
    #channel1
    conv_channel1 = Conv3D(filters//bottleneck, kernel_size=(1,1,1), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(x)
    conv_channel1 = BatchNormalization(scale=False, axis=-1)(conv_channel1)
    conv_channel1 = activation()(conv_channel1)
    #channel2
    conv_channel2 = Conv3D(filters//bottleneck, kernel_size=(1,1,1), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(x)
    conv_channel2 = BatchNormalization(scale=False, axis=-1)(conv_channel2)
    conv_channel2 = activation()(conv_channel2)
    
    conv_channel2 = Conv3D(filters//bottleneck, kernel_size=(3,3,3), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(conv_channel2)
    conv_channel2 = BatchNormalization(scale=False, axis=-1)(conv_channel2)
    conv_channel2 = activation()(conv_channel2)
    #channel3
    conv_channel3 = Conv3D(filters//bottleneck, kernel_size=(1,1,1), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(x)
    conv_channel3 = BatchNormalization(scale=False, axis=-1)(conv_channel3)
    conv_channel3 = activation()(conv_channel3)
    
    conv_channel3 = Conv3D(filters//bottleneck, kernel_size=(3,3,3), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(conv_channel3)
    conv_channel3 = BatchNormalization(scale=False, axis=-1)(conv_channel3)
    conv_channel3 = activation()(conv_channel3)
    
    conv_channel3 = Conv3D(filters//bottleneck, kernel_size=(3,3,3), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(conv_channel3)
    conv_channel3 = BatchNormalization(scale=False, axis=-1)(conv_channel3)
    conv_channel3 = activation()(conv_channel3)
    
    concat1 = concatenate([conv_channel1,conv_channel2,conv_channel3],axis=-1)
    
    conv_channel123 = Conv3D(filters, kernel_size=(1,1,1), padding='same', use_bias=use_bias,
                  kernel_initializer=kernel_initializer,kernel_regularizer=l2_penality(weights_decay))(concat1)
    conv_channel123 = BatchNormalization(scale=False, axis=-1)(conv_channel123)
    
    residual = add([x, conv_channel123])
    relu = activation()(residual)
    return relu