-
问题描述:我使用Fluid1.1按照文档编写相应的结果,出现name ‘result_ids_lod’ is not defined错误
-
报错信息:
Original sentence:
<unk> , l' indice de la bourse technologique a perdu 0,8 % , et a fini avec <unk> points du marché .
Translated score and sentence:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-14-9adba1019ebd> in <module>()
23 print("Translated score and sentence:")
24 for i in range(beam_size):
---> 25 start_pos = result_ids_lod[1][i] + 1
26 end_pos = result_ids_lod[1][i+1]
27 print("%d\t%.4f\t%s\n" % (i+1, result_scores[end_pos-1],
NameError: name 'result_ids_lod' is not defined
- 问题复现:
for data in test_data():
feed_data = list(map(lambda x: [x[0]], data))
feed_dict = feeder.feed(feed_data)
feed_dict['init_ids'] = init_ids
feed_dict['init_scores'] = init_scores
results = exe.run(
framework.default_main_program(),
feed=feed_dict,
fetch_list=[translation_ids, translation_scores],
return_numpy=False)
result_ids = np.array(results[0])
result_scores = np.array(results[1])
- 问题解决:
文档中的代码缺少了result_ids_lod = results[0].lod()
,导致出现了上述问题。
for data in test_data():
feed_data = list(map(lambda x: [x[0]], data))
feed_dict = feeder.feed(feed_data)
feed_dict['init_ids'] = init_ids
feed_dict['init_scores'] = init_scores
results = exe.run(
framework.default_main_program(),
feed=feed_dict,
fetch_list=[translation_ids, translation_scores],
return_numpy=False)
result_ids = np.array(results[0])
result_ids_lod = results[0].lod()
result_scores = np.array(results[1])
最新的代码请参考https://github.com/PaddlePaddle/book/blob/fa35415f2b3f5a5d3e045ff0564d5df0a5a2b0d5/08.machine_translation/infer.py