在Keras中,为什么测试加载了load_model的模型比load_weights慢得多?

时间:2019-11-27 16:42:31

标签: python tensorflow machine-learning keras recurrent-neural-network

我在Keras中有一个带有5层LSTM细胞的RNN。该模型已经过训练,现在我正在对其进行测试。

一方面,我使用了tensorflow.keras.models中的函数“ load_model”。像

model = load_model("mymodel.hdf5")

另一方面,我首先为RNN创建一个空模型,然后加载权重,类似

loadmodeltemp = load_model("mymodel.hdf5")
model = functionThatWillCreateMyRNN()
model.set_weights(loadmodeltemp.get_weights())

第二个选项通常比第一个选项快2倍。我的意思是当模型已经加载并且您正在训练或测试它时。我不是在讲load_model本身,而是在讲后来发生的事情。

我正在使用archlinux,tensorflow 2.0.0,并且像“从tensorflow import keras”那样导入keras,版本是2.2.4-tf。

GPU是1080TI。强制CPU时,它比第二种方法慢大约4倍。

load_model在做什么,这会导致一切变慢?只是拥有一个可以完成所有工作的load_model函数,而不是必须先加载模型然后加载权重,才变得更加整洁。

0 个答案:

没有答案