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