使用带 RLLib 的 LSTM 模型训练 A3C 代理时出错

问题描述 投票:0回答:0

我正在使用 RLLib 训练 A3C 代理,我的观察是二维的(时间步长、特征),所以我的第一层应该是一个 LSTM,然后是另一个 LSTM,然后是最后一层之前的全连接层。 我为此使用以下配置: 配置[“num_gpus”] = 1 配置[“模型”] = { “use_lstm”:是的, “lstm_use_prev_action”:是的, “lstm_use_prev_reward”:是的, “lstm_cell_size”:64, “fcnet_hiddens”:[],

我认为它没有产生我想要的模型架构,但不幸的是我无法看到 model.summary() 因为我得到以下信息:

AttributeError:‘ComplexInputNetwork_as_LSTMWrapper’对象没有属性‘summary’

无论如何,我继续前进并以合理的奖励训练了上面的代理,保存了检查点,但我无法在生产中使用训练有素的模型进行预测。也许它也可能与使用 LSTMWrapper 的事实有关。因为我被困住了,所以感谢任何帮助。

我的代码: my_restored_policy = Policy.from_checkpoint(“checkpoint/checkpoint_100000/policies/default_policy”)

环境=我的环境() _=env.reset()

obs = np.array(env.updateState())

action = my_restored_policy.compute_single_action(obs)

错误: tensorflow.python.framework.errors_impl.InvalidArgumentError:发现 2 个根错误。 (0) 无效参数:您必须为占位符张量“var_scope_1/state_in_0”提供一个 dtype float 和 shape [?,64] 的值 [[节点 var_scope_1/state_in_0(定义于 usr/local/lib/python3.6/dist-packages/ray/rllib/utils/tf_utils.py:217)]] [[var_scope_1/model_2/lstm/ExpandDims/_211]] (1) 无效参数:您必须为占位符张量“var_scope_1/state_in_0”提供一个 dtype float 和 shape [?,64] 的值 [[节点 var_scope_1/state_in_0(定义于 usr/local/lib/python3.6/dist-packages/ray/rllib/utils/tf_utils.py:217)]] 0 次成功的操作。 忽略 0 个派生错误。

我尝试保存模型以直接在 Keras 中加载它,但是 my_restored_policy.export_model 没有给我任何错误,也没有生成任何文件。

tensorflow openai-gym ray rllib
© www.soinside.com 2019 - 2024. All rights reserved.