# examples of running programs: # bash ./run.sh train CTCN ./configs/ctcn.yaml # bash ./run.sh eval NEXTVLAD ./configs/nextvlad.yaml # bash ./run.sh predict NONLOCAL ./cofings/nonlocal.yaml # mode should be one of [train, eval, predict, inference] # name should be one of [AttentionCluster, AttentionLSTM, NEXTVLAD, NONLOCAL, TSN, TSM, STNET, CTCN] # configs should be ./configs/xxx.yaml mode=$1 name=$2 configs=$3 pretrain="" # set pretrain model path if needed resume="" # set pretrain model path if needed save_dir="./data/checkpoints" save_inference_dir="./data/inference_model" use_gpu=True fix_random_seed=False log_interval=1 valid_interval=1 weights="" #set the path of weights to enable eval and predicut, just ignore this when training export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 #export CUDA_VISIBLE_DEVICES=0,1,2,3 #export CUDA_VISIBLE_DEVICES=0 export FLAGS_fast_eager_deletion_mode=1 export FLAGS_eager_delete_tensor_gb=0.0 export FLAGS_fraction_of_gpu_memory_to_use=0.98 if [ "$mode"x == "train"x ]; then echo $mode $name $configs $resume $pretrain if [ "$resume"x != ""x ]; then python train.py --model_name=$name \ --config=$configs \ --resume=$resume \ --log_interval=$log_interval \ --valid_interval=$valid_interval \ --use_gpu=$use_gpu \ --save_dir=$save_dir \ --fix_random_seed=$fix_random_seed elif [ "$pretrain"x != ""x ]; then python train.py --model_name=$name \ --config=$configs \ --pretrain=$pretrain \ --log_interval=$log_interval \ --valid_interval=$valid_interval \ --use_gpu=$use_gpu \ --save_dir=$save_dir \ --fix_random_seed=$fix_random_seed else python train.py --model_name=$name \ --config=$configs \ --log_interval=$log_interval \ --valid_interval=$valid_interval \ --use_gpu=$use_gpu \ --save_dir=$save_dir \ --fix_random_seed=$fix_random_seed fi elif [ "$mode"x == "eval"x ]; then echo $mode $name $configs $weights if [ "$weights"x != ""x ]; then python eval.py --model_name=$name \ --config=$configs \ --log_interval=$log_interval \ --weights=$weights \ --use_gpu=$use_gpu else python eval.py --model_name=$name \ --config=$configs \ --log_interval=$log_interval \ --use_gpu=$use_gpu fi elif [ "$mode"x == "predict"x ]; then echo $mode $name $configs $weights if [ "$weights"x != ""x ]; then python predict.py --model_name=$name \ --config=$configs \ --log_interval=$log_interval \ --weights=$weights \ --video_path='' \ --use_gpu=$use_gpu else python predict.py --model_name=$name \ --config=$configs \ --log_interval=$log_interval \ --use_gpu=$use_gpu \ --video_path='' fi elif [ "$mode"x == "inference"x ]; then echo $mode $name $configs $weights if [ "$weights"x != ""x ]; then python inference_model.py --model_name=$name \ --config=$configs \ --weights=$weights \ --use_gpu=$use_gpu \ --save_dir=$save_inference_dir else python inference_model.py --model_name=$name \ --config=$configs \ --use_gpu=$use_gpu \ --save_dir=$save_inference_dir fi else echo "Not implemented mode " $mode fi