Commit d5d35336 authored by Florian RICHOUX's avatar Florian RICHOUX

LSTM 64x2 Embedding 4


Former-commit-id: e0d37b13
parent a82238d7
......@@ -17,6 +17,7 @@ from models.lstm64_3conv3_2dense_shared import LSTM64_3Conv3_2Dense_S
from models.lstm64drop_3conv3_3dense_shared import LSTM64Drop_3Conv3_3Dense_S
from models.lstm64x2_3conv3_10dense_shared import LSTM64x2_3Conv3_10Dense_S
from models.lstm64x2_embed2_10dense_shared import LSTM64x2_Embed2_10Dense_S
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
......@@ -83,6 +84,8 @@ def factory_model( model_name ):
return LSTM64x2_3Conv3_10Dense_S(), 'lstm64x2_3conv3_10dense_shared'
elif model_name == 'lstm64x2_embed2_10dense_shared':
return LSTM64x2_Embed2_10Dense_S(), 'lstm64x2_embed2_10dense_shared'
elif model_name == 'lstm64x2_embed4_10dense_shared':
return LSTM64x2_Embed4_10Dense_S(), 'lstm64x2_embed4_10dense_shared'
elif model_name == 'fc6_embed3_2dense':
return FC6_Embed3_2Dense(), 'fc6_embed3_2dense'
elif model_name == 'fc2_2dense':
......@@ -118,7 +121,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, fc6_embed3_2dense, fc2_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')
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 LSTM64x2_Embed4_10Dense_S(AbstractModel):
def __init__(self):
super().__init__()
def get_model(self):
embed = layers.Embedding(21, 4, embeddings_initializer='glorot_uniform', mask_zero=True)
lstm1 = layers.LSTM(64, return_sequences=True)
lstm2 = layers.LSTM(64)
input1 = Input(shape=(None,), dtype=np.float32, name='protein1')
protein1 = embed(input1)
protein1 = lstm1(protein1)
protein1 = lstm2(protein1)
input2 = Input(shape=(None,), dtype=np.float32, name='protein2')
protein2 = embed(input2)
protein2 = lstm1(protein2)
protein2 = lstm2(protein2)
head = layers.concatenate([protein1, protein2], axis=-1)
head = layers.Dense(100, activation='relu')(head)
head = layers.BatchNormalization()(head)
head = layers.Dense(100, activation='relu')(head)
head = layers.BatchNormalization()(head)
head = layers.Dense(50, activation='relu')(head)
head = layers.BatchNormalization()(head)
head = layers.Dense(50, activation='relu')(head)
head = layers.BatchNormalization()(head)
head = layers.Dense(50, activation='relu')(head)
head = layers.BatchNormalization()(head)
head = layers.Dense(25, activation='relu')(head)
head = layers.BatchNormalization()(head)
head = layers.Dense(25, activation='relu')(head)
head = layers.BatchNormalization()(head)
head = layers.Dense(25, activation='relu')(head)
head = layers.BatchNormalization()(head)
head = layers.Dense(25, 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