关于cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits的思考

今天在学习过程中产生了一个小疑问,现记录如下:

在利用TensorFlow搭建图像分类器中  cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(),
这个函数把交叉熵和softmax函数写在一起,是可以提高运算速度吗?还是仅仅把减少代码行数呢?

我以前的做法是先用softmax求出需要被识别的物体在每个类别的概率,再计算交叉熵。

因为softmax层并不会改变最终的分类结果(排序),所以tensorflow将softmax层与交叉熵函数进行封装,形成一个函数方便计算:tf.nn.softmax_cross_entropy_with_logits(logits= , labels=)。

但是我刚刚说的函数在这基础上多了一个sparse。

我的理解是原本是拿独热码计算比如要识别的东西是第5个,就是000010(这是没有sparse的情形)

然后有了sparse的话就是5,是直接用标签计算交叉熵所以可以加速计算进程,不过这样应该只适用于只有一个分类结果的情形。

发布了43 篇原创文章 · 获赞 111 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Amigo_1997/article/details/88901775