Я выполняю задачу классификации длинного текста, в которой содержится более 10000 слов в документе, я планирую использовать Bert в качестве кодировщика абзацев, а затем пошагово подавать вложения абзаца в BiLSTM. Сеть выглядит следующим образом:
Входные данные: (размер_пакета, макс_параграф_лен, макс_токен_пер_пара, размер_встраивания)
слой берта: (max_paragraph_len, paragraph_embedding_size)
слой lstm: ???
выходной слой: (размер_пакции, размер_классификации)
Как это реализовать с помощью кераса? Я использую keras load_trained_model_from_checkpoint для загрузки модели берта
bert_model = load_trained_model_from_checkpoint(
config_path,
model_path,
training=False,
use_adapter=True,
trainable=['Encoder-{}-MultiHeadSelfAttention-Adapter'.format(i + 1) for i in range(layer_num)] +
['Encoder-{}-FeedForward-Adapter'.format(i + 1) for i in range(layer_num)] +
['Encoder-{}-MultiHeadSelfAttention-Norm'.format(i + 1) for i in range(layer_num)] +
['Encoder-{}-FeedForward-Norm'.format(i + 1) for i in range(layer_num)],
)