RLLib-Tensorflow-InvalidArgumentError:接收到的标签值N超出有效范围[0,N)

戴维·法里内利(Devid Farinelli)

我在自定义环境中使用RLLib的PPOTrainer,我执行trainer.train()了两次,第一次成功完成,但是当我第二次执行它时,它崩溃并出现错误:

lib / python3.7 / site-packages / tensorflow_core / python / client / session.py“,行1384,在_do_call中(pid = 15248)引发type(e)(node_def,op,message)(pid = 15248)

tensorflow.python.framework.errors_impl.InvalidArgumentError:

收到的标签值5超出有效范围[0,5)。>标签值:5 5

(pid = 15248)[[node default_policy / SparseSoftmaxCrossEntropyWithLogits / SparseSoftmaxCrossEntropyWithLogits(定义于/tensorflow_core/python/framework/ops.py:1751)]]]

这是我的代码:

main.py

ModelCatalog.register_custom_preprocessor("tree_obs_prep", TreeObsPreprocessor)
ray.init()

trainer = PPOTrainer(env=MyEnv, config={
    "train_batch_size": 4000,
    "model": {
        "custom_preprocessor": "tree_obs_prep"
    }
})

for i in range(2):
    print(trainer.train())

MyEnv.py

class MyEnv(rllib.env.MultiAgentEnv):
    def __init__(self, env_config):
        self.n_agents = 2

        self.env = *CREATES ENV*
        self.action_space = gym.spaces.Discrete(5)
        self.observation_space = np.zeros((1, 12))

    def reset(self):
        self.agents_done = []
        obs = self.env.reset()
        return obs[0]

    def step(self, action_dict):
        obs, rewards, dones, infos = self.env.step(action_dict)

        d = dict()
        r = dict()
        o = dict()
        i = dict()
        for i_agent in range(len(self.env.agents)):
            if i_agent not in self.agents_done:
                o[i_agent] = obs[i_agent]
                r[i_agent] = rewards[i_agent]
                d[i_agent] = dones[i_agent]
                i[i_agent] = infos[i)agent]
        d['__all__'] = dones['__all__']

        for agent, done in dones.items():
            if done and agent != '__all__':
                self.agents_done.append(agent)

        return  o, r, d, i

我不知道这是什么问题,有什么建议吗?这个错误是什么意思?

戴维·法里内利(Devid Farinelli)

评论确实对我有帮助:

FWIW,我认为如果NaN出现在策略输出中,则可能会发生此类问题。发生这种情况时,您可能会超出范围错误。

通常这是由于观察或奖励以某种方式变为NaN,尽管这也可能是政策的分歧。

就我而言,我必须修改我的观察结果,因为代理无法学习策略,并且在训练的某个时刻(随机的时间步长)返回的动作是NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Keras和CNN进行转移学习:收到的标签值46超出有效范围[0,5)

来自分类Dev

rllib使用自定义注册环境

来自分类Dev

Tensorflow钳位值超出特定范围

来自分类Dev

为什么即使我使用 sparse_categorical_crossentrpy 也会收到“收到的标签值 6 超出 [0, 1)”的有效范围?

来自分类Dev

使用for循环的QuantMod错误。runSum(x,n)中的错误:n = 20超出有效范围:[1,5]

来自分类Dev

指定的参数超出有效值范围。参数名称:值

来自分类Dev

Tensorflow中的有效操作列表

来自分类Dev

Nuget错误:指定的参数超出有效值范围。参数名称:supportedFrameworks

来自分类Dev

System.Argument异常:指定的参数超出有效值范围

来自分类Dev

例外:指定的参数超出有效值范围。(参数“索引”)

来自分类Dev

指定的参数超出有效值范围。参数名称:索引

来自分类Dev

指定的参数超出有效值范围-RowDataBound

来自分类Dev

错误:指定的参数超出有效值范围。在RowDataBound Gridview中

来自分类Dev

从CSV导入数据时出错,“特定参数超出有效值范围”

来自分类Dev

从存储过程填充下拉列表错误:超出有效值范围

来自分类Dev

Tensorflow:占位符的InvalidArgumentError

来自分类Dev

Tensorflow InvalidArgumentError:断言失败:[标签必须为<= n_classes-1]

来自分类Dev

指定的参数超出有效值范围。参数名称:大小和串口通讯

来自分类Dev

指定的参数超出有效值范围。参数名称:大小和串行端口通讯

来自分类Dev

Tensorflow:如何给变量范围

来自分类Dev

Tensorflow:带有MNIST的InvalidArgumentError,[55000]与[10000]

来自分类Dev

TensorFlow指标无效(超出范围)

来自分类Dev

有效地在 Tensorflow 中输入变量

来自分类Dev

如何从tensorflow RNN中选择最后一个有效的输出值

来自分类Dev

tensorflow 中 softmax 上的 InvalidArgumentError

来自分类Dev

指针算术超出有效内存范围会产生什么危害?

来自分类Dev

计算MACD和错误处理时,数字超出有效范围

来自分类Dev

为什么我的指针数组显示“索引超出有效索引范围”?

来自分类Dev

在Tensorflow中覆盖设备范围

Related 相关文章

  1. 1

    使用Keras和CNN进行转移学习:收到的标签值46超出有效范围[0,5)

  2. 2

    rllib使用自定义注册环境

  3. 3

    Tensorflow钳位值超出特定范围

  4. 4

    为什么即使我使用 sparse_categorical_crossentrpy 也会收到“收到的标签值 6 超出 [0, 1)”的有效范围?

  5. 5

    使用for循环的QuantMod错误。runSum(x,n)中的错误:n = 20超出有效范围:[1,5]

  6. 6

    指定的参数超出有效值范围。参数名称:值

  7. 7

    Tensorflow中的有效操作列表

  8. 8

    Nuget错误:指定的参数超出有效值范围。参数名称:supportedFrameworks

  9. 9

    System.Argument异常:指定的参数超出有效值范围

  10. 10

    例外:指定的参数超出有效值范围。(参数“索引”)

  11. 11

    指定的参数超出有效值范围。参数名称:索引

  12. 12

    指定的参数超出有效值范围-RowDataBound

  13. 13

    错误:指定的参数超出有效值范围。在RowDataBound Gridview中

  14. 14

    从CSV导入数据时出错,“特定参数超出有效值范围”

  15. 15

    从存储过程填充下拉列表错误:超出有效值范围

  16. 16

    Tensorflow:占位符的InvalidArgumentError

  17. 17

    Tensorflow InvalidArgumentError:断言失败:[标签必须为<= n_classes-1]

  18. 18

    指定的参数超出有效值范围。参数名称:大小和串口通讯

  19. 19

    指定的参数超出有效值范围。参数名称:大小和串行端口通讯

  20. 20

    Tensorflow:如何给变量范围

  21. 21

    Tensorflow:带有MNIST的InvalidArgumentError,[55000]与[10000]

  22. 22

    TensorFlow指标无效(超出范围)

  23. 23

    有效地在 Tensorflow 中输入变量

  24. 24

    如何从tensorflow RNN中选择最后一个有效的输出值

  25. 25

    tensorflow 中 softmax 上的 InvalidArgumentError

  26. 26

    指针算术超出有效内存范围会产生什么危害?

  27. 27

    计算MACD和错误处理时,数字超出有效范围

  28. 28

    为什么我的指针数组显示“索引超出有效索引范围”?

  29. 29

    在Tensorflow中覆盖设备范围

热门标签

归档