【问题标题】:convert stable-baselines tensorflow model to tensorflowjs将稳定基线 tensorflow 模型转换为 tensorflowjs
【发布时间】:2020-01-15 23:34:51
【问题描述】:

我正在尝试将底层 tensorflow 模型从 stable-baselines 转换为 tensorflowjs 以便能够在浏览器上使用该模型。但我无法进行转换

我跟着this github issue使用代码创建了必要的tensorflow文件:

def generate_checkpoint_from_model(model, checkpoint_name):  
        tf.saved_model.simple_save(model.sess, checkpoint_name, inputs={"obs": model.act_model.obs_ph}, outputs={"action": model.action_ph})

然后我尝试使用tensorflowjs_converter转换模型

tensorflowjs_converter --input_format=tf_saved_model test/ web_test

但是,它给了我以下错误:

Unable to lift tensor <tf.Tensor 'loss/action_ph:0' shape=(?,) dtype=int32> because it depends transitively on placeholder <tf.Operation 'loss/action_ph' type=Placeholder> via at least one path, e.g.: loss/action_ph (Placeholder)

我创建了以下 colab notebook 错误,因此您可以尝试一下。

有人知道如何进行这种转换吗?

感谢您的帮助

【问题讨论】:

  • 您使用哪个版本的 TensorFlow.js 和 TensorFlow?它们应该相互兼容。
  • 有人刚刚对下面的问题和正确答案给出了-1。请不要无缘无故这样做,因为它对他人没有帮助

标签: python tensorflow reinforcement-learning tensorflow.js tensorflowjs-converter


【解决方案1】:

我将问题发布为issue in stable-baselines,他们回答了。我将复制到这里作为其他人的参考:

您正在尝试保存 PPO 培训中使用的操作占位符 (PPO 代理的一部分),但为了推断,您只需要经过训练的 政策及其占位符 (model.act_model)。 colab 上的代码运行 将simple_save 的调用更改为:

tf.saved_model.simple_save(model.sess, checkpoint_name, inputs={"obs": model.act_model.obs_ph}, outputs={"action": model.act_model._policy_proba})

_policy_proba 的值depends on the environment/algorithm.

【讨论】:

    猜你喜欢
    • 2018-10-08
    • 2019-10-13
    • 1970-01-01
    • 2020-04-13
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    相关资源
    最近更新 更多