【问题标题】:why we need tf.arg_max(Y,1) with softmax in tensorflow?为什么我们需要 tf.arg_max(Y,1) 和 tensorflow 中的 softmax?
【发布时间】:2017-09-28 17:47:18
【问题描述】:

我在写tensorflow demo的时候,在correct_predition

的定义中发现了这个arg_max()函数
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)的概率

【问题讨论】:

    标签: label softmax hypothesis-test argmax


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢。 Y 是一个长度为 10 的 one-hot 向量。 对这个问题很重要。
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2019-06-09
    • 2020-09-05
    • 2012-12-03
    • 2016-06-25
    • 2017-03-12
    • 1970-01-01
    相关资源
    最近更新 更多