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创建xml的方法
Mar 10 Python
python中的代码编码格式转换问题
Jun 10 Python
初步剖析C语言编程中的结构体
Jan 16 Python
python中字符串类型json操作的注意事项
May 02 Python
python构建自定义回调函数详解
Jun 20 Python
Python中文件的读取和写入操作
Apr 27 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
May 05 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
Jul 17 Python
Python面向对象基础入门之设置对象属性
Dec 11 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
Nov 24 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
生成sessionid和随机密码的例子
2006/10/09 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
php搜索文件程序分享
2015/10/30 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
微信小程序实现运动步数排行功能(可删除)
2018/07/05 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
python多线程并发实例及其优化
2019/06/27 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
机电一体化自荐信
2013/12/10 职场文书
大学军训感言
2014/01/10 职场文书
人民调解协议书范本
2014/10/11 职场文书
努力学习保证书
2015/02/26 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
python 如何做一个识别率百分百的OCR
2021/05/29 Python
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript