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

GroundingDINO微调训练_训练日志解释

文章目录

    • 1. 训练日志
      • 1. Epoch 和 Iteration
      • 2. Learning Rate(学习率)
      • 3. ETA(预计剩余时间)
      • 4. Time 和 Data Time
      • 5. Memory
      • 6. Gradient Norm(梯度范数)
      • 7. Loss(损失)
      • 8. Individual Losses
      • 9. Losses for Different Detectors (d0, d1, d2, d3, d4)
      • 10. Encoder Losses (enc_loss_cls, enc_loss_bbox, enc_loss_iou)
      • 11. DN (Dynamic Network) Losses
      • 12. DN Losses for Different Detectors (d0.dn_loss_cls, d1.dn_loss_cls, etc.)
      • 总结
    • 2. 模型在验证集上的评估结果
      • 1. 评估流程
      • 2. COCO评估标准
        • 主要指标
      • 3. 关键评估结果分析
      • 总结

1. 训练日志

12/09 03:54:02 - mmengine - INFO - Epoch(train)  [3][190/794]  base_lr: 1.0000e-04 lr: 1.0000e-04  eta: 15:15:19  time: 1.8053  data_time: 0.0080  memory: 8415  grad_norm: 49.9182  loss: 4.0043  loss_cls: 0.0733  loss_bbox: 0.1035  loss_iou: 0.1393  d0.loss_cls: 0.0847  d0.loss_bbox: 0.1103  d0.loss_iou: 0.1460  d1.loss_cls: 0.0822  d1.loss_bbox: 0.1027  d1.loss_iou: 0.1421  d2.loss_cls: 0.0785  d2.loss_bbox: 0.1031  d2.loss_iou: 0.1392  d3.loss_cls: 0.0774  d3.loss_bbox: 0.1007  d3.loss_iou: 0.1376  d4.loss_cls: 0.0736  d4.loss_bbox: 0.1034  d4.loss_iou: 0.1392  enc_loss_cls: 0.1123  enc_loss_bbox: 0.1300  enc_loss_iou: 0.1698  dn_loss_cls: 0.0012  dn_loss_bbox: 0.1218  dn_loss_iou: 0.1251  d0.dn_loss_cls: 0.0132  d0.dn_loss_bbox: 0.1820  d0.dn_loss_iou: 0.1937  d1.dn_loss_cls: 0.0025  d1.dn_loss_bbox: 0.1306  d1.dn_loss_iou: 0.1352  d2.dn_loss_cls: 0.0016  d2.dn_loss_bbox: 0.1240  d2.dn_loss_iou: 0.1278  d3.dn_loss_cls: 0.0015  d3.dn_loss_bbox: 0.1220  d3.dn_loss_iou: 0.1252  d4.dn_loss_cls: 0.0012  d4.dn_loss_bbox: 0.1217  d4.dn_loss_iou: 0.1250
12/09 03:54:11 - mmengine - INFO - Epoch(train)  [3][195/794]  base_lr: 1.0000e-04 lr: 1.0000e-04  eta: 15:15:18  time: 1.8176  data_time: 0.0080  memory: 9694  grad_norm: 50.3365  loss: 4.0305  loss_cls: 0.0829  loss_bbox: 0.1019  loss_iou: 0.1496  d0.loss_cls: 0.0977  d0.loss_bbox: 0.1050  d0.loss_iou: 0.1537  d1.loss_cls: 0.0886  d1.loss_bbox: 0.1026  d1.loss_iou: 0.1524  d2.loss_cls: 0.0862  d2.loss_bbox: 0.1014  d2.loss_iou: 0.1492  d3.loss_cls: 0.0871  d3.loss_bbox: 0.0994  d3.loss_iou: 0.1476  d4.loss_cls: 0.0839  d4.loss_bbox: 0.1020  d4.loss_iou: 0.1493  enc_loss_cls: 0.1203  enc_loss_bbox: 0.1227  enc_loss_iou: 0.1762  dn_loss_cls: 0.0012  dn_loss_bbox: 0.1099  dn_loss_iou: 0.1237  d0.dn_loss_cls: 0.0130  d0.dn_loss_bbox: 0.1664  d0.dn_loss_iou: 0.1918  d1.dn_loss_cls: 0.0026  d1.dn_loss_bbox: 0.1182  d1.dn_loss_iou: 0.1338  d2.dn_loss_cls: 0.0015  d2.dn_loss_bbox: 0.1119  d2.dn_loss_iou: 0.1264  d3.dn_loss_cls: 0.0015  d3.dn_loss_bbox: 0.1103  d3.dn_loss_iou: 0.1238  d4.dn_loss_cls: 0.0012  d4.dn_loss_bbox: 0.1098  d4.dn_loss_iou: 0.1236

