Каффе нужны данные для перетасовки?

Я преобразую данные моего изображения в формат caffe db (leveldb, lmdb), используя C++, в качестве примера я использую этот код для imagenet.

Нужно ли перетасовывать данные, можно ли записать в БД все мои позитивы, а затем все негативы, например 00000000111111111, или данные должны быть перетасованы, а метки должны выглядеть как 010101010110101011010?

Каким образом можно выбирать данные из БД, верно ли, что они используют случайное подмножество всех данных с размером = batch_size?

1 ответ

Решение

Вы должны перемешать образцы? Подумайте о процессе обучения, если вы не тасуетесь; кафе видит только 0 образцы - что вы ожидаете алгоритм вывести? просто предсказать 0 все время и все круто. Если у вас есть много 0 прежде чем ударить первый 1 Кафе будет очень уверенным в прогнозировании всегда 0, С этой точки будет очень трудно переместить модель.
С другой стороны, если он постоянно видит смесь 0 а также 1 с самого начала он учит осмысленным особенностям разделения примеров.
Итог: очень выгодно перетасовывать обучающие образцы, особенно при использовании подходов на основе SGD.

AFAIK, кофе не случайная выборка batch_size выборки, а точнее идет последовательно по входной БД batch_size после batch_size образцы.

TL; DR
перетасовать.

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