Multy обработка с Keras - PullRequest
       17

Multy обработка с Keras

0 голосов
/ 07 марта 2019

Я пытаюсь обучить модель CNN с Keras, используя 36 ядер, которые у меня есть. Я пытаюсь следовать: Как запустить Keras на нескольких ядрах?

Но это не делает мой код быстрее, и я не уверен, использует ли он все доступные ядра или просто одно ядро, а остальное остается неиспользованным.

Мой код:

Модель определяется с помощью Keras ==>

import tensorflow as tf
from keras.backend import tensorflow_backend as K
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
K.set_session(sess)
CNN_Model = CNN_model()

ES = EarlyStopping(monitor='val_loss', mode='min', verbose=1, patience=150)

history = CNN_Model.fit(IM_Training , Y_Train , batch_size= 256, epochs =250, verbose=1, validation_data=(IM_Valid, Y_Val ), callbacks = [ES])

Как я могу убедиться, что код использует все ядра?

1 Ответ

0 голосов
/ 07 марта 2019

Существует два основных способа получения параллелизма при оценке нейронной сети:

  • Матричные вычисления
  • параллельный параллелизм

Вычислительный граф для многих нейронных сетей является последовательным (таким образом, у Кераса есть Последовательная модель). то есть один вычисляет layer1 ... layerN в последовательности как на прямом, так и на обратном шагах. Последовательная сеть не может быть ускорена путем распределения слоев по разным ядрам.

Однако в большинстве вычислений используются матричные операции, которые обычно реализуются с использованием высокопроизводительной библиотеки, такой как BLAS, которая использует все ядра, доступные для ЦП. Как правило, чем больше размер пакета, тем больше возможностей для параллелизма.

Параллелизм микропакетов - это стратегия, используемая multi_gpu_model , когда разные микропартии распределяются по разным вычислительным блокам (это действительно имеет смысл в первую очередь для графических процессоров).

Непоследовательные модели также могут быть распараллелены путем тщательного размещения устройства; Я не уверен, что это сценарий здесь. Но TLDR: увеличьте свой batch_size и наслаждайтесь всеми своими 36 ядрами, вращающимися на матричных вычислениях.

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