paddle1.6.1通过save_inference_model保存的二进制词向量转换成文本报错
Created by: rotc
参考语义角色标注的代码
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)