【发布时间】: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