Neural Monkey is a universal toolkit for training neural models for sequence-to-sequence tasks. The system has been successfully tested on machine translation, multimodal machine translation, or automatic post-editing. It can be used, however, for many other tasks, including image captioning, part-of-speech tagging, sequence classification, etc.

Neural Monkey's primary goal is to allow for fast prototyping and easy extension, which makes it a toolkit-of-choice for researchers who want to implement and/or modify recently published techniques.

Neural Monkey is written in Python 3 and built on the TensorFlow library. It supports training on GPUs with a minimum required effort. 

If you want to start using Neural Monkey, clone it from its GitHub page. There is a bunch of tutorials and plenty of other useful information either in the package README, or in the documentation.



Neural Monkey was used in the following publications:

  • Libovický, J., Helcl, J., Tlustý, M., Bojar, O., & Pecina, P. (2016, August). CUNI System for WMT16 Automatic Post-Editing and Multimodal Translation Tasks. In Proceedings of the First Conference on Machine Translation (p. 646)
  • Avramidis, E., Macketanz, V., Burchardt, A., Helcl, J., & Uszkoreit, H. (2016, October). Deeper Machine Translation and Evaluation for German. In 2nd Deep Machine Translation Workshop (p. 29).
  • Bojar, O., Sudarikov, R., Kocmi, T., Helcl, J., & Cıfka, O. (2016). UFAL Submissions to the IWSLT 2016 MT Track. In Proceedings of the ninth International Workshop on Spoken Language Translation (IWSLT), Seattle, WA.

How to cite

If you make use of Neural Monkey, please consider citing the following paper:

    author = {Jind{\v{r}}ich Helcl and Jind{\v{r}}ich Libovick{\'{y}}},
    title = {Neural Monkey: An Open-source Tool for Sequence Learning},
    journal = {The Prague Bulletin of Mathematical Linguistics},
    year = {2017},
    address = {Prague, Czech Republic},
    number = {107},
    pages = {5--17},
    issn = {0032-6585},
    doi = {10.1515/pralin-2017-0001},
    url = {}