2021-12-15 19:11:37 +08:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
set -x
|
|
|
|
|
|
|
|
PARTITION=$1
|
|
|
|
JOB_NAME=$2
|
|
|
|
CFG=$3 # use cfgs under "configs/benchmarks/classification/imagenet/*.py"
|
|
|
|
PRETRAIN=$4 # pretrained model
|
|
|
|
PY_ARGS=${@:5}
|
2022-02-09 17:45:41 +08:00
|
|
|
GPUS=${GPUS:-8} # When changing GPUS, please also change samples_per_gpu in the config file accordingly to ensure the total batch size is 256.
|
2021-12-15 19:11:37 +08:00
|
|
|
GPUS_PER_NODE=${GPUS_PER_NODE:-8}
|
|
|
|
CPUS_PER_TASK=${CPUS_PER_TASK:-5}
|
|
|
|
PORT=${PORT:-29500}
|
|
|
|
SRUN_ARGS=${SRUN_ARGS:-""}
|
|
|
|
|
|
|
|
# set work_dir according to config path and pretrained model to distinguish different models
|
|
|
|
WORK_DIR="$(echo ${CFG%.*} | sed -e "s/configs/work_dirs/g")/$(echo $PRETRAIN | rev | cut -d/ -f 1 | rev)"
|
|
|
|
|
|
|
|
PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
|
|
|
|
srun -p ${PARTITION} \
|
|
|
|
--job-name=${JOB_NAME} \
|
|
|
|
--gres=gpu:${GPUS_PER_NODE} \
|
|
|
|
--ntasks=${GPUS} \
|
|
|
|
--ntasks-per-node=${GPUS_PER_NODE} \
|
|
|
|
--cpus-per-task=${CPUS_PER_TASK} \
|
|
|
|
--kill-on-bad-exit=1 \
|
|
|
|
${SRUN_ARGS} \
|
|
|
|
python -u tools/train.py $CFG \
|
|
|
|
--cfg-options model.backbone.init_cfg.type=Pretrained \
|
|
|
|
model.backbone.init_cfg.checkpoint=$PRETRAIN \
|
|
|
|
dist_params.port=$PORT \
|
2022-03-31 18:47:54 +08:00
|
|
|
--work-dir $WORK_DIR --seed 0 --launcher="slurm" ${PY_ARGS}
|