keras multi gpu model慢

时间:2018-06-17 21:50:16

标签: python tensorflow keras multi-gpu

我在keras中尝试multi_gpu_model。除了Xception示例之外,multi-gpu版本总是比单gpu慢。

with tf.device('/cpu:0'):
    model = Sequential()

    model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1],
                            border_mode='valid',
                            input_shape=input_shape))
    model.add(Activation('relu'))
    model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1]))
    model.add(Activation('relu'))
    model.add(MaxPooling2D(pool_size=pool_size))
    model.add(Dropout(0.25))

    model.add(Flatten())
    model.add(Dense(128))
    model.add(Activation('relu'))
    model.add(Dropout(0.5))
    model.add(Dense(nb_classes))
    model.add(Activation('softmax'))

model = multi_gpu_model(model, 4)
model.compile(loss='categorical_crossentropy',
              optimizer='rmsprop',
              metrics=['accuracy'])

model.fit(X_train, Y_train, batch_size=batch_size, nb_epoch=nb_epoch,
          verbose=1, validation_data=(X_test, Y_test))
score = model.evaluate(X_test, Y_test, verbose=0)
print('Test score:', score[0])
print('Test accuracy:', score[1])

对于其他示例,4-gpu版本较慢。对于mnist_cnn.py,单gpu版本每个纪元大约需要3s,而4-gpu版本每个纪元大约需要4s。

我使用1台GTX1080和3台GTX1070。在Windows 10和Ubuntu 18上使用tensorflow和mxnet后端尝试使用它。使用keras 2.2.0和tensorflow-gpu 1.8.0

那么,如何正确使用multi_gpu_model来提高培训速度呢?

{{1}}

0 个答案:

没有答案