More efficient future obs sample method in obs_dict_replay_buffer.py #112
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello, I'm reading your excellent code these days and found an interesting comment in obs_dict_replay_buffer.py.
# This is generally faster than random.choice. Makes you wonder what random.choice is doing
.I tried and found that using
np.random.random()
is even faster thannp.random.randint()
when only sample one element randomly. My solution can be about 80 times faster:In addition, I use list comprehension for better performance. The change is as follows:
The original code
my solution
Although the data collecting and training periods are more time-consuming, but I think
rlkit
can be more elegant and efficient.Looking forward to your reply.