Керас подходит генератор и количество рабочих - PullRequest
0 голосов
/ 10 апреля 2020

Мне кажется, что метод .fit_generator() в Keras (недавно переименованный и перегруженный .fit ()) с генератором данных, использующим keras.utils.Sequence, использует только 1 работника для проверки. Моя версия tf - 2.1.

Точнее, скажем, вы выбрали workers=8 и max_queue=20. Затем, когда наступает время проверки в конце эпохи,

  1. первоначально 7 рабочих будут использоваться для предварительного заполнения партий в очереди для следующей эпохи обучения, и только 1 рабочий используется для проверки, что Я понимаю, что это нормально
  2. , но когда очередь заполнена, все еще только один работник работает над проверкой, а остальные 7 работников ничего не делают.

Это делает проверку намного медленнее, чем обучение, на самом деле это примерно в 8 раз медленнее (за одно и то же количество итераций / шаг), в то время как оно должно быть быстрее, так как я полагаю, что нет никакого обратного хода. Вы можете проверить факт о работниках, напечатав, что происходит в генераторах обучения и проверки, вы можете увидеть вызов генератора обучения даже во время проверки и наблюдать тот факт, что проверка проходит намного медленнее (примерно в 8 раз ... число рабочие).

Кто-нибудь испытывал это? Есть ли место, где я мог бы сигнализировать об этом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...