PaddlePaddle按照文档编写,出现name 'result_ids_lod' is not defined

本文描述了在使用Fluid1.1进行机器翻译时遇到的“name'result_ids_lod'isnotdefined”错误,并提供了详细的代码示例和解决方案。通过添加一行代码来获取结果的LOD信息,成功解决了这一问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 问题描述:我使用Fluid1.1按照文档编写相应的结果,出现name ‘result_ids_lod’ is not defined错误

  • 报错信息:

Original sentence:
<unk> , l&apos; 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值