深度学习-tensorflow1.x之交叉熵损失函数(softmax_cross_entropy_with_logits)代码实现 Tensorflow1.x 和 Numpy
交叉熵损失函数
神经网络(机器学习)中作为损失函数
具体的理解可以看 https://blog.csdn.net/SIGAI_CSDN/article/details/86554230
交叉熵损失函数
Loss=−∑itilnyiLoss=−\sum_i t_i lny_iLoss=−i∑tilnyi
tit_iti 是Label 的值
yiy_iyi 是softmax 的输出
用Tensorflow1.x 和Numpy 代码实现 交叉熵损失函数tf.nn.softmax_cross_entropy_with_logits
import tensorflow as tf
import numpy as nplogits = [[3,1,-3],[2.4, 2.0, 3.4], [1.3, 2.5, 3.1], [1.0, 2.7, 3.4]]
labels = [[0.0, 0.0, 1.0], [0.0, 1.0, 0.0], [1.0, 0.0,0.0],[1.0,0.0,0.0]]
result1 = tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits)with tf.compat.v1.Session() as sess:print(sess.run(result1))def softmax(t):s_value = np.exp(t) / np.sum(np.exp(t), axis=1, keepdims=True)print('softmax value: ', s_value)return s_valuedef cross_entropy(y, y_):y = softmax(np.array(y))return -np.sum(y_ * np.log(y), axis=1)print('Implementation with Np')
#numpy 的实现方式
print(cross_entropy(logits, labels))
运行结果
[6.129109 1.8790108 2.3388944 2.8620365]
Implementation with Np
softmax value: [[0.87887824 0.11894324 0.00217852][0.227863 0.15274114 0.61939586][0.09643421 0.32017284 0.58339295][0.05715225 0.31284841 0.62999934]]
[6.12910891 1.8790107 2.3388943 2.86203651]
用Tensorflow1.x 和Numpy 代码实现 交叉熵损失函数sparse_softmax_cross_entropy_with_logits
#交叉熵损失函数:实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。import tensorflow as tf
import numpy as nplogits = [[2.4, 2.0, 3.4], [1.0, 2.0, 3.0], [1.0, 2.0, 1.4]]
labels_1 = [[0.0, 0.0, 1.0], [0.0, 1.0, 0.0], [1.0, 0.0,0.0]]labels = np.argmax(labels_1, axis = 1)
print(labels)
result1 = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=labels, logits=logits)with tf.compat.v1.Session() as sess:print(sess.run(result1))def softmax(t):s_value = np.exp(t) / np.sum(np.exp(t), axis=1, keepdims=True)print('softmax value: ', s_value)return s_valuedef cross_entropy(y, y_):y = softmax(np.array(y))return -np.sum(y_ * np.log(y), axis=1)print('Implementation with Np')
#numpy 的实现方式
print(cross_entropy(logits, labels_1))
运行结果
[0.47901073 1.4076059 1.6506003 ]
Implementation with Np
softmax value: [[0.227863 0.15274114 0.61939586][0.09003057 0.24472847 0.66524096][0.19193466 0.52173249 0.28633286]]
[0.4790107 1.40760596 1.6506003 ]
深度学习-tensorflow1.x之交叉熵损失函数(softmax_cross_entropy_with_logits)代码实现 Tensorflow1.x 和 Numpy相关推荐
- 【深度学习的数学】交叉熵公式如何推导?
使用最小二乘法的二次代价函数作为损失函数由于存在计算收敛时间长的情况,人们引入了交叉熵函数,利用交叉熵和sigmoid函数,可以消除sigmoid函数的冗长性,提高梯度下降法的计算速度,那么,交叉熵函 ...
- 交叉熵损失函数分类_PyTorch学习笔记——多分类交叉熵损失函数
理解交叉熵 关于样本集的两个概率分布p和q,设p为真实的分布,比如[1, 0, 0]表示当前样本属于第一类,q为拟合的分布,比如[0.7, 0.2, 0.1]. 按照真实分布p来衡量识别一个样本所需的 ...
- 深度学习中的信息论——交叉熵
信息量 可以说就信息量是在将信息量化.首先信息的相对多少是有切实体会的,有的人一句话能包含很多信息,有的人说了等于没说.我们还可以直观地感觉到信息的多少和概率是有关的,概率大的信息也相对低一些.为了量 ...
- 交叉熵损失函数(Cross Entropy Loss)
基础不牢,地动山摇,读研到现在有一年多了,发现自己对很多经常打交道的知识并不了解,仅仅是会改一改别人的代码,这使我感到非常焦虑,自此开始我的打基础之路.如果博客中有错误的地方,欢迎大家评论指出,我们互 ...
- 交叉熵损失函数的通用性(为什么深度学习DL普遍用它):预测输出与 y 差得越多,L 的值越大,也就是说对当前模型的 “ 惩罚 ” 越大,而且是非线性增大是一种类似指数增长的级别,结论:它对结果有引导性
交叉熵损失函数的通用性(为什么深度学习DL普遍用它):预测输出与 y 差得越多,L 的值越大,也就是说对当前模型的 " 惩罚 " 越大,而且是非线性增大是一种类似指数增长的级别,结 ...
- 【深度学习原理】交叉熵损失函数的实现
交叉熵损失函数 一般我们学习交叉熵损失函数是在二元分类情况下: L=−[ylogy^+(1−y)log(1−y^)]L=−[ylog ŷ +(1−y)log (1−ŷ )]L=−[ylogy^+ ...
- 二分类交叉熵损失函数python_【深度学习基础】第二课:softmax分类器和交叉熵损失函数...
[深度学习基础]系列博客为学习Coursera上吴恩达深度学习课程所做的课程笔记. 本文为原创文章,未经本人允许,禁止转载.转载请注明出处. 1.线性分类 如果我们使用一个线性分类器去进行图像分类该怎 ...
- 深度学习基础入门篇[五]:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测
[深度学习入门到进阶]必看系列,含激活函数.优化策略.损失函数.模型调优.归一化算法.卷积模型.序列模型.预训练模型.对抗神经网络等 专栏详细介绍:[深度学习入门到进阶]必看系列,含激活函数.优化策略 ...
- 深度学习 交叉熵损失函数
交叉熵损失函数 前言 交叉熵损失函数 信息量 信息熵 交叉熵 求导过程 应用 扩展 Binary_Crossentropy 均方差损失函数(MSE) 前言 深度学习中的损失函数的选择,需要注意一点是直 ...
最新文章
- 常数据成员 ,常函数
- Android --- 怎么去掉小数后面不必要的 0
- 【转】asp.net中@page指令的属性Inherits、Src、CodeBehind区别
- csharp: DataTable export to excel,word,csv etc
- 2010年北京大学计算机研究生机试真题
- c#实现SQLServer存储照片,并读取照片
- 数百名车主因断网被锁车外 马斯克:将确保此类事件不再发生
- clickhouse 分布式表
- 线性代数【八】二次型
- ajax请求进error怎么弹出错诶信息,在ajax请求jqgrid之后出现错误时显示错误消息...
- 【语音处理】基于matlab GUI声音信号频谱分析仪【含Matlab源码 325期】
- 2022超级好看动态视频官网HTML源码
- 计算机操作系统第二章测试题及答案
- 2020年最新中科院期刊分区表
- 计算机毕业设计指导 教师 评语,毕业设计指导教师评语【集锦】
- 2018-2019-1 20165320 《信息安全系统设计基础》 缓冲区溢出漏洞实验
- Eclipse中各种查找快捷键
- 关于100层楼,扔两个鸡蛋,求摔碎鸡蛋的临界层的问题
- Qt-------->第六天,Qt高级编程
- cv/dl/cl领域的实验室官网/牛人主页/技术论坛/比赛数据库/好玩的东西
热门文章
- C#网络编程概述 三
- ListBox之随手放个控件
- Serverless实战 —— ​​​​​​​Laravel + Serverless Framework 快速创建 CMS 内容管理系统
- Oracle GoldenGate 详解
- BlockChain:区块链入门课程 -- 区块链之类型 、应用程序、技术挑战和潜力
- leetcode 寻找两个有序数组的中位数
- Docker Compose学习之docker-compose.yml编写规则 及 实战案例
- 【Java】我的第一个 JAVA 程序:Hello,world!
- 【Python爬虫】用CSS 选择器提取网页数据
- mybatis 配置详解