Features
While OpenNMT initially focused on standard sequence to sequence models applied to machine translation, it has been extended to support many additional models and features. The tables below highlight some of the key features of each implementation.
Tasks
|
OpenNMT-py |
OpenNMT-tf |
Image to text |
✓ (v1 only) |
|
Language modeling |
✓ |
✓ |
Sequence classification |
|
✓ |
Sequence tagging |
|
✓ |
Sequence to sequence |
✓ |
✓ |
Speech to text |
✓ (v1 only) |
✓ |
Summarization |
✓ |
|
Models
Model configuration
Training
|
OpenNMT-py |
OpenNMT-tf |
Automatic evaluation |
✓ |
✓ |
Automatic model export |
|
✓ |
Contrastive learning |
|
✓ |
Data augmentation (e.g. noise) |
✓ |
✓ |
Early stopping |
✓ |
✓ |
Gradient accumulation |
✓ |
✓ |
Supervised alignment |
✓ |
✓ |
Mixed precision |
✓ |
✓ |
Moving average |
✓ |
✓ |
Multi-GPU |
✓ |
✓ |
Multi-node |
✓ |
✓ |
On-the-fly tokenization |
✓ |
✓ |
Pretrained embeddings |
✓ |
✓ |
Scheduled sampling |
|
✓ |
Sentence weighting |
|
✓ |
Vocabulary update |
✓ |
✓ |
Weighted dataset |
✓ |
✓ |
Decoding
For more details on how to use these features, please refer to the documentation of each project: