如何加载通过tf.keras.models.save_model保存的训练模型的权重?

时间:2020-08-01 08:16:10

标签: python tensorflow keras

我训练了没有任何检查点的神经网络,最后我写了tf.keras.models.save_model(model, dirpath)保存整个模型,并创建了以下文件:

savedmodel.pb 
assets/
variables/variables.index
variables/variables.data-00000-of-00001

我尝试使用new_model = tf.keras.models.load_model(dirpath)加载模型,但由于我使用的是自定义模型,所以它出现了ValueError(似乎我创建了一个继承自tf.keras.Model的类)。因此,我尝试实例化一个新模型,然后仅使用

加载权重。
model = myModel(someArgs)
model.load_weights(dirpath/variables)

但是,我收到以下错误消息:

OSError:无法打开文件(无法打开文件:name ='dirpath / variables',errno = 13,错误消息='权限被拒绝,标志= 0,o_flags = 0)

那么如何将权重加载到模型上?文件在那里,我只是不知道如何将它们放回模型中。

1 个答案:

答案 0 :(得分:0)

想通了,我使用了错误的路径。我需要做model.load_weights(dirpath/variables/variables)。有两个名为variables的文件,具有不同的扩展名(.data-00000-of-00001.index),这就是您要调用的名称。