diff --git a/.submit.sh b/.submit.sh index c14d65691b413b64d0ba4271f655dbd33b0ddd8d..ada4eedec47c37fd1cc8ab81460539b6b437853e 100644 --- a/.submit.sh +++ b/.submit.sh @@ -41,7 +41,7 @@ USAGE bad_remote_message() { log_error "AIcrowd remote not found" - log_error "It should have been automatically set, but given it isn't. Please run \`git remote add aicrowd git@gitlab.aicrowd.com:<username>/data-purchasing-challenge-2022-starter-kit.git\` manually." + log_error "It should have been automatically set, but given it isn't. Please run \`git remote add aicrowd git@gitlab.aicrowd.com:<username>/neurips2022-nmmo-starter-kit.git\` manually." exit 1 } diff --git a/README.md b/README.md index 8bccd48de6e73f6782de2dedb5348d1ab73b5be9..f99a0116d518bf0ed1639ceb58f07149f1b9b3f1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - + # Table of contents - [Competition procedure](#competition-procedure) @@ -40,17 +40,17 @@ In this challenge, you will train your models locally and then upload them to AI Clone this starter kit repository. ```bash -git clone http://gitlab.aicrowd.com/neural-mmo/ijcai2022-nmmo-starter-kit.git -conda create -n ijcai2022-nmmo python==3.9 -conda activate ijcai2022-nmmo -cd ./ijcai2022-nmmo-starter-kit +git clone http://gitlab.aicrowd.com/neural-mmo/neurips2022-nmmo-starter-kit.git +conda create -n neurips2022-nmmo python==3.9 +conda activate neurips2022-nmmo +cd ./neurips2022-nmmo-starter-kit ``` -Install necessary dependencies, `git-lfs` is for submitting large files by git (use `brew` for mac users) and `ijcai2022nmmo` is a Neural MMO environment wrapper prepared for IJCAI 2022 Competition. +Install necessary dependencies, `git-lfs` is for submitting large files by git (use `brew` for mac users) and `neurips2022nmmo` is a Neural MMO environment wrapper prepared for the NeurIPS 2022 Competition. ``` apt install git-lfs -pip install git+http://gitlab.aicrowd.com/henryz/ijcai2022nmmo.git +pip install git+http://gitlab.aicrowd.com/neural-mmo/neurips2022-nmmo.git pip install -r requirements_tool.txt ``` @@ -59,8 +59,8 @@ pip install -r requirements_tool.txt ```bash python tool.py submit "my-first-submission" ``` -See your submission on [Submissions](https://www.aicrowd.com/challenges/ijcai-2022-the-neural-mmo-challenge/submissions) and -check your rank on [Leaderboard](https://www.aicrowd.com/challenges/ijcai-2022-the-neural-mmo-challenge/leaderboards) in a few minutes. +See your submission on [Submissions](https://www.aicrowd.com/challenges/neurips-2022-the-neural-mmo-challenge/submissions) and +check your rank on [Leaderboard](https://www.aicrowd.com/challenges/neurips-2022-the-neural-mmo-challenge/leaderboards) in a few minutes. # Submit your own agents @@ -88,7 +88,7 @@ The default runtime is provided in `submission-runtime/`. We also accept submiss Here is an example of submission: ```python from nmmo.io import action -from ijcai2022nmmo import Team +from neurips2022nmmo import Team class YourTeam(Team): def __init__(self, team_id: str, config=None, **kwargs): @@ -162,7 +162,7 @@ We provide a variety of baseline agents, please refer to [ijcai2022-nmmo-baselin To do local evaluation, we provide `Rollout` for easier debug, here is an example. The environment is same with the online evaluation environment in PvE Stage 1. ```python -from ijcai2022nmmo import CompetitionConfig, scripted, submission, RollOut +from neurips2022nmmo import CompetitionConfig, scripted, submission, RollOut config = CompetitionConfig() diff --git a/tool.py b/tool.py index 75d5d9cabfbddf69666d5d4b9d52b433920cbef8..9ab4dfce6ddfdd7b58505a9fa3facfa8cb118e75 100755 --- a/tool.py +++ b/tool.py @@ -1,22 +1,22 @@ #!/bin/sh ''''exec python -u "$0" ${1+"$@"} # ''' +import json +import multiprocessing as mp import os +import subprocess import sys +import threading import time -import json import traceback -import termcolor -import threading -import subprocess -import multiprocessing as mp -from subprocess import CalledProcessError from pathlib import Path +from subprocess import CalledProcessError -from nips2022nmmo import submission as subm +import termcolor +from nuerips2022nmmo import submission as subm -IMAGE = "nips2022nmmo/submission-runtime" -CONTAINER = "nips2022-nmmo-runner" +IMAGE = "nuerips2022nmmo/submission-runtime" +CONTAINER = "neurips2022-nmmo-runner" PORT = 12343 TENCENTCLOUD_REGISTRY = "ccr.ccs.tencentyun.com" MAX_REPO_SIZE = 500 @@ -26,7 +26,7 @@ def run_team_server(submission_path: str): subm.check(submission_path) team_klass, init_params = subm.parse_submission(submission_path) print(f"Start TeamServer for {team_klass.__name__}") - from nips2022nmmo import TeamServer + from nuerips2022nmmo import TeamServer server = TeamServer("0.0.0.0", PORT, team_klass, init_params) server.run() @@ -58,7 +58,8 @@ def run_submission_in_docker(submission_path, registry): if print_command: print(command) r = subprocess.run(command, shell=True, capture_output=capture_output) - if not capture_output: return r.returncode + if not capture_output: + return r.returncode if r.returncode != 0: # grep return 1 when no lines matching if r.returncode == 1 and "grep" in command: @@ -148,7 +149,7 @@ def err(msg: str): def rollout(submission_path: str, startby: str, registry: str): - from nips2022nmmo import CompetitionConfig + from nuerips2022nmmo import CompetitionConfig class Config(CompetitionConfig): NMAPS = 1 @@ -165,11 +166,11 @@ def rollout(submission_path: str, startby: str, registry: str): err(f"startby should be either docker or process") sys.exit(1) - from nips2022nmmo import ProxyTeam + from nuerips2022nmmo import ProxyTeam team = ProxyTeam("my-submission", Config(), "127.0.0.1", PORT) try: - from nips2022nmmo import RollOut, scripted + from nuerips2022nmmo import RollOut, scripted ro = RollOut( Config(), [ @@ -255,8 +256,8 @@ class Toolkit: with open("aicrowd.json", "r") as fp: config: dict = json.load(fp) - if config.get("challenge_id") != "ijcai-2022-the-neural-mmo-challenge": - err(f"[challenge_id] in aicrowd.json should be ijcai-2022-the-neural-mmo-challenge" + if config.get("challenge_id") != "neurips-2022-the-neural-mmo-challenge": + err(f"[challenge_id] in aicrowd.json should be neurips-2022-the-neural-mmo-challenge" ) sys.exit(3)