-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun_gdrn_container.sh
executable file
·96 lines (78 loc) · 2.78 KB
/
run_gdrn_container.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
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
91
92
93
94
95
96
NGPUS=$1
CONFIG=$2
RUN_ID=$3
METHOD=$4
DATASET=$5
EVAL=$6
BRANCH=$7
WEIGHTS=$8
EVAL_LOCAL=$9
### setup environment on spool
DATASET_DICT_CACHE="/opt/cache/jemrich/datadicts"
OUTPUT_PATH="/opt/spool/jemrich-denstereo/output"
IMAGE_CACHE="/opt/cache/jemrich/image.tar"
echo "setup environment on spool"
if [ ! -d $OUTPUT_PATH ]; then
mkdir $OUTPUT_PATH
fi
### create dataset dict cache
if [ ! -d $DATASET_DICT_CACHE ]; then
mkdir -p $DATASET_DICT_CACHE
fi
### sync cached dataset dicts
echo ""
echo "sync dataset dict cache from pc3002"
rsync -aP pc3002:/opt/datasets/jemrich/cache/ $DATASET_DICT_CACHE
### sync cached dataset dicts
echo ""
echo "sync dataset"
# rsync -aP pc3002:/opt/datasets/BOP_DATASETS/denstereo/ /opt/spool/jemrich/BOP_DATASETS/denstereo
if [[ ! $WEIGHTS == "False" ]]; then
CHECKPOINT="--checkpoint ${WEIGHTS}"
else
CHECKPOINT=""
fi
EVALUATE=""
if [[ ! $EVAL == "False" ]]; then
echo ""
echo "sync eval model from pc3002"
mkdir -p ${OUTPUT_PATH}/${METHOD}/${DATASET}/${RUN_ID}
rsync -aP --update --whole-file pc3002:/opt/datasets/jemrich/output/${METHOD}/${DATASET}/${RUN_ID}/model_final.pth ${OUTPUT_PATH}/${METHOD}/${DATASET}/${RUN_ID}/model_final.pth
EVALUATE="--evaluate"
fi
if [[ $EVAL_LOCAL == "True" ]]; then
EVALUATE="--evaluate"
fi
DEBUG=""
if [[ $BRANCH == "debug" ]]; then
DEBUG="--debug"
else
BRANCH="denstereo"
fi
source rootless_docker_env.sh #share-data
# source ~/rootless_docker_env_tmux.sh $TMUX
### cache and load docker image
if [ ! -f $IMAGE_CACHE.gz ]; then
mkdir -p "/opt/cache/jemrich"
fi
echo "sync image from pc3002"
rsync -aP --update --whole-file pc3002:~/den-env-image.tar.gz $IMAGE_CACHE.gz
if [[ $IMAGE_CACHE.gz -nt $IMAGE_CACHE ]]; then
echo "newer image found on pc3002"
echo "unzip image..."
gzip -dv --force $IMAGE_CACHE.gz
fi
echo "load image..."
docker ps
docker images
docker load -i $IMAGE_CACHE
docker run --shm-size=100G --rm --name prod --gpus $NGPUS -dit -v /denstereo -v $OUTPUT_PATH:/denstereo/output -v ~/denstereo-so/runs:/denstereo/runs -v /opt/spool/jemrich/:/denstereo/datasets -v $DATASET_DICT_CACHE:/denstereo/.cache denstereo-env:latest
docker exec -it prod sh -c "export LD_LIBRARY_PATH=/opt/llvm/lib/:$LD_LIBRARY__PATH; cd /denstereo; git clone [email protected]:janemrich/denstereo2.git; cd denstereo-so; git checkout ${BRANCH}; ln -s ../.cache .cache; ln -s ../runs runs; ln -s ../datasets datasets; rm output/.gitignore; rmdir output; ln -s ../output output; python launch_main.py $CONFIG $RUN_ID $EVALUATE $DEBUG $CHECKPOINT"
docker stop prod
echo "sync output..."
rsync -aP $OUTPUT_PATH/ pc3002:/opt/datasets/jemrich/output
rsync -aP $DATASET_DICT_CACHE/ pc3002:/opt/datasets/jemrich/cache
echo "run_id:"
echo $RUN_ID
# docker rmi -f denstereo-env:latest
source stop_rootless_docker.sh