当前位置: 首页 > article >正文

tensorboard的界面参数与图像数据分析讲解

目录

1.基础概念:

(a)精确率与召回率:

(b)mAP:

(c)边界框损失:

(d)目标损失:

(e)分类损失:

(f):学习率:

2.设置部分(最右边部分):

GENERAL(常规设置)

SCALARS(标量)

HISTOGRAMS(直方图)

IMAGES(图像)

2.图像部分:

(1)images:

         (a)F1_curve(F1[精确率与召回率调和平均数]与置信度):

(b)PR_curve(Precision and recall)

(c)P_curve(精确率):

(d)R_curve(召回率):

(e)confusion matrix(混淆矩阵):

(f)results:

(2)scalars:

(a)metrics(度量指标或评价指标):

(b)train(loss_train;cls_loss;obj_loss)

(c)val(同上train):

(d)x(学习率):

3.网络结构图:


1.基础概念:

(a)精确率与召回率:

1.6 map指标计算_哔哩哔哩_bilibili

在二类分别中有个重要概念精确率与召回率:

  • 精确率关注的是模型预测为正类别的样本中有多少是真正的正类别。
  • 召回率关注的是所有实际的正类别中有多少被模型正确预测为正类别。

(b)mAP:

mAP,即平均精度均值(mean Average Precision),是目标检测和图像识别领域中常用的性能评估指标。它衡量的是模型在所有类别上的平均精度,特别是当数据集中包含多个类别时。

mAp的值的大小为图像所围成的面积大小,越接近于1越好。

(c)边界框损失:

边界框损失(Box Loss)是用于衡量模型预测的边界框与真实边界框之间的差异的度量。

  1. 定义边界框损失是预测边界框(由模型预测的坐标)与真实边界框(由标注提供)之间的差异。

  2. 计算方式:边界框损失的计算通常涉及到边界框的四个坐标值:左上角的x和y坐标,以及右下角的x和y坐标。损失函数会计算这些坐标值之间的差异。

  3. 损失函数类型:常用的边界框损失函数包括L1损失(绝对值损失)、L2损失(平方损失)、Smooth L1损失(在L1和L2之间平滑过渡的损失)等。

  4. IoU(Intersection over Union):边界框损失有时会结合IoU来计算,IoU是一个衡量两个边界框重叠程度的指标,值介于0和1之间,1表示完全重叠。

  5. 训练过程中的作用:在训练过程中,边界框损失会随着模型的学习而逐渐减小,这表明模型在定位目标方面的性能正在提高。

(d)目标损失:

用来衡量模型对目标存在性的预测准确性的度量

  1. 定义:目标损失是模型预测的边界框包含目标对象的概率与真实标签之间的差异

  2. 计算方式:在目标检测中,通常采用二元交叉熵损失(Binary Cross-Entropy Loss)来评估一个框是否包含目标。这涉及到对每个边界框预测一个“objectness”分数,表示该框是否包含目标。

  3. 作用:目标损失有助于模型学习区分包含目标对象的边界框和不包含目标对象的背景区域。

  4. 与其他损失结合:目标损失通常与位置损失(Localization Loss)和分类损失(Classification Loss)结合使用。位置损失衡量预测边界框与真实边界框之间的差异,而分类损失衡量模型对每个框的分类结果与真实标签之间的差异。

  5. 损失函数类型:目标损失可能使用不同的损失函数来计算,如二元交叉熵损失,它适用于二分类问题,即框内是否有目标对象。

(e)分类损失:

用于衡量模型在分类任务上预测准确性的度量

  1. 定义分类损失是模型预测类别与真实类别之间的差异。它衡量的是模型在分类任务上的性能。

  2. 计算方式:分类损失通常使用交叉熵损失(Cross-Entropy Loss)来计算,特别是对于多类别分类问题。交叉熵损失衡量的是模型预测的概率分布与真实标签的概率分布之间的差异。

  3. 作用:分类损失有助于模型学习正确地将输入数据分配到正确的类别。在目标检测中,这意味着模型需要学习区分不同的对象类别。

  4. 与其他损失结合:在目标检测中,分类损失通常与边界框损失(Box Loss)和目标损失(Object Loss)结合使用,以全面优化模型的性能。

  5. 损失函数类型:常见的分类损失函数包括:

    • 多类别分类问题:使用多类别交叉熵损失。
    • 二分类问题:使用二元交叉熵损失。
    • 多标签分类问题:使用二元交叉熵损失,每个标签独立计算。

