【问题标题】:Save trained gensim word2vec model as a tensorflow SavedModel将训练好的 gensim word2vec 模型保存为 tensorflow SavedModel
【发布时间】:2020-05-05 20:20:44
【问题描述】:

我们是否可以选择使用 tf 2.0 tf.saved_model.save 将经过训练的 Gensim Word2Vec 模型保存为已保存模型?换句话说,如何将经过训练的嵌入向量保存为保存的模型签名以与 tensorflow 2.0 一起使用。以下步骤通常不正确:

model = gensim.models.Word2Vec(...)

model.init_sims(..)

model.train(..)

model.save(..)

module = gensim.models.KeyedVectors.load_word2vec(...)

tf.saved_model.save(
    module, 
    export_dir
)

编辑:

这个例子帮助我了解如何做到这一点:https://keras.io/examples/nlp/pretrained_word_embeddings/

【问题讨论】:

  • Gensim 的 KeyedVectors 不以任何方式使用 Tensorflow,因此您可能想使用它自己的原生 .save()。此外,使用.save() 保存的Word2Vec 模型将使用Word2Vec.load(...) 加载。 (我不确定您使用 KeyedVector.load_word2vec_format() 方法在做什么,但该方法无法对您之前保存的内容执行任何操作。并且如果不显示您收到的错误消息/堆栈,则不清楚“不工作”可能是什么意思。)

标签: tensorflow gensim word2vec


【解决方案1】:

Gensim 不使用 TensorFlow,它有 its own methods 用于加载和保存模型。

您需要将 Gensim 嵌入转换为 TensorFlow,该模型只有在您进一步计划在 TensorFlow 中使用嵌入并可能针对您的任务进行微调时才有意义。

Gensim Word2Vec 是 TensorFlow 中的两个步骤:

  1. Vocabulary lookup:为标记分配索引的表。

  2. Embedding lookup layer 获取索引的实际嵌入。

然后,您可以将其保存为任何其他 TensorFlow 模型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    相关资源
    最近更新 更多