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