在 deeplearning4j 中导入 gensim doc2vec 模型

Importing a gensim doc2vec model in deeplearning4j

我已经用 gensim 训练了一个 doc2vec 模型,想将其导入 Deeplearning4j 以部署该模型。

对于 word2vec 模型,我知道这可以通过使用

保存模型来实现
model.wv.save_word2vec_format("word2vec.bin", binary=True)

并在 Java 中导入

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

是否有类似的方法来导入 doc2vec 模型?

save_word2vec_format() 方法仅保存词向量,而不是完整模型。

如果您要使用 Gensim 的 .save() 来保存完整模型,它将使用 Python 的本机序列化 - 因此任何 Java 代码都必须读取它在将相关属性重新排列到 DL4J 对象之前了解该格式。

我在 DL4J's ParagraphVectors class docs 的文档中没有看到任何暗示它可以读取 Gensim 格式模型的内容,所以我怀疑是否有任何内置支持。

从理论上讲,可以编写一些 Python 代码以将模型的所有相关子部分转储为易于在 Java 中读取的形式,然后修补到 Dl4J 模型中,或者 Java 要编写的代码来理解 Python 序列化对象——但这需要对 Gensim 和 DL4J 源代码有一定的了解。

(如果 DL4J 中的 toJson()fromJson() 方法与完整的模型表示一起工作——文档中并不清楚,并且对于大部分模型来说将是一种极其臃肿的格式state – 这可能会使模型转换更容易一些,因为它会为一些新 Python 代码需要写出的内容提供一个简单的模板。)