tensorflow中有两个直接计算softmax回归和交叉熵的函数,softmax回归说法不太合适,其只是根据神经网络输出计算分类的概率。第一种函数为:
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(y, y_)
其中y为原始神经网络的输出结果,而y_为给出的标准答案,两者都为[None, num_classes]的rank。
如y=[10.0, 112.0, -1.0],而y_为[1.0, 0.0, 0.0]
第二种为:
cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y, labels=tf.argmax(y_, 1))
同样y为原始神经网络的输出结果,而y_为给出的标准答案,两者都为[None, num_classes]的rank,y=[10.0, 112.0, -1.0],而y_为[1.0, 0.0, 0.0],所以logits为[None, num_classes], labels为[None,],此时labels为标准答案的索引,这样只有一个分类结果,可以加速运算。