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文档生成工具pydoc使用介绍
Jun 02 Python
python Django模板的使用方法
Jan 14 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
python 读入多行数据的实例
Apr 19 Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 Python
opencv实现简单人脸识别
Feb 19 Python
Python实现FLV视频拼接功能
Jan 21 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
使用npy转image图像并保存的实例
Jul 01 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
Sep 16 Python
python statsmodel的使用
Dec 21 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的输入输出流
2007/02/14 PHP
php jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
为你总结一些php系统类函数
2015/10/21 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
原生js生成图片验证码
2020/10/11 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
python实现定制交互式命令行的方法
2014/07/03 Python
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
python实现八大排序算法(1)
2017/09/14 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
使用python接入微信聊天机器人
2020/03/31 Python
python获取地震信息 微信实时推送
2019/06/18 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
如何表示python中的相对路径
2020/07/08 Python
python定义类的简单用法
2020/07/24 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
2014年扫黄打非工作总结
2014/12/03 职场文书
先进班组材料范文
2014/12/25 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL