From my experience with RLlib, the way RLlib default keys are configured are suited for MLP models with fixed number of layers which can be configured by config[“hiddens”]. However, I am yet to find an example tuned for atari like environments (single agent, multi agent). An example to reproduce the usual DQN architecture using RLlib pre-processors would be a great help for RLlib users.
I am struggling to understand how the built-in pre-processors for Atari can be applied. From the docs, there are 2 options of whether to use the
preprocessor_pref=deepmind or set it to
rllib, which allow down scaling to
dim x dim , where
dim is a model config key,
grayscale=True for reducing the color channel to 1, or
zero_mean=True for producing -1.0 to 1.0 values.
However, even when I am using a multi-agent version of Atari (PettingZoo), and with default set to
preprocessor_pref=deepmind, the pre-processor was not applied while using RLlib DQN. Upon diving into the code, I came to know that this wrapper does not support MultiAgentEnvs (code here). I would be curious to know why this pre-processor cannot be applied to a MultiAgentEnv. AFAIK, these standard wrappers (resize, frame_stack, frame_skip) should work the same way for single agent and multi-agent environments, but I can be wrong here.
Can anyone clarify what exactly the
is_atari(env)defined here is doing?
By seeing the usage of
is_atari() here and its definition here, I think it may be able to accommodate multi-agent Atari environments from PettingZoo.
Looking forward to hearing on this from the RLlib team and community. Thanks