Обучение TFBertForSequenceClassification с пользовательскими данными X и Y - PullRequest
6 голосов
/ 29 февраля 2020

Я работаю над проблемой TextClassification, для которой я пытаюсь отследить свою модель на TFBertForSequenceClassification, приведенной в библиотеке huggingface-transformers.

Я следовал примеру, приведенному на их странице github Я могу запустить пример кода с данными примерами, используя tensorflow_datasets.load('glue/mrpc'). Однако я не могу найти пример того, как загрузить свои собственные пользовательские данные и передать их в model.fit(train_dataset, epochs=2, steps_per_epoch=115, validation_data=valid_dataset, validation_steps=7).

Как я могу определить свой собственный X, выполнить токенизацию моего X и подготовить train_dataset с моими X и Y. Где X представляет мой входной текст, а Y представляет классификационную категорию данного X.

Пример Рамка данных обучения:

    text    category_index
0   Assorted Print Joggers - Pack of 2 ,/ Gray Pri...   0
1   "Buckle" ( Matt ) for 35 mm Width Belt  0
2   (Gagam 07) Barcelona Football Jersey Home 17 1...   2
3   (Pack of 3 Pair) Flocklined Reusable Rubber Ha...   1
4   (Summer special Offer)Firststep new born baby ...   0

1 Ответ

0 голосов
/ 21 марта 2020

Вам необходимо преобразовать входные данные в формат tf.data с ожидаемой схемой, чтобы вы могли сначала создать объекты, а затем обучить свою классификационную модель.

Если вы посмотрите на наборы данных склеивания, которые идут для tensorflow_datasets ссылка вы увидите, что данные имеют указанную c схему:

dataset_ops.get_legacy_output_classes(data['train'])

{'idx': tensorflow.python.framework.ops.Tensor,
 'label': tensorflow.python.framework.ops.Tensor,
 'sentence': tensorflow.python.framework.ops.Tensor}

такая схема ожидается, если вы хотите использовать convert_examples_to_features для подготовки данных готов к внедрению в вашу модель.

Преобразование данных не так просто, как, например, с pandas, и будет сильно зависеть от структуры ваших входных данных.

Например, вы можете найти здесь шаг за шагом сделайте такое преобразование. Это можно сделать с помощью tf.data.Dataset.from_generator.

...