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实现颜色色值转换的小工具
Oct 27 Python
django上传图片并生成缩略图方法示例
Dec 11 Python
解决Pycharm无法import自己安装的第三方module问题
May 18 Python
详解Django中间件执行顺序
Jul 16 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 Python
python日期相关操作实例小结
Jun 24 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
Oct 10 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
Jan 04 Python
TensorFlow实现指数衰减学习率的方法
Feb 05 Python
Python基于Socket实现简单聊天室
Feb 17 Python
python 利用opencv实现图像网络传输
Nov 12 Python
完美解决Pycharm中matplotlib画图中文乱码问题
Jan 11 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
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
jquery实用代码片段集合
2010/08/12 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
Python实现的简单万年历例子分享
2014/04/25 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
不可错过的十本Python好书
2017/07/06 Python
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
简单了解django缓存方式及配置
2019/07/19 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
单位委托书范本(3篇)
2014/09/18 职场文书
会计简历自我评价
2015/03/10 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
宣传稿格式范文
2015/07/23 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server
redis protocol通信协议及使用详解
2022/07/15 Redis