Commit c67da9d0 authored by Florian RICHOUX's avatar Florian RICHOUX

Add FC 20 model


Former-commit-id: 5cab121e
parent a41570ad
......@@ -21,6 +21,7 @@ from models.lstm64x2_embed4_10dense_shared import LSTM64x2_Embed4_10Dense_S
from models.fc6_embed3_2dense import FC6_Embed3_2Dense
from models.fc2_2dense import FC2_2Dense
from models.fc2_100_2dense import FC2_100_2Dense
from models.fc2_20_2dense import FC2_20_2Dense
import tensorflow as tf
from keras import callbacks
......@@ -93,6 +94,8 @@ def factory_model( model_name ):
return FC2_2Dense(), 'fc2_2dense'
elif model_name == 'fc2_100_2dense':
return FC2_100_2Dense(), 'fc2_100_2dense'
elif model_name == 'fc2_20_2dense':
return FC2_20_2Dense(), 'fc2_20_2dense'
else:
print("Model unknown. Terminating.")
sys.exit(1)
......@@ -124,7 +127,7 @@ def make_parser():
parser.add_argument('-train', type=str, help='File containing the training set')
parser.add_argument('-val', type=str, help='File containing the validation set')
parser.add_argument('-test', type=str, help='File containing the test set')
parser.add_argument('-model', type=str, help='choose among: lstm32_3conv3_2dense, lstm32_3conv3_2dense_shared, lstm32_3conv4_2dense_shared, lstm64_3conv3_2dense_shared, lstm64drop_3conv3_3dense_shared, lstm64x2_3conv3_10dense_shared, lstm64x2_embed2_10dense_shared, lstm64x2_embed4_10dense_shared, fc6_embed3_2dense, fc2_2dense, fc2_100_2dense')
parser.add_argument('-model', type=str, help='choose among: lstm32_3conv3_2dense, lstm32_3conv3_2dense_shared, lstm32_3conv4_2dense_shared, lstm64_3conv3_2dense_shared, lstm64drop_3conv3_3dense_shared, lstm64x2_3conv3_10dense_shared, lstm64x2_embed2_10dense_shared, lstm64x2_embed4_10dense_shared, fc6_embed3_2dense, fc2_2dense, fc2_100_2dense, fc2_20_2dense')
parser.add_argument('-epochs', type=int, default=50, help='Number of epochs [default: 50]')
parser.add_argument('-batch', type=int, default=64, help='Batch size [default: 64]')
parser.add_argument('-patience', type=int, default=0, help='Number of epochs before triggering the early stopping criterion [default: infinite patience]')
......
from keras.models import Model
from keras import layers
from keras import Input
import numpy as np
import tensorflow as tf
from models.abstract_model import AbstractModel
class FC2_20_2Dense(AbstractModel):
def __init__(self):
super().__init__()
def get_model(self):
input1 = Input(shape=(1166,20,), dtype=np.float32, name='protein1')
protein1 = layers.Flatten()(input1)
protein1 = layers.Dense(20, activation='relu')(protein1)
protein1 = layers.BatchNormalization()(protein1)
protein1 = layers.Dense(20, activation='relu')(protein1)
protein1 = layers.BatchNormalization()(protein1)
input2 = Input(shape=(1166,20,), dtype=np.float32, name='protein2')
protein2 = layers.Flatten()(input2)
protein2 = layers.Dense(20, activation='relu')(protein2)
protein2 = layers.BatchNormalization()(protein2)
protein2 = layers.Dense(20, activation='relu')(protein2)
protein2 = layers.BatchNormalization()(protein2)
head = layers.concatenate([protein1, protein2], axis=-1)
head = layers.Dense(20, activation='relu')(head)
head = layers.BatchNormalization()(head)
head = layers.Dense(1)(head)
output = layers.Activation(tf.nn.sigmoid)(head)
model = Model(inputs=[input1, input2], outputs=output)
return model
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment