diff options
author | Chris Dyer <cdyer@cs.cmu.edu> | 2011-02-11 09:59:47 -0500 |
---|---|---|
committer | Chris Dyer <cdyer@cs.cmu.edu> | 2011-02-11 09:59:47 -0500 |
commit | 220a28d4cfcef4a5274f53e46e08a4f8a2a50ede (patch) | |
tree | 8a9736d2befd1fedcd4c36038a42d8e69ab7f66d | |
parent | d3ba693db07736765d631ceb526ee1edaae2c790 (diff) |
multi-pass mert
-rwxr-xr-x | vest/dist-vest.pl | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/vest/dist-vest.pl b/vest/dist-vest.pl index 52feb3e6..1852fa5a 100755 --- a/vest/dist-vest.pl +++ b/vest/dist-vest.pl @@ -64,6 +64,7 @@ my $use_make; # use make to parallelize line search my $dirargs=''; my $density_prune; my $usefork; +my $pass_suffix = ''; my $cpbin=1; # Process command-line options Getopt::Long::Configure("no_auto_abbrev"); @@ -72,6 +73,7 @@ if (GetOptions( "decode-nodes=i" => \$decode_nodes, "density-prune=f" => \$density_prune, "dont-clean" => \$disable_clean, + "pass-suffix" => \$pass_suffix, "use-fork" => \$usefork, "dry-run" => \$dryrun, "epsilon=s" => \$epsilon, @@ -265,7 +267,7 @@ while (1){ print STDERR `date`; my $im1 = $iteration - 1; my $weightsFile="$dir/weights.$im1"; - my $decoder_cmd = "$decoder -c $iniFile -w $weightsFile -O $dir/hgs"; + my $decoder_cmd = "$decoder -c $iniFile --weights$pass_suffix $weightsFile -O $dir/hgs"; if ($density_prune) { $decoder_cmd .= " --density_prune $density_prune"; } @@ -590,7 +592,11 @@ sub enseg { my $i=0; while (my $line=<SRC>){ chomp $line; - print NEWSRC "<seg id=\"$i\">$line</seg>\n"; + if (/^\s*<seg/i) { + print NEWSRC "$line\n"; + } else { + print NEWSRC "<seg id=\"$i\">$line</seg>\n"; + } $i++; } close SRC; @@ -620,12 +626,12 @@ Options: Use make -j <I> to run the optimizer commands (useful on large shared-memory machines where qsub is unavailable). - --decoder <decoder path> - Decoder binary to use. - --decode-nodes <I> Number of decoder processes to run in parallel. [default=15] + --decoder <decoder path> + Decoder binary to use. + --density-prune <N> Limit the density of the hypergraph on each iteration to N times the number of edges on the Viterbi path. @@ -640,6 +646,10 @@ Options: Maximum number of iterations to run. If not specified, defaults to 10. + --pass-suffix <S> + If the decoder is doing multi-pass decoding, the pass suffix "2", + "3", etc., is used to control what iteration of weights is set. + --pmem <N> Amount of physical memory requested for parallel decoding jobs. |