Извлечение вывода слоя из модели классификации SimpleTransformer
Я настроил базовую модель Берта для задачи классификации текста. Теперь я хочу извлечь вывод скрытого слоя, чтобы объединить этот вывод с другими функциями для обучения модели случайного леса. Проблема заключается в том, что я не знаю, как извлечь вывод скрытого слоя. Было бы здорово, если бы кто-нибудь мог мне помочь в этом отношении.
from simpletransformers.classification import ClassificationModel
model_xlm = ClassificationModel('bert', 'bert-base-uncased')
model_xlm.train_model(df_train)
1 ответ
Наткнулся на это в поиске Google и недавно увидел ответ на этот вопрос, прочитав исходный код в репозитории SimpleTransformers git.
Чтобы получить вывод скрытого слоя, просто передайте output_hidden_states в модель:
model_xlm = ClassificationModel('bert', 'bert-base-uncased', {"output_hidden_states": True})
затем, когда вы вызовете прогнозирование, вы получите следующее:
preds, model_outputs, all_embedding_outputs, all_layer_hidden_states = model.predict(data)
Вот ссылка в источнике:https://github.com/ThilinaRajapakse/simpletransformers/blob/68f0faace15530fa1a738a34ea13521eec4518b1/simpletransformers/classification/classification_model.py#L2242