如何将 Tensorflow CNN 读出 softmax 层之后的整数



我的任务是像素化地对图像进行分类...因此,图像的每个像素都有一个类,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 分布更改为整数类?

我意识到这个答案有点晚了,但希望它会有所帮助。您不必创建独热向量;您可以使用 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_logitshttps://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/image/cifar10/cifar10.py

希望这有帮助!

相关内容

最新更新