forked from hrpan/tetris_mcts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cycle.sh
executable file
·58 lines (51 loc) · 1.5 KB
/
cycle.sh
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
#/bin/bash
trap 'pkill -P $$' EXIT
n_worker=1
ngames=100
n_sims=300
n_sims_bench=1500
curr_cycle=1
agent_type=ValueSim
while getopts ":cr" opt;do
case $opt in
c)
echo "Clearing previous data"
rm logs/*
rm -r data/*
rm -r saved_model
rm -r pytorch_model
;;
r)
echo "Returning to previous cycles"
last_cycle="$(ls data/self1/ | tr -d 'data' | sort -n | tail -n 1)"
curr_cycle=$((last_cycle+1))
;;
\?)
echo "INVALID OPTION: -$OPTARG"
;;
esac
done
DATA_PATHS=""
for ((i=1; i<=${n_worker}; i++)){
mkdir -p data/self${i}
DATA_PATHS+=" data/self${i}/*"
}
mkdir -p data/benchmark
for ((x=$curr_cycle; x<200; x++)){
echo Cycle $x
python train.py --td \
--target_normalization \
--save_loss \
--batch_size 32 \
--epochs 5 \
--data_paths $DATA_PATHS \
--val_episodes 5 \
--last_nfiles $n_worker \
--val_total 100 \
--save_interval 250 >> logs/log_train 2>> logs/log_err
for ((i=1; i<=$n_worker; i++)){
python play.py --agent_type $agent_type --cycle $x --selfplay --ngames $ngames --mcts_sims $n_sims --save --save_dir data/self$i/ >> logs/log_$i 2>> logs/log_err &
}
python play.py --agent_type $agent_type --cycle $x --selfplay --ngames 1 --mcts_sims $n_sims_bench --save --save_dir data/benchmark/ >> logs/log_benchmark 2>> logs/log_err
wait
}