雷的RLlib是如何利用懒汉框架的?

2024-05-14 18:52:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找出RLLib如何有效地利用帧,也就是说,它如何避免将重复帧保存到内存中,而在OpenAI基线中,重复帧是通过LazyFrames完成的。你知道吗

在Ray的RLLib atari_wrapper.py中,似乎所有的观测值都以普通的ndarray格式存储:https://github.com/ray-project/ray/blob/master/python/ray/rllib/env/atari_wrappers.py#L253

这与OpenAI基线中常用的LazyFrames形成了对比:https://github.com/openai/baselines/blob/master/baselines/common/atari_wrappers.py#L217

这样做是因为PyArrow不能使用LazyFrames并且需要numpy数组吗?即使是这样,假设RLLib中的∗get∗ob输出是4个观测值的串联numpy数组,那么内存需求不是比单独保存4个观测值中的每一个并通过ray对象id链接它们要高得多吗?我错过了什么?你知道吗


Tags: 内存pyhttpsgithubmastercomblobwrappers
1条回答
网友
1楼 · 发布于 2024-05-14 18:52:49

RLlib不使用LazyFrames。对于使用大量内存(如DQN)的算法,它使用LZ4压缩观测值,这样可以节省更多的CPU时间。你知道吗

相关问题 更多 >

    热门问题