Logging of the experiments is via wandb.ai. Before trying to replicate the experiments here, you will have to create a WandB account. If you have any questions about these instructions please raise an issue.
To make WandB work, you will need to copy your wandb api key. You can do this by going to your image on the top right > user settings > danger zone > API keys. Copy this and put it into a file. Set the location of this file in an environment variable called WANDB_API_KEY_FILE
. Use, for example, export WANDB_API_KEY_FILE=$HOME/.wandb_api_key
.
- Make sure you have correctly set the WANDB_API_KEY_FILE environment variable mentioned in the introduction.
- Clone the pymarl2 repository:
git clone https://github.com/benellis3/pymarl2.git
- Build the Docker container by running
docker build -t pymarl2:ben_smac -f docker/Dockerfile --build-arg UID=$UID .
from the pymarl2 directory. - Install Starcraft by running
./install_sc2.sh
in the pymarl2 directory. - Navigate to
src/config/default.yaml
and setproject
andentity
to your desired project name (can be anything) and your wandb username respectively. - Set
td_lambdas
inrun_exp.sh
(line 21) to be0.4
andeps_anneal
to100000
. - Run
./run_exp.sh qmix <tag>
where<tag>
is a word to help you identify the experiments. If you want to run the10_vs_11
or20_vs_23
scenarios, you will have to ensure the./run_docker.sh
command on line 46 hasn_units
andn_enemies
set correctly. For example for the20_vs_23
scenario you would setn_units=20
andn_enemies=23
.
- Make sure you have correctly set the WANDB_API_KEY_FILE environment variable mentioned in the introduction.
- Clone the MAPPO repository:
git clone https://github.com/benellis3/mappo.git
- Build the docker container by running
build.sh
in thedocker directory
- Install Starcraft by running
./install_sc2.sh
in the mappo directory. - Navigate to
src/config/default.yaml
and setproject
andentity
to your desired project name (can be anything) and your wandb username respectively. - Set
lr
inrun.sh
to0.0005
andclip_range
to0.1
. If you want to run the closed-loop baseline, changemaps
to only contain maps withoutopen_loop
in their name. For the open-loop baseline, do the opposite, i.e. keep all the map names withopen_loop
in them and delete the rest. - Run
./run.sh clipping_rnn_central_V <tag>
where<tag>
is a word to help you identify the experiments. If you want to run the10_vs_11
or20_vs_23
scenarios, you will have to setoffset
on line 21 of the script. This controls how many more enemies there are than allies.
- Complete steps 0-4 of Running SMACv2 Baselines (QMIX), making sure to use
run_exp_epo.sh
whererun_exp.sh
is mentioned. - Run
./run_exp_epo.sh qmix <tag>
where<tag>
is a word to help you identify the experiments.
- Complete steps 0-4 of Running SMACv2 Baselines (MAPPO), making sure to use
run_exp_epo.sh
. whererun_exp.sh
is mentioned. - Run
./run_exp_epo.sh mappo <tag>
where<tag>
is a word to help you identify the experiments.
- Follow steps 0 and 1 of Running SMACv2 Baselines (MAPPO).
- Checkout the
stochastic-experiment
branch:git checkout stochastic-experiment
- Install Starcraft by running
./install_sc2.sh
in the mappo directory. - Build the docker container by running
./build.sh
in thedocker
directory. - Navigate to
src/config/default.yaml
and setproject
andentity
to your desired project name (can be anything) and your wandb username respectively. - Run
./run_exp.sh clipping_rnn_central_V <tag>
where<tag>
is a word to help you identify experiments.
- Follow steps 0 and 1 of Running SMACv2 Baselines (QMIX).
- Checkout the
stochastic_test
branch:git checkout stochastic_test
- Install Starcraft by running
./install_sc2.sh
in the pymarl2 directory. - Build the Docker container by running
./build.sh
in thedocker
directory. - Navigate to
src/config/default.yaml
and setproject
andentity
to your desired project name (can be anything) and your wandb username respectively. - Run
./run.sh qmix <tag>
where<tag>
is a word to help you identify experiments.
See the README in the pymarl2 repo