File size: 2,492 Bytes
7bfbe05 b9e43f7 7bfbe05 b9e43f7 7bfbe05 b9e43f7 7bfbe05 b9e43f7 7bfbe05 b9e43f7 7bfbe05 b9e43f7 7bfbe05 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
while test $# != 0
do
case "$1" in
-a) algos=$2 ;;
-j) n_jobs=$2 ;;
-p) project_name=$2 ;;
-s) seeds=$2 ;;
-e) envs=$2 ;;
--procgen) procgen=t ;;
--microrts) microrts=t ;;
--no-mask-microrts) no_mask_microrts=t ;;
--microrts-ai) microrts_ai=t ;;
esac
shift
done
algos="${algos:-ppo a2c dqn vpg}"
n_jobs="${n_jobs:-6}"
project_name="${project_name:-rl-algo-impls-benchmarks}"
seeds="${seeds:-1 2 3}"
BASIC_ENVS=(
"CartPole-v1"
"MountainCar-v0"
"Acrobot-v1"
"LunarLander-v2"
)
ATARI_ENVS=(
"PongNoFrameskip-v4"
"BreakoutNoFrameskip-v4"
"SpaceInvadersNoFrameskip-v4"
"QbertNoFrameskip-v4"
)
BOX_ENVS=(
# Basic
"MountainCarContinuous-v0"
"BipedalWalker-v3"
# PyBullet
"HalfCheetahBulletEnv-v0"
"AntBulletEnv-v0"
"HopperBulletEnv-v0"
"Walker2DBulletEnv-v0"
# CarRacing
"CarRacing-v0"
)
for algo in $(echo $algos); do
if [ "$procgen" = "t" ]; then
PROCGEN_ENVS=(
"procgen-coinrun-easy"
"procgen-starpilot-easy"
"procgen-bossfight-easy"
"procgen-bigfish-easy"
)
algo_envs=${PROCGEN_ENVS[*]}
elif [ "$microrts" = "t" ]; then
MICRORTS_ENVS=(
"MicrortsMining-v1"
"MicrortsAttackShapedReward-v1"
"MicrortsRandomEnemyShapedReward3-v1"
)
algo_envs=${MICRORTS_ENVS[*]}
elif [ "$no_mask_microrts" = "t" ]; then
NO_MASK_MICRORTS_ENVS=(
"MicrortsMining-v1-NoMask"
"MicrortsAttackShapedReward-v1-NoMask"
"MicrortsRandomEnemyShapedReward3-v1-NoMask"
)
algo_envs=${NO_MASK_MICRORTS_ENVS[*]}
elif [ "$microrts_ai" == "t" ]; then
MICRORTS_AI_ENVS=(
"MicrortsDefeatCoacAIShaped-v3"
"MicrortsDefeatCoacAIShaped-v3-diverseBots"
)
algo_envs=${MICRORTS_AI_ENVS[*]}
elif [ -z "$envs" ]; then
if [ "$algo" = "dqn" ]; then
BENCHMARK_ENVS="${BASIC_ENVS[*]} ${ATARI_ENVS[*]}"
elif [ "$algo" = "vpg" ]; then
BENCHMARK_ENVS="${BASIC_ENVS[*]} ${BOX_ENVS[*]}"
else
BENCHMARK_ENVS="${BASIC_ENVS[*]} ${BOX_ENVS[*]} ${ATARI_ENVS[*]}"
fi
algo_envs=${BENCHMARK_ENVS[*]}
else
algo_envs=$envs
fi
bash scripts/train_loop.sh -a $algo -e "$algo_envs" -p $project_name -s "$seeds" | xargs -I CMD -P $n_jobs bash -c CMD
done |