Как наборы данных структурированы в TensorFlow? - PullRequest
0 голосов
/ 18 апреля 2019

В моем первом проекте TensorFlow у меня есть большой набор данных (1M элементов), который содержит 8 категорий элементов, причем каждая категория имеет разное количество элементов, конечно. Я хочу разбить большой набор данных на 10 эксклюзивных небольших наборов данных, каждый из которых имеет примерно 1/10 каждой категории. (Это для 10-кратной перекрестной проверки.)

Вот как я это делаю. Я получаю 80 наборов данных, в каждой категории по 10 небольших наборов данных, а затем случайным образом выбираю данные из 80 из них, используя sample_from_datasets. Однако после некоторых шагов я встретил много предупреждений: «DirectedInterleave выбрал исчерпанный ввод: 36», где 36 могут быть некоторыми другими целыми числами.

Причина, по которой я хочу сделать sample_from_datasets, заключается в том, что я пытался перетасовать исходный набор данных. Даже если перетасовать всего 0,4 х элементов, на завершение потребуется много времени (около 20 минут).

Мои вопросы 1. На основании моего случая, какой-нибудь хороший совет о том, как структурировать наборы данных? 2. Нормально ли долго тасовать? лучшее решение для перетасовки? 3. почему я получаю, чтобы этот DirectIngerleave выбрал исчерпанный ввод: предупреждение? и что это значит?

спасибо.

1 Ответ

0 голосов
/ 18 апреля 2019

Разделите ваши целые наборы данных на категории Обучение, Тестирование и Проверка. Поскольку у вас есть данные 1M, вы можете разделить их следующим образом: 60% обучения, 20% тестирования и 20% проверки. Разделение наборов данных полностью зависит от вас и ваших требований. Но обычно максимальные данные используются для обучения модели. Затем остальные наборы данных можно использовать для тестирования и проверки. Поскольку у вас есть десять классов наборов данных, разбейте каждую категорию на категории Обучение, Тестирование и Проверка.

Пусть у вас есть данные категорий A, B, C и D. Разделите ваши данные «A», «B», «C» и «D», как показано ниже:

«А» - 60% на обучение, 20% тестирование и 20% подтверждение

'B' - 60% на обучение, 20% тестирование и 20% подтверждение

'C' - 60% на обучение, 20% тестирование и 20% подтверждение

'D'- 60% на обучение, 20% тестирование и 20% подтверждение

Наконец, объедините все наборы данных A, B, C и D для обучения, тестирования и проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...