Как сделать прогноз на тестовой последовательности, используя модель Дистилберта?

Я пытаюсь предсказать тестовую последовательность, используя 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)

В другой реализации моделей, таких как nbsvm, fasttext, bigru от Ktrain, это довольно просто, поскольку функцияtext_from_array возвращает массив numpy, но с distilbert она возвращает TransformerDataset, поэтому невозможно предсказать последовательность с помощью Learner.model.predict() как он генерирует исключение индекса Python. Я также не могу использовать метод validate () для создания матрицы путаницы, учитывая, что у меня проблема с классификацией нескольких меток. Мой вопрос заключается в том, как я могу поэтому протестировать тестовую последовательность с помощью Ktrain с использованием distilbert, моя потребность в этом связана с тем, что моя метрическая функция реализована на основе библиотеки sklearn.metric, и ей требуется последовательность тестирования и проверки в формате numpy.

1 ответ

Вы можете использовать экземпляр, как показано в руководстве .

В Predictor просто использует preproc объект для преобразования необработанного текста в формат, ожидаемый моделью, и передает его модели.

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