(f):学习率:

决定了模型在训练过程中更新权重的步长

  1. 定义:学习率是每次迭代更新模型参数时所采取的步长大小。

  2. 作用:学习率控制着模型在损失函数曲面上的下降速度。一个合适的学习率可以帮助模型快速收敛到损失函数的最小值。

  3. 选择:学习率的选择对模型的训练至关重要。学习率太小可能导致训练过程缓慢,而学习率太大可能导致模型在最小值附近震荡甚至发散。

  4. 学习率调度:在训练过程中,学习率可以保持不变,也可以根据一定的策略进行调整,如学习率衰减(Learning Rate Decay)、学习率预热(Warm-up)、周期性调整(Cyclical Learning Rates)等。

  5. 学习率衰减:随着训练的进行,逐渐减小学习率,这有助于模型在训练后期进行更精细的调整。

  6. 学习率预热:在训练初期使用较小的学习率,然后逐渐增加到预定的学习率,这有助于模型稳定地开始训练。

  7. 自适应学习率:一些优化算法,如Adam和RMSprop,具有自适应学习率的特性,它们根据参数的一阶和二阶矩估计来调整每个参数的学习率。

2.设置部分(最右边部分):

GENERAL(常规设置)

  1. Horizontal Axis(水平轴): 选择水平轴的类型,这里设置为 "Step",意味着横轴将显示训练的步骤数。
  2. Enable step selection and data table (Scalars only): 允许在图表中选择特定的步骤,并在数据表中查看该步骤的标量数据。
  3. Enable Range Selection: 允许用户在图表上选择一个范围,以便更详细地查看该范围内的数据。
  4. Link by step 99: 可能用于链接或同步不同图表或视图的步骤选择。
  5. Card Width: 调整卡片的宽度,可能影响图表的显示大小。
  6. Enable saving pins (Scalars only): 允许用户保存特定的标量值作为书签,以便快速访问。

SCALARS(标量)

Smoothing(平滑): 控制图表中数据点的平滑程度,值越高,曲线越平滑。

        0.65时:

        1时:

  1. 平滑曲线:当smoothing参数设置为大于0的值时,曲线会进行平滑处理,使得曲线更加平滑和易于观察。这有助于减少由于训练过程中的随机性或噪声导致的波动,从而更清楚地展示模型性能的整体趋势。

  2. 控制平滑程度:smoothing参数控制了曲线的平滑程度,它表示曲线上每个点的值是由前一点的值加上当前点值的加权平均值得到的。参数的取值范围通常为0到1,值越大表示平滑程度越高。这允许用户根据需要调整平滑程度,以达到最佳的观察效果。

  3. 指数加权移动平均(EMA):TensorBoard中的平滑曲线是通过指数加权移动平均(EMA)实现的。EMA是一种常用的时间序列数据平滑方法,它对历史数据进行加权平均,使得近期的数据对平均值的贡献更大,远期的数据对平均值的贡献更小。

  4. 避免过度拟合:通过平滑曲线,可以减少因个别数据点的异常变化而对模型性能的误判,从而更准确地评估模型是否过拟合或欠拟合。

Tooltip sorting method(工具提示排序方法): 设置当鼠标悬停在图表上时,工具提示信息的排序方式,这里设置为 "Alphabetical"(按字母顺序)。

Ignore outliers in chart scaling: 如果勾选,图表的缩放将忽略异常值,这有助于更好地查看数据的整体趋势。

Partition non-monotonic X axis: 如果勾选,非单调的X轴将被分割,这有助于在X轴数据不连续时更好地展示数据。

HISTOGRAMS(直方图)

  1. Mode: 选择直方图的显示模式,这里设置为 "Offset",可能意味着直方图将按照一定的偏移量显示,以便更好地比较不同批次或迭代的权重分布。

IMAGES(图像)

  1. Brightness(亮度): 调整图像的亮度,以便更清晰地查看图像内容。
  2. Contrast(对比度): 调整图像的对比度,增强图像的清晰度和细节。
  3. Show actual image size: 如果勾选,将显示图像的实际尺寸,而不是缩放后的尺寸。

