Skip to content

Creating the dataset

27071991 edited this page Jul 8, 2020 · 10 revisions

This page gives a tutorial on how to create the dataset using the crowd-sourcing application.

Prerequisite: Follow the instructions on the Environment Setup Page.

Setup Web Interface for Data Collection

To execute the website that is needed for data collection, use the following command:

$ python3 app.py --randomize

The website can now be accessed by using the link (http://0.0.0.0:5000/ on MacOS/Linux or http://localhost:5000/ on Windows). For all the arguments that can be provided, look at the help description.

$ python3 app.py --help

The web-interface can now be used to create a dataset, wherein all datapoints would be saved in the dataset/ directory.

Tutorial for Human Teachers

In order to familiarize the humans giving us the data for collection, a tutorial was constructed and is the first thing which is shown when the website is launched. These videos have been put in the static/ folder in the repository. A sample video is shown below.

Tutorial for Human Teachers

Dataset

Here is how the dataset structure should look like:

dataset
├── home
├── factory
└── test
    ├── home
    └── factory

The dataset is organized as follows. We have 8 different goals and 10 different world instances for both the domains, home and factory. Each domain has 8 directories corresponding to the goals possible for the domain. These goals itself, contain directories for the 10 different world instances. Each goal for each world instance in a particular domain thus has a number of different human demonstrations, and these are saved in the form of a .datapoint file for each plan. This is a pickled instance of the Datapoint class found in src/datapoint.py and contains all the information needed about the plan. Refer to the class for more information.

This is an example of basic datapoint file.

World = world_home1
Goal = goal1-milk-fridge
Symbolic actions:
{'name': 'changeState', 'args': ['fridge', 'open']}
{'name': 'pickNplaceAonB', 'args': ['milk', 'fridge']}
{'name': 'changeState', 'args': ['fridge', 'close']}