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?