【问题标题】:How to predict on a test sequence using a distilbert model?如何使用 distilbert 模型预测测试序列?
【发布时间】:2021-08-29 15:43:24
【问题描述】:

我尝试使用带有 distilbert 模型的 Ktrain 对测试序列进行预测,我的代码如下所示:

trn, val, preproc = text.texts_from_array(x_train=x_train, y_train=y_train,
                                          x_test=x_test, y_test=y_test,
                                          class_names=train_b.target_names,
                                          preprocess_mode='distilbert',
                                          maxlen=350)
model = text.text_classifier('distilbert', train_data=trn, preproc=preproc,multilabel=True)
learner = ktrain.get_learner(model, train_data=trn, val_data=val, batch_size=64)
y_pred = learner.model.predict(val,verbose = 0)

在 Ktrain 的 nbsvm、fasttext、bigru 等模型的其他实现中,它非常简单,因为 texts_from_array 函数返回一个 numpy 数组,但使用 distilbert 它返回一个 TransformerDataset,因此无法使用 learner.model.predict 预测序列() 因为它会生成 python 索引异常。鉴于我有多标签分类问题,我也无法使用 validate() 方法生成混淆矩阵。我的问题是如何使用 distilbert 使用 Ktrain 对测试序列进行测试,我对此的需求来自于我的度量函数是基于 sklearn.metric 库实现的,并且它需要 numpy 格式的测试和验证序列。

【问题讨论】:

    标签: tensorflow nlp multilabel-classification distilbert ktrain


    【解决方案1】:

    您可以使用Predictor 实例,如tutorial 所示。

    Predictor 只是使用 preproc 对象将原始文本转换为模型期望的格式并将其提供给模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 2021-09-04
      • 2020-08-24
      相关资源
      最近更新 更多