在使用 Keras categorical_crossentropy loss 时,是不是应该在最后一层使用 softmax?

Posted

技术标签:

【中文标题】在使用 Keras categorical_crossentropy loss 时,是不是应该在最后一层使用 softmax?【英文标题】:When using Keras categorical_crossentropy loss, should you use softmax on the last layer?在使用 Keras categorical_crossentropy loss 时,是否应该在最后一层使用 softmax? 【发布时间】:2018-05-27 19:51:06 【问题描述】:

我见过的大多数示例都在最后一层实现了 softmax。但是我读到 Keras categorical_crossentropy 在最后一层之后自动应用 softmax,所以这样做是多余的,会导致性能下降。谁是对的?

【问题讨论】:

【参考方案1】:

默认情况下,Keras categorical_crossentropy 不会将 softmax 应用于输出(请参阅 categorical_crossentropy implementation 和 Tensorflow backend call)。但是,如果直接使用后端功能,则存在设置from_logits=True的选项。

【讨论】:

以上是关于在使用 Keras categorical_crossentropy loss 时,是不是应该在最后一层使用 softmax?的主要内容,如果未能解决你的问题,请参考以下文章

keras与tensorflow.python.keras - 使用哪一个?

如何使用 tensorflow 在 keras 中禁用 GPU?

Keras深度学习实战——使用Keras构建神经网络

如何在具有使用@tf.keras.utils.register_keras_serializable 注册的自定义函数的 Tensorflow Serving 中提供模型?

关于在 RNN (Keras) 中正确使用 dropout

为啥在 Keras 度量函数中使用 axis=-1?