2017-10-10 15 views
5

Hedefimin tek tek bölgelerinin modunu (en sık değeri) almam gereken Tensorflow'da bir DAG oluşturmaya çalışıyorum. Bu, küçültülmüş bir hedef oluşturmak içindir.Tensorflow'da Tensörün Modunu Alma Mümkün mü?

Şu anda karşılaştığım her bir durum için alt örnekleme hedeflerini önceden kaydediyorum, bunları kaydediyorum ve sonra yüklüyorum. Açıkçası, bu benim Tensorflow grafiğime entegre edilmiş olsaydı, bu daha kolay olurdu, bu yüzden çalışma zamanında aşağı örnek verebilirdim.

Ama her yere baktım veile ilgili hiçbir kanıt bulamadım, bu tf.reduce_mean ile aynı işlevi görecektir. Bu işlevselliği bir Tensorflow grafiğinde oluşturmanın bir yolu var mı?

cevap

0

Benim fikrim, benzersiz sayıları ve sayılarını elde etmemiz. Daha sonra en sık görünen sayıları buluruz. Sonunda, sayıları sayım tensöründeki endekslerini kullanarak bu sayıları (birden fazla olabilir) çıkarırız.

samples = tf.constant([10, 32, 10, 5, 7, 9, 9, 9]) 
unique, _, count = tf.unique_with_counts(samples) 
max_occurrences = tf.reduce_max(count) 
max_cond = tf.equal(count, max_occurrences) 
max_numbers = tf.squeeze(tf.gather(unique, tf.where(max_cond))) 

with tf.Session() as sess: 
    print 'Most frequent Numbers\n', sess.run(max_numbers) 
> Most frequent Numbers 
    9