-
Notifications
You must be signed in to change notification settings - Fork 5.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RLlib] Fix Single/MultiAgentEnvRunner missing env-to-module connector call in _sample_episodes()
.
#45517
[RLlib] Fix Single/MultiAgentEnvRunner missing env-to-module connector call in _sample_episodes()
.
#45517
Conversation
Signed-off-by: sven1977 <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Great catch!
rllib/algorithms/callbacks.py
Outdated
3) Callback `on_episode_step` is fired. | ||
4) Another env-to-module connector call is made (even though we won't need any | ||
RLModule forward pass anymore). We make this additional call to ensure that in | ||
case users use the connector pipeline to process observations (and write them |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, very important. Good catch!
shared_data=self._shared_data, | ||
) | ||
if self.module is not None: | ||
self._env_to_module( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Episode is written in-place, correct?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, correct.
Some connectors act as preprocessors: read from episode, change the obs, write it right back in.
We should probably make this the default pattern for all connectors that preprocess observations. Right now we have some that do this, but others do NOT write back into the episode and therefore rely on two more connectors around them: AddObsFromEpisodeToBatch AND WriteObsToEpisode
. This is causing a lot of confusion right now.
Signed-off-by: sven1977 <[email protected]>
Signed-off-by: sven1977 <[email protected]>
Fix Single/MultiAgentEnvRunner missing env-to-module connector call in
_sample_episodes()
.The env-to-module connector call on the terminal obs is missing in both Single- and MultiAgentEnvRunners
_sample_episodes()
methods. It is, however, properly implemented in both their_sample_timesteps()
methods.Why are these changes needed?
Related issue number
Checks
git commit -s
) in this PR.scripts/format.sh
to lint the changes in this PR.method in Tune, I've added it in
doc/source/tune/api/
under thecorresponding
.rst
file.