Для пробоотборников, реализованных в тензорном потоке, например. 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], что в основном означает, что выборка выполняется только один раз, а не для каждой партии.
Может кто-нибудь помочь в разъяснении этого вопроса?