如何在 TF-Agents 框架中提取 DQN 代理的权重?

问题描述

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

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

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

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)