Keras - Как запустить загруженную модель на CPU

1

У меня есть keras с endorflow backend, который работает на GPU. Тем не менее, я тренирую LSTM, поэтому вместо этого я тренируюсь на процессоре.

with tf.device('/cpu:0'):
    model = Sequential()
    model.add(Bidirectional(LSTM(50, return_sequences=True), input_shape=(50, len(train_x[0][0]))))
    model.add(TimeDistributed(Dense(1, activation='sigmoid')))
    model.compile(loss='binary_crossentropy', optimizer='Adam', metrics=['acc'])

Проблема заключается в том, что когда я сохраняю и загружаю модель, функция предсказания для загруженной модели выполняется очень медленно. После некоторых временных тестов я считаю, что происходит то, что загруженная модель работает на графическом процессоре, а не на процессоре, поэтому она медленная. Я попытался скомпилировать загруженную модель на CPU, но это не ускоряет работу:

model.save('test_model.h5')
new_model = load_model('test_model.h5')
with tf.device('/cpu:0'):
    new_model.compile(loss='binary_crossentropy', optimizer='Adam', metrics=['acc'])

Есть ли способ достичь той же скорости с загруженной моделью, что и с новой обученной моделью? Недавно обученная модель почти в пять раз быстрее. Спасибо за вашу помощь.

Теги:
keras
gpu
cpu

1 ответ

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

Загрузите модель с помощью устройства, которое вы хотите использовать:

with tf.device('/cpu:0'):
    new_model = load_model('test_model.h5')

Ещё вопросы

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