def build_model()

in code/source/custom_layer.py [0:0]


def build_model(max_seq_length,
                n_tags, 
                lr=0.00004,
                drop_out=0,
                bert_path="https://tfhub.dev/tensorflow/bert_en_uncased_L-12_H-768_A-12/3"
               ):
    """
    This function builds the architecture of the model using Keras layers as well
    as the custom BertLayer
    """
    in_id = tensorflow.keras.layers.Input(shape=(max_seq_length,), name="input_word_ids")
    in_mask = tensorflow.keras.layers.Input(shape=(max_seq_length,), name="input_mask")
    in_segment = tensorflow.keras.layers.Input(shape=(max_seq_length,), name="input_type_ids")
    model_inputs = [in_id, in_mask, in_segment]
    
    bert_layer = BertLayer(bert_path=bert_path)
    bert_layer_output = bert_layer(model_inputs)
    dropout_layer = tensorflow.keras.layers.Dropout(rate=drop_out, noise_shape=None, seed=None)(bert_layer_output)
    model_outputs = tensorflow.keras.layers.Dense(n_tags, activation=tensorflow.keras.activations.softmax)(dropout_layer)
    model = tensorflow.keras.models.Model(inputs=model_inputs, outputs=model_outputs)

    model.compile(optimizer=tensorflow.keras.optimizers.Adam(lr=lr), loss=tensorflow.keras.losses.categorical_crossentropy, metrics=['accuracy'])

    model.summary(100)
    return model