tensorflow 分类损失函数使用小记


Posted in Python onFebruary 18, 2020

多分类损失函数

label.shape:[batch_size]; pred.shape: [batch_size, num_classes]

使用 tf.keras.losses.sparse_categorical_crossentropy(y_true, y_pred, from_logits=False, axis=-1)

- y_true 真实值, y_pred 预测值
- from_logits,我的理解是,如果预测结果经过了softmax(单次预测结果满足和为1)就使用设为`False`,  
如果预测结果未经过softmax就设为`True`.

pred = tf.convert_to_tensor([[0.9, 0.05, 0.05], [0.5, 0.89, 0.6], [2.05, 0.01, 0.94]])
label = tf.convert_to_tensor([0, 1, 2])
loss = tf.keras.losses.sparse_categorical_crossentropy(label, pred)
print(loss.numpy())
# 包含 reduction 参数, 用于对一个批次的损失函数求平均值,求和等
# loss = tf.keras.losses.SparseCategoricalCrossentropy()(label, pred)
label.shape:[batch_size, num_classes](one_hot);pred.shape:[batch_size, num_classes]

使用 tf.keras.losses.categorical_crossentropy(y_true, y_pred, from_logits=False, axis=-1)

- y_true 真实值, y_pred 预测值
- from_logits 同上

pred = tf.convert_to_tensor([[0.9, 0.05, 0.05], [0.5, 0.89, 0.6], [0.05, 0.01, 0.94]])
label = tf.convert_to_tensor([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
loss = tf.keras.losses.categorical_crossentropy(label, pred)
print(loss.numpy())

二分类损失损失函数

label = tf.convert_to_tensor([0, 0, 1, 1], dtype=tf.float32)
pred = tf.convert_to_tensor([1, 1, 1, 0], dtype=tf.float32)
loss = tf.keras.losses.BinaryCrossentropy()(label, pred)
print(loss.numpy())

多分类与二分类

通常 categorical_crossentropy与 softmax激活函数搭配使用; binary_crossentropy 与 sigmoid搭配使用;

参考

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 Python
浅谈python中真正关闭socket的方法
Dec 18 Python
Python语言进阶知识点总结
May 28 Python
python字典一键多值实例代码分享
Jun 14 Python
python tkinter组件使用详解
Sep 16 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
Python阶乘求和的代码详解
Feb 14 Python
Python configparser模块操作代码实例
Jun 08 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
Jun 22 Python
Python爬虫爬取有道实现翻译功能
Nov 27 Python
Django中ORM的基本使用教程
Dec 22 Python
python如何把字符串类型list转换成list
Feb 18 #Python
python计算波峰波谷值的方法(极值点)
Feb 18 #Python
Python表达式的优先级详解
Feb 18 #Python
使用Tkinter制作信息提示框
Feb 18 #Python
Python中import导入不同目录的模块方法详解
Feb 18 #Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
Feb 18 #Python
将pytorch转成longtensor的简单方法
Feb 18 #Python
You might like
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
ext jquery 简单比较
2010/04/07 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
vue中的inject学习教程
2019/04/24 Javascript
vue移动端的左右滑动事件详解
2020/06/17 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
Python pandas常用函数详解
2018/02/07 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
《寓言两则》教学反思
2014/02/27 职场文书
师德承诺书
2015/01/20 职场文书
与死神共舞观后感
2015/06/15 职场文书
2015小学毕业班工作总结
2015/07/21 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python