Как сделать прогноз на тестовой последовательности, используя модель Дистилберта?
Я пытаюсь предсказать тестовую последовательность, используя 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
объект для преобразования необработанного текста в формат, ожидаемый моделью, и передает его модели.