У меня есть модель глубокого обучения, в которой используется слой 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)
Есть ли проблема с этим способом?, Учитывая, что он работает для прогнозирования.