│ ├── random_batched_agent.py # Batched agent that returns random actions
│ ├── rllib_batched_agent.py # Batched agent that runs with the rllib baseline
│└── torchbeast_agent.py # Batched agent that runs with the torchbeast baseline
├── nethack_baselines # Baseline agents for submission
├── other_examples
├── random_rollouts.py # Barebones random agent with no batching
├── rllib # Baseline agent trained with rllib
├── torchbeast # Baseline agent trained with IMPALA on Pytorch
├── notebooks
├── NetHackTutorial.ipynb # Tutorial on the Nethack Learning Environment
│ ├── other_examples
││ └── random_rollouts.py # Barebones random agent with no batching
│ ├── rllib # Baseline agent trained with rllib
│└── torchbeast # Baseline agent trained with IMPALA on Pytorch
└── notebooks
└── NetHackTutorial.ipynb # Tutorial on the Nethack Learning Environment
```
Finally, **you must specify an AIcrowd submission JSON in `aicrowd.json` to be scored!** See "How do I actually make a submission" below for more details.
Finally, **you must specify an AIcrowd submission JSON in `aicrowd.json` to be scored!** See [How do I actually make a submission?](#how-do-i-actually-make-a-submission) below for more details.
**How can I get going with an existing baseline?**
### How can I get going with an existing baseline?
The best current baseline is the torchbeast baseline. Follow the instructions
[here](/nethack_baselines/torchbeast/) to install and start training
...
...
@@ -129,7 +129,7 @@ To then submit your saved model, simply set the `AGENT` in
You can now test your saved model with `python test_submission.py`
**How can I get going with a completely new model?**
### How can I get going with a completely new model?
Train your model as you like, and when you’re ready to submit, just adapt
`YourAgent` in `agents/your_agent.py` to load your model and take a `batched_step`.
...
...
@@ -137,7 +137,7 @@ Train your model as you like, and when you’re ready to submit, just adapt
Then just set your `AGENT` in `submission_config.py` to be this class
and you are ready to test with `python test_submission.py`
**How do I actually make a submission?**
### How do I actually make a submission?
First you need to fill in you `aicrowd.json`, to give AIcrowd some info so you can be scored.
The `aicrowd.json` of each submission should contain the following content:
...
...
@@ -155,9 +155,9 @@ The submission is made by adding everything including the model to git,
tagging the submission with a git tag that starts with `submission-`, and
pushing to AIcrowd's GitLab. The rest is done for you!
More details are available [here](/docs/SUBMISSION.md)
More details are available [here](/docs/SUBMISSION.md).
**Are there any hardware or time constraints?**
### Are there any hardware or time constraints?
Your submission will need to complete 128 rollouts in 30 minutes. We will
run 4 of these in parallel, and a total of 512 episodes will be used for
...
...
@@ -190,7 +190,7 @@ The machine where the submission will run will have following specifications:
On **MacOS**, one can use `Homebrew` as follows:
``` bash
$ brew install cmake
brew install cmake
```
On a plain **Ubuntu 18.04** distribution, `cmake` and other dependencies
...
...
@@ -198,13 +198,13 @@ The machine where the submission will run will have following specifications: