2016-04-26 56 views
0

我有了塑造(?, 3)张,看起来像这样[x, y, z]进行了新的载体,我需要创建一个采取argmax它的功能,创造了新的载体,相对于尺寸赋值和argmax创建于tensorflow从argmax上的另一张

例子:

f(y): 
    v = tf.variable(tf.zeros(y.get_shape())) 
    index = tf.argmax(y) 
    v[index] = 1.0 
    return v 

不幸的是,这并不工作,我想不出一个如何能做到这一点。

回答

2

您确定要创建并分配到tf.Variable吗?使用tf.one_hot() op(可从版本0.8开始)可能会更简单一些,因为您不必担心初始化等问题。例如,您可以执行以下操作:

def f(y): 
    index = tf.argmax(y, 1) 
    return tf.one_hot(index, tf.shape(y)[1], 1.0, 0.0) 
+0

这有助于,谢谢 –

+0

嗯,它导致张量的三倍更大的尺寸。我期望维度[1024,3],我得到[3072,3]。难道我做错了什么? vector = tf.one_hot(tf.argmax(y_true,dimension = 0),tf.size(y_true),argmax_target_value,0.0) –

+0

我修改了处理矩阵输入的答案,但是从问题的角度不清楚想要跨越。你可以试试吗? – mrry