我在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函数,而不是必须先加载模型然后加载权重,才变得更加整洁。