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多进程分块读取超大文件的方法
Apr 13 Python
Python使用matplotlib填充图形指定区域代码示例
Jan 16 Python
通过Python模块filecmp 对文件比较的实现方法
Jun 29 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
Jan 10 Python
详解pandas的外部数据导入与常用方法
May 01 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
Python切片列表字符串如何实现切换
Aug 06 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
python爬虫请求头的使用
Dec 01 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中的数组操作函数整理
2008/08/18 PHP
Cakephp 执行主要流程
2010/03/24 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
简单谈谈favicon
2015/06/10 PHP
php根据日期显示所在星座的方法
2015/07/13 PHP
php+ajax 文件上传代码实例
2019/03/18 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
python黑魔法之参数传递
2016/02/12 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
Django自定义用户认证示例详解
2018/03/14 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
python爬虫 正则表达式解析
2019/09/28 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
公司市场部岗位职责
2013/12/02 职场文书
公证委托书格式
2014/09/13 职场文书
感谢信格式范文
2015/01/22 职场文书
《田忌赛马》教学反思
2016/02/19 职场文书
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
2021/04/17 Vue.js
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
Golang 实现 WebSockets 之创建 WebSockets
2022/04/24 Golang