为什么我们需要在tensorflow中使用softmax的tf.arg_max(Y,1)?

时间:2017-05-01 09:25:25

标签: label softmax hypothesis-test argmax

当我编写tensorflow演示时,我在 arg_max()

的定义中找到了 correct_predition 函数
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(
            logits=hypothesis,labels=Y))
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)

correct_prediction = tf.equal(tf.arg_max(hypothesis,1),tf.arg_max(Y,1))

返回张量轴上具有最大值的索引。(这来自TF的API)

我们使用' softmax_cross_entropy_with_logits ',

预测( hypothesis )表示为概率

我们将通过 arg_max() hypothesis 函数得到最大预测概率的索引

但是Y是标签,这不是我们需要使用tf.arg_max(Y,1) 的概率吗?

1 个答案:

答案 0 :(得分:0)

arg_max(假设)正在返回一个INDEX。 Y是长度为10的单热矢量。 tf.equal()在这里做不了什么事,因为这两件事情不兼容。

因此,arg_max(Y)返回一个INDEX。 现在tf.equal()可以做一个明智的事情:如果预测与目标匹配则为1,否则为0。

注意arg_max()不是关于概率的函数:它只是一个返回最大元素索引的函数。