【问题标题】:Keras - How to run loaded model on CPUKeras - 如何在 CPU 上运行加载的模型
【发布时间】:2019-02-26 17:17:32
【问题描述】:

我有在 GPU 上运行的带有 tensorflow 后端的 keras。但是,我正在训练 LSTM,所以我在 CPU 上进行训练。

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'])

我遇到的问题是,当我保存和加载模型时,加载模型的预测功能执行非常缓慢。经过一些定时测试,我相信正在发生的事情是加载的模型在 GPU 而不是 CPU 上运行,所以它很慢。我尝试在 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'])

有没有办法让加载的模型达到与新训练的模型相同的速度?新训练的模型几乎快了五倍。感谢您的帮助。

【问题讨论】:

    标签: python keras gpu cpu


    【解决方案1】:

    用您要使用的设备加载模型:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多