Dko*_*ova 4 python gensim word2vec
使用 gensim word2vec 模型时,如何打印以记录(文件或粗壮)训练阶段每个时期的损失。
我试过 :
logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s')
logging.root.setLevel(level=logging.INFO)
Run Code Online (Sandbox Code Playgroud)
但我没有看到任何损失打印。
您可以使用该方法获得 word2vec 模型的最新训练损失get_latest_training_loss()。如果您想在每个 epoch 之后打印损失,您可以添加一个回调来执行此操作。例如:
from gensim.test.utils import common_texts, get_tmpfile
from gensim.models import Word2Vec
from gensim.models.callbacks import CallbackAny2Vec
class callback(CallbackAny2Vec):
'''Callback to print loss after each epoch.'''
def __init__(self):
self.epoch = 0
def on_epoch_end(self, model):
loss = model.get_latest_training_loss()
print('Loss after epoch {}: {}'.format(self.epoch, loss))
self.epoch += 1
model = Word2Vec(common_texts, size=100, window=5, min_count=1,
compute_loss=True, callbacks=[callback()])
Run Code Online (Sandbox Code Playgroud)
然而,损失是以累积方式计算的(即每个时期后打印的损失是到目前为止所有时期的总损失)。有关更多解释,请参阅gojomo 的回答。
| 归档时间: |
|
| 查看次数: |
4519 次 |
| 最近记录: |