这两个函数的用法类似

sparse_softmax_cross_entropy_with_logits(_sentinel=None, labels=None, logits=None, name=None)

唯一的区别是sparse的labels是int类型,而非sparse的labels是one-hot类型。

具体代码用法


import tensorflow as tf#代码段1,手动算出代价函数
# our NN's output
logits = tf.constant([[1.0, 2.0, 3.0], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0]])
# step1:do softmax
y = tf.nn.softmax(logits)
# true label
# 注意这里标签必须是浮点数,不然在后面计算tf.multiply时就会因为类型不匹配tf_log的float32数据类型而出错
y_ = tf.constant([[0, 0, 1.0], [0, 0, 1.0], [0, 0, 1.0]])  # 这个是稀疏的标签
# step2:do log
tf_log = tf.log(y)
# step3:do mult
pixel_wise_mult = tf.multiply(y_, tf_log)
# step4:do cross_entropy
cross_entropy = -tf.reduce_sum(pixel_wise_mult)#代码段2,使用tf.nn.softmax_cross_entropy_with_logits算出代价函数
cross_entropy2=tf.reduce_sum(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=y_))#dont forget tf.reduce_sum()!! #代码段3,使用tf.nn.sparse_softmax_cross_entropy_with_logits()算出代价函数
# 将标签稠密化
dense_y = tf.arg_max(y_, 1)
cross_entropy3 = tf.reduce_sum(tf.nn.sparse_softmax_cross_entropy_with_logits(labels=dense_y, logits=logits))#代码段4,验证结果
with tf.Session() as sess:result1,result2,result3 = sess.run((cross_entropy,cross_entropy2,cross_entropy3))print("method1 : %s" % result1)print("method2 : %s" % result2)print("method3 : %s" % result3)#输出结果'''method1 : 1.222818method2 : 1.2228179method3 : 1.2228179'''

参考

https://www.jianshu.com/p/648d791b55b0
https://blog.csdn.net/m0_37041325/article/details/77043598

记录时间

2018/9/11 21:28

tf.nn.sparse_softmax_cross_entropy_with_logits()与tf.nn.softmax_cross_entropy_with_logits的差别相关推荐

  1. tensorflow 的 Batch Normalization 实现(tf.nn.moments、tf.nn.batch_normalization)

    tensorflow 在实现 Batch Normalization(各个网络层输出的归一化)时,主要用到以下两个 api: tf.nn.moments(x, axes, name=None, kee ...

  2. tf.nn.dropout和tf.keras.layers.Dropout的区别(TensorFlow2.3)与实验

    这里写目录标题 场景:dropout和Dropout区别 问题描述: 结论: 深层次原因:dropout是底层API,Dropout是高层API 场景:dropout和Dropout区别 全网搜索tf ...

  3. 深度学习-函数-tf.nn.embedding_lookup 与tf.keras.layers.Embedding

    embedding函数用法 1. one_hot编码 1.1. 简单对比 1.2.优势分析: 1.3. 缺点分析: 1.4. 延伸思考 2. embedding的用途 2.1 embedding有两个 ...

  4. 【TensorFlow】TensorFlow函数精讲之tf.nn.max_pool()和tf.nn.avg_pool()

    tf.nn.max_pool()和tf.nn.avg_pool()是TensorFlow中实现最大池化和平均池化的函数,在卷积神经网络中比较核心的方法. 有些和卷积很相似,可以参考TensorFlow ...

  5. TensorFlow基础篇(六)——tf.nn.max_pool()和tf.nn.avg_pool()

    tf.nn.max_pool()和tf.nn.avg_pool()是TensorFlow中实现最大池化和平均池化的函数,在卷积神经网络中比较核心的方法. 有些和卷积很相似,可以参考TensorFlow ...

  6. TensorFlow 辨异 —— tf.add(a, b) 与 a+b(tf.assign 与 =)、tf.nn.bias_add 与 tf.add

    1. tf.add(a, b) 与 a+b 在神经网络前向传播的过程中,经常可见如下两种形式的代码: tf.add(tf.matmul(x, w), b) tf.matmul(x, w) + b 简而 ...

  7. tf.nn.batch_normalization() 和 tf.layer.batch_normalization()

    前提基本知识: 均值: μ=x1+x2+x3+...+xnn\mu = \frac{x_1 + x_2 + x_3 + ...+x_n}{n}μ=nx1​+x2​+x3​+...+xn​​ 方差: σ ...

  8. tf.nn.conv2d和tf.contrib.slim.conv2d的区别

    转自:http://blog.sina.com.cn/s/blog_6ca0f5eb0102wsuu.html 文中摘要: " 在上述的API中,可以看出去除掉初始化的部分,那么两者并没有什 ...

  9. TensorFlow学习——tf.nn.conv2d和tf.contrib.slim.conv2d的区别

    在查看代码的时候,看到有代码用到卷积层是tf.nn.conv2d,也有的使用的卷积层是tf.contrib.slim.conv2d,这两个函数调用的卷积层是否一致,在查看了API的文档,以及slim. ...

最新文章

  1. 资源管理器方法访问FTP服务
  2. 过程化技术:打造「开放世界」的秘密
  3. Python3爬虫之中文乱码问题分析与解决方法
  4. java servlet接口开发_servlet三种实现方式之一实现servlet接口
  5. 全自动迁移数据库的实现 (Fluent NHibernate, Entity Framework Core)
  6. react脚手架 显示npm不知内部命令_第一章 React开发环境搭建
  7. error: command 'gcc' failed with exit status 1
  8. mysql 大表更新数据类型_MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)...
  9. 《重构-改善既有代码的设计》学习笔记----Extract Method(提炼函数)
  10. 微信中直接打开手机系统浏览器的实现
  11. 重装机兵3 完美攻略修正版
  12. ic启动器我的世界_hmcl启动器下载-我的世界HMCL启动器下载 v3.3.172官方最新版--pc6下载站...
  13. java怎么打印课程表_自明排课系统如何打印?教你打印课表的方法
  14. 系统集成项目管理之何为系统集成
  15. python取数组最后一个元素_python数组最后一个元素
  16. 济南市全国计算机二级,山东省济南市2019年下半年全国计算机等级考试报名时间...
  17. 给IOS初学者及新手的建议
  18. SpringBoot项目入门,前端thymeleaf,后端Java,数据库Jpa+MySQL
  19. np.arange函数的使用
  20. 秀米中如何添加链接、文件链接、小程序链接?

热门文章

  1. 【PP】重复生产参数文件说明
  2. CPU的插槽类型LGA与Socket 的区别
  3. abap 调用外部web service 使用小结
  4. ERP选型 SAP PK Oracle
  5. 公积金买房有什么好处?
  6. AFAB折旧运行的几种情况
  7. 生产订单结算时候的几个差异
  8. OO实现ALV TABLE 六:ALV的弹出窗口形式
  9. 检查用户是否有权限从ABAP里调用C kernel functions
  10. “百度智能云”下,群星璀璨,照亮百度世界2020