2016-08-15 3 views
0

Для пробоотборников, реализованных в тензорном потоке, например. tf.nn.fixed_unigram_candidate_sampler. В документе поведение не определено. Например, я ожидаю, что метки, указанные в true_classes, будут исключены из пула выборки, и выборка будет проводиться для каждой партии. Но, согласно моим экспериментам, ни одно из них не верно.Нечеткое поведение для сэмплера в Tensorflow

Рассмотрим следующий код:

import tensorflow as tf 

labels_matrix = tf.reshape(tf.constant([1, 2, 3, 4], dtype=tf.int64), [-1, 1]) 

sampled_ids, _, _ = tf.nn.fixed_unigram_candidate_sampler(
true_classes = labels_matrix, 
num_true = 1, 
num_sampled = 1, 
unique = True, 
range_max = 5, 
distortion = 0.0, 
unigrams = range(5) 
) 

init = tf.initialize_all_variables() 
with tf.Session() as sess: 
sess.run(init) 
print sess.run([sampled_ids]) 

Выход может быть 3, который на самом деле принадлежит множеству истинных классов. - Кроме того, выход имеет размер [1], что в основном означает, что выборка выполняется только один раз, а не для каждой партии.

Может кто-нибудь помочь в разъяснении этого вопроса?

ответ

0

documentation for fixed_unigram_candidate_sampler действительно упоминает, что истинные метки можно отбирать. Одна из вещей, которые вы отметили как _ в своем коде, на самом деле является ожидаемым соотношением отбираемых истинных меток.

Смежные вопросы