我训练了一个 doc2vec
模型 gensim
我想把它导入 Deeplearning4j
为了部署那个模型。
为了 word2vec
模型,我知道用
model.wv.save_word2vec_format("word2vec.bin", binary=True)
如果在java中使用
Word2Vec w2vModel = WordVectorSerializer.readWord2VecModel("word2vec.bin");
有没有类似的方法来导入 doc2vec
模特?
1条答案
按热度按时间11dmarpk1#
这个
save_word2vec_format()
方法只保存单词向量,而不保存完整的模型。如果你用gensim的
.save()
为了保存完整的模型,它将使用python的本机序列化,因此任何读取它的java代码都必须在将相关属性重新排列到dl4j对象之前理解该格式。我在dl4j的文件里没有看到任何东西
ParagraphVectors
类文档建议它可以读取gensim格式的模型,所以我怀疑是否有任何内置支持。从理论上讲,可以编写一些python代码,将模型的所有相关子部分转储为易于用java读取的形式,然后修补到dl4j模型中,或者编写java代码来理解python序列化对象,但这需要对gensim和dl4j源代码都有一定的熟悉。
(如果
toJson()
&fromJson()
dl4j中的方法使用完整的模型表示法(文档中不清楚这种表示法,对于大部分模型状态来说是一种极其臃肿的格式),这可能会使模型转换变得更容易,因为它为一些新的python代码需要编写的内容提供了一个简单的模板。)