2

我正在使用 TF-Agents 解决自定义强化学习问题,我在自定义环境中的一些特征上训练 DQN(使用 TF-Agents 框架中的 DqnAgents 构建),并分别使用 keras 卷积模型从图像中提取这些特征. 现在我想将这两个模型组合成一个模型并使用迁移学习,我想初始化网络第一部分(图像到特征)的权重以及第二部分的权重,这将是 DQN前一种情况下的层。

我正在尝试使用 keras.layers 构建这个组合模型,并使用 Tf-Agents tf.networks.sequential 类对其进行编译,以将其传递给 DqnAgent() 类时所需的必要形式。(我们称这个陈述为(a))。

我能够使用权重初始化图像特征提取器网络的层,因为我将其保存为 .h5 文件并且能够获得相同的 numpy 数组。所以我可以为这部分做迁移学习。

问题在于 DQN 层,我使用规定的 Tensorflow Saved Model Format (pb) 保存了上一个示例中的策略,它为我提供了一个包含模型属性的文件夹。但是,我无法以这种方式查看/提取我的 DQN 的权重,并且推荐的 tf.saved_model.load('policy_directory') 对于我可以看到的有关该策略的哪些数据并不是真正透明的。如果我必须像语句 (a) 中那样遵循迁移学习,我需要提取我的 DQN 的权重并将它们分配给新网络。对于需要应用迁移学习的这种情况,文档似乎非常稀少。

任何人都可以通过解释我如何从保存模型方法(从 pb 文件)中提取权重来帮助我吗?或者有没有更好的方法来解决这个问题?

4

0 回答 0