以下是此页https://www.tensorflow.org/versions/0.6.0/tutorials/deep_cnn/index.html
上提出的问题练习:推理的输出是非标准化的logits。尝试 编辑网络体系结构以返回标准化预测 使用tf.softmax()。
根据练习的精神,我想知道我是否在正确的轨道上(不是寻找编码的答案)。
这是我提出的解决方案。
第1步:示例中的最后一层(推理)是" softmax_linear",即它只是执行非标准化 WX + b转换。根据规定,我们将tf.nn.softmax
操作与softmax_linear
一起用作输入。这将输出标准化为范围[0,1]上的概率。
第2步:下一步是修改损失函数中的交叉熵计算。由于我们已经具有规范化输出,因此我们需要将tf.nn.softmax_cross_entropy_with_logits
操作替换为普通cross_entropy(normalized_softmax, labels)
函数(在计算损失之前不会进一步规范化输出)。我相信这个函数在tensorflow库中可以不;需要写出来。
那就是它。我们诚挚地征求反馈意见。
答案 0 :(得分:0)
如果您在tf.nn.softmax()
中插入cifar10_eval.py
(而不是cifar10.py
),则第1步就足够了。例如:
logits = cifar10.inference(images)
normalized_logits = tf.nn.softmax(logits)
top_k_op = tf.nn.in_top_k(normalized_logits, labels, 1)