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里将list中元素依次向前移动一位
Sep 12 Python
浅谈python jieba分词模块的基本用法
Nov 09 Python
Python编程实现线性回归和批量梯度下降法代码实例
Jan 04 Python
python正则表达式面试题解答
Apr 28 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
python开发游戏的前期准备
May 05 Python
Python tkinter 下拉日历控件代码
Mar 04 Python
python删除某个目录文件夹的方法
May 26 Python
Python正则表达式如何匹配中文
May 27 Python
Python ADF 单位根检验 如何查看结果的实现
Jun 03 Python
浅谈Python 命令行参数argparse写入图片路径操作
Jul 12 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 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的错误信息
2006/10/09 PHP
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
js控制文本框禁止输入特殊字符详解
2017/04/07 Javascript
深入研究React中setState源码
2017/11/17 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
五一家具促销方案
2014/01/10 职场文书
商场消防管理制度
2014/01/12 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
身边的榜样活动方案
2014/08/20 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
销售代理协议书
2014/09/30 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
销售经理岗位职责
2015/01/31 职场文书
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS