微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在 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 举报,一经查实,本站将立刻删除。