在训练日志中,包含了很多与模型训练相关的参数。这些参数帮助我们理解训练过程中模型的状态、损失以及优化情况。下面是对日志中每一部分的详细解释:

1. Epoch 和 Iteration

Epoch(train)  [3][190/794]
  • Epoch: 当前是第 3 轮训练。
  • 190/794: 这意味着当前训练的第 190 个 batch,在总共有 794 个 batch 的训练集里。

2. Learning Rate(学习率)

base_lr: 1.0000e-04 lr: 1.0000e-04
  • base_lr: 初始学习率。
  • lr: 当前学习率。在这个例子中,base_lr 和当前学习率是相同的,表示没有动态变化或调整。

3. ETA(预计剩余时间)

eta: 15:15:19
  • eta: 预计剩余训练时间,格式为时:分:秒。根据当前的训练进度,预计整个训练还需要 15 小时 15 分 19 秒完成。

4. Time 和 Data Time

time: 1.8053  data_time: 0.0080
  • time: 当前迭代的总时间,1.8053 秒,即每个 batch 的训练时间。
  • data_time: 数据加载时间,0.0080 秒,表示加载每个 batch 数据的时间。

5. Memory

memory: 8415
  • memory: 当前训练所使用的 GPU 显存量(单位为 MB)。在这个例子中,使用了 8415 MB 的 GPU 显存。

6. Gradient Norm(梯度范数)

grad_norm: 49.9182
  • grad_norm: 当前梯度的范数(L2 范数),表示梯度的大小。梯度范数过大或过小可能表明梯度爆炸或消失,影响模型的训练效果。

7. Loss(损失)

loss: 4.0043
  • loss: 当前 batch 的总损失值。它是所有损失项(分类损失、回归损失等)的加和。

8. Individual Losses

loss_cls: 0.0733  loss_bbox: 0.1035  loss_iou: 0.1393

这些是不同类型的损失:

  • loss_cls: 分类损失,衡量模型预测的类别与真实标签之间的差距。
  • loss_bbox: 边框损失,衡量模型预测的边框与真实边框之间的差距。
  • loss_iou: IoU(交并比)损失,衡量预测框与真实框之间的重叠程度。

9. Losses for Different Detectors (d0, d1, d2, d3, d4)

d0.loss_cls: 0.0847  d0.loss_bbox: 0.1103  d0.loss_iou: 0.1460

这些是针对不同级别的检测器(d0 到 d4)计算的损失:

  • d0, d1, d2, d3, d4: 表示不同检测器(可能代表不同分辨率或不同尺度的预测头)。
  • 对每个检测器,损失包括分类损失、边框损失和 IoU 损失。

10. Encoder Losses (enc_loss_cls, enc_loss_bbox, enc_loss_iou)

enc_loss_cls: 0.1123  enc_loss_bbox: 0.1300  enc_loss_iou: 0.1698
  • enc_loss_cls: 编码器中的分类损失。
  • enc_loss_bbox: 编码器中的边框损失。
  • enc_loss_iou: 编码器中的 IoU 损失。

11. DN (Dynamic Network) Losses

dn_loss_cls: 0.0012  dn_loss_bbox: 0.1218  dn_loss_iou: 0.1251
  • dn_loss_cls, dn_loss_bbox, dn_loss_iou: 动态网络的损失,可能涉及模型处理的动态对象或自适应模块的损失。

12. DN Losses for Different Detectors (d0.dn_loss_cls, d1.dn_loss_cls, etc.)

