Извлечение вывода слоя из модели классификации 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

Другие вопросы по тегам