[英]Gensim equivalent of training steps
gensim Word2Vec
是否具有與TensorFlow word2vec示例中的“培訓步驟”等效的選項: Word2Vec Basic ? 如果不是,gensim使用什么默認值? gensim參數iter
與訓練步驟有關?
TensorFlow腳本包括此部分。
with tf.Session(graph=graph) as session:
# We must initialize all variables before we use them.
init.run()
print('Initialized')
average_loss = 0
for step in xrange(num_steps):
batch_inputs, batch_labels = generate_batch(
batch_size, num_skips, skip_window)
feed_dict = {train_inputs: batch_inputs, train_labels: batch_labels}
# We perform one update step by evaluating the optimizer op (including it
# in the list of returned values for session.run()
_, loss_val = session.run([optimizer, loss], feed_dict=feed_dict)
average_loss += loss_val
if step % 2000 == 0:
if step > 0:
average_loss /= 2000
# The average loss is an estimate of the loss over the last 2000 batches.
print('Average loss at step ', step, ': ', average_loss)
average_loss = 0
# Note that this is expensive (~20% slowdown if computed every 500 steps)
if step % 10000 == 0:
sim = similarity.eval()
for i in xrange(valid_size):
valid_word = reverse_dictionary[valid_examples[i]]
top_k = 8 # number of nearest neighbors
nearest = (-sim[i, :]).argsort()[1:top_k + 1]
log_str = 'Nearest to %s:' % valid_word
for k in xrange(top_k):
close_word = reverse_dictionary[nearest[k]]
log_str = '%s %s,' % (log_str, close_word)
print(log_str)
final_embeddings = normalized_embeddings.eval()
在TensorFlow示例中,如果我對嵌入執行T-SNE並使用matplotlib進行繪制,則在步驟數較多時,該繪制對我來說看起來更合理。 我正在使用一小部分1200封電子郵件。 看起來更合理的一種方法是將數字聚集在一起。 我想使用gensim達到相同的外觀質量。
是的, Word2Vec
類構造函數具有iter
參數:
iter =語料庫上的迭代次數(時期)。 默認值為5。
另外,如果你調用Word2Vec.train()
直接方法,您可以通過epochs
具有相同含義的說法。
實際訓練步驟的數量是根據時期得出的,但取決於其他參數,例如文本大小,窗口大小和批處理大小。 如果您只是想提高嵌入向量的質量,那么增加iter
是正確的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.