Керас не использует полноценные ядра процессора для обучения

5

Я тренирую модель LSTM на очень огромном наборе данных на своей машине, используя Keras on Tensorflow. Моя машина имеет 16 ядер. Во время обучения модели я заметил, что нагрузка во всех ядрах ниже 40%.

Я просмотрел различные источники, которые ищут решение, и попытался предоставить ядра для использования в бэкэнд как

config = tf.ConfigProto(device_count={"CPU": 16})
backend.tensorflow_backend.set_session(tf.Session(config=config))

Даже после этого загрузка остается прежней.

Это потому, что модель очень мала. Это займет около 5 минут на эпоху. Если он использует полные ядра, скорость может быть улучшена.

Как сказать Keras или Tensorflow использовать все доступные ядра, т.е. 16 ядер для обучения модели.

Я прошел через эти вопросы с stackoverflow и попробовал решения, упомянутые там. Это не помогло.

Ограниченное количество ядер, используемых в Keras

Теги:
tensorflow
machine-learning
keras

1 ответ

0
Лучший ответ

Как вы тренируете модель точно? Возможно, вы захотите изучить использование model.fit_generator() но с объектом model.fit_generator() Sequence вместо пользовательского генератора. Это позволяет безопасно использовать многопроцессорность и приведет к использованию всех ядер.

Вы можете проверить документы Keras для примера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню