Поделиться через


Эпоха BrainScript в CNTK

Для Python пользователей см. здесь.

Количество выборок меток (тензоров вдоль динамической оси) в каждой эпохе. В epochSize CNTK количество выборок меток, после чего выполняются конкретные дополнительные действия, включая

  • сохранение модели контрольных точек (обучение можно перезапустить отсюда)
  • перекрестная проверка;
  • Управление скоростью обучения
  • мини-масштабирование

Обратите внимание, что определение количества выборок меток аналогично количеству выборок, используемых для minibatchSize (minibatch_size_in_samples). Определение epochSize отличается от определения minitbatchSize в том смысле, что epochSize это примеры меток , а не входные образцы.

Поэтому, что важно, для последовательных данных образец является отдельным элементом последовательности. Таким образом, CNTK epochSizeне относится к ряду последовательностей, а к элементампоследовательности в метках последовательности, составляющих мини-пакет.

Кроме того, это выборки меток , а не входные выборки, а количество меток на последовательность не обязательно является числом входных выборок. Например, можно иметь одну метку для каждой последовательности и для каждой последовательности иметь много выборок (в этом случае действует как число последовательностей), и можно иметь одну метку для каждой выборки в последовательности, в этом случае epochSizeepochSize выполняется точно так же, как minibatchSize в том, что каждый пример (не последовательность) подсчитывается.

Для небольших размеров наборов epochSize данных часто устанавливается равный размеру набора данных. В BrainScript можно указать 0, чтобы обозначить это. В Python это можно указатьcntk.io.INFINITELY_REPEAT. Только в Python можно задать для него место cntk.io.FULL_DATA_SWEEP остановки обработки после одного прохода всего размера данных.

Для больших наборов данных может потребоваться руководство по выбору для epochSize путем создания контрольных точек. Например, если вы хотите потерять не более 30 минут вычислений в случае сбоя питания или сбоя сети, необходимо создать контрольную точку примерно каждые 30 минут (с которой можно возобновить обучение). Выберите epochSize количество выборок, которое занимает около 30 минут для вычисления.