2016-04-07 19 views
3

Şu anda, benim işlevi argmax kullanan tek vardır top_k neden olan2. Max'i bir Tensorflow tensöründen nasıl alabilirim? Ben aşağıdaki kullanarak denedi</p> <pre><code>p = tf.stop_gradient(tf.argmax(prev, 1)) </code></pre> <p>ama dimn uyumsuzdur:

p = tf.stop_gradient(tf.nn.top_k(prev, 2)[1]) 

raise ValueError("Linear is expecting 2D arguments: %s" % str(shapes)) 
ValueError: Linear is expecting 2D arguments: [[None, 2, 1024], [None, 1024]] 

Benim TF versiyonu 0.5 olabilir 2 adet

cevap

3

tf.nn.top_k() için belgelere bakın. Fonksiyon, değerler ve indeksler döndürür. Yani aşağıdaki gibi bir şey çalışmalıdır.

values, indices = tf.nn.top_k(prev,2) 
p = tf.stop_gradient(indices[1]) 
+0

ValueError ([Boyut (Yok), boyut (2)]) açıklamak için seviye 1 – user2827214

+0

olmalıdır Şekil TensorShape hata yaparak atılır: X = endeksleri [1] – user2827214

İlgili konular