Обучение, валидация, тестирование размера партии - PullRequest
0 голосов
/ 29 января 2019

Я занимаюсь трансферным обучением, используя Inception on Tensorflow, этот код обучения, которому я следовал: https://raw.githubusercontent.com/tensorflow/hub/master/examples/image_retraining/retrain.py

В нижней части кода мы можем указать параметры в соответствии с нашим набором данных.(есть обучение, val, процент теста и обучение, val, размер теста )
Допустим, у меня есть очень большой набор данных (1 мил), и я уже установилtraining, validation, testing percentage до 75: 15: 10 .

Но я понятия не имею, как правильно установить параметры пакета:

  • train_batch_size
  • validation_batch_size
  • test_batch_size

На данный момент я установил train_batch_size на 64, мне нужно установить такое же значение для validation_batch_size?Или он должен быть больше или меньше, чем train_batch_size?

Ответы [ 3 ]

0 голосов
/ 29 января 2019

Допустим, у меня очень большой набор данных (1 мил), и я уже установил процент обучения, проверки и тестирования на 75:15:10.

В очень большом наборе данных, как вы упомянули, вы можете использовать 98:1:1.

0 голосов
/ 29 января 2019

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

Размер пакета определяет, сколько примеров обучения обрабатывается параллельно для обучения / вывода.Размер партии во время обучения может влиять на то, насколько быстро и насколько хорошо ваши тренировки сходятся.Вы можете найти обсуждение этого эффекта здесь .Таким образом, для train_batch_size стоит выбрать размер пакета, который не является ни слишком маленьким, ни слишком большим (как обсуждалось в ранее связанном обсуждении).В некоторых приложениях использование наибольших возможных тренировочных партий может оказаться желательным, но в целом вы выбираете его с помощью экспериментов и проверки.

Однако для validation_batch_size и test_batch_size следует выбирать наибольшую партию.размер, который ваше оборудование может обрабатывать без исчерпания памяти и сбоев.Обнаружение этого обычно является простым методом проб и ошибок.Чем больше размер вашего пакета во время вывода, тем быстрее он будет выполняться, поскольку параллельно можно обрабатывать больше входных данных.

РЕДАКТИРОВАТЬ: вот дополнительная полезная ссылка (стр. 276) дляучебный компромисс между размером книги Гудфеллоу и др.

0 голосов
/ 29 января 2019

Итак, наборы поездов, тестов и проверок будут частью вашего основного набора данных.
Давайте предположим, что ваш набор данных имеет x наблюдений (т.е. x строк). Когда вы делаете train, validation and test spilts, вы делите его на указанную вами процентную сумму.
И сумма процентов должна складыватьсядо 100%.

Поэтому, когда вы делаете 75:15:10 разделение.Это означает, что данные x строк будут разбиты на x * .75 rows как набор поездов.Из оставшихся 25% -- y данных y * .15 будет установлен для проверки, а остальные будут проверены.
Как вы видите, все они в сумме составляют 100%.

Как правило, рекомендуется использовать поезд с тестовым разделением 75:25.

Чтобы узнать больше о том, почему они важны, прочитайте это Средняя статья .

...