Мне кажется, что метод .fit_generator()
в Keras (недавно переименованный и перегруженный .fit ()) с генератором данных, использующим keras.utils.Sequence, использует только 1 работника для проверки. Моя версия tf - 2.1.
Точнее, скажем, вы выбрали workers=8
и max_queue=20
. Затем, когда наступает время проверки в конце эпохи,
- первоначально 7 рабочих будут использоваться для предварительного заполнения партий в очереди для следующей эпохи обучения, и только 1 рабочий используется для проверки, что Я понимаю, что это нормально
- , но когда очередь заполнена, все еще только один работник работает над проверкой, а остальные 7 работников ничего не делают.
Это делает проверку намного медленнее, чем обучение, на самом деле это примерно в 8 раз медленнее (за одно и то же количество итераций / шаг), в то время как оно должно быть быстрее, так как я полагаю, что нет никакого обратного хода. Вы можете проверить факт о работниках, напечатав, что происходит в генераторах обучения и проверки, вы можете увидеть вызов генератора обучения даже во время проверки и наблюдать тот факт, что проверка проходит намного медленнее (примерно в 8 раз ... число рабочие).
Кто-нибудь испытывал это? Есть ли место, где я мог бы сигнализировать об этом?