def get_model()

in tf-sentiment-script-mode/sentiment.py [0:0]


def get_model(learning_rate):

    mirrored_strategy = tf.distribute.MirroredStrategy()
    
    with mirrored_strategy.scope():
        embedding_layer = tf.keras.layers.Embedding(max_features,
                                                    embedding_dims,
                                                    input_length=maxlen)

        sequence_input = tf.keras.Input(shape=(maxlen,), dtype='int32')
        embedded_sequences = embedding_layer(sequence_input)
        x = tf.keras.layers.Dropout(0.2)(embedded_sequences)
        x = tf.keras.layers.Conv1D(filters, kernel_size, padding='valid', activation='relu', strides=1)(x)
        x = tf.keras.layers.MaxPooling1D()(x)
        x = tf.keras.layers.GlobalMaxPooling1D()(x)
        x = tf.keras.layers.Dense(hidden_dims, activation='relu')(x)
        x = tf.keras.layers.Dropout(0.2)(x)
        preds = tf.keras.layers.Dense(1, activation='sigmoid')(x)
        
        model = tf.keras.Model(sequence_input, preds)
        optimizer = tf.keras.optimizers.Adam(learning_rate)
        model.compile(loss='binary_crossentropy',
                  optimizer=optimizer,
                  metrics=['accuracy'])
    
    return model