Skip to content

evaluation script is too complicated and does not make use of the internal structure

By now, we have to specify --dev-files and --eval-files using full paths. However, as most parts of the paths are common, it should be easily possible to simplify the parameters such that you only need to specify the --result-directory that you want to evaluate. The remaining parameters (check for the presence of scores-dev and scores-eval files), and even the --protocol or --experiments can automatically be estimated from the presence inside the --results-directory.

The current options --dev-files and --eval-files should IMHO still be present, so that we can plot together experiments from different directories. An exemplary evaluation call might be:

./bin/evaluate.py --result-directory results/mobio --protocol male --algorithms gmm ivector --dev-files other-results/mobio/isv/male/nonorm/scores-dev --eval-files other-results/mobio/isv/male/nonorm/scores-eval

In this case, the --algorithms could be automatically determined by the sub-directories inside results/mobio, and even the protocol might be automatically estimated, when only one common sub-directory is present inside results/mobio/*. In non-obvious cases, an error including proper instructions might be issued.

Another option would be to be able to provide several --result-directories, so that the same command line as above would be:

./bin/evaluate.py --result-directories results/mobio/gmm results/mobio/ivector other-results/mobio/isv --protocol male

This might be less confusing, but is longer to write, especially when you have several algorithms to evaluate.

@amohammadi @tiago.pereira Which option would you prefer?