Skip to content

MineRL Competition for Sample Efficient Reinforcement Learning - Python Package

License

Notifications You must be signed in to change notification settings

minerllabs/minerl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

73f62cb · Jul 23, 2020
Jul 23, 2020
Jul 11, 2020
Jul 23, 2020
Jul 23, 2020
Jul 23, 2020
Sep 13, 2019
Jul 9, 2020
Jun 16, 2020
Jul 11, 2020
Jun 16, 2020
Jul 23, 2020
Oct 16, 2019
Jun 7, 2019
Jul 23, 2020
Jun 16, 2020
Jun 16, 2020
Jul 23, 2020
Jul 23, 2020

Repository files navigation

The MineRL Python Package

Build Status Downloads PyPI version "Open Issues" GitHub issues by-label Discord

Support us on patron

Python package providing easy to use gym environments and a simple data api for the MineRLv0 dataset.

To get started please read the docs here!

We develop minerl in our spare time, please consider supporting us on Patreon <3

Installation

With JDK-8 installed run this command

pip3 install --upgrade minerl

Basic Usage

Running an environment:

import minerl
import gym
env = gym.make('MineRLNavigateDense-v0')


obs = env.reset()

done = False
while not done:
    action = env.action_space.sample() 
 
    # One can also take a no_op action with
    # action =env.action_space.noop()
    
 
    obs, reward, done, info = env.step(
        action)

Sampling the dataset:

import minerl

# YOU ONLY NEED TO DO THIS ONCE!
minerl.data.download('/your/local/path')

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'][0])

        # 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))

Visualizing the dataset:

viewer|540x272

# 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

MineRL Competition

If you're here for the MineRL competition. Please check the main competition website here.