【问题标题】:How to readout a Tensorflow CNN into integers after the softmax layer?如何在 softmax 层之后将 Tensorflow CNN 读出为整数?
【发布时间】:2016-04-26 15:24:56
【问题描述】:

我的任务是按像素对图像进行分类......所以图像的每个像素都有一个类别,CNN 应该能够读出标签图像,使得每个像素都具有类别的离散值(0- 19)。

我有一个 CNN,它似乎在再现相对值方面做得很好,因此它在 0.00001 和 0.00002 的范围内逼近标签图像......但是,我无法让交叉熵工作不仅仅是“有点好”,因为它依赖于具有离散值的图像标签矩阵:

[[0, 1, 1, 1],[1,1,3,3],.etc]  # A 2x4 pixel example

另外,我认为我不能依赖 onehot 向量,因为我会查看 19*227*227 矩阵……但如果这里没有解决方案,我可能会尝试一下。


无论如何,如何对 softmax 中的返回值进行整数装箱?我必须为图像中的每个像素做 1hot 矢量,还是可以通过其他方式将 softmax 分布更改为整数类?

【问题讨论】:

    标签: python tensorflow softmax


    【解决方案1】:

    我意识到这个答案有点晚了,但希望它会有所帮助。您不必创建 one-hot 向量;你可以使用tf.nn.sparse_softmax_cross_entropy_with_logits

    labels: Each entry labels[i] must be an index in [0, num_classes) or -1. If -1, the corresponding loss will be 0, regardless of the contents of logits[i].

    有关其文档的链接,请参阅下面的链接,有关在教程 CIFAR-10 网络中使用的示例,请参见下面的链接。 https://www.tensorflow.org/versions/r0.8/api_docs/python/nn.html#sparse_softmax_cross_entropy_with_logits https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/image/cifar10/cifar10.py

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-16
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 2020-10-13
      • 1970-01-01
      • 2019-01-14
      相关资源
      最近更新 更多