2.图像部分:

(1)images:

        (a)F1_curve(F1[精确率与召回率调和平均数]与置信度):

F1-Confidence曲线(也称为F1分数曲线)是一种用于评估分类模型性能的可视化工具。它展示了模型在不同置信度阈值下的F1分数,F1分数是精确率(Precision)和召回率(Recall)的调和平均数。

这条曲线展示了随着置信度阈值的变化,模型的F1分数如何变化。通常,当置信度阈值较低时,模型会更倾向于预测正类别,这可能会提高召回率但降低精确率。相反,当置信度阈值较高时,模型会更严格地预测正类别,这可能会提高精确率但降低召回率

  • 精确率关注的是模型预测为正类别的样本中有多少是真正的正类别。
  • 召回率关注的是所有实际的正类别中有多少被模型正确预测为正类别。

通过图像可以测的什么样的置信度阈值比较好

(b)PR_curve(Precision and recall)

map值图像所围成的面积(取最大值),面积越接近于1越好

IoU阈值: 在计算AP时,还需要考虑预测边界框与真实边界框之间的交并比(Intersection over Union, IoU)。IoU是一个介于0和1之间的值,用于衡量两个边界框的重叠程度。mAP可以针对不同的IoU阈值进行计算,例如mAP@0.5表示在IoU阈值为0.5时计算的mAP。

通过这个可以测试什么IoU值的大小比较好

(c)P_curve(精确率):

精确率是指在所有被模型预测为正类别的样本中,实际为正类别的比例。精确率的计算公式为:Precision = TP / (TP + FP),其中TP是真正例,FP是假正例。

曲线分析:

  • "daitu" 类别(浅蓝色曲线):随着置信度的增加,精确率逐渐提高,表明模型在高置信度下的预测更准确。
  • "mingren" 类别(橙色曲线):同样,随着置信度的增加,精确率也在提高,但在某些置信度区间内,精确率的波动较大,这可能表明模型在这些区间内的预测不够稳定。
  • 所有类别("all classes")(深蓝色曲线):这条曲线代表所有类别的平均性能,显示在置信度为0.727时,精确率达到了1.00。

(d)R_curve(召回率):

召回率是指在所有实际为正类别的样本中,被模型正确预测为正类别的比例。召回率的计算公式为:Recall = TP / (TP + FN),其中TP是真正例,FN是假负例。

曲线分析:

  • "daitu" 类别(浅蓝色曲线):随着置信度的增加,召回率逐渐下降,这表明模型在高置信度下更严格,可能会错过一些正类别样本。
  • "mingren" 类别(橙色曲线):同样,随着置信度的增加,召回率也在下降,但在某些置信度区间内,召回率的下降更为陡峭,这可能表明模型在这些区间内对正类别的识别能力下降得更快。
  • 所有类别("all classes")(深蓝色曲线):这条曲线代表所有类别的平均性能,显示在置信度为0.000时,召回率达到了1.00,这意味着在非常低的置信度阈值下,模型能够识别出所有的正类别样本

(e)confusion matrix(混淆矩阵):

混淆矩阵(Confusion Matrix),它用于评估分类模型的性能。混淆矩阵显示了模型预测的类别与真实类别之间的关系

分类能力:

  • "daitu" 类别:67% 的 "daitu" 样本被正确分类,29% 被错误分类为 "mingren",25% 被错误分类为 "background"。
  • "mingren" 类别:71% 的 "mingren" 样本被正确分类,17% 被错误分类为 "daitu",75% 的 "background" 被错误分类为 "mingren"。
  • "background" 类别:没有 "background" 样本被正确分类,17% 被错误分类为 "daitu",75% 被错误分类为 "mingren"

颜色深浅:

  • 矩阵中的颜色深浅表示比例的大小,颜色越深表示比例越高。例如,"mingren" 类别中,"mingren" 被错误分类为 "background" 的比例最高(0.75),因此这个单元格颜色最深。

