- 博客(362)
- 收藏
- 关注
原创 leetcode需要背下来的程序&语法糖 [Python][C++][更新中]
本文提供了Python与C++常用函数对照速查表,涵盖对象创建、类型转换、容器操作、数学计算、字符串处理、进制转换、文件操作等多个方面。包含字典/集合创建、类型判断、列表操作、排序搜索、字符串格式化等核心功能的实现对比,并附有C++中整数转二进制字符串的实现示例。同时介绍了int32/64等基本数据类型的取值范围,以及科学计数法输出常量极值的C++代码示例。该速查表可作为Python开发者学习C++或C++开发者参考Python实现的快速索引工具。
2025-05-29 23:38:18
462
原创 弱监督语义分割学习计划(0)-计划制定
经过与deepseek的一番讨论和交流,DeepSeek为我设计了一个。:Class Activation Map (CAM)优化、伪标签迭代。:掌握图像级/点监督分割方法,构建弱监督野外场景Pipeline。,结合理论与实践,并最终导向可落地的开源项目。:解决野外场景的域偏移问题(如仿真→真实场景迁移):构建完整Pipeline,产出开源仓库与仿真视频。:掌握传统语义分割核心模型与野外场景数据特性。
2025-02-18 14:17:20
1001
原创 PEP 517/518 模式导致包找不到的解决办法
本文介绍了三个Python包管理命令:1) 安装特定版本22.3.1的pip工具;2) 以可编辑模式(--no-build-isolation)安装当前目录下的包;3) 安装setuptools工具,要求版本不低于62.3.0但低于75.9。这些命令常用于Python开发环境的配置和依赖管理。
2026-03-16 21:16:01
25
原创 git reflog介绍(找回之前detach后做的commit)
我之前是在一个git仓库的detach的head提交了一些commit,后来我切回了main分支,发现之前的detach的头及后续的提交我都找不见了,解决办法如下所示:先别慌,这种情况大多数是能找回来的。这些 commit 一般还在仓库里,只是「没有分支指向它们」,可以通过git reflog找回。下面按步骤来,你可以在仓库根目录里执行。
2026-03-16 15:13:49
249
原创 Python @property装饰器介绍
Python的@property装饰器用于将方法伪装成属性,既能保持简洁的属性访问语法,又能控制属性访问逻辑。主要用途包括:属性校验(如年龄不能为负数)、动态计算属性(如圆的面积)、保持接口稳定(不改动外部调用代码)。通过@property定义getter,@x.setter定义setter,@x.deleter定义删除逻辑。相比传统getter/setter方法,@property使代码更简洁优雅,是Python封装属性的推荐方式。使用时需注意避免无限递归,通常用_x命名内部存储字段。
2026-02-06 18:20:22
653
原创 Python中is关键字详细说明,比较的是地址还是值
摘要:Python中的is运算符用于比较对象身份(内存地址),而==比较值相等。is适用于判断单例对象(如None)或验证是否为同一实例,而==用于常规值比较。注意小整数缓存和字符串驻留可能导致is意外返回True,但这是实现细节不可依赖。判断容器内容应使用in和==而非is。关键原则:is比较对象身份,==比较值相等,根据场景正确选择运算符。
2026-02-05 17:34:51
988
原创 Python的copy模块的使用原理与详细介绍
Python的copy模块提供浅拷贝(copy.copy())和深拷贝(copy.deepcopy())两种复制方式。浅拷贝仅复制外层容器,内部元素仍共享引用;深拷贝会递归复制所有嵌套对象。对于不可变类型(int,str等),拷贝无意义;可变类型(list,dict等)需要根据嵌套结构选择拷贝方式。copy模块常用于避免共享引用导致的意外修改,如函数默认参数、配置模板复制等场景。自定义类可通过实现__copy__和__deepcopy__方法控制拷贝行为。理解拷贝机制有助于正确处理Python中的对象引用问
2026-02-05 17:26:24
1012
原创 GitHub Gist 功能详解:从入门到进阶
GitHub Gist 是 GitHub 提供的轻量级代码片段托管服务,适合分享临时代码、技术笔记和小工具脚本。每个 Gist 都是独立的 Git 仓库,支持版本管理、多文件组织和语法高亮。用户可选择公开或私密模式,并通过 URL 快速分享内容。Gist 支持嵌入网页、克隆到本地编辑,以及基本的社交功能(评论、Star、Fork)。典型应用场景包括最小可复现代码示例、个人脚本库和技术博客嵌入。但需注意 Gist 不适合存储敏感信息或管理大型项目。相比完整 GitHub 仓库,Gist 更侧重快速分享小型代码
2026-02-03 11:51:43
1330
原创 YOLO 推理中的 stream 参数:工作原理、使用方式与实战建议
YOLO推理中的stream参数详解 摘要:YOLO推理接口中的stream参数控制结果返回方式。stream=False(默认)会一次性处理并返回所有结果,适合小数据量但内存占用高;stream=True则返回生成器对象,实现逐帧/逐样本处理,内存占用稳定,适合长视频、摄像头流和大规模图片数据集。本文对比了两种模式在不同输入源下的表现差异,提供了典型应用场景的代码示例,并分析了内存与性能影响。建议短数据用默认模式,长视频/大数据集使用流式处理以避免内存溢出。
2026-01-22 23:08:04
716
原创 深入理解 YOLO 训练中的 mAP50、mAP75 和 mAP50-95 指标
本文详细解析了YOLO训练中的mAP指标,包括mAP50、mAP75和mAP50-95。首先介绍了基础概念:IoU衡量预测框与真实框的重叠程度,Precision和Recall评估检测质量。然后阐述了AP的计算方法,即PR曲线下的面积。mAP是多类别AP的平均值,可能包含多IoU阈值的平均。mAP50使用宽松的IoU=0.5阈值,mAP75要求更严格的重叠,而mAP50-95综合考察从0.5到0.95的10个IoU阈值,是最全面严格的指标。文章还指导如何解读YOLO训练日志中的mAP值,并分析了常见现象如&
2026-01-22 22:57:04
1684
原创 排查一个多网卡的机器上不了网的问题(更改默认路由)
摘要:本文介绍了如何查看Linux系统中的默认网关,提供了四种方法(ip route、ip r | grep default、route -n、nmcli)。针对一个具体网络故障案例,分析发现设备默认网关配置与实际物理连接不一致,导致无法上网。解决方案包括:确认中继路由器可达性、临时修改默认网关到正确地址(192.168.11.5),以及根据容器启动方式(Docker bridge/macvlan/host网络或LXC)提供持久化配置建议。关键是要确保路由表正确指向可用的网络出口。
2026-01-20 23:25:09
814
原创 网关相关内容介绍
本文解析了局域网(LAN)中网关的概念及其作用。网关(默认网关)本质上是局域网连接外部网络的出口,通常是路由器的局域网侧IP地址。当设备访问非本地网段IP时,数据会通过网关转发。文章通过家庭网络和嵌套网络两种典型场景说明:在普通局域网中,机器人网关是路由器LAN口IP(如192.168.1.1);在多层网络中,机器人网关仍是直接连接其所在网段的路由器接口IP(如192.168.100.1),而非上层网络的路由器地址。最后强调"谁直接连接网段谁就是网关"的原则,并提议可进一步根据实际网络拓
2026-01-20 23:12:10
796
1
原创 ROS 2 rosbag2 播放出现 “Message queue starved. Messages will be delayed.” 的处理步骤
该告警表示播放器的预取(read-ahead)队列被消费得过快而补不满,导致消息发送延迟。通常由磁盘读速、CPU解压/编解码开销、话题数量/频率过高、QoS阻塞或SQLite读取缓存过小引起。优先传入包目录(包含 metadata.yaml 的目录),而非直接 .db3 文件路径。使用 ros2 bag info 查看话题频率与压缩配置,结合实际调参。将包拷到本地SSD再播,避免网络盘/机械盘瓶颈。避免QoS阻塞(将播放端QoS改成非阻塞)若仍告警,再降速/限话题;(如含GPU解码),定位瓶颈。
2026-01-15 17:06:40
156
原创 Debian 系与 RPM 系常用软件包查询命令/信息/列出已安装包/模糊查找等命令
Linux 下排错、打包、部署时,最常见的问题之一就是「这个东西是哪个包装的?」「这个包装了什么文件?」「有没有安装?」「哪个仓库来的?在 RPM 系(如 CentOS / RHEL / Fedora / openEuler)里,你用的是rpmdnfyum;在 Debian/Ubuntu 里,用的是dpkgapt。理解它们的,能大幅提升你在两大阵营之间「切换脑子」的效率。下面以你提到的为切入点,系统对比一下两派常用命令与用法。
2026-01-12 23:17:55
801
原创 conda和pip换源指南
本文介绍了在Linux系统中查看和更换conda与pip镜像源的方法。对于conda,可通过conda config --show channels查看当前源,使用conda config --add channels命令添加清华或阿里云等国内镜像。pip源可通过pip config get global.index-url查看,修改~/.pip/pip.conf文件可永久更换为国内源。文章还提供了临时使用镜像源的命令参数,以及恢复默认源的方法,并建议conda和pip分别配置各自的镜像站以优化下载速度。
2026-01-02 21:42:46
2326
原创 torch训练出的模型的组成以及模型训练后的使用和分析办法
本文从工程实践角度解析PyTorch模型本质与应用方法。模型由计算图代码(nn.Module)和训练参数(state_dict)组成,nn.Module定义前向逻辑,state_dict保存权重。训练完成后,模型可用于推理、部署服务、迁移学习等场景。关键点包括:使用eval()模式切换推理行为,no_grad()减少计算开销,以及设备管理。文章还介绍了模型封装、API服务化、批量推理等实践方法,并提及预训练模型的微调技巧。通过具体代码示例,展示了从模型定义到实际应用的全流程。
2025-12-31 21:22:36
909
原创 TensorRT介绍与示例代码学习
TensorRT 是 NVIDIA 提供的深度学习推理优化引擎,主要用于提升模型在 NVIDIA GPU 上的推理性能。它通过模型图优化、精度量化(FP16/INT8)、内存规划等技术,显著提高吞吐量并降低延迟。相比原生框架推理,TensorRT 能带来 2-8 倍的加速效果,同时更稳定且易于部署。典型工作流程包括:导出 ONNX 模型→构建 TensorRT 引擎→部署推理。入门建议从简单模型(如 ResNet18)开始,逐步掌握性能对比和 INT8 量化。实战示例展示了 PyTorch→ONNX→Ten
2025-12-31 21:06:59
1152
原创 Ultralytics 8.3.0 版本的assets发布的官方提供的模型列表中的模型介绍
Ultralytics 8.3.0版本发布了丰富的模型资源,主要包括分割模型(SAM系列、MobileSAM、FastSAM)和YOLO系列模型。YOLO系列涵盖检测、分割、姿态、分类和旋转框等多种任务,包含YOLOv3/v5兼容模型、YOLOv8/v9/v10主力模型以及最新的YOLOv11家族。其中YOLOv11作为重点更新,提供检测、分割、姿态、分类和旋转框检测的全套解决方案。模型按规模分为nano/small/medium/large/xlarge,用户可根据计算资源选择合适版本。该版本还包含校准数
2025-12-31 20:46:38
1230
原创 Linux(debian)包管理器aptitude介绍
aptitude 是 Debian/Ubuntu 上的高级包管理工具,提供命令行和交互式界面两种操作方式。相比 apt/apt-get,aptitude 具有更智能的依赖解决策略、更强大的搜索语法和包状态管理功能。它支持集合式搜索表达式(如~i查找已安装包)和逻辑组合查询,并能交互式显示依赖冲突的多种解决方案。虽然需要手动安装且解决方案有时较激进,但aptitude为高级用户提供了更灵活的包管理选择。常用操作包括安装/卸载软件包、系统升级和清理无用依赖等。
2025-12-31 19:10:05
950
原创 Linux rpm 系和 debian 系发展史,相同,不同点详细介绍
Linux包管理系统主要分为RPM系和Debian系两大阵营。RPM系以.rpm格式和rpm/dnf/yum工具为代表,典型发行版包括Red Hat、CentOS等;Debian系以.deb格式和dpkg/apt工具为主,涵盖Ubuntu等发行版。这两大体系源于不同的历史发展路径,形成了各自的软件包格式、管理工具和生态系统。虽然底层实现不同,但两者在功能上都提供了软件安装、升级、依赖管理等核心能力。实际使用中,RPM系更倾向企业级稳定性,Debian系则以社区生态见长。随着容器技术的发展,这两种包管理系统在
2025-12-31 18:12:29
1053
原创 Yum包管理器详细介绍
Yum是RPM系Linux发行版(如CentOS/RHEL)的软件包管理工具,用于自动解决依赖关系并管理软件包安装更新。它与Debian系的APT功能类似但互不兼容。Yum通过配置/etc/yum.repos.d/下的仓库文件获取软件源,支持官方源和第三方源(如EPEL)。基本操作包括:yum install/remove/update分别用于安装/卸载/更新软件包,yum search/info用于查询软件信息。较新系统如RHEL8已用DNF替代Yum,但保留yum命令兼容。Ubuntu等Debian系系
2025-12-31 18:04:08
744
原创 Linux 下开发 C/C++ 程序为什么头文件引用路径这么多和复杂
Linux系统头文件路径的复杂性源于对多架构、多语言和多版本的支持需求。/usr/include存放架构无关的C头文件,/usr/include/x86_64-linux-gnu存放x86_64架构特定的C头文件,实现Multiarch机制。C++标准库头文件则按版本和架构分层:/usr/include/c++/11存放GCC 11的通用C++头文件,/usr/include/x86_64-linux-gnu/c++/11存放架构相关的实现。这种分层结构避免了不同编译器版本和架构间的冲突,确保系统能同时支持
2025-12-30 21:21:32
1169
原创 ubuntu快速查看一个apt包的描述信息和依赖等
本文介绍了在 Ubuntu 系统中快速查看软件包信息的多种方法。主要包括:使用 apt show 或 apt-cache show 查看包的基本信息,通过 dpkg 命令查询已安装包的文件列表或命令对应的包,以及利用在线资源获取更详细信息。文章还提供了一个标准操作流程:先用 apt-cache show 快速查看包描述,再用 apt show 获取详细信息,必要时用 dpkg 查询具体安装内容。最后以 python-is-python3 包为例,说明其作用是创建 Python3 的符号链接以实现兼容性。
2025-12-30 20:24:30
465
原创 配置用户pip源与查看当前的pip的源的办法
本文介绍了如何修改pip源为清华镜像以提高国内下载速度。首先通过mkdir和gedit命令创建并编辑~/.pip/pip.conf文件,配置全局索引地址和可信主机。文章解释了配置文件的格式和作用,并说明了pip的多级配置文件位置(用户级、系统级)。此外,还提供了查看当前配置的方法(pip config list -v)以及临时恢复官方源的操作指南。最后指出Windows系统下pip配置文件的不同路径。
2025-12-30 20:14:19
766
原创 华为鸿蒙/OpenHarmony 的设备调试工具hdc介绍
摘要: hdc是华为鸿蒙/OpenHarmony专用的设备调试工具,类似Android的adb,用于应用安装、日志调试等开发场景;SSH则是通用的远程登录协议,适用于各类Linux/Unix服务器的运维管理。两者核心区别在于:hdc针对鸿蒙生态开发,提供专属调试功能;SSH是标准化远程工具,侧重通用性。在鸿蒙开发中必须使用hdc,而设备运维可配合SSH,二者互补而非替代。简言之,hdc是鸿蒙开发工具,SSH是通用远程方案。
2025-12-30 17:05:36
1076
原创 linux中的文本分接流tee命令介绍
摘要: tee 是 Linux 中的管道分流工具,可将标准输入同时输出到终端和文件。核心功能包括: 基础用法:cmd | tee file 保留终端显示并保存到文件(默认覆盖); 追加写入:-a 选项实现日志续写; 多文件写入:支持同时写入多个目标文件; 关键场景:与 sudo 配合解决权限问题(如 echo "内容" | sudo tee /root/file); 流程控制:在管道中分流数据,既保存原始输出又传递到后续命令(如 make | tee log | grep error)。
2025-12-30 16:07:55
1285
原创 开放词汇系列YOLO检测模型介绍
摘要 开放词汇检测(Open-Vocabulary Detection)是YOLO系列中允许在推理时通过文本输入(如classes.txt)动态指定检测类别的功能,包括训练时未见的新类别。主要实现包括: YOLO-World系列(YOLOv8-World等) YOLO-OV/OVD等论文变体 Grounding-YOLO系列 YOLO+CLIP社区版本 该功能通过视觉-文本特征匹配实现,区别于传统YOLO固定类别的检测方式。关键词包括开放词汇检测、文本引导检测等。
2025-12-30 16:06:05
619
原创 grpc工具概念介绍与核心组成,应用领域说明
gRPC是一种高性能、通用的远程过程调用(RPC)框架,由Google开发。它基于HTTP/2协议和Protocol Buffers序列化格式,支持多语言和流式通信。相比传统REST/HTTP,gRPC具有更高性能、强类型接口定义和自动代码生成等优势,特别适合微服务内部通信、实时数据流等场景。但调试不如REST直观,浏览器支持有限。gRPC适用于高并发内部服务调用,而面向浏览器的公开API可能更适合REST。
2025-12-30 10:27:53
1517
原创 常见实用的 NumPy 函数及其用法与注意点
NumPy是Python科学计算的核心库,提供高效的多维数组对象ndarray及丰富的运算函数。本文介绍了NumPy常用操作,包括数组创建(np.array、np.zeros等)、形状变换(reshape、transpose等)、拼接拆分(stack、concatenate系列)、索引筛选(切片、布尔索引等)以及统计运算。重点讲解了stack与concatenate的区别:stack会新增维度,而concatenate在现有维度上扩展。NumPy通过C/Fortran底层实现,运算速度远超纯Python,是
2025-12-29 17:27:31
827
原创 linux /etc/profile.d 目录介绍
/etc/profile.d 目录存放系统级的 shell 启动脚本,用于在用户登录时统一设置环境变量、路径等配置。该目录下的脚本会被 /etc/profile 或 /etc/csh.login 调用,对所有用户生效。常见脚本包括: 01-locale-fix.sh:修正语言/本地化设置 apps-bin-path.sh:添加应用程序目录到 PATH bash_completion.sh:启用 bash 智能补全 flatpak.sh:为 Flatpak 设置环境变量 vte-2.91.sh:配置 GNOM
2025-12-29 14:39:30
1044
原创 mujoco安装的一些经验
摘要:本文介绍了Mujoco物理引擎在不同Ubuntu系统版本下的安装建议(20.04推荐3.3.4版,22.04可用最新版),并提供了详细的安装教程参考链接。同时给出了创建Mujoco桌面快捷图标的具体操作步骤,包括下载图标文件、创建.desktop配置文件的完整命令流程。安装过程涉及修改文件权限、设置启动参数等操作,适用于开发和教育用途。
2025-12-29 11:20:12
169
原创 C++ 中 std::move 的使用方法与注意事项
本文介绍了C++中std::move的核心概念和使用场景。首先区分了左值和右值的概念,指出右值引用允许为临时对象提供移动语义。std::move本质上是一个类型转换工具,将左值显式转换为右值引用以启用移动操作。文章详细讲解了四个典型使用场景:实现移动构造/赋值、优化函数返回值、避免容器操作中的不必要拷贝,以及在模板中配合std::forward实现完美转发。最后强调了正确使用std::move的判断标准,并提醒被移动后的对象处于有效但未指定状态,不应依赖其原有内容。
2025-12-29 10:22:29
1063
原创 C++ 中string的初始化和使用方法
本文介绍了C++中字符串的常见类型和使用方法。重点讲解了std::string的基本操作,包括初始化、访问字符、拼接、查找等。特别解析了std::string二维数组的使用场景,通过示例代码展示了如何根据字符串前两个字符的值将第三个字符分类存储到对应数组位置中。文章还比较了C风格字符串和std::string的区别,强调了std::string在自动内存管理方面的优势。对于C++开发者理解字符串操作具有实用参考价值。
2025-12-29 10:14:32
1119
原创 计算C++线程频率的一个小函数
该代码片段实现了一个计算当前运行频率的辅助函数calcCurrentHz,并在有限状态机FSM的run方法中调用。通过记录上次时间点last_tp,计算时间间隔dt的倒数得到当前频率hz,并使用ROS日志以1秒间隔输出实际运行频率。匿名命名空间封装了工具函数,避免命名冲突。该设计适用于需要监控循环执行频率的场景。
2025-12-28 17:09:39
110
原创 轻量化ssh工具Dropbear 介绍与使用说明
Dropbear是一款轻量级开源SSH服务器/客户端,专为资源受限设备设计。它体积小巧但功能完备,支持SSH2协议、密钥登录和端口转发等核心功能,是嵌入式设备(如路由器、OpenWrt系统)的理想选择。安装方式因系统而异,Debian/Ubuntu使用apt,Fedora/CentOS使用dnf/yum。配置主要通过命令行参数或系统服务文件实现,支持端口设置、密钥认证等安全选项。Dropbear还提供dbclient和scp客户端工具,兼容OpenSSH密钥,并可通过dropbearkey生成专属密钥。在O
2025-12-27 15:40:56
1763
原创 C++ 的 ranges 和 Python 的 bisect 在二分查找中的应用与实现
本文对比了C++20的std::ranges和Python的bisect模块在二分查找中的应用。C++20通过ranges::binary_search、lower_bound和upper_bound等函数提供了类型安全的二分查找,返回迭代器;Python的bisect模块则通过bisect_left和bisect_right返回索引位置,并支持直接插入元素。两者都能高效处理有序数据,但C++性能更优,而Python更易用。文章提供了完整的代码示例,展示了如何在两种语言中实现二分查找及其边界查询功能。
2025-12-24 16:40:24
476
原创 Python 多线程详解(概念、初始化方式、线程间变量传递、线程锁以及一些注意事项)
本文详细介绍了Python多线程编程的核心概念与应用。主要内容包括:1)多线程的基本概念,指出GIL限制使其适用于I/O密集型任务而非计算密集型任务;2)线程创建与管理方法,使用threading.Thread初始化线程;3)线程间共享变量的风险及Lock锁机制解决数据竞争问题;4)线程间通信的队列(Queue)方案;5)守护线程和线程池(ThreadPoolExecutor)的使用场景。文章建议计算密集型任务使用多进程,I/O密集型任务使用多线程或异步编程,并强调合理规划线程数量和使用同步机制的重要性。
2025-12-23 19:54:38
441
原创 Python 常用特殊变量与关键字详解
本文介绍了Python中常用的特殊变量与关键字,包括__file__、__name__、__doc__和__dict__等。这些以双下划线开头结尾的变量具有特殊用途:__file__表示当前文件路径,__name__标识模块运行方式,__doc__存储文档字符串,__dict__保存对象属性。文章通过示例演示了它们的应用场景,并指出这些变量并非保留字但具有特殊含义,建议避免覆盖使用。掌握这些特殊变量有助于编写更健壮、可维护的Python代码。
2025-12-23 18:34:00
623
原创 CMake 常用预设命令说明
本文介绍了CMake构建系统中常用的预设命令,包括指定CMake最低版本、定义项目名称和语言、设置编译模式、控制编译输出信息以及指定C++标准版本等关键功能。文章通过典型示例展示了这些命令的实际应用,并提供了命令行构建的基本操作说明。这些预设命令是构建C/C++项目的基础配置,能够确保项目在不同平台和编译器下正确构建,同时便于开发调试和版本控制。
2025-12-23 15:50:04
633
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