Keras - 如何 运行 在 CPU 上加载模型
Keras - How to run loaded model on CPU
我有在 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'])
有没有办法让加载的模型与新训练的模型达到相同的速度?新训练的模型几乎快了五倍。感谢您的帮助。
使用您要使用的设备加载模型:
with tf.device('/cpu:0'):
new_model = load_model('test_model.h5')
我有在 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'])
有没有办法让加载的模型与新训练的模型达到相同的速度?新训练的模型几乎快了五倍。感谢您的帮助。
使用您要使用的设备加载模型:
with tf.device('/cpu:0'):
new_model = load_model('test_model.h5')