Skip to content
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 TorchMultiCategorical.to_deterministic to return a multi-dimensional tensor instead of a list. #49098

Conversation

simonsays1980
Copy link
Collaborator

@simonsays1980 simonsays1980 commented Dec 5, 2024

Why are these changes needed?

Using a MultiDiscrete action space results in RLlib in a MultiCategorical distribution. When turning this distribution to a deterministic distribution for inference, a list of TorchDeterministic distributions is created. This results than in a sampled list of tensors instead of a single tensor with proper dimensions. This PR proposes a fix that

  • Turns a TorchMultiCategorical distribution into a single TorchDeterministic that returns a single tensor of proper distribution.
  • It works also for MultiDiscrete distributions with different categories per dimension, by using padding.

Related issue number

Checks

  • I've signed off every commit(by using the -s flag, i.e., git commit -s) in this PR.
  • I've run scripts/format.sh to lint the changes in this PR.
  • I've included any doc changes needed for https://docs.ray.io/en/master/.
    • I've added any new APIs to the API Reference. For example, if I added a
      method in Tune, I've added it in doc/source/tune/api/ under the
      corresponding .rst file.
  • I've made sure the tests are passing. Note that there might be a few flaky tests, see the recent failures at https://flakey-tests.ray.io/
  • Testing Strategy
    • Unit tests
    • Release tests
    • This PR is not tested :(

…that we get a proper (i.e. stacked) tensor instead a list of single dimensional tensors. Used padding so, this works also with different action distribution lengths.

Signed-off-by: simonsays1980 <simon.zehnder@gmail.com>
@sven1977 sven1977 marked this pull request as ready for review December 5, 2024 12:33
@sven1977 sven1977 self-requested a review as a code owner December 5, 2024 12:33
Signed-off-by: Sven Mika <sven@anyscale.io>
Copy link
Contributor

@sven1977 sven1977 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM now. Thanks for this fix @simonsays1980 !

@sven1977 sven1977 enabled auto-merge (squash) December 6, 2024 11:28
@github-actions github-actions bot added the go add ONLY when ready to merge, run all tests label Dec 6, 2024
@sven1977 sven1977 merged commit fe049b0 into ray-project:master Dec 6, 2024
6 of 7 checks passed
gexiaoxiao7 pushed a commit to gexiaoxiao7/ray that referenced this pull request Dec 9, 2024
…i-dimensional tensor instead of a list. (ray-project#49098)

Signed-off-by: gexiaoxiao7 <1004083966@qq.com>
ujjawal-khare pushed a commit to ujjawal-khare-27/ray that referenced this pull request Dec 17, 2024
…i-dimensional tensor instead of a list. (ray-project#49098)

Signed-off-by: ujjawal-khare <ujjawal.khare@dream11.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
go add ONLY when ready to merge, run all tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants