FS-TFP/benchmark/B-FHTL/scripts/Graph-DC/hpo/run_fedmaml.sh

55 lines
1.5 KiB
Bash

set -e
cd ../../../../
cudaid=$1
root=$2
dataset=fs_contest_data
method=maml
outdir=exp_out/${method}
if [ ! -d ${outdir} ];then
mkdir -p ${outdir}
fi
echo "HPO starts..."
lrs=(0.01 0.1 0.05 0.005 0.5)
innerlrs=(0.01 0.1 1.)
local_updates=(1 2 5)
ft_steps=(200 300)
for (( i=0; i<${#lrs[@]}; i++ ))
do
for (( j=0; j<${#local_updates[@]}; j++ ))
do
for (( s=0; s<${#ft_steps[@]}; s++ ))
do
for (( ii=0; ii<${#innerlrs[@]}; ii++))
do
log=${outdir}/gin_lr-${lrs[$i]}_step-${local_updates[$j]}_mstep-${ft_steps[$s]}_ilr-${innerlrs[$ii]}_on_${dataset}.log
for k in {1..3}
do
python federatedscope/main.py --cfg benchmark/B-FHTL/scripts/Grpah-DC/fedavg_gnn_minibatch_on_multi_task.yaml \
data.root ${root} \
device ${cudaid} \
data.type ${dataset} \
optimizer.lr ${lrs[$i]} \
federate.local_update_steps ${local_updates[$j]} \
trainer.type graphmaml_trainer \
trainer.finetune.before_eval True \
trainer.finetune.steps ${ft_steps[$s]} \
maml.use True \
maml.inner_lr ${innerlrs[$ii]} \
eval.freq 100 \
seed $k >>${log} 2>&1
done
python federatedscope/parse_exp_results.py --input ${log}
done
done
done
done
echo "HPO ends."