d0.dn_loss_cls: 0.0132  d0.dn_loss_bbox: 0.1820  d0.dn_loss_iou: 0.1937
  • d0.dn_loss_cls, d0.dn_loss_bbox, d0.dn_loss_iou 等表示对于不同检测器(d0 到 d4)中的动态网络损失。它们在不同检测器中针对分类、边框和 IoU 进行的损失计算。

总结

  • 这些日志输出帮助我们追踪训练过程中的模型表现,包括学习率、损失、梯度、内存使用等。
  • 训练损失由多个部分组成,每个部分表示不同任务的损失,例如分类、边框回归和 IoU。
  • 如果损失变化较大,可能需要调整模型结构、学习率、数据预处理等因素。

如果你需要进一步优化训练或分析训练过程,可以使用这些信息来判断哪些方面的损失较大,从而调整模型或训练参数。

2. 模型在验证集上的评估结果

12/09 07:33:42 - mmengine - INFO - Epoch(val) [11][345/352]    eta: 0:00:01  time: 0.1365  data_time: 0.0019  memory: 3155
12/09 07:33:42 - mmengine - INFO - Epoch(val) [11][350/352]    eta: 0:00:00  time: 0.1361  data_time: 0.0019  memory: 3155
12/09 07:33:45 - mmengine - INFO - Evaluating bbox...
Loading and preparing results...
DONE (t=0.46s)
creating index...
index created!
Running per image evaluation...
Evaluate annotation type *bbox*
DONE (t=2.59s).
Accumulating evaluation results...
DONE (t=1.88s).Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.533Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=1000 ] = 0.652Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=1000 ] = 0.562Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.368Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.497Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.597Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.859Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=300 ] = 0.860Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=1000 ] = 0.860Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.606Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.833Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.883
12/09 07:33:50 - mmengine - INFO - bbox_mAP_copypaste: 0.533 0.652 0.562 0.368 0.497 0.597
12/09 07:33:50 - mmengine - INFO - Epoch(val) [11][352/352]    coco/bbox_mAP: 0.5330  coco/bbox_mAP_50: 0.6520  coco/bbox_mAP_75: 0.5620  coco/bbox_mAP_s: 0.3680  coco/bbox_mAP_m: 0.4970  coco/bbox_mAP_l: 0.5970  data_time: 0.0057  time: 0.1436

这些内容显示了模型在验证集上的评估结果,基于 COCO 数据集的评估标准,以下是详细解析:


1. 评估流程

  1. Evaluating bbox

    • 表明模型正在验证集上评估目标检测的边界框(bounding box, bbox)性能。
  2. Loading and preparing results…

    • 模型生成的预测结果被加载并准备好进行评估。
  3. Running per image evaluation…

    • 针对验证集中每一张图片,计算各项指标,如平均精度(AP)和平均召回率(AR)。
  4. Evaluate annotation type bbox

    • 说明评估的是边界框任务。
  5. Accumulating evaluation results…

    • 将单张图片的评估结果汇总,以计算整体性能指标。

2. COCO评估标准

主要指标
  • AP (Average Precision)
    AP 是目标检测中的核心指标,表示模型在不同的阈值(IoU)下的平均精度:

    • AP @[ IoU=0.50:0.95 | area=all | maxDets=100 ]
      综合了多个 IoU 阈值(从 0.50 到 0.95,步长为 0.05),计算所有目标的平均精度。这是 COCO 的主要指标,当前值为 0.533
    • AP @[ IoU=0.50 | area=all | maxDets=1000 ]
      在 IoU=0.50 时计算 AP,当前值为 0.652,表示较宽松条件下的精度。
    • AP @[ IoU=0.75 | area=all | maxDets=1000 ]
      在 IoU=0.75 时计算 AP,当前值为 0.562,表示较严格条件下的精度。
  • AP by Area
    按物体大小划分 AP:

    • small(小目标,area < 32^2):当前值为 0.368。说明模型对小目标的检测效果较差。
    • medium(中等目标,32^2 ≤ area < 96^2):当前值为 0.497
    • large(大目标,area ≥ 96^2):当前值为 0.597。说明模型对大目标检测效果更好。
  • AR (Average Recall)
    AR 是衡量模型召回能力的指标,表示在不同的最大检测数(maxDets)下的平均召回率:

    • AR @[ IoU=0.50:0.95 | area=all | maxDets=100 ]: 当前值为 0.859
    • AR @[ IoU=0.50:0.95 | area=all | maxDets=300 ]maxDets=1000: 当前值为 0.860
    • 按物体大小划分的 AR:
      • small: 当前值为 0.606
      • medium: 当前值为 0.833
      • large: 当前值为 0.883

