当前位置:  开发笔记 > 编程语言 > 正文

在Tensorflow中,sampled_softmax_loss和softmax_cross_entropy_with_logits之间有什么区别

如何解决《在Tensorflow中,sampled_softmax_loss和softmax_cross_entropy_with_logits之间有什么区别》经验,为你挑选了1个好方法。

在tensorflow中,有一些叫做softmax_cross_entropy_with_logits和的方法sampled_softmax_loss.

我阅读了tensorflow文档并搜索了谷歌以获取更多信息,但我找不到差异.看起来我都使用softmax函数计算损失.

使用sampled_softmax_loss来计算损失

loss = tf.reduce_mean(tf.nn.sampled_softmax_loss(...))

使用softmax_cross_entropy_with_logits来计算损失

loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(P, Q))

对我来说,计算softmax损失与计算softmaxed交叉熵(例如cross_entropy(softmax(train_x)))相同

有人可以告诉我为什么有两种不同的方法,在哪种情况下我应该使用哪种方法?



1> Farseer..:

如果您的目标词汇量(或者换句话说,您想要预测的类数量)非常大,那么使用常规softmax非常困难,因为您必须计算字典中每个单词的概率.通过使用 sampled_softmax_loss您只需考虑词汇表的子集V来计算您的损失.

如果我们采样(我们的V)小于词汇量,那么采样softmax才有意义.如果您的词汇量(标签数量)很小,则没有必要使用sampled_softmax_loss.

您可以在本文中看到实现细节:http: //arxiv.org/pdf/1412.2007v2.pdf

您还可以看到使用它的示例 - 此示例中的序列顺序转换

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有