文章目录

  • 计算公式
  • 计算过程
  • tf.keras.losses.CategoricalCrossentropy 实现
  • numpy 实现
import numpy as np
import tensorflow as tf
y_true = np.array([0, 1, 0])  # 独热编码
y_pred = np.array([0.5, 0.2, 0.3])  # 预测概率
delta = 1e-7

计算公式

loss=1n∑itruei×(−logepredi+le−7)loss = \frac{1}{n}\sum_{i}^{}true_{i}\times \left ( -log_{e}^{pred_{i}+le^{-7}}\right )loss=n1​∑i​truei​×(−logepredi​+le−7​)

n:样本数

true : y_true

pred : y_pred

计算过程

−[(0×loge0.5+le−7)+(1×loge0.2+le−7)+(0×loge0.3+le−7)]=1.6094374124342252-[(0 \times log_{e}^{0.5+le^{-7}})+(1 \times log_{e}^{0.2+le^{-7}})+(0 \times log_{e}^{0.3+le^{-7}})]=1.6094374124342252−[(0×loge0.5+le−7​)+(1×loge0.2+le−7​)+(0×loge0.3+le−7​)]=1.6094374124342252

tf.keras.losses.CategoricalCrossentropy 实现

cce = tf.keras.losses.CategoricalCrossentropy()
cce(y_true, y_pred).numpy()
1.6094377040863037

numpy 实现

y_pred = y_pred+delta  # 添加一个微小值可以防止负无限大(np.log(0))的发生。
print(y_pred)
[0.5000001 0.2000001 0.3000001]
y_pred_log = np.log(y_pred)  # log表示以e为底数的自然对数
print(y_pred_log)
[-0.69314698 -1.60943741 -1.20397247]
print(y_true*y_pred_log)
[-0.         -1.60943741 -0.        ]
loss = -np.sum(y_true*y_pred_log)
print(loss)
1.6094374124342252

tf.keras.losses.CategoricalCrossentropy 多分类 交叉熵 损失函数示例相关推荐

  1. TensorFlow tf.keras.losses.CategoricalCrossentropy

    用于多分类问题,传入的是one-hot编码目标,如果是int类型的编码目标,使用SparseCategoricalCrossentropy 下面这个例子中y_pred和y_true的形状是[batch ...

  2. LESSON 10.110.210.3 SSE与二分类交叉熵损失函数二分类交叉熵损失函数的pytorch实现多分类交叉熵损失函数

    在之前的课程中,我们已经完成了从0建立深层神经网络,并完成正向传播的全过程.本节课开始,我们将以分类深层神经网络为例,为大家展示神经网络的学习和训练过程.在介绍PyTorch的基本工具AutoGrad ...

  3. pytorch中的二分类及多分类交叉熵损失函数

    本文主要记录一下pytorch里面的二分类及多分类交叉熵损失函数的使用. import torch import torch.nn as nn import torch.nn.functional a ...

  4. pytorch_lesson10 二分类交叉熵损失函数及调用+多分类交叉熵损失函数及调用

    注:仅仅是学习记录笔记,搬运了学习课程的ppt内容,本意不是抄袭!望大家不要误解!纯属学习记录笔记!!!!!! 文章目录 一.机器学习中的优化思想 二.回归:误差平方和SSE 三.二分类交叉熵损失函数 ...

  5. tf.keras.losses.SparseCategoricalCrossentropy() 稀疏交叉熵 损失函数 示例

    文章目录 计算公式 计算过程 tf.keras.losses.SparseCategoricalCrossentropy 实现 numpy 实现 import numpy as np import t ...

  6. 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-逻辑回归与交叉熵概述-05

    线性回归预测的是一个连续值,逻辑回归给出的"是"和"否"的答案一个二元分类的问题. sigmoid函数是一个概率分布函数,给定某个输入,它将输出为一个概率值. ...

  7. 二分类交叉熵损失函数python_【深度学习基础】第二课:softmax分类器和交叉熵损失函数...

    [深度学习基础]系列博客为学习Coursera上吴恩达深度学习课程所做的课程笔记. 本文为原创文章,未经本人允许,禁止转载.转载请注明出处. 1.线性分类 如果我们使用一个线性分类器去进行图像分类该怎 ...

  8. 二分类交叉熵损失函数python_二分类问题的交叉熵损失函数多分类的问题的函数交叉熵损失函数求解...

    二分类问题的交叉熵损失函数; 在二分类问题中,损失函数为交叉熵损失函数.对于样本(x,y)来讲,x为样本 y为对应的标签.在二分类问题中,其取值的集合可能为{0,1},我们假设某个样本的真实标签为yt ...

  9. 交叉熵损失函数分类_PyTorch学习笔记——多分类交叉熵损失函数

    理解交叉熵 关于样本集的两个概率分布p和q,设p为真实的分布,比如[1, 0, 0]表示当前样本属于第一类,q为拟合的分布,比如[0.7, 0.2, 0.1]. 按照真实分布p来衡量识别一个样本所需的 ...

最新文章

  1. c++——结构与指针 类与指针
  2. Numpy-矩阵的合并
  3. 4、Hive数据操作,DDL操作,CRUD database,CRUD table,partition,view,index,show命令等
  4. springboot教程(三)
  5. [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器...
  6. C++没有调用析构函数
  7. 将MSRA-TD500标签转换成逆时针输出标签+labeleme json格式转四个点的txt
  8. css中margin:0 auto没作用
  9. vscode远程无法更新
  10. Linux学习笔记 第三课 目录结构及简单命令
  11. mysql多数据库并发控制_什么是数据库并发控制?数据库并发控制的主要方法是?...
  12. python简单程序实例-python下10个简单实例代码
  13. JAVA里plain_Java中POJO及其细分XO、DAO的概念
  14. python底层源码_python源码剖析——系列一
  15. 对待新知识、新领域的心态——好奇、批判、独孤求败
  16. 在CentOS 7 安装Calamari
  17. Win10 64位下解决 NVIDIA 显示设置不可用(小白问题)
  18. LaTeX中文生僻字显示
  19. 一个程序员修炼之道《论程序员的自我修养》
  20. 2021年起重机司机(限桥式起重机)考试及起重机司机(限桥式起重机)

热门文章

  1. 李飞飞团队最新论文:基于anchor关键点的类别级物体6D位姿跟踪
  2. Android常用逆向工具总结(未完待续)
  3. vue从后台获取新数据后刷新_vue项目中实现定时刷新页面(重新渲染数据实时更新)...
  4. 拒绝conda, 用virtualenv构建多版本的python开发环境
  5. R绘制Rank-abundance曲线
  6. Nature:如何在学术报告中讲述一个引人入胜的故事!
  7. 导师喜不喜欢你?看以下几点就知道!
  8. ISME:基于大数据准确预测土壤的枯萎病发生
  9. 蚂蚁森林合种计划(2020.10.23,7天有效,每周更新)
  10. python使用openCV把原始彩色图像转化为灰度图、使用矩阵索引的方式对数据数据进行剪裁(image cropping)