mmselfsup/tools/benchmarks/classification/slurm_train_semi.sh

34 lines
1.1 KiB
Bash

#!/usr/bin/env bash
set -e
set -x
PARTITION=$1
JOB_NAME=$2
CFG=$3 # use cfgs under "configs/benchmarks/classification/imagenet/imagenet_*percent/"
PRETRAIN=$4 # pretrained model
PY_ARGS=${@:5}
GPUS=${GPUS:-4} # in the standard setting, GPUS=4
GPUS_PER_NODE=${GPUS_PER_NODE:-4}
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 \
--work-dir $WORK_DIR --seed 0 --launcher="slurm" ${PY_ARGS}