gpt4 book ai didi

gensim - 在 Gensim word2vec 模型中跟踪损失和嵌入

转载 作者:行者123 更新时间:2023-12-01 09:43:29 26 4
gpt4 key购买 nike

我对 Gensim 很陌生,我正在尝试使用 word2vec 模型训练我的第一个模型。我看到所有参数都非常简单易懂,但是我不知道如何跟踪模型的损失以查看进度。此外,我希望能够在每个 epoch 之后获得嵌入,以便我还可以证明预测在每个 epoch 之后也变得更加合乎逻辑。我怎样才能做到这一点?

或者,每次训练 iter=1 并在每个 epoch 之后保存损失和嵌入是否更好?听起来效率不高。

代码不多,但仍将其发布在下面:

model = Word2Vec(sentences = trainset, 
iter = 5, # epoch
min_count = 10,
size = 150,
workers = 4,
sg = 1,
hs = 1,
negative = 0,
window = 9999)

最佳答案

gensim 允许我们将 callbacks 用于此类目的。

例子:

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_lossissues - 可能是不正确的(运气不好,现在 github 已关闭,无法检查)。我已经测试了这段代码并且损失增加了 - 看起来很奇怪。
  • 可能是您更喜欢 logging - gensim 是 fitted
  • 关于gensim - 在 Gensim word2vec 模型中跟踪损失和嵌入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54422810/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com