TensorFlow: номер. эпох против №. шагов обучения

Недавно я экспериментировал с seq2seq от Google, чтобы настроить небольшую систему NMT. Мне удалось заставить все работать, но меня все еще интересует точная разница между количеством эпох и количеством шагов обучения модели.

Если я не ошибаюсь, одна эпоха состоит из нескольких шагов обучения и проходит, как только все ваши данные обучения были обработаны один раз. Однако я не понимаю разницы между ними, когда смотрю на документацию в собственном руководстве Google по НМТ. Обратите внимание на последнюю строку следующего фрагмента.

export DATA_PATH=

export VOCAB_SOURCE=${DATA_PATH}/vocab.bpe.32000
export VOCAB_TARGET=${DATA_PATH}/vocab.bpe.32000
export TRAIN_SOURCES=${DATA_PATH}/train.tok.clean.bpe.32000.en
export TRAIN_TARGETS=${DATA_PATH}/train.tok.clean.bpe.32000.de
export DEV_SOURCES=${DATA_PATH}/newstest2013.tok.bpe.32000.en
export DEV_TARGETS=${DATA_PATH}/newstest2013.tok.bpe.32000.de

export DEV_TARGETS_REF=${DATA_PATH}/newstest2013.tok.de
export TRAIN_STEPS=1000000

Мне кажется, что есть только способ определить количество шагов обучения, а не количество эпох вашей модели. Возможно ли, что есть совпадение в терминологии и, таким образом, нет необходимости определять количество эпох?


person milvala    schedule 10.04.2017    source источник
comment
Вы ответили на свой вопрос. Что в связанном учебнике противоречит тому, что вы сказали? Мы не будем читать все это.   -  person interjay    schedule 10.04.2017
comment
Это позволяет вам экспортировать только определенный номер. шагов обучения, поэтому мне было интересно, есть ли еще необходимость указывать номер. также эпох.   -  person milvala    schedule 10.04.2017
comment
Эпоха — это фиксированное количество шагов, поэтому определение одного определяет другое.   -  person interjay    schedule 10.04.2017
comment
Итак, просто чтобы убедиться, что я понял: если ваши тренировочные данные состоят из 200 000 предложений и вы установите 1 000 000 тренировочных шагов, вы получите эквивалент 5 эпох?   -  person milvala    schedule 10.04.2017


Ответы (1)


Эпоха состоит из однократного прохождения всех ваших обучающих выборок. И один шаг/итерация относится к обучению одной мини-партии. Таким образом, если у вас есть 1 000 000 обучающих выборок и размер партии равен 100, одна эпоха будет эквивалентна 10 000 шагов, по 100 выборок на шаг.

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

person interjay    schedule 10.04.2017
comment
Второй абзац не правильный. Number_of_steps_per_epoch не определяет number_of_epochs и наоборот. Однако Number_of_steps_per_epoch определяет размер партии и наоборот... - person Nejla; 19.12.2017
comment
@Nejla Вопрос был не о количестве шагов за эпоху. Речь шла о соотношении между общим количеством шагов и общим количеством эпох. Когда размер партии и количество обучающих выборок фиксированы, одно из них определяет другое. - person interjay; 19.12.2017
comment
Ну, это то, что вы упомянули в своем ответе! В любом случае, я предлагаю вам добавить total к вашему ответу, так как он вводит в заблуждение... - person Nejla; 20.12.2017
comment
это ваше предложение: Итак, если у вас есть 1 000 000 обучающих выборок и вы используете размер партии 100, одна эпоха будет эквивалентна 10 000 шагов, по 100 выборок на шаг. Тогда речь не идет об итогах. Речь идет об одной эпохе. Так что, приятель, просто добавь итог и устрани путаницу. Вы говорите об одной эпохе в первом абзаце, а затем ваш второй абзац относится к целому... Это ясно в вашем уме. Но не читатель... - person Nejla; 20.12.2017
comment
@Nejla Если одна эпоха эквивалентна 10000 шагов, как в этом примере, то N эпох эквивалентны 10000N общим шагам. Базовая математика. - person interjay; 20.12.2017
comment
Действительно, и да, это базовая математика! Я имею в виду, что термин «шаг» в вашем первом абзаце говорит об одной эпохе, а затем вы используете тот же термин «шаг» во втором абзаце, но на этот раз вы имеете в виду общее количество шагов, а не шагов за эпоху, и это вводит в заблуждение. Ваш первый абзац идеален. Но есть проблема со вторым абзацем. Я говорю, что то, что вы написали, вводит в заблуждение. Измените количество эпох или шагов обучения во втором абзаце на количество эпох или всего шагов обучения, и вы устраните путаницу. - person Nejla; 20.12.2017
comment
@Nejla Я бы сказал, что количество X по умолчанию будет относиться к общему количеству X, если не указано иное. Но я отредактировал свой ответ, чтобы сказать всего. - person interjay; 20.12.2017
comment
Отлично. Спасибо за исправление. - person Nejla; 20.12.2017