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

Asi*_* R. 3 python keras tensorflow

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

savedmodel.pb 
assets/
variables/variables.index
variables/variables.data-00000-of-00001
Run Code Online (Sandbox Code Playgroud)

我尝试使用 加载模型new_model = tf.keras.models.load_model(dirpath),但它给出了 ValueError 因为我使用的是自定义模型(看来我创建了一个继承自 的类tf.keras.Model)。因此,我尝试实例化一个新模型,然后使用以下命令加载权重

model = myModel(someArgs)
model.load_weights(dirpath/variables)
Run Code Online (Sandbox Code Playgroud)

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

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

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

Asi*_* R. 6

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