我对Gensim非常陌生,我正在尝试使用word2vec模型来训练我的第一个模型。我看到所有的参数都非常简单易懂,但是我不知道如何跟踪模型的丢失来查看进度。另外,我希望能够在每个时代之后得到嵌入,这样我也可以显示预测在每个时代之后也变得更加符合逻辑。我怎么能这么做?
或者,是否最好每次都为iter=1进行培训,并在每个时代之后避免损失和嵌入?听起来不太有效。
在代码中显示的不多,但仍然在下面发布:
model = Word2Vec(sentences = trainset,
iter = 5, # epoch
min_count = 10,
size = 150,
workers = 4,
sg = 1,
hs = 1,
negative = 0,
window = 9999)发布于 2019-01-29 14:43:54
gensim允许我们为此目的使用回调。
示例:
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])https://stackoverflow.com/questions/54422810
复制相似问题