3. 关键评估结果分析

  • 模型整体表现

    • coco/bbox_mAP: 0.533 是综合指标,表示在多个 IoU 阈值下的平均性能。
    • 结合 AP 和 AR 指标,可以看到模型对大目标(large)的检测效果最佳(AP=0.597AR=0.883),对小目标(small)的检测效果较差(AP=0.368AR=0.606)。
  • 时间和资源消耗

    • 验证过程耗时较短(每次迭代的平均时间约为 0.1436s)。
    • 占用显存较少,内存仅 3155 MB
  • IoU 阈值的影响

    • 当 IoU 阈值提高到 0.75 时,AP=0.562,相较 IoU=0.50 的 0.652 略有下降,说明模型在更严格的定位条件下仍具有较强表现。

总结

  • 模型优点

    • 整体性能良好,综合 mAP=0.533,在 COCO 基准中属于中上游水平。
    • 对大目标的检测效果突出(AP=0.597AR=0.883)。
    • 资源消耗较低,验证时间快。
  • 模型不足

    • 小目标检测性能仍有待提高,AP_s=0.368 较低,可能需要优化特征提取器或多尺度检测头。
  • 改进方向

    • 提升小目标检测:考虑增加小目标增强(如分辨率调整、多尺度数据增强)。
    • 加强定位能力:通过优化边框回归损失(如 IoU 损失的调整)。

相关文章:

GroundingDINO微调训练_训练日志解释

文章目录 1. 训练日志1. Epoch 和 Iteration2. Learning Rate&#xff08;学习率&#xff09;3. ETA&#xff08;预计剩余时间&#xff09;4. Time 和 Data Time5. Memory6. Gradient Norm&#xff08;梯度范数&#xff09;7. Loss&#xff08;损失&#xff09;8. Individual L…...

华为eNSP:VRRP多网关负载分担

