从在另一个张量上执行的 argmax 在张量流中创建新向量
Creating new vector in tensorflow from argmax performed on another tensor
我有一个形状为 (?, 3)
的张量,看起来像这样 [x, y, z]
我需要创建一个函数来获取它的 argmax,创建新的向量并根据维度和 argmax 赋值。
示例:
f(y):
v = tf.variable(tf.zeros(y.get_shape()))
index = tf.argmax(y)
v[index] = 1.0
return v
不幸的是,这行不通,我不知道该怎么做。
您确定要在此处创建并分配给 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)
我有一个形状为 (?, 3)
的张量,看起来像这样 [x, y, z]
我需要创建一个函数来获取它的 argmax,创建新的向量并根据维度和 argmax 赋值。
示例:
f(y):
v = tf.variable(tf.zeros(y.get_shape()))
index = tf.argmax(y)
v[index] = 1.0
return v
不幸的是,这行不通,我不知道该怎么做。
您确定要在此处创建并分配给 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)