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

#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. RegExp.$1 简单理解

    RegExp 是javascript中的一个内置对象.为正则表达式.RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串, 以此类推,RegExp. ...

  2. 第八章 高级搜索树 (a3)伸展树:算法实现

  3. configparser模块 logging模块

    configparser模块 固定格式的配置文件 有一个对应的模块去帮你做这个文件的字符串处理 config = configparser.Configparser() config.read(“ex ...

  4. 快速排序C++实现

    #include<iostream> using namespace std;class quicksort{ public: int quicks(int *a,int low,int ...

  5. pyhon模块之日志模块

    #Auther Bob#--*--coding:utf-8--*-- import logging #python一共有5个级别的日志,debug.info.warning.error.critica ...

  6. [leetcode]124. Binary Tree Maximum Path Sum二叉树最大路径和

    Given a non-empty binary tree, find the maximum path sum. For this problem, a path is defined as any ...

  7. Raft 一致性算法论文译文

    本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为<In search of an Understandable Consensus Algorithm (Extended Vers ...

  8. WCF生成客户端代理对象的两种方法的解释

    最近在封装WCF,有一些很好的实践就记录下来,大家可以放心使用,所有代码都已经调试过.如果有高手可以大家探讨一下. 在WCF中有两种不同的方法可以用于创建客户端服务对象,他们分别为: 1. 代理构造法 ...

  9. 什么是adb命令?以及如果高效使用他们?

    接下来 我会为大家讲解 最通俗易懂的adb命令 希望大家能够喜欢...

  10. anaconda 设置新的环境,这样python的包随便换和安装

    1.进入anaconda navigate 里面创建一个新的environment 2.cmd里面conda info -e 3.activate 环境名 然后python的包就已经换到新环境了