如何在softmax层之后将Tensorflow CNN读出为整数?

时间:2016-04-26 15:24:57

标签: python tensorflow softmax

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

我有一个CNN似乎在复制相对值时做得很好,因此它接近标签图像的范围为0.00001和0.00002 ......但是,我无法使交叉熵工作超越"有点好",因为它依赖于具有离散值的图像标签矩阵:

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

另外,我不认为我可以依赖单向量,因为我会看一个19 * 227 * 227的矩阵...但是如果这里没有解决方案,我也许会尝试。

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

1 个答案:

答案 0 :(得分:2)

我意识到这个答案有点晚了,但希望它会有所帮助。您不必创建一个热矢量;你可以使用BI4

tf.nn.sparse_softmax_cross_entropy_with_logits

请参阅下面的链接,了解其文档以及下面的链接,以获取教程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

希望这有帮助!