marian icon indicating copy to clipboard operation
marian copied to clipboard

Marian command line parsing in 1.9.0

Open SamuelLarkin opened this issue 4 years ago • 5 comments

Hi, I've updated from 1.7.0 to 1.9.0 and I now getting an error when trying to translate.

marian-decoder \
  --input=test-dedup/source \
  --devices=0 \
  --num-devices=1 \
  --models=model/model.npz \
  --vocabs vocab.iu.json vocab.en.json \
  --seed=3499 \
  --workspace=2000
Error: Expected at least 1 arguments to --input, got 0
Run with --help for more information.

Then I thought may be I should provide the input through redirection instead.

marian-decoder \
  --devices=0 \
  --num-devices=1 \
  --models=model/model.npz \
  --vocabs vocab.iu.json vocab.en.json \
  --seed=3499 \
  --workspace=2000 \
  < test-dedup/source
Error: Expected at least 1 arguments to --devices, got 0
Run with --help for more information.

My input has some content.

wc test-dedup/source
  3602  91633 638002 test-dedup/source

What else? If I DO NOT use = signs in the command. I can translate.

marian-decoder \
  --input test-dedup/source \
  --devices 0 \
  --num-devices 1 \
  --models model/model.npz \
  --vocabs vocab.iu.json vocab.en.json \
  --seed 3499 \
  --workspace 2000

Thus, are we allowed to use '=' between parameters and their arguments?

If so, when providing --vocabs, should I separate the arguments by a comma?

SamuelLarkin avatar Mar 25 '20 20:03 SamuelLarkin

Hi, we dropped boost from Marian a while ago and that will cause slight differences in command line parsing. Looks like to you ran into one of the differences.

@snukky Is it correct that '=' doesn't work anymore with the new CLI parser?

emjotde avatar Mar 25 '20 20:03 emjotde

Hi, not sure if I'm using the minimalist command line but this fails

marian-decoder \
  --input=test-dedup/source \
  --models=model/model.npz \
  --vocabs=vocab.iu.json,vocab.en.json \
  < test-dedup/source
Error: Expected at least 1 arguments to --input, got 0
Run with --help for more information.

But this works

marian-decoder \
  --input test-dedup/source \
  --models model/model.npz \
  --vocabs vocab.iu.json vocab.en.json \
  < test-dedup/source

But putting back = for any parameter, fails

marian-decoder \
  --input=test-dedup/source \
  --models model/model.npz \
  --vocabs vocab.iu.json vocab.en.json \
  < test-dedup/source
Error: Expected at least 1 arguments to --input, got 0
Run with --help for more information.

marian-decoder \
  --input test-dedup/source \
  --models=model/model.npz \
  --vocabs vocab.iu.json vocab.en.json \
  < test-dedup/source
Error: Expected at least 1 arguments to --models, got 0
Run with --help for more information.

marian-decoder \
  --input test-dedup/source \
  --models model/model.npz \
  --vocabs=vocab.iu.json,vocab.en.json \
  < test-dedup/source
Error: Expected at least 1 arguments to --vocabs, got 0
Run with --help for more information.

SamuelLarkin avatar Mar 25 '20 20:03 SamuelLarkin

OK, that seems to confirm that '=' is gone. In that case this behavior would be expected.

emjotde avatar Mar 25 '20 20:03 emjotde

Hm, it seems working for simple options but not for paths and vector options. I'll check what the 3rd party library supports.

snukky avatar Mar 25 '20 21:03 snukky

@snukky low priority ping.

emjotde avatar Apr 20 '20 16:04 emjotde