Мой код использует относительно обширную стратегию дополнения, но я заметил, что загрузка ЦП не пропорциональна, когда N
в fit_generator(...workers=N)
увеличивается.У меня 4-ядерный процессор.
- Когда
N=1
, htop
показывает около 105% использования - Когда
N=2
, htop
показывает около 202% использования - Когда
N=3
, htop
показывает около 287% использования - Когда
N=4
, htop
показывает около 342% использования
Использование графического процессора меньшечем 40%.
Если я урежу стратегию дополнения, чтобы исключить добавление шума, я смогу достичь примерно 360% и более высокого использования GPU при N=4
.Шум добавляется
x += numpy.random.normal(0, noise_sigma, x.shape) / 255.0
, где x
- входное изображение BGR 640x480.Это медленный вызов, в среднем около 24,3 мс на вызов, но разве процессор не должен работать, когда N=4
?Почему NumPy блокирует другие потоки, когда генерирует большой массив случайных чисел?