当前位置:网站首页>如何理解Keras中的指标Metrics
如何理解Keras中的指标Metrics
2022-07-25 12:38:00 【51CTO】
Keras 库提供了一种在训练深度学习模型时计算和报告一套标准指标的方法。除了为分类和回归问题提供标准指标外,Keras 还允许您在深度学习时定义和报告自己的自定义指标。 如果您想在训练期间更好地捕捉模型的性能度量,这将特别有用。
在本教程中,您将了解如何使用内置指标,以及如何在 Keras 中训练深度学习模型时定义和使用自己的指标。完成本教程后,您将了解:
- Keras 指标的工作原理以及在训练模型时如何使用它们。
- 如何通过工作示例在 Keras 中使用回归和分类指标。
- 如何通过工作示例在 Keras 中定义和使用您自己的自定义指标。
1 Keras指标
Keras 允许您在模型训练期间列出要监控的指标。您可以通过指定“metrics”参数并为模型上的 compile() 函数提供函数名称(或函数名称别名)列表来做到这一点。 例如:
您列出的特定指标可以是 Keras 函数的名称(如 mean_squared_error)或这些函数的字符串别名(如“mse”)。
度量值记录在训练数据集上每个 epoch 的末尾。 如果还提供了验证数据集,则还会为验证数据集计算记录的度量。
所有指标都在详细输出和调用 fit() 函数返回的历史对象中报告。 在这两种情况下,度量函数的名称都用作度量值的键。 对于验证数据集的指标,“val_”前缀被添加到键中。
损失函数和明确定义的 Keras 指标都可以用作训练指标。
2 Keras回归指标
以下是您可以在 Keras 中用于回归问题的指标列表。
- 均方误差:mean_squared_error、MSE 或
- 平均绝对误差:mean_absolute_error, MAE, mae
- 平均绝对百分比误差:mean_absolute_percentage_error、MAPE、mape
- 余弦接近度:cosine_proximity,余弦
上述四个指标,值越小,模型的拟合程度越好,但并不代表模型的预测效果越好,只能假设拟合效果好的模型预测效果也好。换一句不太严谨但很好记的话:上述指标值越小,模型预测效果越好。
下面的示例演示了一个简单的人为回归问题的这 4 个内置回归指标。
注意:您的结果可能会因算法或评估过程的随机性或数值精度的差异而有所不同。 考虑运行该示例几次并比较平均结果。
运行该示例会在每个 epoch 结束时打印度量值。
然后在训练时期创建 4 个指标的线图。

请注意,指标是使用字符串别名值 [‘mse‘, ‘mae‘, ‘mape‘, ‘cosine‘] 指定的,并使用它们的扩展函数名称作为history对象上的键值引用。
我们还可以使用扩展名称指定指标,如下所示:
如果函数名被导入到脚本中,我们也可以直接指定它们。
您还可以将损失函数用作度量。例如,您可以将均方对数误差(mean_squared_logarithmic_error,MSLE 或 msle)损失函数用作度量,如下所示:
3 Keras分类指标
以下是您可以在 Keras 中用于分类问题的指标列表。
- 二进制精度:binary_accuracy,acc
- 分类准确度:categorical_accuracy, acc
- 稀疏分类准确度:sparse_categorical_accuracy
- Top k Categorical Accuracy:top_k_categorical_accuracy(需要你指定一个k参数)
- 稀疏 Top k 分类准确度:sparse_top_k_categorical_accuracy(需要您指定 k 参数)
准确性是特殊的。无论您的问题是二分类问题还是多类分类问题,您都可以指定“accuracy”指标来报告准确性。
下面是一个二进制分类问题的示例,其中演示了内置的准确度指标。
注意:您的结果可能会因算法或评估过程的随机性或数值精度的差异而有所不同。 考虑运行该示例几次并比较平均结果。
运行该示例会报告每个训练时期结束时的准确性。

4 在Keras中自定义指标
您还可以在调用 compile() 函数时定义自己的指标并在“metrics”参数的函数列表中指定函数名称。
自定义指标我还没用过,甚至没有见到别人用过。因此猜测自定义指标的适用情况很少。当你选用自定义指标时,至少要问自己三个问题:常用指标真的不能满足需求吗?用以衡量模型的常用指标选择正确吗,有没有用分类的指标衡量回归问题?我的数学好到可以正确理解“metrics”参数的函数列表中哪些函数是干什么用的了吗?至少我被第一个问题拦住了去路。以后用到自定义指标再补写着部分吧。^_^
边栏推荐
- If you want to do a good job in software testing, you can first understand ast, SCA and penetration testing
- Go: Gin custom log output format
- 零基础学习CANoe Panel(13)—— 滑条(TrackBar )
- 状态(State)模式
- go : gin 自定义日志输出格式
- 零基础学习CANoe Panel(16)—— Clock Control/Panel Control/Start Stop Control/Tab Control
- 2022.07.24 (lc_6125_equal row and column pairs)
- Use of Spirng @conditional conditional conditional annotation
- “蔚来杯“2022牛客暑期多校训练营2 补题题解(G、J、K、L)
- 2022 Henan Mengxin League game (3): Henan University I - Travel
猜你喜欢
![[problem solving] ibatis.binding BindingException: Type interface xxDao is not known to the MapperRegistry.](/img/00/65eaad4e05089a0f8c199786766396.png)
[problem solving] ibatis.binding BindingException: Type interface xxDao is not known to the MapperRegistry.
![Detailed explanation of switch link aggregation [Huawei ENSP]](/img/34/dff118b52404e35f74a8f06b2517be.png)
Detailed explanation of switch link aggregation [Huawei ENSP]

Fiddler packet capturing app

485通讯( 详解 )

交换机链路聚合详解【华为eNSP】

艰辛的旅程

2022.07.24 (lc_6125_equal row and column pairs)

【历史上的今天】7 月 25 日:IBM 获得了第一项专利;Verizon 收购雅虎;亚马逊发布 Fire Phone

ECCV2022 | TransGrasp类级别抓取姿态迁移
软件测试面试题目:请你列举几个物品的测试方法怎么说?
随机推荐
Selenium use -- installation and testing
想要做好软件测试,可以先了解AST、SCA和渗透测试
基于Caffe ResNet-50网络实现图片分类(仅推理)的实验复现
[problem solving] ibatis.binding BindingException: Type interface xxDao is not known to the MapperRegistry.
【3】 DEM mountain shadow effect
Mysql 远程连接权限错误1045问题
【4】 Layout view and layout toolbar usage
mysql有 flush privileges 吗
【高并发】通过源码深度分析线程池中Worker线程的执行流程
【9】 Coordinate grid addition and adjustment
AtCoder Beginner Contest 261 F // 树状数组
【Rust】引用和借用,字符串切片 (slice) 类型 (&str)——Rust语言基础12
More accurate and efficient segmentation of organs-at-risk in radiotherapy with Convolutional Neural
【Flutter -- 布局】层叠布局(Stack和Positioned)
Selenium uses -- XPath and analog input and analog click collaboration
Pytorch advanced training skills
Interviewer: "classmate, have you ever done a real landing project?"
Excuse me, using data integration to import data from PostgreSQL to MySQL database, emoj appears in some data fields
【OpenCV 例程 300篇】239. Harris 角点检测之精确定位(cornerSubPix)
Moving Chinese figure liushenglan