コード例 #1
0
ファイル: midi.py プロジェクト: arngorf/Fibsem-Segmentation
def make_model(num_classes, name='midi', **kwargs):

    input_shape = (25, 25, 25)
    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    model = Sequential()

    #model = all_preprocessing(model, 'all', input_shape=k_input_shape, **kwargs)
    model = all_preprocessing(model, ['normalize'],
                              input_shape=k_input_shape,
                              **kwargs)

    model.add(Flatten())

    model.add(Dense(150))
    model.add(Activation('relu'))
    model.add(Dropout(0.75))

    model.add(Dense(150))
    model.add(Activation('relu'))
    model.add(Dropout(0.75))

    model.add(Dense(num_classes))
    model.add(Activation('softmax'))

    return model, name, input_shape
コード例 #2
0
def make_model(num_classes, **model_params):

    input_shape = (13, 13, 13)
    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    if 'normalize' in model_params:
        normalize = model_params['normalize']
    else:
        normalize = True

    if 'dense_dropout_p' in model_params:
        dense_dropout_p = model_params['dense_dropout_p']
    else:
        dense_dropout_p = 0.25

    model = Sequential()

    model = all_preprocessing(model,
                              normalize=True,
                              input_shape=k_input_shape,
                              **model_params)

    model.add(Flatten())

    model.add(Dense(150))
    model.add(Activation('relu'))
    model.add(Dropout(dense_dropout_p))

    model.add(Dense(num_classes))
    model.add(Activation('softmax'))

    return model, input_shape
コード例 #3
0
def make_model(num_classes, name='conv_2_layer', **model_params):

    if not 'normalize' in model_params:
        model_params['normalize'] = True

    if not 'rotation' in model_params:
        model_params['rotation'] = False

    if not 'foveation' in model_params:
        model_params['foveation'] = False

    if not 'noise' in model_params:
        model_params['noise'] = False

    if not 'linear_deformation' in model_params:
        model_params['linear_deformation'] = False

    if not 'non_linear_resampling' in model_params:
        model_params['non_linear_resampling'] = False

    if 'conv_dropout_p' in model_params:
        conv_dropout_p = model_params['conv_dropout_p']
    else:
        conv_dropout_p = 0.0

    if 'dense_dropout_p' in model_params:
        dense_dropout_p = model_params['dense_dropout_p']
    else:
        dense_dropout_p = 0.0

    name = name + '_' + str(conv_dropout_p) + '_' + str(dense_dropout_p)
    input_shape = (25, 25, 25)
    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    model = Sequential()

    model = all_preprocessing(model, input_shape=k_input_shape, **model_params)

    model.add(Conv3D(48, (5, 5, 5), padding='valid'))
    model.add(Activation('relu'))
    model.add(MaxPooling3D(pool_size=(2, 2, 2)))
    model.add(Dropout(conv_dropout_p))

    model.add(Conv3D(64, (4, 4, 4), padding='valid'))
    model.add(Activation('relu'))
    model.add(MaxPooling3D(pool_size=(2, 2, 2)))
    model.add(Dropout(conv_dropout_p))

    model.add(Flatten())
    model.add(Dense(150))
    model.add(Activation('relu'))
    model.add(Dropout(dense_dropout_p))

    model.add(Dense(num_classes))
    model.add(Activation('softmax'))  #softmax

    return model, input_shape
コード例 #4
0
def make_model(num_classes,
               name='test_foveation',
               **kwargs):

    input_shape = (25, 25, 25)
    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    model = Sequential()

    model = all_preprocessing(model, foveation=True, input_shape=k_input_shape, **kwargs)

    return model, name, input_shape
コード例 #5
0
def make_model(num_classes, **kwargs):

    input_shape = (25, 25, 25)
    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    model = Sequential()

    model = all_preprocessing(model,
                              normalize=True,
                              input_shape=k_input_shape,
                              **kwargs)

    return model, input_shape
コード例 #6
0
def make_model(num_classes, name='test_rotate', **kwargs):

    input_shape = (25, 25, 25)
    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    model = Sequential()

    model = all_preprocessing(model,
                              rotation=True,
                              input_shape=k_input_shape,
                              force_use_in_test_phase=True,
                              **kwargs)

    return model, name, input_shape
コード例 #7
0
def make_model(num_classes,
               conv_dropout_p=0.75,
               dense_dropout_p=0.5,
               name='conv_2_layer_pass_through',
               **kwargs):

    name = name + '_' + str(conv_dropout_p) + '_' + str(dense_dropout_p)
    input_shape = (25, 25, 25)
    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    inputs = Input(shape=(input_shape[0], input_shape[1], input_shape[2], 1))

    processed = all_preprocessing(inputs, 'all', functional_api=True, **kwargs)

    conv_1 = Conv3D(48, (5, 5, 5), padding='valid')(processed)
    conv_1 = Activation('relu')(conv_1)

    pool_1 = MaxPooling3D(pool_size=(3, 3, 3))(conv_1)
    drop_1a = Dropout(conv_dropout_p)(pool_1)

    crop_1 = Cropping3D((7, 7, 7))(conv_1)
    drop_1b = Dropout(conv_dropout_p)(crop_1)

    conc_1 = Concatenate(axis=4)([drop_1a, drop_1b])

    conv_2 = Conv3D(96, (3, 3, 3), padding='valid')(conc_1)
    conv_2 = Activation('relu')(conv_2)

    pool_2 = MaxPooling3D(pool_size=(3, 3, 3))(conv_2)
    drop_2a = Dropout(conv_dropout_p)(pool_2)

    crop_2 = Cropping3D((2, 2, 2))(conv_2)
    drop_2b = Dropout(conv_dropout_p)(crop_2)

    conc_2 = Concatenate(axis=4)([drop_2a, drop_2b])

    flat = Flatten()(conc_2)
    fc_1 = Dense(150)(flat)
    fc_1 = Activation('relu')(fc_1)
    drop_3 = Dropout(dense_dropout_p)(fc_1)

    fc_2 = Dense(num_classes)(drop_3)
    predictions = Activation('softmax')(fc_2)

    model = Model(inputs=inputs, outputs=predictions)

    return model, name, input_shape
