Ejemplo n.º 1
0
def sequence_only_cnn(max_residues, padding):
    amino_inputs = Input(shape=(23, max_residues + 2 + 2 * padding,
                                1))  # 22 amino acids plus null/beginning/end

    amino_model = Conv2D(400, (23, 5),
                         kernel_regularizer=l2(.0),
                         activation='relu')(amino_inputs)
    amino_model = Dropout(0.3)(amino_model)
    amino_model = Conv2D(200, (1, 9),
                         kernel_regularizer=l2(.0),
                         activation='relu')(amino_model)
    amino_model = Dropout(0.3)(amino_model)
    amino_model = Conv2D(100, (1, 17),
                         kernel_regularizer=l2(.0),
                         activation='relu')(amino_model)
    amino_model = Dropout(0.3)(amino_model)

    model = Flatten()(amino_model)

    model = Dense(80, activation='elu', kernel_regularizer=l2(.0))(model)
    model = Dropout(0.3)(model)
    model = Dense(40, activation='elu', kernel_regularizer=l2(.0))(model)
    model = Dense(1, activation='linear', kernel_regularizer=l2(.0))(model)
    model = Model(inputs=amino_inputs, outputs=model)
    model.compile(optimizer='adam', loss='mse')

    th_model = KerasRegressionTwoDimensional(
        model=model,
        model_author="Jed",
        model_description=
        'Sequence CNN regressor: 400x5->200x9->100x17->80->40->1',
        batch_size=128,
        epochs=25)
    return th_model
def sequence_only_cnn_classification(max_residues,
                                     padding,
                                     assign_class_weights=False):
    amino_inputs = Input(shape=(23, max_residues + 2 + 2 * padding,
                                1))  # 22 amino acids plus null/beginning/end

    amino_model = Conv2D(400, (23, 5),
                         kernel_regularizer=l2(.0),
                         activation='relu')(amino_inputs)
    amino_model = Dropout(0.3)(amino_model)
    amino_model = Conv2D(200, (1, 9),
                         kernel_regularizer=l2(.0),
                         activation='relu')(amino_model)
    amino_model = Dropout(0.3)(amino_model)
    amino_model = Conv2D(100, (1, 17),
                         kernel_regularizer=l2(.0),
                         activation='relu')(amino_model)
    amino_model = Dropout(0.3)(amino_model)

    model = Flatten()(amino_model)

    model = Dense(80, activation='elu', kernel_regularizer=l2(.0))(model)
    model = Dropout(0.3)(model)
    model = Dense(40, activation='elu', kernel_regularizer=l2(.0))(model)
    model = Dense(1, activation='sigmoid', kernel_regularizer=l2(.0))(model)
    model = Model(inputs=amino_inputs, outputs=model)
    model.compile(optimizer='adam',
                  loss='binary_crossentropy',
                  metrics=['binary_crossentropy'])

    th_model = KerasClassificationTwoDimensional(
        model=model,
        model_author="Jed and Hamed",
        model_description='Sequence CNN classifier v1, assign_class_weights = {}'
        .format(assign_class_weights),
        batch_size=128,
        epochs=25,
        assign_class_weights=assign_class_weights)
    return th_model
Ejemplo n.º 3
0
def get_3d_cnn_model_image_only():
    inputA = Input(shape=(4, 108, 192, 3))

    model = Convolution3D(filters=32,
                          kernel_size=(3, 3, 3),
                          activation='relu',
                          padding='same',
                          data_format='channels_last')(inputA)

    model = MaxPooling3D(pool_size=(2, 2, 2))(model)

    model = Flatten()(model)

    model = Dense(1, activation='sigmoid')(model)

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

    model.compile(loss='binary_crossentropy',
                  optimizer='adam',
                  metrics=['accuracy'])

    print_summary(model, line_length=120)

    return model