没有background这个类为什么会有background:

  1. 数据集中的未知类别:在某些分类问题中,数据集可能包含一些无法明确归类到预定义类别的样本。这些样本可以被标记为"background"类别。

  2. 目标检测中的背景:在目标检测任务中,"background"通常指的是图像中不包含任何目标对象的区域。模型需要区分目标对象和背景,因此背景也被视为一个类别。

(f)results:

(2)scalars:

(a)metrics(度量指标或评价指标):

  1. metrics/mAP_0.5:

    • 这个图表显示了在IoU阈值为0.5时,模型的平均精度随训练步数的变化。
    • Min: 训练过程中最低的平均精度为0.0004。
    • Max: 训练过程中最高的平均精度为0.8292。
    • Start Value: 训练开始时的平均精度为0.0008。
    • End Value: 训练结束时的平均精度为0.8125。
    • ΔValue: 平均精度从开始到结束增加了0.8117。
    • Δ%: 平均精度的增长百分比为+105263%,这表明模型在训练过程中有显著提升。
  2. metrics/mAP_0.5:0.95:

    • 这个图表显示了在IoU阈值从0.5到0.95时,模型的平均精度随训练步数的变化。
    • Min: 训练过程中最低的平均精度为0.0001。
    • Max: 训练过程中最高的平均精度为0.3469。
    • Start Value: 训练开始时的平均精度为0.0001。
    • End Value: 训练结束时的平均精度为0.3392。
    • ΔValue: 平均精度从开始到结束增加了0.3391。
    • Δ%: 平均精度的增长百分比为+306229%,这表明模型在更严格的IoU阈值下也有显著提升。
    • mAP_0.5:0.95是一个综合性能指标,它在多个IoU阈值下评估模型的检测性能。这个值越高,表示模型在不同IoU阈值下的检测性能越好
  3. metrics/precision:

    • 这个图表显示了模型的精确率随训练步数的变化。
    • Min: 训练过程中最低的精确率为0.0005。
    • Max: 训练过程中最高的精确率为0.8385。
    • Start Value: 训练开始时的精确率为0.001。
    • End Value: 训练结束时的精确率为0.8385。
    • ΔValue: 精确率从开始到结束增加了0.8375。
    • Δ%: 精确率的增长百分比为+87594%,这同样表明模型在训练过程中有显著提升。
  4. metrics/recall:

    • 这个图表显示了模型的召回率随训练步数的变化。
    • Min: 训练过程中最低的召回率为0.0979。
    • Max: 训练过程中最高的召回率为0.8799。
    • Start Value: 训练开始时的召回率为0.1548。
    • End Value: 训练结束时的召回率为0.8432。
    • ΔValue: 召回率从开始到结束增加了0.6885。
    • Δ%: 召回率的增长百分比为+445%,这表明模型在训练过程中召回率有显著提升。

(b)train(loss_train;cls_loss;obj_loss)

损失的减少意味着模型在预测边界框、分类目标以及检测目标存在性方面的准确性在提高

图标分析:

  1. train/box_loss(边界框损失):

    • 这个图表显示了训练过程中边界框损失的变化。边界框损失用于衡量模型预测的边界框与真实边界框之间的差异。
    • Start Value: 训练开始时的边界框损失为0.1215。
    • End Value: 训练结束时的边界框损失为0.0355。
    • ΔValue: 边界框损失从开始到结束减少了0.0860。
    • Δ%: 损失减少的百分比为-71%,表示模型在边界框预测上的性能有显著提升。
  2. train/cls_loss(分类损失):

    • 这个图表显示了训练过程中分类损失的变化。分类损失用于衡量模型对目标类别预测的准确性。
    • Start Value: 训练开始时的分类损失为0.0313。
    • End Value: 训练结束时的分类损失为0.0305。
    • ΔValue: 分类损失从开始到结束减少了0.0221。
    • Δ%: 损失减少的百分比为-72%,表明模型在分类任务上的性能有所提升。
  3. train/obj_loss(目标损失):

    • 这个图表显示了训练过程中目标损失的变化。目标损失用于衡量模型对目标存在性的预测准确性。
    • Start Value: 训练开始时的目标损失为0.0448。
    • End Value: 训练结束时的目标损失为0.0387。
    • ΔValue: 目标损失从开始到结束减少了0.0174。
    • Δ%: 损失减少的百分比为-55%,这表明模型在目标检测上的性能有所提高。

