Эпохи и итерации в Deeplearning4j - PullRequest
0 голосов
/ 10 мая 2018

Я недавно начал изучать Deeplearning4j, и я не понимаю, как на самом деле реализуется концепция эпох и итераций.В онлайн-документации говорится:

эпоха - это полный проход через данный набор данных ...
Не следует путать с итерацией, которая является просто одним обновлением модели нейронной сети.параметры.

Я провел тренировку с использованием MultipleEpochsIterator, но для первого запуска я установил 1 эпоху, miniBatchSize = 1 и набор данных из 1000 сэмплов, поэтому я ожидал, что тренировка завершится после 1 эпохи и1000 итераций, но после более чем 100 000 итераций он все еще работал.

int nEpochs = 1;
int miniBatchSize = 1;

MyDataSetFetcher fetcher = new MyDataSetFetcher(xDataDir, tDataDir, xSamples, tSamples);
//The same batch size set here was set in the model
BaseDatasetIterator baseIterator = new BaseDatasetIterator(miniBatchSize, sampleSize, fetcher);

MultipleEpochsIterator iterator = new MultipleEpochsIterator(nEpochs, baseIterator);
model.fit(iterator)

Затем я провел больше тестов, изменяя размер пакета, но это не изменило частоту строк журнала, напечатанных IterationListener.Я имею в виду, что я подумал, что если я увеличу размер пакета до 100, то при 1000 выборках у меня будет только 10 обновлений параметров и, следовательно, всего 10 итераций, но журналы и интервалы времени будут более или менее одинаковыми.

КСТАТИ.Есть похожий вопрос, но ответ на самом деле не отвечает на мой вопрос, я хотел бы лучше понять фактические детали: Deeplearning4j: итерации, эпохи и ScoreIterationListener

1 Ответ

0 голосов
/ 15 мая 2018

Ничего из этого не будет иметь значения после 1.x (который уже вышел в альфа-версии) - мы давно избавились от итераций.

Первоначально предполагалось, что это будет краткий синтаксис, чтобы людям не приходилось писать циклы.

Просто сосредоточьтесь на петлях с эпохами.

...