Sampling The Dataset¶
Now that your agent can act in the environment, we should show it how to leverage human demonstrations.
To get started, let’s ensure the data has been downloaded
import minerl minerl.data.download('/your/local/path')
Or simply download a single experiment
For a complete list of published experiments, checkout the environment documentation.
Now we can build the datast for
data = minerl.data.make( 'MineRLObtainDiamond-v0', data_dir='/your/local/path') # Iterate through a single epoch gathering sequences of at most 32 steps for current_state, action, reward, next_state, done \ in data.sarsd_iter( num_epochs=1, max_sequence_len=32): # Print the POV @ the first step of the sequence print(current_state['pov']) # Print the final reward pf the sequence! print(reward[-1]) # Check if final (next_state) is terminal. print(done[-1]) # ... do something with the data. print("At the end of trajectories the length" "can be < max_sequence_len", len(reward))
minerl package uses environment variables to locate the data directory.
For portability, plese define
/your/local/path/ in your system environment variables.
Visualizing The Data
To help you get familiar with the MineRL dataset,
minerl python package also provides a data trajectory viewer called
minerl.viewer program lets you step through individual
showing the observation seen the player, the action
they took (including camera, movement, and any action described by an MineRL
environment’s action space), and the reward they received.
usage: python3 -m minerl.viewer [-h] environment [stream_name] positional arguments: environment The MineRL environment to visualize. e.g. MineRLObtainDiamondDense-v0 stream_name (optional) The name of the trajectory to visualize. e.g. v1_absolute_zucchini_basilisk-13_36805-50154. optional arguments: -h, --help show this help message and exit
Try it out on a random trajectory by running:
# Make sure your MINERL_DATA_ROOT is set! export MINERL_DATA_ROOT='/your/local/path' # Visualizes a random trajectory of MineRLObtainDiamondDense-v0 python3 -m minerl.viewer MineRLObtainDiamondDense-v0
Try it out on a specific trajectory by running:
# Make sure your MINERL_DATA_ROOT is set! export MINERL_DATA_ROOT='/your/local/path' # Visualizes a specific trajectory. v1_absolute_zucch... python3 -m minerl.viewer MineRLTreechop-v0 \ v1_absolute_zucchini_basilisk-13_36805-50154