- 博客(320)
- 收藏
- 关注
原创 tmux简介和使用
tmux是一个开源的终端复用器,它允许用户在一个终端窗口内访问多个独立的终端会话。这意味着你可以在一个窗口中创建多个虚拟终端(称为窗格),并且可以在这些窗格之间自由切换。tmux还支持会话分离和恢复,允许你在断开连接后重新连接回来,并且继续之前的工作,而不会中断正在运行的程序。
2024-10-28 12:32:05 482
原创 Screen简介和使用
screen是一个由 GNU 项目提供的自由软件,用于允许用户在一个物理终端上启动一个会话,并在断开连接后重新连接回来。它是 Linux 系统下常用的终端复用器,类似于tmux,但比tmux更早出现。screen会话分离和恢复:可以在任何时候从会话中断开连接和重新连接。多窗口:在一个screen会话中可以创建多个窗口,每个窗口都可以独立运行不同的程序。滚动缓冲区:可以回顾会话的历史记录,即使在断开连接后。共享会话:多个用户可以同时访问同一个screen会话。脚本友好:可以通过脚本自动化screen。
2024-10-28 12:20:12 317
原创 网络部署:GPU加速和性能调优
GPU加速和性能调优是提高深度学习模型推理速度和效率的重要手段。在Qt中使用libtorch进行GPU加速时,需要确保硬件和软件配置正确,并在代码实现中充分利用GPU的并行处理能力。同时,通过模型优化、输入数据优化、推理优化以及调试和监控等策略来进一步提高性能。需要注意的是,不同的模型和任务可能需要不同的优化策略,因此需要根据具体情况进行选择和调整。
2024-09-27 14:31:41 419
原创 目标检测-小目标检测方法
每种方法和算法都有其优点和挑战,适当的选择和组合这些方法可以有效提升小目标的检测性能。根据具体的应用场景和计算资源需求,可以选择最适合的策略来优化模型的检测能力。
2024-09-06 16:26:01 1358
原创 目标检测-RT-DETR
模块实现了多头自注意力机制,它通过并行计算多个注意力头来捕获输入序列中不同位置和不同层次的依赖关系。每个头可以学习不同的注意力模式,最终将这些模式结合起来,生成更加丰富的特征表示。这一机制在 Transformer 中的应用,使模型具备了捕捉长距离依赖关系和并行处理的能力,大大提高了计算效率。
2024-09-06 16:04:15 1669
原创 目标检测-YOLOv10
是 YOLO 系列的最新版本,进一步推动了目标检测技术的发展。它在前代(YOLOv9)的基础上进行了更多优化和改进,使得模型在复杂场景、实时性以及精度方面取得了更高的突破。YOLOv10 将高效的架构设计与新颖的技术结合,适应各种应用场景,包括自动驾驶、智能监控、机器人视觉等。
2024-09-06 15:40:00 1179
原创 目标检测-YOLOv8
YOLOv8 在 YOLOv7 的基础上做了多项改进,包括更加高效的主干网络、改进的 Anchor-Free 检测头、优化的特征融合策略以及改进的损失函数。YOLOv8 继续优化了 Anchor-Free 机制,使其在检测不同尺度的目标时具有更好的泛化能力。相比 YOLOv7 的 PANet 结构,Rep-PAN 通过更高效的路径聚合策略,在不增加复杂度的情况下提升了目标检测的鲁棒性。CIoU 相较于传统的 IoU,进一步考虑了预测框和真实框的中心点距离及边界框的形状差异,提升了目标框的定位精度。
2024-09-06 15:10:25 1743
原创 目标检测-YOLOv7
YOLOv7 重构了检测头(Head),相比 YOLOv6 使用的 YOLOHead 模块,YOLOv7 引入了更加轻量化的架构,并通过深度可分离卷积(Depthwise Separable Convolutions)进一步减少了计算开销,同时保证检测精度。在 YOLOv6 以及早期的 YOLO 系列模型中,标签分配是基于固定的 IoU 阈值进行的,而 YOLOv7 通过动态调整标签分配策略,能够更有效地匹配目标与预测框,提高检测效果,尤其对小目标的检测性能有所提升。YOLOv7 采用了。
2024-09-06 15:03:51 1088
原创 目标检测-YOLOv6
YOLOv6 的设计目标是在提高模型检测精度的同时,进一步优化速度和效率,特别是在推理速度和部署便捷性方面。它采用了更先进的网络架构和优化技巧,在保持高性能的同时,极大地提升了推理速度。YOLOv6 使用了锚点自由检测机制,这意味着模型不再依赖于预定义的锚点框,能够自动适应不同的目标大小,简化了训练和推理过程,并且提升了小目标的检测能力。YOLOv6 在推理速度上优于 YOLOv5,尤其是在移动设备和嵌入式设备上,得益于其轻量化的设计和高效的推理优化,使其更加适合实时应用场景。YOLOv6 引入了新的。
2024-09-06 14:46:48 974
原创 目标检测-YOLOv5
YOLOv5 是 YOLO 系列的第五个版本,由团队发布。虽然 YOLOv5 并非 Joseph Redmon 原团队发布,但它在 YOLOv4 的基础上进行了重要的优化和改进,成为了深度学习目标检测领域中的热门模型之一。YOLOv5 的优势不仅体现在其性能上,还包括其简洁易用、部署便捷的特点。相较于 YOLOv4,YOLOv5 对于代码框架的重构、推理速度的提升,以及模型的轻量化等方面都有显著改进。
2024-09-06 10:23:38 2230
原创 目标检测-YOLOv4
YOLOv4 是 YOLO 系列的第四个版本,继承了 YOLOv3 的高效性,并通过大量优化和改进,在目标检测任务中实现了更高的精度和速度。相比 YOLOv3,YOLOv4 在框架设计、特征提取、训练策略等方面进行了全面升级。它在保持实时检测的同时,显著提升了检测性能,尤其在复杂场景中的表现尤为出色。
2024-09-06 10:05:08 1003
原创 目标检测-YOLOv3
YOLOv3 (You Only Look Once, Version 3) 是 YOLO 系列目标检测模型的第三个版本,相较于 YOLOv2 有了显著的改进和增强,尤其在检测速度和精度上表现优异。YOLOv3 的设计目标是在保持高速的前提下提升检测的准确性和稳定性。下面是对 YOLOv3 改进和优势的介绍,以及 YOLOv3 核心部分的代码展示。
2024-09-06 09:37:01 737
原创 目标检测-YOLOv2
YOLOv2(You Only Look Once version 2)是一种用于目标检测的深度学习模型,由Joseph Redmon等人于2016年提出,并详细论述在其论文《YOLO9000: Better, Faster, Stronger》中。YOLOv2在保持高速检测的同时,显著提升了检测的精度和泛化能力,成为实时目标检测领域的重要算法之一。
2024-09-06 09:14:39 1211
原创 目标检测-YOLOv1
YOLOv1(You Only Look Once version 1)是一种用于目标检测的深度学习算法,由Joseph Redmon等人于2016年提出。它基于单个卷积神经网络,将目标检测任务转化为一个回归问题,通过在图像上划分网格并预测每个网格中是否包含目标以及目标的位置和类别来实现目标检测。快速的检测速度:相比于传统的目标检测算法,YOLOv1具有更快的检测速度,能够实时处理图像。端到端的训练和预测:从输入图像到输出检测结果,YOLOv1能够在一个网络中完成,无需额外的后处理步骤。
2024-09-06 09:03:45 1222
原创 C++11互斥锁的使用
C++11允许你实现自定义的互斥锁。这可能对于特殊情况下,标准库提供的互斥锁不适用的情况。自定义互斥锁可以让你更深入地控制线程同步的行为。public:// 实现自定义加锁逻辑// 实现自定义解锁逻辑// 使用自定义互斥锁。
2023-09-24 11:56:26 380
原创 设计模式:中介者模式(C++实现)
在上述代码中,Mediator是中介者接口,定义了发送消息的方法。ConcreteColleagueA和ConcreteColleagueB是具体的同事类,实现了同事接口。ConcreteMediator是具体的中介者类,实现了中介者接口,并维护了同事对象的列表。在main函数中,我们创建了中介者对象和两个具体同事对象,并将同事对象添加到中介者中。然后,同事对象可以通过中介者来发送消息,并且中介者会将消息传递给其他同事对象。在中介者模式中,中介者对象负责协调多个对象之间的交互,将对象之间的耦合度降低。
2023-09-24 11:19:13 410
原创 设计模式:访问者模式(C++实现)
在上述代码中,Visitor是访问者接口,定义了访问具体元素的方法。Element是元素接口,定义了接受访问者访问的方法。ObjectStructure是对象结构类,用于管理元素的集合,并提供接受访问者访问的方法。在main函数中,我们创建了具体元素A和B的实例,并将它们添加到对象结构中。然后创建了具体访问者的实例,并调用对象结构的accept方法,将访问者应用于所有元素。输出结果会显示访问者对不同元素的访问和操作。访问者模式通过将对元素的操作与元素本身分离,使得可以在不修改元素类的情况下定义新的操作。
2023-09-24 10:55:46 418
原创 设计模式:策略模式(C++实现)
在 main() 函数中,我们首先创建了两个具体策略对象 strategy1 和 strategy2,然后创建了一个 Context 对象 context,并将 strategy1 设置为当前策略,最后调用 executeStrategy() 函数,输出的是 “Executing Concrete Strategy 1”。Context 类中的 setStrategy() 函数用于设置当前策略,executeStrategy() 函数用于调用当前策略的 execute() 函数。
2023-09-22 16:57:50 708
原创 设计模式:模板方法模式(C++实现)
模板方法中调用了两个抽象方法 primitiveOperation1() 和 primitiveOperation2(),这两个方法需要在子类中实现。然后,我们创建了两个具体子类 ConcreteClass1 和 ConcreteClass2,它们分别实现了抽象方法 primitiveOperation1() 和 primitiveOperation2()。通过定义一个模板方法和一些抽象方法,我们可以将公共的算法骨架放在基类中,将具体实现延迟到子类中,从而实现代码的复用和扩展。
2023-09-22 16:24:28 371
原创 设计模式:状态模式(C++实现)
Context是环境类,维护一个指向当前状态对象的指针,并提供了设置状态和处理请求的方法。通过调用setState()方法来设置当前状态,然后通过调用request()方法发送请求,环境对象会根据当前状态来进行相应的处理。状态模式可以将对象的行为封装在不同的状态类中,使得状态的切换对于对象来说是透明的。状态模式还可以避免使用大量的条件语句来判断对象的状态,提高代码的可读性和可维护性。状态模式将对象的行为封装在不同的状态类中,使得状态的切换对于对象来说是透明的。具体状态类根据自己的状态来实现相应的处理逻辑。
2023-09-22 15:57:33 417
原创 设计模式:责任链模式(C++实现)
然后通过调用handleRequest()方法来发送请求,责任链会按照设置的顺序依次处理请求,直到找到能够处理请求的处理者为止。在上述示例中,Handler是抽象处理者类,定义了处理请求的接口和设置后继处理者的方法。责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它能够将请求从一个处理者传递到下一个处理者,直到找到能够处理请求的对象为止。如果不能处理,则将请求传递给下一个处理者(successor),直到找到能够处理请求的处理者为止。
2023-09-20 10:57:08 414
原创 设计模式:享元模式(C++实现)
如果工厂中不存在对应的享元对象,则创建一个新的享元对象并将其存储在工厂中;如果已存在对应的享元对象,则直接返回该对象。在上述示例中,Flyweight是抽象享元类,定义了享元对象的接口。享元模式(Flyweight Pattern)是一种结构设计模式,它通过共享对象来有效地支持大量细粒度的对象。享元模式的目标是尽量减少内存使用,通过共享相同的数据来减少对象的数量。通过享元模式,可以减少对象的数量,节省内存空间。享元模式适用于需要创建大量相似对象的场景,可以提高系统的性能和效率。
2023-09-20 10:14:36 370 1
原创 设计模式:外观模式(C++实现)
外观模式(Facade Pattern)是一种结构设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。外观模式隐藏了子系统的复杂性,使得客户端只需要与外观对象交互,而不需要直接与子系统中的对象进行交互。Facade是外观类,它持有子系统类的对象,并提供了一个统一的接口operation()用于访问子系统的操作。通过调用外观类的operation()方法,实现了访问子系统类的操作。通过外观模式,可以简化客户端与子系统之间的交互,提供了一个统一的接口,隐藏了子系统的复杂性。
2023-09-20 09:07:04 518
原创 设计模式:桥接器模式(C++实现)
在main()函数中,首先创建了一个具体实现类ConcreteImplementorA的对象,并将其传递给扩展抽象类RefinedAbstraction的构造函数,创建了一个抽象类对象abstractionA。然后,创建了一个具体实现类ConcreteImplementorB的对象,并将其传递给扩展抽象类RefinedAbstraction的构造函数,创建了另一个抽象类对象abstractionB。Abstraction是抽象类,包含了一个实现接口的成员变量,并定义了抽象部分的操作方法。
2023-09-19 21:15:42 402
原创 设计模式:适配器模式(C++实现)
在适配器类的request()方法中,调用了适配的对象的specificRequest()方法。通过将适配的对象传递给适配器的构造函数,将适配的对象转换为目标接口。最后,通过调用适配器的request()方法,实现了适配的对象的方法调用。适配器模式(Adapter Pattern)是一种结构设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。通过适配器模式,可以将一个类的接口转换成客户端所期望的另一个接口,使得原本不兼容的类能够一起工作。
2023-09-19 20:35:36 426
原创 设计模式:备忘录模式(C++实现)
首先,通过调用原发器的setState()方法设置初始状态,并调用createMemento()方法创建备忘录,然后将备忘录添加到备忘录管理对象中。最后,通过调用restoreMemento()方法将原发器对象恢复到第二个备忘录的状态,并通过getState()方法获取当前状态。Originator是原发器类,它有一个用于保存状态的成员变量,并提供了创建备忘录和恢复备忘录的方法。Caretaker是备忘录管理类,它维护了一个备忘录对象的列表,并提供了添加备忘录和获取备忘录的方法。
2023-09-19 17:13:21 365
原创 设计模式:命令模式(C++实现)
在上述示例中,Command是命令的基类,定义了一个纯虚函数execute(),用于执行命令。ConcreteCommand是具体的命令类,它包含了一个指向接收者对象的指针,并实现了execute()函数,将请求委托给接收者的action()函数进行处理。Invoker是调用者类,它维护一个命令对象的列表,并提供了addCommand()和executeCommands()函数。addCommand()用于向命令列表中添加命令对象,executeCommands()用于执行命令列表中的所有命令。
2023-09-19 16:30:17 583
原创 设计模式:观察者模式(C++实现)
通过attach()函数将观察者添加到主题的观察者列表中,然后通过notify()函数通知所有观察者进行更新。attach()用于将观察者添加到观察者列表中,detach()用于从观察者列表中移除观察者,notify()用于通知所有观察者进行更新操作。观察者模式(Observer Pattern)是一种设计模式,用于定义对象之间的一对多依赖关系,当一个对象(称为主题或可观察者)的状态发生变化时,它的所有依赖对象(称为观察者)都会收到通知并进行相应的更新。
2023-09-19 15:19:24 620
原创 Pytorch实现LSTM预测模型并使用C++相应的ONNX模型推理
【代码】Pytorch实现LSTM预测模型并使用C++相应的ONNX模型推理。
2023-09-15 18:44:24 926 2
原创 Linux服务器下解压缩超过4G的ZIP压缩文件
Linux的unzip命令解压缩4G以上的文件会报错,这个是unzip软件本身的限制导致的。如果需要解压4G以上的ZIP压缩包,可以使用7zip工具来进行解压缩大于4G的压缩文件。访问http://sourceforge.net/projects/p7zip/files/p7zip/下载7zip的压缩包。Linux服务器下解压缩超过4G的ZIP压缩文件。
2023-04-23 16:16:52 2013 1
原创 【问题解决】The server quit without updating PID file localhost.localdomain.pid
最简单粗暴的方法是删除/etc/my.conf文件
2022-06-10 09:58:02 750
原创 vscode格式化C++代码方法
解决方法:按下组合键ctrl+shift+p在弹出的搜索窗口中输入format选择format document后回车就可以了
2022-06-08 19:48:35 727
原创 【问题解决】Incorrect string value: ‘\xE8\xA5\xBF\xE6\x96\xBD...‘ for column ‘name‘ at row 1
mysql插入不了中文字符串
2022-06-03 19:39:50 1426 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人