在deeplearning4j中导入gensim doc2vec模型

jckbn6z7  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(506)

我训练了一个 doc2vec 模型 gensim 我想把它导入 Deeplearning4j 为了部署那个模型。
为了 word2vec 模型,我知道用

model.wv.save_word2vec_format("word2vec.bin", binary=True)

如果在java中使用

Word2Vec w2vModel = WordVectorSerializer.readWord2VecModel("word2vec.bin");

有没有类似的方法来导入 doc2vec 模特?

11dmarpk

11dmarpk1#

这个 save_word2vec_format() 方法只保存单词向量,而不保存完整的模型。
如果你用gensim的 .save() 为了保存完整的模型,它将使用python的本机序列化,因此任何读取它的java代码都必须在将相关属性重新排列到dl4j对象之前理解该格式。
我在dl4j的文件里没有看到任何东西 ParagraphVectors 类文档建议它可以读取gensim格式的模型,所以我怀疑是否有任何内置支持。
从理论上讲,可以编写一些python代码,将模型的所有相关子部分转储为易于用java读取的形式,然后修补到dl4j模型中,或者编写java代码来理解python序列化对象,但这需要对gensim和dl4j源代码都有一定的熟悉。
(如果 toJson() & fromJson() dl4j中的方法使用完整的模型表示法(文档中不清楚这种表示法,对于大部分模型状态来说是一种极其臃肿的格式),这可能会使模型转换变得更容易,因为它为一些新的python代码需要编写的内容提供了一个简单的模板。)

相关问题