コード例 #8
0
def make_model(num_classes, name='test_non_linear_resampling', **kwargs):

    input_shape = (25, 25, 25)
    target_shape = (15, 15, 15)
    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    model = Sequential()

    model = all_preprocessing(model,
                              non_linear_resampling=True,
                              input_shape=k_input_shape,
                              target_shape=target_shape,
                              force_use_in_test_phase=True,
                              **kwargs)

    model.add(Cropping3D((5, 5, 5)))

    return model, name, input_shape
コード例 #9
0
def make_model(num_classes, name='conv_2_layer_non_linear', **kwargs):

    conv_dropout_p = 0.5
    dense_dropout_p = 0.5

    input_shape = (25, 25, 25)
    target_shape = (15, 15, 15)
    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    model = Sequential()

    model = all_preprocessing(model,
                              normalize=True,
                              rotation=True,
                              foveation=False,
                              noise=True,
                              linear_deformation=False,
                              non_linear_resampling=True,
                              input_shape=k_input_shape,
                              target_shape=target_shape,
                              force_use_in_test_phase=False,
                              **kwargs)

    model.add(Cropping3D((5, 5, 5)))

    model.add(Conv3D(16, (7, 7, 7), padding='valid'))
    model.add(Activation('relu'))
    model.add(Dropout(conv_dropout_p))

    model.add(Conv3D(16, (7, 7, 7), padding='valid'))
    model.add(Activation('relu'))
    model.add(Dropout(conv_dropout_p))

    model.add(Flatten())
    model.add(Dense(50))
    model.add(Activation('relu'))
    model.add(Dropout(dense_dropout_p))

    model.add(Dense(num_classes))
    model.add(Activation('softmax'))  #softmax

    return model, name, input_shape
コード例 #10
0
def make_model(num_classes, **kwargs):

    input_shape = (25, 25, 25)
    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    model = Sequential()

    model = all_preprocessing(
        model,
        normalize=True,
        rotation=True,
        noise=True,
        input_shape=k_input_shape,
        **kwargs,
    )

    model.add(Flatten())

    model.add(Dense(num_classes))
    model.add(Activation('softmax'))

    return model, input_shape
コード例 #11
0
def make_model(num_classes,
               conv_dropout_p=0.75,
               dense_dropout_p=0.5,
               name='conv_2_layer_no_pool',
               **kwargs):

    name = name + '_' + str(conv_dropout_p) + '_' + str(dense_dropout_p)
    input_shape = (25, 25, 25)
    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    model = Sequential()

    model = all_preprocessing(model,
                              'all',
                              input_shape=k_input_shape,
                              **kwargs)

    model.add(Conv3D(48, (5, 5, 5), padding='valid'))
    model.add(Activation('relu'))
    model.add(Cropping3D(((5, 5), (5, 5), (5, 5))))
    model.add(Dropout(conv_dropout_p))

    model.add(Conv3D(48, (3, 3, 3), padding='valid'))
    model.add(Activation('relu'))
    model.add(Cropping3D(((3, 3), (3, 3), (3, 3))))
    model.add(Dropout(conv_dropout_p))

    model.add(Flatten())
    model.add(Dense(150))
    model.add(Activation('relu'))
    model.add(Dropout(dense_dropout_p))

    model.add(Dense(num_classes))
    model.add(Activation('softmax'))

    return model, name, input_shape
コード例 #12
0
def make_model(num_classes,
               rotation,
               foveation,
               noise,
               linear_deformation,
               non_linear_resampling,
               name='conv_2_layer_conf',
               **kwargs):

    conv_dropout_p = 0.5
    dense_dropout_p = 0.5

    if non_linear_resampling:
        input_shape = (25, 25, 25)
    else:
        input_shape = (15, 15, 15)
    target_shape = (15, 15, 15)

    k_input_shape = (input_shape[0], input_shape[1], input_shape[2], 1)

    model = Sequential()

    if rotation:
        name += '_rotation'
    if foveation:
        name += '_foveation'
    if noise:
        name += '_noise'
    if linear_deformation:
        name += '_linear_deformation'
    if non_linear_resampling:
        name += '_non_linear_resampling'

    model = all_preprocessing(model,
                              normalize=True,
                              rotation=rotation,
                              foveation=foveation,
                              noise=noise,
                              linear_deformation=linear_deformation,
                              non_linear_resampling=non_linear_resampling,
                              input_shape=k_input_shape,
                              target_shape=target_shape,
                              **kwargs)
    if non_linear_resampling:
        model.add(Cropping3D((5, 5, 5)))

    model.add(Conv3D(32, (7, 7, 7), padding='valid'))
    model.add(Activation('relu'))
    model.add(Dropout(conv_dropout_p))

    model.add(Conv3D(32, (7, 7, 7), padding='valid'))
    model.add(Activation('relu'))
    model.add(Dropout(conv_dropout_p))

    model.add(Flatten())
    model.add(Dense(100))
    model.add(Activation('relu'))
    model.add(Dropout(dense_dropout_p))

    model.add(Dense(num_classes))
    model.add(Activation('softmax'))  #softmax

    return model, name, input_shape