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. 评估流程
-
Evaluating bbox
- 表明模型正在验证集上评估目标检测的边界框(bounding box, bbox)性能。
-
Loading and preparing results…
- 模型生成的预测结果被加载并准备好进行评估。
-
Running per image evaluation…
- 针对验证集中每一张图片,计算各项指标,如平均精度(AP)和平均召回率(AR)。
-
Evaluate annotation type bbox
- 说明评估的是边界框任务。
-
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。说明模型对大目标检测效果更好。
- small(小目标,
-
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.597
,AR=0.883
),对小目标(small)的检测效果较差(AP=0.368
,AR=0.606
)。
-
时间和资源消耗
- 验证过程耗时较短(每次迭代的平均时间约为
0.1436s
)。 - 占用显存较少,内存仅 3155 MB。
- 验证过程耗时较短(每次迭代的平均时间约为
-
IoU 阈值的影响
- 当 IoU 阈值提高到 0.75 时,
AP=0.562
,相较 IoU=0.50 的 0.652 略有下降,说明模型在更严格的定位条件下仍具有较强表现。
- 当 IoU 阈值提高到 0.75 时,
总结
-
模型优点:
- 整体性能良好,综合
mAP=0.533
,在 COCO 基准中属于中上游水平。 - 对大目标的检测效果突出(
AP=0.597
,AR=0.883
)。 - 资源消耗较低,验证时间快。
- 整体性能良好,综合
-
模型不足:
- 小目标检测性能仍有待提高,
AP_s=0.368
较低,可能需要优化特征提取器或多尺度检测头。
- 小目标检测性能仍有待提高,
-
改进方向:
- 提升小目标检测:考虑增加小目标增强(如分辨率调整、多尺度数据增强)。
- 加强定位能力:通过优化边框回归损失(如 IoU 损失的调整)。
相关文章:
GroundingDINO微调训练_训练日志解释
文章目录 1. 训练日志1. Epoch 和 Iteration2. Learning Rate(学习率)3. ETA(预计剩余时间)4. Time 和 Data Time5. Memory6. Gradient Norm(梯度范数)7. Loss(损失)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(而token的有效器一般是30分钟,当页面在操作时token是不会过去,,离开页面第二天登录时token就是过期状态,因为记住了账号密码就不会操作再次登录,但是…...
【linux】(29)shell-变量和引号
Shell 脚本中有三种引号:双引号 "、单引号 和反引号 。它们有不同的作用。 双引号 " 双引号允许引用的字符串中包含变量和命令替换。 #!/bin/bash name"Alice" echo "Hello, $name!"单引号 单引号中的内容被原样引用࿰…...
Linux如何安装discuz
在Linux上安装Discuz!程序通常涉及以下步骤: 安装Web服务器(如Apache或Nginx)和数据库(如MySQL或PostgreSQL)。 下载Discuz!的最新版本。 将Discuz!文件上传到Web服务器的公共目录中。 根据README.md文件配置Discuz…...
SpringBoot如何使用EasyExcel实现表格导出(简洁快速入门版本)
前言 前面给大家介绍了动态表头的导入,这篇文章给大家介绍如何实现导出 前面给大家介绍了动态表头的导入,我们了解了如何通过EasyExcel灵活地读取结构不固定的Excel文件。这次,我们将目光转向数据导出——即如何将数据以Excel文件的形式输出…...
Python爬虫使用示例-保存诗人简介到csv文件中
一、获取资源 目标网址:(第一页) https://www.shicimingju.com/category/all(后续) https://www.shicimingju.com/category/all_2 https://www.shicimingju.com/category/all_3 ... https://www.shicimingju.com/ca…...
yocto的xxx.bb文件在什么时候会拷贝文件到build目录
在 Yocto 中,.bb 文件用于描述如何构建和安装一个软件包,而文件在构建过程中的拷贝操作通常会在某些特定的步骤中进行。具体来说,文件会在以下几个阶段被拷贝到 build 目录(或者更准确地说,拷贝到目标目录 ${D}&#x…...
Mysql定时数据库备份保姆级教程
目录 一、需要解决的问题 1、如何传输文件? 2、如何备份数据库? 3、如何建立一个定时任务? 二、实施步骤 1、建立SSH公钥,实现无密码登录 2、编写备份数据库脚本 3、编写定时任务 MySQL 是一种全球广泛使用的关系型数据库管理系统,它存储的数…...
使用 Grafana 展示多个TiDB集群的告警
作者: yangzhj 原文来源: https://tidb.net/blog/229e283c 背景 在日常运维工作中,我们有时需要将多个生产集群的告警信息展示在一起,统一集中观察和分析TiDB 集群的告警情况。 本文将通过 Grafana 的多数据源功能来将多个Ti…...
lnmp+discuz论坛 附实验:搭建discuz论坛
Inmpdiscuz论坛 Inmp: t: linux操作系统 nr: nginx前端页面 me: mysql数据库 账号密码,等等都是保存在这个数据库里面 p: php——nginx擅长处理的是静态页面,页面登录账户,需要请求到数据库,通过php把动态请求转发到数据库 n…...
AI时代的开发新纪元:云开发 Copilot
AI时代的开发新纪元:云开发 Copilot 目录 引言:AI时代的开发新纪元低代码与AI的完美融合云开发 Copilot的革命性意义云开发 Copilot 的核心特性解析 快速生成应用功能低代码与AI的深度结合 实战演练:云开发 Copilot 的应用案例 从需求到实现…...
探索 Java 中的 Bug 世界
在 Java 编程的旅程中,我们不可避免地会遇到各种 Bug。这些 Bug 可能会导致程序出现意外的行为、崩溃或者性能问题。了解 Java Bug 的类型、产生原因以及解决方法,对于提高我们的编程技能和开发出稳定可靠的应用程序至关重要。 一、Java Bug 的定义与分类…...
【C++】等差数列末项计算题解析及优化
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述与输入输出要求💯数学分析与公式推导公差的计算通项公式推导 💯示例解析解题步骤 💯程序实现与解析初版代码代码解析优点与不足…...
【LeetCode】55.跳跃游戏
文章目录 题目链接:题目描述:解题思路(贪心算法): 题目链接: 55.跳跃游戏 题目描述: 解题思路(贪心算法): 如果某一个位置的元素为N,表示后面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软件-说明 简介: MinerU是什么 MinerU是上海人工智能实验室OpenDataLab团队推出的开源智能数据提取工具,专注于复杂PDF文档的高效解析与提取。MinerU能将包含图片、公式、表格等元素的多模态PDF文档转化为易于分析…...
shell基础用法
shell基础知识 shell中的多行注释 :<<EOF read echo $REPLY # read不指定变量,则默认写入$REPLY EOF # :<<EOF ...EOF 多行注释,EOF可以替换为!# 等文件目录和执行目录 echo $0$0 # ./demo.sh echo $0的realpath$(realpath…...
Redisson分布式锁
概览 个人博客源地址 Redisson不只是一个 Java Redis 客户端,它是一个以内存 Redis 服务器作为后端的处理 Java 对象(如 java.util.List, java.util.Map, java.util.Set, java.util.concurrent.locks.Lock 等)的一个框架。 Redisson提供了使用Redis的最简单和最…...
【C语言--趣味游戏系列】--电脑关机整蛊小游戏
前言: 老铁们,还是那句话,学习很苦游戏来补, 为了提高大家与朋友之间的友谊,博主在这里分享一个电脑关机的恶作剧小游戏,快拿去试试吧!!! 目录: 1.电脑关机代…...
C#实现一个HttpClient集成通义千问-开发前准备
集成一个在线大模型(如通义千问),来开发一个chat对话类型的ai应用,我需要先了解OpenAI的API文档,请求和返回的参数都是以相关接口文档的标准进行的 相关文档 OpenAI API文档 https://platform.openai.com/docs/api-…...
二叉树优选算法(一)
一、根据二叉树创建字符串 题目介绍: 给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 "()" 表示,转化后需…...
单片机C51--笔记8-STC89C51RC/RD-IIC协议
一、概述 IIC全称Inter-Integrated Circuit (集成电路总线) 是由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。IIC属于半双 工同步通信方式。 特点 简单性和有效性。 由于接口直接在组件之上,因此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 是一个强大的工具,可以实现项目的自动化部署流程,从代码提交到部署只需几个步骤。本文将带你配置 GitLab CI/CD 完成一个前端项目的自动化部署。 前言 为什么使用cicddocker? 目前我们公司开发环境使用的shell脚本部署&#…...
【Linux】进程
🌻个人主页:路飞雪吖~ 🌠专栏:Linux 目录 一、冯诺依曼体系结构 🌟系统调用和库函数概念 二、操作系统OS 三、进程 🌟查看进程 🌟通过系统调用获取进程标示符 🌟通过系统调用创…...
transformers生成式对话机器人
简介 生成式对话机器人是一种先进的人工智能系统,它能够通过学习大量的自然语言数据来模拟人类进行开放、连贯且创造性的对话。与基于规则或检索式的聊天机器人不同,生成式对话机器人并不局限于预定义的回答集,而是可以根据对话上下文动态地…...
Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战
Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战 前言1.何为Text2SQL(NL2sql)2.Text2SQL结构与挑战3.金融领域实际业务场景4.注意事项5.总结 前言 随着信息技术的迅猛发展,人机交互的方式也在不断演进。…...
C# 关于加密技术以及应用(二)
AES(Advanced Encryption Standard)和 RSA(Rivest-Shamir-Adleman)是两种不同的加密算法,它们各自有特定的使用场景和优势。下面是它们的主要区别和适用场景: AES(高级加密标准) 特…...
四十四:Web如何关闭会话
在Web应用中,关闭会话(Session Termination)是一个重要的机制,用于确保用户的会话状态被安全地终止。无论是用户主动退出登录还是因超时被动登出,正确地管理会话关闭有助于提升安全性并释放服务器资源。 一、为什么需…...
在wsl2中安装archlinux
在之前的博客中,我介绍了如何在虚拟机或者真实机上安装archlinux并且进行一定的配置,但是实际上Linux不管怎么配置在日常使用中都没有Windows简单便利,在开发有关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:要求 要求找到最长的连续递增子序列,即在原数组中位置连续且数值严格递增的一段序列 2:输入和输出 输入是一个未经排序的整数数组nums 输出是该数组中最长连续递增子序列的长度 3:边界调节 数组为空则长度为0 …...
apt 包 源 的维护 和缓存 命令
APT 包源维护命令 更新软件包列表: sudo apt update:从配置的软件源中获取最新的软件包信息。这是安装、升级或删除软件包前通常要执行的步骤,以确保使用的是最新的软件包信息。 升级软件包: sudo apt upgrade:升级系…...
【排序方法的总结】
在数据结构中常见的排序方法有: 插入排序、交换排序、选择排序、归并排序和基数排序等。 插入排序 特点: 简单直观,对于小规模的数据排序效率较高。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后…...
工作中常用springboot启动后执行的方法
前言: 工作中难免会遇到一些,程序启动之后需要提前执行的需求。 例如: 初始化缓存:在启动时加载必要的缓存数据。定时任务创建或启动:程序启动后创建或启动定时任务。程序启动完成通知:程序启动完成后通…...
QT 中使用 QTableView 和 QStandardItemModel 实现将数据导出到Excel 和 从Excel导入到 QTableView 的功能
简介 在Qt中,使用QTableView和QStandardItemModel来实现将数据导出到Excel和从Excel导入到QTableView的功能,而不使用第三方库(如QXlsx)。 效果 将 QTableView 中的数据导出到Excel //从tableview 导出到 EXcle void MainInterfa…...
模版方法模式的理解和实践
在软件开发中,设计模式为我们提供了一套经过验证的解决方案,用于解决常见的设计问题。其中,模版方法模式(Template Method Pattern)是一种行为设计模式,它定义了一个算法的框架,并允许子类在不改…...
05-树莓派-交叉编译
交叉编译的概念 交叉编译是什么 来源百度百科: 交叉编译是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。 举例来说,我们常说的x86 Lin…...
杨振宁大学物理视频中黄色的字,c#写程序去掉
先看一下效果:(还有改进的余地) 我的方法是笨方法,也比较刻板。 1,首先想到,把屏幕打印下来。c#提供了这样一个函数: Bitmap bmp new Bitmap(640, 480, PixelFormat.Format32bppArgb); // 创…...
非归档模式下一个或多个数据文件损坏恢复
1. 介绍 有些时侯可能你的库处于非归档的模式下,而你的联机重做日志又currupted,你的数据文件不能完成完全的恢复,这里为大家介绍一个oracle的一个隐藏参数_allow_resetlogs_corruption,让数据库重生。 通过设置隐含参数恢复 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学习笔记(一)
创建函数写法一: 重点:函数有几种写法 function DemoShow() {return (<div className"App">函数声明</div>); }export default DemoShow;对应js创建函数声明:function sum1(a,b){return ab } 创建函数写法二&#x…...
【H2O2|全栈】MySQL的基本操作(三)
目录 前言 开篇语 准备工作 案例准备 多表查询 笛卡尔积 等值连接 外连接 内连接 自连接 子查询 存在和所有 含于 分页查询 建表语句 结束语 前言 开篇语 本篇继续讲解MySQL的一些基础的操作——数据字段的查询中的多表查询和分页查询,与单表查询…...
SQL按指定字符分割字符串
在SQL中分割字符串通常需要使用特定的函数,因为SQL本身并不像编程语言那样直接支持字符串分割。不同的数据库系统有不同的函数来处理字符串分割。以下是一些常见数据库系统中分割字符串的方法: 1. MySQL 在MySQL中,你可以使用SUBSTRING_IND…...
NAT traversal 原理 | TCP / UDP/ P2P
注:本文为 “NAT traversal ”相关的几篇文章合辑。 未整理去重。 NAT 穿越技术原理 Li_yy123 于 2020-12-08 18:54:26 发布 一、NAT 由来 为了解决全球公有 IPv4 的稀缺,提出了 NAT 技术。NAT 是 Network Address Translation 网络地址转换的缩写。 …...