首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tensorflow softmax_cross_entropy码

tensorflow softmax_cross_entropy码
EN

Stack Overflow用户
提问于 2017-10-19 14:56:40
回答 1查看 732关注 0票数 1

由于tf.nn.softmax_cross_entropy_with_logitsgen_nn_ops中的源代码是隐藏的,有人能解释一下tensorflow是如何在Softmax之后计算交叉熵的吗?我的意思是,在softmax之后,由于精度的原因,它可能会输出0,从而产生一个具有交叉熵的NaN问题。当softmax绑定其输出时,tensorflow是否使用剪辑方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-31 14:18:41

tf.nn.softmax_cross_entropy_with_logits的实现进一步到本地C++代码,这里是XLA实现。当其中一个逻辑比其他逻辑大得多时,Logits是不绑定的,并且0是可能的。示例:

代码语言:javascript
复制
>>> session.run(tf.nn.softmax([10.0, 50.0, 100.0, 200.0]))
array([ 0.,  0.,  0.,  1.], dtype=float32)

如果您愿意,您可以在softmax之前剪切日志,但不建议这样做,因为当输出很大时,它会终止渐变。一个更好的选择是使用批归一化使激活更像正态分布。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46832865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档