(c)val(同上train):

  1. val/box_loss:

    • 这个图表显示了验证过程中边界框损失的变化。
    • Start Value: 验证开始时的边界框损失为0.1183。
    • End Value: 验证结束时的边界框损失为0.046。
    • ΔValue: 边界框损失从开始到结束减少了0.0723。
    • Δ%: 损失减少的百分比为-61%,表示模型在验证集上的边界框预测性能有显著提升。
  2. val/cls_loss:

    • 这个图表显示了验证过程中分类损失的变化。
    • Start Value: 验证开始时的分类损失为0.0311。
    • End Value: 验证结束时的分类损失为0.0076。
    • ΔValue: 分类损失从开始到结束减少了0.0235。
    • Δ%: 损失减少的百分比为-76%,表明模型在验证集上的分类性能有显著提升。
  3. val/obj_loss:

    • 这个图表显示了验证过程中目标损失的变化。
    • Start Value: 验证开始时的目标损失为0.0372。
    • End Value: 验证结束时的目标损失为0.0223。
    • ΔValue: 目标损失从开始到结束减少了0.0149。
    • Δ%: 损失减少的百分比为-40%,这表明模型在验证集上的目标检测性能有所提高。

(d)x(学习率):

x/lr0的策略是将学习率降至接近零,这可能用于在训练后期进行微调。而x/lr1和x/lr2的策略则是在训练过程中逐渐增加学习率,这可能用于在训练初期快速逃离局部最小值或者在训练过程中重新激活学习率以跳出可能的局部最优

  1. x/lr0:

    • 这个图表显示了第一个学习率调整策略的变化。
    • Start Value: 初始学习率为0.0982。
    • End Value: 最终学习率为0.0005。
    • ΔValue: 学习率从开始到结束减少了0.0977。
    • Δ%: 学习率减少的百分比为-100%,表示学习率被完全降低到接近于零。
  2. x/lr1:

    • 这个图表显示了第二个学习率调整策略的变化。
    • Start Value: 初始学习率为0.0002。
    • End Value: 最终学习率为0.0005。
    • ΔValue: 学习率从开始到结束增加了0.0003。
    • Δ%: 学习率增加的百分比为+141%,表示学习率有所增加。
  3. x/lr2:

    • 这个图表显示了第三个学习率调整策略的变化。
    • Start Value: 初始学习率为0.0002。
    • End Value: 最终学习率为0.0005。
    • ΔValue: 学习率从开始到结束增加了0.0003。
    • Δ%: 学习率增加的百分比为+141%,与x/lr1相同,表示学习率同样有所增加

3.网络结构图:

graphs ;  点击可看到网络结构


http://www.kler.cn/a/463764.html

相关文章:

  • React 中结合 antd 的 Input 组件实现防抖输入
  • QEMU网络配置简介
  • 在Linux下安装部署Tomcat教程
  • C语言——字符函数和内存函数
  • 【数据仓库金典面试题】—— 包含详细解答
  • AngularJS 过滤器:提升用户体验的数据处理利器
  • MYSQL 高阶语句
  • linux系统编程(七)管道和FIFO
  • 【MySQL】之Centos7.6 Yum方式安装部署安装Mysql 5.7版本
  • IPsec协议,网络安全的秘密
  • CentOS Stream 9 搭建单机版Clickhouse
  • Spring Boot 日志系统选择、日志系统选择、日志系统选择技术选型
  • 【GeekBand】C++设计模式笔记20_Composite_组合模式
  • 将广播发送和接收端实现一遍,完成一个发送端发送信息,对应多个接收端接收信息实验。
  • 怎么在 Linux 下运行 smart_rtmpd
  • 多模态论文笔记——CogVLM和CogVLM2(副)
  • [Linux]操作系统概念
  • Postman[4] 环境设置
  • ThinkPHP 8高效构建Web应用-第一个简单的MVC应用示例
  • Java Map 集合详解:基础用法、常见实现类与高频面试题解析
  • opencv图像直方图
  • 运动健康小程序SpringBoot+论文源码调试讲解
  • RabbitMQ-TTL机制
  • 缓存菜品的业务代码
  • 政策助力数字金融,CES Asia 2025展望科技新未来
  • AI 自动化编程对编程教育的影响