Closed arjung128 closed 2 years ago
Yes, it should be possible to load sequential data. For the Dopamine version of the dataset, the data (which is simply gzipped numpy files) was stored in the order it was collected by the agent (so entire trajectories can be read directly using the numpy replay buffer provided in Dopamine. You just need to create a circular_replay_buffer.WrappedReplayBuffer
and load an appropriate checkpoint using the load function.
For RL Unplugged, there was some processing done on the datasets and the ordering wasn't preserved. CC'ing @caglar and @sergomezcol who worked on releasing the Atari dataset as tfrecord
files for RL Unplugged if they have any plans for releasing the sequential data for Atari or if it can be done already.
Just an FYI but the sequential Atari datasets can now directly be loaded from tensorflow_datasets
from https://www.tensorflow.org/datasets/catalog/rlu_atari.
A simple snippet to get started:
import matplotlib.pyplot as plt
import tensorflow_datasets as tfds
ds = tfds.load('rlu_atari/Alien_run_1', split='train')
data = next(iter(ds))
step = next(iter(data['steps']))
plt.imshow(next(iter(data['steps']))['observation'])
Hi!
I was wondering if there is a way to get sequential data, i.e. o_t in iteration 1 corresponds to o_tm1 in iteration 2?
This doesn't seem to be the case in the RL Unplugged codebase, even when all instances of .shuffle() are commented out. I also tried reading the data directly using tfrecord with the following code:
However, here as well, o_tp1 != o_t2, which is what I'm looking for. Is this possible?
Thanks!