首页 Paddle框架 帖子详情
paddle1.6.1通过save_inference_model保存的二进制词向量转换成文本报错
收藏
快速回复
Paddle框架 问答深度学习 840 6
paddle1.6.1通过save_inference_model保存的二进制词向量转换成文本报错
收藏
快速回复
Paddle框架 问答深度学习 840 6

参考语义角色标注的代码

def load_parameter(file_name, h, w):
    with open(file_name, 'rb') as f:
        f.read(16)  # skip header.
        return np.fromfile(f, dtype=np.float32).reshape(h, w)

解析通过fluid.io.save_inference_model(save_dirname, test_feed_order, [scale_infer], exe)保存的词向量term_table

    query_basic_emb = layers.embedding(
        input=query_basic,
        dtype='float32',
        size=[1000002, 128],
        param_attr='term_table',
        is_sparse=IS_SPARSE)

报错,看起来是header的大小不对,其中a是保存的二进制term_table路径,看起来f.read(28)就可以成功

>>> load_parameter(a, 1000002, 128)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "load_embedding.py", line 25, in load_parameter
    return np.fromfile(f, dtype=np.float32).reshape(h, w)
ValueError: cannot reshape array of size 128000259 into shape (1000002,128)
0
收藏
回复
全部评论(6)
时间顺序
AIStudio791360
#2 回复于2019-12

请问是直接使用了语义角色标注的代码,paddle1.6版本,报错的吗?自己有做什么改动吗?

0
回复
AIStudio791523
#3 回复于2019-12

请问是直接使用了语义角色标注的代码,paddle1.6版本,报错的吗?自己有做什么改动吗?

不是的,用的是自己的模型训练,然后save_inference_model保存的词向量结果

0
回复
AIStudio791360
#4 回复于2019-12

能否提供一个可以复现问题的脚本,以方便相关同学排查

0
回复
AIStudio791523
#5 回复于2019-12

能否提供一个可以复现问题的脚本,以方便相关同学排查

已提供

0
回复
AIStudio791360
#6 回复于2019-12

建议通过保存下来的网络描述,拿到embedding的参数名字。根据参数名,获取参数可以参考链接:https://www.paddlepaddle.org.cn/documentation/docs/zh/faq/train_cn.html#q-numpyfcw

0
回复
AIStudio791360
#7 回复于2019-12

用户反馈上面给出的方法已解决问题。

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户