xnmt requires Python 3.6.
Before running xnmt you must install the required packages, including Python bindings for
This can be done by running
pip install -r requirements.txt.
(There are also optional package requirements under
requirements-extra/ for features that are non-central to xnmt.)
Next, install xnmt by running
python setup.py install for normal usage or
python setup.py develop for
Command line tools¶
xnmt comes with the following command line interfaces:
xnmtruns experiments given a configuration file that can specify preprocessing, model training, and evaluation. The corresponding Python file is
xnmt/xnmt_run_experiments.py. Typical example call:
xnmt --dynet-gpu my-training.yaml
xnmt_decodedecodes a hypothesis using a specified model. The corresponding Python file is
xnmt/xnmt_decode.py. Typical example call:
xnmt_decode --src src.txt --hyp out.txt --mod saved-model.mod
xnmt_evaluatecomputes an evaluation metric given hypothesis and reference files. The corresponding Python file is
xnmt/xnmt_evaluate.py. Typical example call:
xnmt_evaluate --hyp out.txt --ref ref.txt --metric bleu
Running the examples¶
xnmt includes a series of tutorial-style examples in the
These are a good starting point to get familiarized with specifying models and
experiments. To run the first experiment, use the following:
This is a shortcut for typing
python -m xnmt.xnmt_run_experiments examples/01_standard.yaml.
Make sure to read the comments provided in the example configuration.
See the Experiment configuration file format documentation entry for more details about writing experiment configuration files.
xnmt includes several self-contained recipes on publically available data with competitive model settings, and
including scripts for data preparation, in the
Running unit tests¶
From the main directory, run:
python -m unittest
Or, to run a specific test, use e.g.
python -m unittest test.test_run.TestRunningConfig.test_standard
If you wish to use all the modules in xnmt that need cython, you need to build the cython extensions by this command:
python setup.py build_ext --inplace --use-cython-extensions