计算rank1脚本
s_r1=0
s_r5=0
s_r10=0
s_r20=0
echo "Sp_ID Rank-1 Rank-5 Rank-10 Rank-20" > te.txt
function getdir(){
for element in `ls $1`
do
dir_or_file=$1"/"$element
if [ -d $dir_or_file ]
then
best_rank1=$(grep rank-1 $dir_or_file"/log_train.txt") # grep the line: best rank-1 {} occured at epoch {}
best_r1_value=${best_rank1:12:5} # get the rank-1 value, e.g, 90.00
best_epoch=${best_rank1:36:3}
best_epoch_add=$(($best_epoch+1))
best_all_rank=$(grep "==> Epoch "$best_epoch -A 15 $dir_or_file"/log_train.txt" > temp.txt)
best_r5_value=$(grep Rank-5 temp.txt)
best_r10_value=$(grep Rank-10 temp.txt)
best_r20_value=$(grep Rank-20 temp.txt)
best_r5_value=${best_r5_value##*:}
best_r10_value=${best_r10_value##*:}
best_r20_value=${best_r20_value##*:}
best_r5_value=${best_r5_value%*%}
best_r10_value=${best_r10_value%*%}
best_r20_value=${best_r20_value%*%}
echo ${element:4:2} $best_r1_value $best_r5_value $best_r10_value $best_r20_value >> te.txt
s_r1=$(echo "$s_r1+$best_r1_value" | bc)
s_r5=$(echo "$s_r5+$best_r5_value" | bc)
s_r10=$(echo "$s_r10+$best_r10_value" | bc)
s_r20=$(echo "$s_r20+$best_r20_value" | bc)
fi
done
ave_r1=$(echo " scale=3;$s_r1/10" | bc)
ave_r5=$(echo " scale=3;$s_r5/10" | bc)
ave_r10=$(echo " scale=3;$s_r10/10" | bc)
ave_r20=$(echo " scale=3;$s_r20/10" | bc)
echo "avg" $ave_r1 $ave_r5 $ave_r10 $ave_r20 >> te.txt
column -t te.txt > result.txt # format column
rm te.txt
rm temp.txt
}
root_dir="."
getdir $root_dir
评论
发表评论