I’m new in using openNMT-py and I’d like to know which model should I pick up for translation out of all the models I get from the training process. In the tutorial I see that the models should be this form
demo-model_acc_XX.XX_ppl_XXX.XX_eX.pt
however my models name are like this:
model_step_45000.pt
Can you please let me know how can I obtain the model that looks like the demo example or how can I know which model is the best for translation?
Yes the naming is a bit different but the essential thing here is “4500” that indicates the number of learning steps that has passed.
Check out these parameters in train.py (http://opennmt.net/OpenNMT-py/options/train.html)
-train_steps total amount of train steps you would like to undertake (typically ~10 epochs where the amount of steps in one epoch is snts_count_in_train_data / batch_size), -save_checkpoint_steps is for how often you would like to save the checkpoint. Depending on the speed of your training you would like to save it every few hours so that you do not need to wait a day to stop the training.
-keep_checkpoint allows you to save only the last few checkpoints
Typically you would like to use the model that has reached 10 epochs but if you watch your model train progress on tensorboard you might want to stop the training earlier in case if the model has already reached its full potential.