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 11 Python
windows上安装Anaconda和python的教程详解
Mar 28 Python
Python正确重载运算符的方法示例详解
Aug 27 Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 Python
Python中实现输入超时及如何通过变量获取变量名
Jan 18 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
Python多个装饰器的调用顺序实例解析
May 22 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
详细分析Python collections工具库
Jul 16 Python
超级实用的8个Python列表技巧
Aug 24 Python
Python paramiko使用方法代码汇总
Nov 20 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 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的5个入手程序
2006/11/23 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
php数组查找函数总结
2014/11/18 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
基于jquery封装的一个js分页
2011/11/15 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
八大排序算法的Python实现
2021/01/28 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
使用python进行广告点击率的预测的实现
2019/07/04 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
python tornado修改log输出方式
2019/11/18 Python
一名女生的自荐信
2013/12/08 职场文书
2014年计生标语
2014/06/23 职场文书
中秋节活动总结
2014/08/29 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
2014年学校体育工作总结
2014/12/08 职场文书
毕业论文致谢信
2015/05/14 职场文书
运动会入场词
2015/07/18 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL