【发布时间】:2019-02-23 07:09:09
【问题描述】:
在训练完词嵌入后,我将其保存为 npz 格式。 当我尝试将其加载为 KeyedVectors 格式时,它会出错。 如何将 numpy 数组加载为 gensim.KeyedVectors 格式? 我真的需要它,因为我需要使用诸如 most_similar() 之类的函数,而不仅仅是向量值。
在带有张量流的model.py中,
self.verb_embeddings = tf.Variable(np.load(cfg.pretrained_target)["embeddings"],
name="verb_embeddings",
dtype=tf.float32,
trainable=cfg.tune_emb)
在 save.py 中
target_emb = sess.run(model.verb_embeddings)
np.savez_compressed("trained_target_emb.npz", embeddings=target_emb)
在 main.py 中
model = KeyedVectors.load('trained_target_emb.npz')
我明白了
_pickle.UnpicklingError: A load persistent id instruction was encountered, but no persistent_load function was specified.
也试过
model = KeyedVectors.load_word2vec_format('trained_target_emb.npz')
但是得到了
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xde in position 14: invalid continuation byte
【问题讨论】:
标签: python numpy tensorflow gensim embedding