python - 从 SimpleTransformer 的分类模型中提取层输出
问题描述
我已经为文本分类任务微调了一个 BERT 基础模型。现在,我想提取隐藏层输出,以便将此输出与其他特征结合起来训练随机森林模型。问题在于我不知道如何提取隐藏层输出。如果有人能在这方面帮助我,那就太好了。
from simpletransformers.classification import ClassificationModel
model_xlm = ClassificationModel('bert', 'bert-base-uncased')
model_xlm.train_model(df_train)
解决方案
在谷歌搜索中遇到了这个问题,最近通过阅读 SimpleTransformers git repo 中的源代码看到了这个问题的答案。
要获得隐藏层输出,只需将output_hidden_states传递给模型:
model_xlm = ClassificationModel('bert', 'bert-base-uncased', {"output_hidden_states": True})
那么当你调用 predict 时,你会得到这个:
preds, model_outputs, all_embedding_outputs, all_layer_hidden_states = model.predict(data)
推荐阅读
- python - 使用有效负载覆盖字典 Jinja 模板
- java - 将新的war文件上传到tomcat服务器。它将删除所有以前的数据。如何解决
- assembly - AVR 汇编 - 在 16 位两个补码负值中使用两个 8 位寄存器的操作
- flutter - Flutter - 如何使用 ScrollController 从 SingleChildScrollView 内的 firestore 获取数据 StreamBuilder 后跳转到底部
- java - 在 Android Studio 中上传图片时 FilePath 一直返回 null
- java - 无法在 Spring 中使用 @Query 注释执行 MongoDB 查询
- python - Python 多维数据集 Olap 框架切片器 Model.json
- sql - 如何计算一列相对于所有列的总和的百分比
- reactjs - 在 react.js 中切换类 div 元素
- flutter - 在 InteractiveViewer 中的图像上书写