| DATA="${1-DD}" | |
| fold=${2-1} # 0 for 10-fold | |
| GPU=${3-0} | |
| seed=1 | |
| CONFIG=configs/${DATA} | |
| if [ ! -f "$CONFIG" ]; then | |
| echo "No config file for ${DATA} in configs folder" | |
| exit 128 | |
| fi | |
| source configs/${DATA} | |
| FOLDER=results | |
| FILE=${FOLDER}/${DATA}.txt | |
| if [ ! -d "$FOLDER" ]; then | |
| mkdir $FOLDER | |
| fi | |
| run(){ | |
| CUDA_VISIBLE_DEVICES=${GPU} python3 src/main.py \ | |
| -seed $seed -data $DATA -fold $1 -num_epochs $num_epochs \ | |
| -batch $batch_size -lr $learning_rate -deg_as_tag $deg_as_tag \ | |
| -l_num $layer_num -h_dim $hidden_dim -l_dim $layer_dim \ | |
| -drop_n $drop_network -drop_c $drop_classifier \ | |
| -act_n $activation_network -act_c $activation_classifier \ | |
| -ks $pool_rates_layers -acc_file $FILE | |
| } | |
| if [ ${fold} == 0 ]; then | |
| if [ -f "$FILE" ]; then | |
| rm $FILE | |
| fi | |
| echo "Running 10-fold cross validation" | |
| start=`date +%s` | |
| run $fold | |
| stop=`date +%s` | |
| echo "End of cross-validation using $[stop - start] seconds" | |
| echo "The accuracy results for ${DATA} are as follows:" | |
| cat $FILE | |
| echo "Mean and sstdev are:" | |
| cat $FILE | datamash mean 2 sstdev 2 | |
| else | |
| run $fold | |
| echo "The accuracy result for ${DATA} fold ${fold} is:" | |
| tail -1 $FILE | |
| fi | |