OpenNMT / OpenNMT-py

Open Source Neural Machine Translation and (Large) Language Models in PyTorch
https://opennmt.net/
MIT License
6.73k stars 2.25k forks source link

Translation API Not Working #2555

Closed Keram-Yasin closed 8 months ago

Keram-Yasin commented 8 months ago

I used the code below to translate a sentence using OpenNMT-py Translation API:

`from onmt.translate.translator import build_translator from argparse import Namespace

opt = Namespace(models=['model_step_30000.pt'], n_best=1, alpha=0.0, batch_type='sents', beam_size=5, beta=-0.0, block_ngram_repeat=0, coverage_penalty='none', data_type='text', dump_beam='', fp32=False, gpu=-1, ignore_when_blocking=[], length_penalty='none', max_length=100, max_sent_length=None, min_length=0, output='/dev/null', phrase_table='', random_sampling_temp=1.0, random_sampling_topk=1, ratio=-0.0, replace_unk=False, report_align=False, report_time=False, seed=829, stepwise_penalty=False, tgt=None, verbose=False, quant_layers='w_1', quant_type='bnb_NF4', world_size=0, precision='fp16', random_sampling_topp=0.75, ban_unk_token='false', tgt_file_prefix='false', gold_align='false', with_score='false')

translator = build_translator(opt, report_score=False)

sentence = ["▁H", "ello", "▁world", "!"]

translated = translator.translate_batch([sentence],attn_debug=False)`

But, the following error occurred when executing the last command:

>>> translated = translator.translate_batch([sentence],attn_debug=False) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.9/site-packages/onmt/translate/translator.py", line 813, in translate_batch batch_size=len(batch["srclen"]), TypeError: list indices must be integers or slices, not str Can anybody tell me what's going on?

vince62s commented 8 months ago

this is not how things work, read https://github.com/OpenNMT/OpenNMT-py/blob/master/onmt/bin/translate.py https://github.com/OpenNMT/OpenNMT-py/blob/master/onmt/inference_engine.py