AttributeError: слой tf_bert_model не имеет входящих узлов - PullRequest
1 голос
/ 06 августа 2020

У меня есть модель глубокого обучения, в которой используется слой BERT из библиотеки Huggingface (TF=2.0, Transformers=2.8.0).

Модель состоит из: BERT-вложения -> Внимание -> Softmax. Также я использую tf.keras.callbacks.ModelCheckpoint, чтобы сохранить лучшую модель во время обучения.

Я пытаюсь разрезать модель, чтобы получить веса внимания.

Моя проблема в том, что если я попытаюсь доступ к выходным данным любого слоя после загрузки сохраненной модели с помощью output1 = model.layers[3].output, я получаю эту ошибку:

AttributeError: Layer tf_bert_model не имеет входящих узлов.

но если Я делаю то же самое с исходной моделью, не сохраняя ее (сразу после завершения model.fit ()), у меня нет проблем.

Вот как я загружаю сохраненную модель:

model = tf.keras.models.load_model(model_dir)

Есть ли проблема с этим способом?, Учитывая, что он работает для прогнозирования.

...