summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Dyer <cdyer@cs.cmu.edu>2011-02-11 09:59:47 -0500
committerChris Dyer <cdyer@cs.cmu.edu>2011-02-11 09:59:47 -0500
commit220a28d4cfcef4a5274f53e46e08a4f8a2a50ede (patch)
tree8a9736d2befd1fedcd4c36038a42d8e69ab7f66d
parentd3ba693db07736765d631ceb526ee1edaae2c790 (diff)
multi-pass mert
-rwxr-xr-xvest/dist-vest.pl20
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.