如何使用TensorFlow 2.0中的Keras API仅恢复模型部分层的权重?

如何使用TensorFlow 2.0中的Keras API仅恢复模型部分层的权重?,tensorflow,keras,Tensorflow,Keras,我有一个深层模型,我想从另一个较小的训练子集模型初始化模型的部分层的权重。我该怎么办 在tensorflow 1.x中,我们可以使用tf.train.Saver('List of weights variables')和tf.train.Saver.restore()您可以使用Layer.get\u weights()和Layer.set\u weights()将权重作为NumPy数组的列表进行读取和写入模型继承自层,因此您可以对整个模型或单个层执行此操作 我将使用普通Python(您使用Pyt

我有一个深层模型,我想从另一个较小的训练子集模型初始化模型的部分层的权重。我该怎么办


在tensorflow 1.x中,我们可以使用
tf.train.Saver('List of weights variables')
tf.train.Saver.restore()

您可以使用
Layer.get\u weights()
Layer.set\u weights()
将权重作为NumPy数组的列表进行读取和写入<代码>模型继承自
,因此您可以对整个模型或单个层执行此操作


我将使用普通Python(您使用Python吗?)代码(例如一些不同的NumPy文件I/O函数)来执行文件I/O。也许TensorFlow中有一些方法可以解决这个问题,但我希望没有。

非常感谢。有没有什么方法可以让
层。get_weights()
只加载一部分层?我写了一个子类模型,但我只想加载这个模型的一部分层。当我使用
Model.get\u weights()
时,它必须加载所有层。当我第一次通过
Model.get\u weights()
获取模型变量(列表)并将我的权重分配给列表变量的一部分,然后使用
Model.set\u weights()
时,我发现它是有效的。再次感谢你的回答。