0

当我写 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)吗?

4

1 回答 1

0

arg_max(hypothesis) 正在返回一个索引。Y 是长度为 10 的 one-hot 向量。tf.equal() 在这里不能做任何明智的事情,因为这两件事不兼容。

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

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

于 2017-05-01T15:01:25.287 回答