Объединение Keps model.fit `steps_per_epoch` с API-интерфейсом набора данных TensorFlow` batch () `

Я смотрю на производительность и использование графического процессора во время обучения модели CNN с Keras + TensorFlow. Аналогично этот вопрос , мне трудно понять комбинированное использование Keras model.fit в steps_per_epoch и API набора данных TensorFlow .batch(): я установил определенный размер пакета для конвейер ввода dataset = dataset.batch(batch_size) и позже я использую

 fit = model.fit(dataset, epochs=num_epochs, steps_per_epoch=training_set_size//batch_size)

но я вижу, что на самом деле можно установить любое количество шагов за эпоху, даже больше, чем training_set_size//batch_size. Из документации я понимаю, что на Керасе эпоха не обязательно является пропуском всего тренировочного набора, как обычно, но в любом случае я немного сбит с толку, и теперь я не совсем уверен, правильно ли я это использую.

Определяет dataset.batch(batch_size) + steps_per_epoch=training_set_size//batch_size мини-пакет SGD, который работает по всему обучающему набору с помощью мини-пакетов образцов batch_size? Величины эпох больше одного прохода над обучающим набором, если для steps_per_epoch установлено значение больше, чем training_set_size//batch_size

4 голоса | спросил rsm 7 FebruaryEurope/MoscowbThu, 07 Feb 2019 17:35:42 +0300000000pmThu, 07 Feb 2019 17:35:42 +030019 2019, 17:35:42

1 ответ


0
---- +: = 0 =: + ---- - количество пакетов с заданным размером пакета, прошедших по сети за одну эпоху.Вы установили ---- +: = 1 =: + ---- равным ---- +: = 2 =: + ---- по уважительной причине.Это гарантирует, что все данные обрабатываются за одну эпоху, обеспечивая точное деление числа (если оно не округляется оператором //).То есть, если у вас был размер пакета 10 и размер обучающего набора 30, то ---- +: = 3 =: + ---- обеспечивает использование всех данных.И процитировать ваш вопрос:«Велики ли эпохи больше, чем один проход по обучающему набору, если для steps_per_epoch установлено больше, чем training_set_size //batch_size?»Да.Некоторые данные будут переданы снова в ту же эпоху.
ответил McGuile 7 FebruaryEurope/MoscowbThu, 07 Feb 2019 18:04:14 +0300000000pmThu, 07 Feb 2019 18:04:14 +030019 2019, 18:04:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132