- Все, что вы хотите, учитывая, что одна эпоха получит
len
партий из Последовательности. - Секрета нет, используйте его как любой другой генератор, с той разницей, что вы можете сделать
steps_per_epoch=len(generator)
или steps_per_epoch=None
. max_queue_size
: при любом значении будут загружаться партии, которые будут находиться в памяти до тех пор, пока их очередь не попадет в модель workers
: при любом значении это будет числопараллельные «потоки» (простите, если имя не точное), которые будут загружать пакеты use_multiprocessing
: я этого не знаю.Это было не нужно для меня, и единственный раз, когда я попробовал, он был достаточно глючным, чтобы заморозить мою машину shuffle
: с документация : Boolean.Перемешивать ли порядок партий в начале каждой эпохи.Используется только с экземплярами Sequence (keras.utils.Sequence).Не имеет никакого эффекта, когда steps_per_epoch не None.
- Я думаю, что это так.Если вы хотите связать саму модель, то, возможно, вы захотите прочитать про обучение на нескольких GPU.
Преимущества Sequence
по сравнению с обычным генератором:
С помощью последовательности можно отслеживать, какие партии уже были приняты, какие партии отправленыв какой поток для загрузки, и никогда не будет конфликта, потому что он основан на индексах.
При использовании генератора параллельная обработка потеряет отслеживание того, какие пакеты уже были взяты, или нет, потому что потоки не общаются друг с другом, и нет другого выбора, кроме последовательной выдачи пакета по партии.
Преимущества генераторов и последовательностей над циклом
В цикле вы будете «ждать пакетной загрузки», «ждать обучения модели», «ждать пакетной загрузки», «ждатьМодельное обучение ».
При fit_generator
партии будут загружаться «в то время», пока модель тренируется, и обе вещи происходят одновременно.
Для очень простых генераторов не будет большого влияния.Для сложных генераторов, усилителей, загрузчиков больших изображений и т. Д. Время генерации очень существенно и может серьезно повлиять на вашу скорость.