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的装饰器解决Bottle框架中用户验证问题
Apr 24 Python
python实现多线程的两种方式
May 22 Python
python一键升级所有pip package的方法
Jan 16 Python
Python建立Map写Excel表实例解析
Jan 17 Python
python删除本地夹里重复文件的方法
Nov 19 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
Apr 01 Python
深入浅析Python 函数注解与匿名函数
Feb 24 Python
Python格式化输出--%s,%d,%f的代码解析
Apr 29 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
python speech模块的使用方法
Sep 09 Python
python中编写函数并调用的知识点总结
Jan 13 Python
python实现三次密码验证的示例
Apr 29 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代码
2012/09/14 PHP
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
php显示页码分页类的封装
2017/06/08 PHP
Laravel框架中自定义模板指令总结
2017/12/17 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
解析javascript 实用函数的使用详解
2013/05/10 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
详解python中index()、find()方法
2019/08/29 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
详解Python3定时器任务代码
2019/09/23 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
三好学生先进事迹材料
2014/08/28 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
环保证明
2015/06/23 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
Python 图片添加美颜效果
2022/04/28 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python