其实这两个都是计算交叉熵,只是输入数据不同。

#sparse 稀疏的、稀少的

    word_labels = tf.constant([2,0])
predict_logits = tf.constant([[2.0,-1.0,3.0],[1.0,0.0,-0.5]])
loss = tf.nn.sparse_softmax_cross_entropy_with_logits(
labels = word_labels,logits = predict_logits)
with tf.Session() as sess:
print(sess.run(loss))
#结果是:[0.32656264 0.4643688 ]

  

word_prob_distribution = tf.constant([[0.0,0.0,1.0],[1.0,0.0,0.0]])
loss = tf.nn.softmax_cross_entropy_with_logits(labels = word_prob_distribution,logits = predict_logits)
with tf.Session() as sess:
print(sess.run(loss))
#结果是:[0.32656264 0.4643688 ]

  

由于softmax_cross_entropy_with_logits允许提供一个概率分布,因此在使用时有更大的自由度。
举个例子,一种叫label_smoothing的技巧将正确数据的概率设为一个比1.0略小的值,将错误的该概率设置为一个比0.0略大的值,
这样可以避免模型与数据过拟合,在某些时候可以提高训练效果
word_prob_smooth = tf.constant([[0.01, 0.01, 0.97], [0.98, 0.03, 0.01]])
loss = tf.nn.softmax_cross_entropy_with_logits(labels = word_prob_smooth,logits = predict_logits)
with tf.Session() as sess:
print(sess.run(loss))
#[0.37329704 0.5186562 ]

  


tf中softmax_cross_entropy_with_logits与sparse_softmax_cross_entropy_with_logits的更多相关文章

  1. tensorflow 中 softmax_cross_entropy_with_logits 与 sparse_softmax_cross_entropy_with_logits 的区别

    http://stackoverflow.com/questions/37312421/tensorflow-whats-the-difference-between-sparse-softmax-c ...

  2. 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法

    在计算loss的时候,最常见的一句话就是 tf.nn.softmax_cross_entropy_with_logits ,那么它到底是怎么做的呢? 首先明确一点,loss是代价值,也就是我们要最小化 ...

  3. Tf中的NCE-loss实现学习【转载】

    转自:http://www.jianshu.com/p/fab82fa53e16 1.tf中的nce_loss的API def nce_loss(weights, biases, inputs, la ...

  4. 深度学习原理与框架-Tensorflow卷积神经网络-卷积神经网络mnist分类 1.tf.nn.conv2d(卷积操作) 2.tf.nn.max_pool(最大池化操作) 3.tf.nn.dropout(执行dropout操作) 4.tf.nn.softmax_cross_entropy_with_logits(交叉熵损失) 5.tf.truncated_normal(两个标准差内的正态分布)

    1. tf.nn.conv2d(x, w, strides=[1, 1, 1, 1], padding='SAME')  # 对数据进行卷积操作 参数说明:x表示输入数据,w表示卷积核, stride ...

  5. [TensorFlow] tf.nn.softmax_cross_entropy_with_logits的用法

    在计算loss的时候,最常见的一句话就是tf.nn.softmax_cross_entropy_with_logits,那么它到底是怎么做的呢? 首先明确一点,loss是代价值,也就是我们要最小化的值 ...

  6. tf.nn.softmax_cross_entropy_with_logits的用法

    http://blog.csdn.net/mao_xiao_feng/article/details/53382790 计算loss的时候,最常见的一句话就是tf.nn.softmax_cross_e ...

  7. tf.nn.softmax & tf.nn.reduce_sum & tf.nn.softmax_cross_entropy_with_logits

    tf.nn.softmax softmax是神经网络的最后一层将实数空间映射到概率空间的常用方法,公式如下: \[ softmax(x)_i=\frac{exp(x_i)}{\sum_jexp(x_j ...

  8. tf.nn.softmax_cross_entropy_with_logits()函数的使用方法

    import tensorflow as tf labels = [[0.2,0.3,0.5], [0.1,0.6,0.3]]logits = [[2,0.5,1], [0.1,1,3]] a=tf. ...

  9. 1、求loss:tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None))

    1.求loss: tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None)) 第一个参数log ...

随机推荐

  1. mysql数据类型长度

    1个字节= 8位  tinyint 为一个字节  2的8次方= 256 所以最多存储到256 日期和时间数据类型 MySQL数据类型 含义 date 3字节,日期,格式:2014-09-18 time ...

  2. luoguP1196(带权并查集)

    题目链接:https://www.luogu.org/problemnew/show/P1196 思路: 带权并查集.对每个结点,构造表示该结点的头结点,该结点距头结点的距离,该列的大小3个数组. 在 ...

  3. Python locals() 函数

    Python locals() 函数  Python 内置函数 描述 locals() 函数会以字典类型返回当前位置的全部局部变量. 对于函数, 方法, lambda 函式, 类, 以及实现了 __c ...

  4. Python issubclass() 函数

    Python issubclass() 函数  Python 内置函数 描述 issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类. 语法 以下是 iss ...

  5. phpStudy5——php导入其他php文件(php文件的引入)

    前言: 通过前边几个例子,相信大家都会有一个疑惑了,就是每个请求数据库的php页面,都要写一次连接数据库的代码,这个肯定是有违代码复用原则的.那么怎么解决这个问题呢? 在php中可以通过include ...

  6. python作业之用户管理程序

    数据库的格式化如下 分别为姓名|密码|电话号码|邮箱|用户类型 admin|admin123.|28812341026|admin@126.com|1root|admin123.|1344566348 ...

  7. 数据流滑动窗口平均值 · sliding window average from data stream

    [抄题]: 给出一串整数流和窗口大小,计算滑动窗口中所有整数的平均值. MovingAverage m = new MovingAverage(3); m.next(1) = 1 // 返回 1.00 ...

  8. MongoDB安装(一)

    详细图解,记录 win7 64 安装mongo数据库的过程.安装的版本是 MongoDB-win32-x86_64-2008plus-ssl-3.4.1-signed. 示例版本:mongodb-wi ...

  9. Fragment 生命周期 全局变量的声明位置

    public class Fragment_shouye extends Fragment { private List<Zixun_shouye> datas; private TopV ...

  10. tomcat 时间相差8个小时,百度上查到的,备份下

    通常网上一查都是 修改 tomcat 的参数 ,如catalina 文件,jvm parameters 等.如果都不起作用,可以使用如下方式.. 你可以修改jdk的时间校正了,你这么来.进入 \hom ...