提前致谢。我在DeepLearning4j中使用Word2Vec。
如何清除Word2Vec中的词汇缓存。这是因为我希望每次重新加载Word2Vec时重新训练一组新的单词模式。 …
如果你想重新训练(这叫做 训练 ),我明白你只想完全忽略以前学过的模型(词汇,单词矢量......)。为此,您应该创建另一个Word2Vec对象并使其适合新数据。您应该使用其他实例 SentenceIterator 和 标记生成器 课程如此。您的问题可能是您更改输入培训文件的方式。
如果你只是改变它应该没问题 SentenceIterator ,即:
SentenceIterator iter = new CollectionSentenceIterator(DataFetcher.getFirstDataset()); Word2Vec vec = new Word2Vec.Builder() .iterate(iter) .... .build(); vec.fit(); vec.wordsNearest("clear", 10); // you will see results from first dataset SentenceIterator iter2 = new CollectionSentenceIterator(DataFetcher.getSecondDataset()); vec = new Word2Vec.Builder() .iterate(iter2) .... .build(); vec.fit(); vec.wordsNearest("clear", 10); // you will see results from second dataset, without any first dataset implication
如果您运行代码两次,并且您在执行之间更改了输入数据(让我们说A然后是B),则不应该有相同的结果。如果是这样,那意味着你的模型用输入数据A和B学到了同样的东西。
如果你想更新培训(这称为 推理 ),我的意思是使用以前学过的模型和新数据来更新这个模型,然后你应该使用 这个例子 来自dl4j的例子。