3

Я пытаюсь использовать Оценщики Тензора. В documentation следующий код используется для обучения и оценки сети.Что такое «партии» и «шаги» в оценках TensorFlow и как они отличаются от эпох?

# Fit 
nn.fit(x=training_set.data, y=training_set.target, steps=5000) 

# Score accuracy 
ev = nn.evaluate(x=test_set.data, y=test_set.target, steps=1) 
loss_score = ev["loss"] 
print("Loss: %s" % loss_score) 

Весь учебный комплект принят, но у нас есть steps=5000. Означает ли это, что рассматриваются только первые 5000 примеров из набора?

Что означает параметр batch_size в этом контексте и как он взаимодействует с steps?

Спасибо!

ответ

2

batch_size - это количество примеров, обработанных одновременно. TF выталкивает все из них через один проход вперед (параллельно) и следует с обратным распространением в том же наборе. Это один итерация, или , этап.

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

Один из эпохи рассматривает каждый пример в тренировочном наборе ровно один раз. Например, если у вас есть миллион примеров и размер партии 200, то вам нужно 5000 шагов до одной эпохи: 200 * 5.000 = 1.000.000

Проясняет ли это терминологию?

+0

Это полезная информация, спасибо! Последующие вопросы: я не понимал, что это сразу привело к множеству примеров обучения, как работают вычисления ошибок в этом случае? Все весовые изменения складываются и усредняются? Каждая партия состоит из случайных обучающих примеров из учебного набора? – Kieran

+0

Да, они усреднены. Фактическая механика немного сложнее и осторожнее, но это немедленный эффект. Выбор образцов обучения - это параметры вашего входного слоя. То, что я думаю, что вы здесь думаете, совершенно правильно: вы хотите, чтобы в каждой партии было хорошее распространение меток, поэтому вы не начинаете обучение узкому участку классов на раннем этапе. Найдите ключевое слово ** random ** или ** shuffle **. Боюсь, я не помню сразу, поскольку я работаю в Caffe в течение нескольких месяцев. – Prune