Blame view
egs/wsj/s5/steps/nnet2/adjust_priors.sh
2.42 KB
8dcb6dfcb first commit |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
#!/bin/bash # Copyright 2012-2014 Johns Hopkins University (Author: Daniel Povey). Apache 2.0. # Copyright (c) 2015, Johns Hopkins University (Yenda Trmal <jtrmal@gmail.com>) # License: Apache 2.0 # Begin configuration section. cmd=run.pl iter=final # End configuration section echo "$0 $@" # Print the command line for logging if [ -f path.sh ]; then . ./path.sh; fi . parse_options.sh || exit 1; if [ $# != 2 ]; then echo "Usage: $0 [opts] <degs-dir> <nnet-dir>" echo " e.g.: $0 exp/tri4_mpe_degs exp/tri4_mpe" echo "" echo "Performs priors adjustment either on the final iteration" echo "or iteration of choice of the training. The adjusted model" echo "filename will be suffixed by \"adj\", i.e. for the final" echo "iteration final.mdl will become final.adj.mdl" echo "" echo "Main options (for others, see top of script file)" echo " --config <config-file> # config file containing options" echo " --cmd (utils/run.pl|utils/queue.pl <queue opts>) # how to run jobs." echo " --iter <iteration|final> # which iteration to be adjusted" exit 1; fi degs_dir=$1 dir=$2 src_model=$dir/${iter}.mdl if [ ! -f $src_model ]; then echo "$0: Expecting $src_model to exist." exit 1 fi if [ ! -f $degs_dir/priors_egs.1.ark ]; then echo "$0: Expecting $degs_dir/priors_egs.1.ark to exist." exit 1 fi num_archives_priors=`cat $degs_dir/info/num_archives_priors` || { echo "Could not find $degs_dir/info/num_archives_priors."; exit 1; } $cmd JOB=1:$num_archives_priors $dir/log/get_post.${iter}.JOB.log \ nnet-compute-from-egs "nnet-to-raw-nnet $src_model -|" \ ark:$degs_dir/priors_egs.JOB.ark ark:- \| \ matrix-sum-rows ark:- ark:- \| \ vector-sum ark:- $dir/post.${iter}.JOB.vec || { echo "Error in getting posteriors for adjusting priors." echo "See $dir/log/get_post.${iter}.*.log"; exit 1; } $cmd $dir/log/sum_post.${iter}.log \ vector-sum $dir/post.${iter}.*.vec $dir/post.${iter}.vec || { echo "Error in summing posteriors. See $dir/log/sum_post.${iter}.log"; exit 1; } rm -f $dir/post.${iter}.*.vec echo "Re-adjusting priors based on computed posteriors for iter $iter" $cmd $dir/log/adjust_priors.${iter}.log \ nnet-adjust-priors $src_model $dir/post.${iter}.vec $dir/${iter}.adj.mdl || { echo "Error in adjusting priors. See $dir/log/adjust_priors.${iter}.log"; exit 1; } echo "Done adjusting priors (on $src_model)" |