首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gensim word2vec模型中的跟踪损失与嵌入

Gensim word2vec模型中的跟踪损失与嵌入
EN

Stack Overflow用户
提问于 2019-01-29 14:03:15
回答 1查看 3.4K关注 0票数 4

我对Gensim非常陌生,我正在尝试使用word2vec模型来训练我的第一个模型。我看到所有的参数都非常简单易懂,但是我不知道如何跟踪模型的丢失来查看进度。另外,我希望能够在每个时代之后得到嵌入,这样我也可以显示预测在每个时代之后也变得更加符合逻辑。我怎么能这么做?

或者,是否最好每次都为iter=1进行培训,并在每个时代之后避免损失和嵌入?听起来不太有效。

在代码中显示的不多,但仍然在下面发布:

代码语言:javascript
复制
model = Word2Vec(sentences = trainset, 
             iter = 5, # epoch
             min_count = 10, 
             size = 150, 
             workers = 4, 
             sg = 1, 
             hs = 1, 
             negative = 0, 
             window = 9999)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-29 14:43:54

gensim允许我们为此目的使用回调

示例:

代码语言:javascript
复制
from gensim.models.callbacks import CallbackAny2Vec

class MonitorCallback(CallbackAny2Vec):
    def __init__(self, test_words):
        self._test_words = test_words

    def on_epoch_end(self, model):
        print("Model loss:", model.get_latest_training_loss())  # print loss
        for word in self._test_words:  # show wv logic changes
            print(model.wv.most_similar(word))

"""
prepare datasets etc.
... 
...
"""

monitor = MonitorCallback(["word", "I", "less"])  # monitor with demo words
model = Word2Vec(sentences = trainset, 
             iter = 5, # epoch
             min_count = 10, 
             size = 150, 
             workers = 4, 
             sg = 1, 
             hs = 1, 
             negative = 0, 
             window = 9999, 
             callbacks=[monitor])
  • 现在有一些带有问题get_latest_training_loss --可能是不正确的(运气不好,现在github关闭了,无法检查)。我已经测试过这个代码和损失增加-看起来很奇怪。
  • 也许你更喜欢logging - gensim就是贴合
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54422810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档