一、实验拓扑及目的 二、实验命令及实验步骤 LSW1的配置命令 <Huawei>sy [Huawei]un in e [Huawei]sys S1 [S1]vlan batch 100 200 [S1]int g0/0/1 [S1-GigabitEthernet0/0/1]port link-type access [S1-GigabitEthernet0/0/1]port default vlan 100 [S1-GigabitEtherne…...

uni-app写的微信小程序如何实现账号密码登录后获取token,并且每天的第一次登录后都会直接获取参数而不是耀重新登录(1)

uni-app写的微信小程序如何实现账号密码登录后获取token&#xff08;而token的有效器一般是30分钟&#xff0c;当页面在操作时token是不会过去&#xff0c;&#xff0c;离开页面第二天登录时token就是过期状态&#xff0c;因为记住了账号密码就不会操作再次登录&#xff0c;但是…...

【linux】(29)shell-变量和引号

Shell 脚本中有三种引号&#xff1a;双引号 "、单引号 和反引号 。它们有不同的作用。 双引号 " 双引号允许引用的字符串中包含变量和命令替换。 #!/bin/bash name"Alice" echo "Hello, $name!"单引号 单引号中的内容被原样引用&#xff0…...

Linux如何安装discuz

在Linux上安装Discuz!程序通常涉及以下步骤&#xff1a; 安装Web服务器&#xff08;如Apache或Nginx&#xff09;和数据库&#xff08;如MySQL或PostgreSQL&#xff09;。 下载Discuz!的最新版本。 将Discuz!文件上传到Web服务器的公共目录中。 根据README.md文件配置Discuz…...

SpringBoot如何使用EasyExcel实现表格导出(简洁快速入门版本)

前言 前面给大家介绍了动态表头的导入&#xff0c;这篇文章给大家介绍如何实现导出 前面给大家介绍了动态表头的导入&#xff0c;我们了解了如何通过EasyExcel灵活地读取结构不固定的Excel文件。这次&#xff0c;我们将目光转向数据导出——即如何将数据以Excel文件的形式输出…...

Python爬虫使用示例-保存诗人简介到csv文件中

一、获取资源 目标网址&#xff1a;&#xff08;第一页&#xff09; https://www.shicimingju.com/category/all&#xff08;后续&#xff09; https://www.shicimingju.com/category/all_2 https://www.shicimingju.com/category/all_3 ... https://www.shicimingju.com/ca…...

yocto的xxx.bb文件在什么时候会拷贝文件到build目录

在 Yocto 中&#xff0c;.bb 文件用于描述如何构建和安装一个软件包&#xff0c;而文件在构建过程中的拷贝操作通常会在某些特定的步骤中进行。具体来说&#xff0c;文件会在以下几个阶段被拷贝到 build 目录&#xff08;或者更准确地说&#xff0c;拷贝到目标目录 ${D}&#x…...

Mysql定时数据库备份保姆级教程

目录 一、需要解决的问题 1、如何传输文件? 2、如何备份数据库? 3、如何建立一个定时任务? 二、实施步骤 1、建立SSH公钥&#xff0c;实现无密码登录 2、编写备份数据库脚本 3、编写定时任务 MySQL 是一种全球广泛使用的关系型数据库管理系统&#xff0c;它存储的数…...

使用 Grafana 展示多个TiDB集群的告警

作者&#xff1a; yangzhj 原文来源&#xff1a; https://tidb.net/blog/229e283c 背景 在日常运维工作中&#xff0c;我们有时需要将多个生产集群的告警信息展示在一起&#xff0c;统一集中观察和分析TiDB 集群的告警情况。 本文将通过 Grafana 的多数据源功能来将多个Ti…...

lnmp+discuz论坛 附实验:搭建discuz论坛

Inmpdiscuz论坛 Inmp: t: linux操作系统 nr: nginx前端页面 me: mysql数据库 账号密码&#xff0c;等等都是保存在这个数据库里面 p: php——nginx擅长处理的是静态页面&#xff0c;页面登录账户&#xff0c;需要请求到数据库&#xff0c;通过php把动态请求转发到数据库 n…...

AI时代的开发新纪元:云开发 Copilot

AI时代的开发新纪元&#xff1a;云开发 Copilot 目录 引言&#xff1a;AI时代的开发新纪元低代码与AI的完美融合云开发 Copilot的革命性意义云开发 Copilot 的核心特性解析 快速生成应用功能低代码与AI的深度结合 实战演练&#xff1a;云开发 Copilot 的应用案例 从需求到实现…...

探索 Java 中的 Bug 世界

在 Java 编程的旅程中&#xff0c;我们不可避免地会遇到各种 Bug。这些 Bug 可能会导致程序出现意外的行为、崩溃或者性能问题。了解 Java Bug 的类型、产生原因以及解决方法&#xff0c;对于提高我们的编程技能和开发出稳定可靠的应用程序至关重要。 一、Java Bug 的定义与分类…...

【C++】等差数列末项计算题解析及优化

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述与输入输出要求&#x1f4af;数学分析与公式推导公差的计算通项公式推导 &#x1f4af;示例解析解题步骤 &#x1f4af;程序实现与解析初版代码代码解析优点与不足…...

【LeetCode】55.跳跃游戏

文章目录 题目链接&#xff1a;题目描述&#xff1a;解题思路&#xff08;贪心算法&#xff09;&#xff1a; 题目链接&#xff1a; 55.跳跃游戏 题目描述&#xff1a; 解题思路&#xff08;贪心算法&#xff09;&#xff1a; 如果某一个位置的元素为N&#xff0c;表示后面N…...

linux基于systemd自启守护进程 systemctl自定义服务傻瓜式教程

系统服务 书接上文: linux自启任务详解 演示系统:ubuntu 20.04 开发部署项目的时候常常有这样的场景: 业务功能以后台服务的形式提供,部署完成后可以随着系统的重启而自动启动;服务异常挂掉后可以再次拉起 这个功能在ubuntu系统中通常由systemd提供 如果仅仅需要达成上述的场…...

SparkSQL编程实践

文章目录 SparkSQL编程实践1.1. 编程模型介绍1.2. SparkSQL编程1.2.1. 第三方库安装1.2.2. SparkSQL程序的结构1.2.3. SparkSQL执行模式1.2.3.1. Local模式1.2.3.2. 集群模式 1.2.4. 数据加载1.2.4.1. 通过RDD创建DataFrame1.2.4.2. 通过读取数据外部数据创建DataFrame标准读取…...

模型训练数据-MinerU一款Pdf转Markdown软件

模型训练数据-MinerU一款Pdf转Markdown软件-说明 简介&#xff1a; MinerU是什么 MinerU是上海人工智能实验室OpenDataLab团队推出的开源智能数据提取工具&#xff0c;专注于复杂PDF文档的高效解析与提取。MinerU能将包含图片、公式、表格等元素的多模态PDF文档转化为易于分析…...

shell基础用法

shell基础知识 shell中的多行注释 :<<EOF read echo $REPLY # read不指定变量&#xff0c;则默认写入$REPLY EOF # :<<EOF ...EOF 多行注释&#xff0c;EOF可以替换为&#xff01;# 等文件目录和执行目录 echo $0$0 # ./demo.sh echo $0的realpath$(realpath…...

Redisson分布式锁

概览 个人博客源地址 Redisson不只是一个 Java Redis 客户端&#xff0c;它是一个以内存 Redis 服务器作为后端的处理 Java 对象(如 java.util.List, java.util.Map, java.util.Set, java.util.concurrent.locks.Lock 等)的一个框架。 Redisson提供了使用Redis的最简单和最…...

【C语言--趣味游戏系列】--电脑关机整蛊小游戏

前言&#xff1a; 老铁们&#xff0c;还是那句话&#xff0c;学习很苦游戏来补&#xff0c; 为了提高大家与朋友之间的友谊&#xff0c;博主在这里分享一个电脑关机的恶作剧小游戏&#xff0c;快拿去试试吧&#xff01;&#xff01;&#xff01; 目录&#xff1a; 1.电脑关机代…...

C#实现一个HttpClient集成通义千问-开发前准备

集成一个在线大模型&#xff08;如通义千问&#xff09;&#xff0c;来开发一个chat对话类型的ai应用&#xff0c;我需要先了解OpenAI的API文档&#xff0c;请求和返回的参数都是以相关接口文档的标准进行的 相关文档 OpenAI API文档 https://platform.openai.com/docs/api-…...

二叉树优选算法(一)

一、根据二叉树创建字符串 题目介绍&#xff1a; 给你二叉树的根节点 root &#xff0c;请你采用前序遍历的方式&#xff0c;将二叉树转化为一个由括号和整数组成的字符串&#xff0c;返回构造出的字符串。 空节点使用一对空括号对 "()" 表示&#xff0c;转化后需…...

单片机C51--笔记8-STC89C51RC/RD-IIC协议

一、概述 IIC全称Inter-Integrated Circuit (集成电路总线) 是由PHILIPS公司在80年代开发的两线式串行总线&#xff0c;用于连接微控制器及其外围设备。IIC属于半双 工同步通信方式。 特点 简单性和有效性。 由于接口直接在组件之上&#xff0c;因此IIC总线占用的空间非常小…...

HttpUtil的get和post请求

Http工具类 import org.apache.http.Consts; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.ht…...

leetcode 二进制数转字符串

1.题目要求: 2.题目代码: class Solution { public:string printBin(double num) {string result;double compare_value 1.0;//先给把0和.赋值给result;result.push_back(0);result.push_back(.);while(result.size() < 33){//利用十进制转换成二进制的方法//1.先给num …...

前端项目使用gitlab-cicd+docker实现自动化部署

GitLab CI/CD 是一个强大的工具&#xff0c;可以实现项目的自动化部署流程&#xff0c;从代码提交到部署只需几个步骤。本文将带你配置 GitLab CI/CD 完成一个前端项目的自动化部署。 前言 为什么使用cicddocker&#xff1f; 目前我们公司开发环境使用的shell脚本部署&#…...

【Linux】进程

&#x1f33b;个人主页&#xff1a;路飞雪吖~ &#x1f320;专栏&#xff1a;Linux 目录 一、冯诺依曼体系结构 &#x1f31f;系统调用和库函数概念 二、操作系统OS 三、进程 &#x1f31f;查看进程 &#x1f31f;通过系统调用获取进程标示符 &#x1f31f;通过系统调用创…...

transformers生成式对话机器人

简介 生成式对话机器人是一种先进的人工智能系统&#xff0c;它能够通过学习大量的自然语言数据来模拟人类进行开放、连贯且创造性的对话。与基于规则或检索式的聊天机器人不同&#xff0c;生成式对话机器人并不局限于预定义的回答集&#xff0c;而是可以根据对话上下文动态地…...

Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战

Text2SQL&#xff08;NL2sql&#xff09;对话数据库&#xff1a;设计、实现细节与挑战 前言1.何为Text2SQL&#xff08;NL2sql&#xff09;2.Text2SQL结构与挑战3.金融领域实际业务场景4.注意事项5.总结 前言 随着信息技术的迅猛发展&#xff0c;人机交互的方式也在不断演进。…...

C# 关于加密技术以及应用(二)

AES&#xff08;Advanced Encryption Standard&#xff09;和 RSA&#xff08;Rivest-Shamir-Adleman&#xff09;是两种不同的加密算法&#xff0c;它们各自有特定的使用场景和优势。下面是它们的主要区别和适用场景&#xff1a; AES&#xff08;高级加密标准&#xff09; 特…...

四十四:Web如何关闭会话

在Web应用中&#xff0c;关闭会话&#xff08;Session Termination&#xff09;是一个重要的机制&#xff0c;用于确保用户的会话状态被安全地终止。无论是用户主动退出登录还是因超时被动登出&#xff0c;正确地管理会话关闭有助于提升安全性并释放服务器资源。 一、为什么需…...

在wsl2中安装archlinux

在之前的博客中&#xff0c;我介绍了如何在虚拟机或者真实机上安装archlinux并且进行一定的配置&#xff0c;但是实际上Linux不管怎么配置在日常使用中都没有Windows简单便利&#xff0c;在开发有关Linux的程序时过去用虚拟机或者直接在Windows上使用ssh在远程服务器上进行开发…...

在Goland中对goroutine协程断点调试

在Goland中对goroutine协程断点调试 环境: Goland 参考了 chatgpt 的回复 进行断点调试的代码 package mainimport ("fmt""sync""time" )// worker 模拟处理任务 func worker(id int, wg *sync.WaitGroup) {defer wg.Done() // 确保任务完成后…...

最长连续递增序列

问题分解 1&#xff1a;要求 要求找到最长的连续递增子序列&#xff0c;即在原数组中位置连续且数值严格递增的一段序列 2&#xff1a;输入和输出 输入是一个未经排序的整数数组nums 输出是该数组中最长连续递增子序列的长度 3&#xff1a;边界调节 数组为空则长度为0 …...

apt 包 源 的维护 和缓存 命令

APT 包源维护命令 更新软件包列表&#xff1a; sudo apt update&#xff1a;从配置的软件源中获取最新的软件包信息。这是安装、升级或删除软件包前通常要执行的步骤&#xff0c;以确保使用的是最新的软件包信息。 升级软件包&#xff1a; sudo apt upgrade&#xff1a;升级系…...

【排序方法的总结】

在数据结构中常见的排序方法有&#xff1a; 插入排序、交换排序、选择排序、归并排序和基数排序等。 插入排序 特点&#xff1a; 简单直观&#xff0c;对于小规模的数据排序效率较高。它的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后…...

工作中常用springboot启动后执行的方法

前言&#xff1a; 工作中难免会遇到一些&#xff0c;程序启动之后需要提前执行的需求。 例如&#xff1a; 初始化缓存&#xff1a;在启动时加载必要的缓存数据。定时任务创建或启动&#xff1a;程序启动后创建或启动定时任务。程序启动完成通知&#xff1a;程序启动完成后通…...

QT 中使用 QTableView 和 QStandardItemModel 实现将数据导出到Excel 和 从Excel导入到 QTableView 的功能

简介 在Qt中&#xff0c;使用QTableView和QStandardItemModel来实现将数据导出到Excel和从Excel导入到QTableView的功能&#xff0c;而不使用第三方库&#xff08;如QXlsx&#xff09;。 效果 将 QTableView 中的数据导出到Excel //从tableview 导出到 EXcle void MainInterfa…...

模版方法模式的理解和实践

在软件开发中&#xff0c;设计模式为我们提供了一套经过验证的解决方案&#xff0c;用于解决常见的设计问题。其中&#xff0c;模版方法模式&#xff08;Template Method Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一个算法的框架&#xff0c;并允许子类在不改…...

05-树莓派-交叉编译

交叉编译的概念 交叉编译是什么 来源百度百科&#xff1a; 交叉编译是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统&#xff1b;同样&#xff0c;同一个操作系统也可以在不同的体系结构上运行。 举例来说&#xff0c;我们常说的x86 Lin…...

杨振宁大学物理视频中黄色的字,c#写程序去掉

先看一下效果&#xff1a;&#xff08;还有改进的余地&#xff09; 我的方法是笨方法&#xff0c;也比较刻板。 1&#xff0c;首先想到&#xff0c;把屏幕打印下来。c#提供了这样一个函数&#xff1a; Bitmap bmp new Bitmap(640, 480, PixelFormat.Format32bppArgb); // 创…...

非归档模式下一个或多个数据文件损坏恢复

1. 介绍 有些时侯可能你的库处于非归档的模式下&#xff0c;而你的联机重做日志又currupted,你的数据文件不能完成完全的恢复&#xff0c;这里为大家介绍一个oracle的一个隐藏参数_allow_resetlogs_corruption&#xff0c;让数据库重生。 通过设置隐含参数恢复 alter system …...

k8s 之storageclass使用nfs动态申请PV

文章目录 配置角色权限部署nfs-client-provisioner创建 NFS StorageClass创建 PVC 来动态申请 PV在 Pod 中使用 PVC验证存储是否正确挂载使用 kubectl 和 jq 筛选 PVCwaiting for a volume to be created, either by external provisioner "nfs-diy" or manually cre…...

Spark实训

实训目的: 介绍本实训的基本内容,描述知识目标、,以及本实训的预期效果等。 1、知识目标 (1)了解spark概念、基础知识、spark处理的全周期,了解spark技术是新时代对人才的新要求。 (2)掌握Linux、hadoop、spark、hive集群环境的搭建、HDFS分布文件系统的基础知识与应用…...

Mitel MiCollab 企业协作平台 任意文件读取漏洞复现(CVE-2024-41713)

0x01 产品简介 Mitel MiCollab是加拿大Mitel(敏迪)公司推出的一款企业级协作平台,旨在为企业提供统一、高效、安全的通信与协作解决方案。通过该平台,员工可以在任何时间、任何地点,使用任何设备,实现即时通信、语音通话、视频会议、文件共享等功能,从而提升工作效率和…...

React学习笔记(一)

创建函数写法一&#xff1a; 重点&#xff1a;函数有几种写法 function DemoShow() {return (<div className"App">函数声明</div>); }export default DemoShow;对应js创建函数声明&#xff1a;function sum1(a,b){return ab } 创建函数写法二&#x…...

【H2O2|全栈】MySQL的基本操作(三)

目录 前言 开篇语 准备工作 案例准备 多表查询 笛卡尔积 等值连接 外连接 内连接 自连接 子查询 存在和所有 含于 分页查询 建表语句 结束语 前言 开篇语 本篇继续讲解MySQL的一些基础的操作——数据字段的查询中的多表查询和分页查询&#xff0c;与单表查询…...

SQL按指定字符分割字符串

在SQL中分割字符串通常需要使用特定的函数&#xff0c;因为SQL本身并不像编程语言那样直接支持字符串分割。不同的数据库系统有不同的函数来处理字符串分割。以下是一些常见数据库系统中分割字符串的方法&#xff1a; 1. MySQL 在MySQL中&#xff0c;你可以使用SUBSTRING_IND…...

NAT traversal 原理 | TCP / UDP/ P2P

注&#xff1a;本文为 “NAT traversal ”相关的几篇文章合辑。 未整理去重。 NAT 穿越技术原理 Li_yy123 于 2020-12-08 18:54:26 发布 一、NAT 由来 为了解决全球公有 IPv4 的稀缺&#xff0c;提出了 NAT 技术。NAT 是 Network Address Translation 网络地址转换的缩写。 …...