在 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 代码需要写出的内容提供一个简单的模板。)
我已经用 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 代码需要写出的内容提供一个简单的模板。)