2016-04-26 67 views
0

我的任务是按像素对图像进行分类...因此图像的每个像素都有一个类,并且CNN应该能够读出标签图像,使得每个像素都具有该类的离散值(0-19 )。如何在softmax图层读取Tensorflow 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分布更改为整数类?

回答

2

我意识到这个答案有点晚,但希望它会有所帮助。你不必创建一个热门的向量;你可以使用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

希望这有助于!

相关问题