自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(349)
  • 收藏
  • 关注

原创 leetcode需要背下来的程序&语法糖 [Python][C++][更新中]

本文提供了Python与C++常用函数对照速查表,涵盖对象创建、类型转换、容器操作、数学计算、字符串处理、进制转换、文件操作等多个方面。包含字典/集合创建、类型判断、列表操作、排序搜索、字符串格式化等核心功能的实现对比,并附有C++中整数转二进制字符串的实现示例。同时介绍了int32/64等基本数据类型的取值范围,以及科学计数法输出常量极值的C++代码示例。该速查表可作为Python开发者学习C++或C++开发者参考Python实现的快速索引工具。

2025-05-29 23:38:18 412

原创 弱监督语义分割学习计划(0)-计划制定

经过与deepseek的一番讨论和交流,DeepSeek为我设计了一个。:Class Activation Map (CAM)优化、伪标签迭代。:掌握图像级/点监督分割方法,构建弱监督野外场景Pipeline。,结合理论与实践,并最终导向可落地的开源项目。:解决野外场景的域偏移问题(如仿真→真实场景迁移):构建完整Pipeline,产出开源仓库与仿真视频。:掌握传统语义分割核心模型与野外场景数据特性。

2025-02-18 14:17:20 965

原创 torch训练出的模型的组成以及模型训练后的使用和分析办法

本文从工程实践角度解析PyTorch模型本质与应用方法。模型由计算图代码(nn.Module)和训练参数(state_dict)组成,nn.Module定义前向逻辑,state_dict保存权重。训练完成后,模型可用于推理、部署服务、迁移学习等场景。关键点包括:使用eval()模式切换推理行为,no_grad()减少计算开销,以及设备管理。文章还介绍了模型封装、API服务化、批量推理等实践方法,并提及预训练模型的微调技巧。通过具体代码示例,展示了从模型定义到实际应用的全流程。

2025-12-31 21:22:36 421

原创 TensorRT介绍与示例代码学习

TensorRT 是 NVIDIA 提供的深度学习推理优化引擎,主要用于提升模型在 NVIDIA GPU 上的推理性能。它通过模型图优化、精度量化(FP16/INT8)、内存规划等技术,显著提高吞吐量并降低延迟。相比原生框架推理,TensorRT 能带来 2-8 倍的加速效果,同时更稳定且易于部署。典型工作流程包括:导出 ONNX 模型→构建 TensorRT 引擎→部署推理。入门建议从简单模型(如 ResNet18)开始,逐步掌握性能对比和 INT8 量化。实战示例展示了 PyTorch→ONNX→Ten

2025-12-31 21:06:59 480

原创 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 654

原创 Linux(debian)包管理器aptitude介绍

aptitude 是 Debian/Ubuntu 上的高级包管理工具,提供命令行和交互式界面两种操作方式。相比 apt/apt-get,aptitude 具有更智能的依赖解决策略、更强大的搜索语法和包状态管理功能。它支持集合式搜索表达式(如~i查找已安装包)和逻辑组合查询,并能交互式显示依赖冲突的多种解决方案。虽然需要手动安装且解决方案有时较激进,但aptitude为高级用户提供了更灵活的包管理选择。常用操作包括安装/卸载软件包、系统升级和清理无用依赖等。

2025-12-31 19:10:05 536

原创 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 568

原创 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 538

原创 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 961

原创 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 331

原创 配置用户pip源与查看当前的pip的源的办法

本文介绍了如何修改pip源为清华镜像以提高国内下载速度。首先通过mkdir和gedit命令创建并编辑~/.pip/pip.conf文件,配置全局索引地址和可信主机。文章解释了配置文件的格式和作用,并说明了pip的多级配置文件位置(用户级、系统级)。此外,还提供了查看当前配置的方法(pip config list -v)以及临时恢复官方源的操作指南。最后指出Windows系统下pip配置文件的不同路径。

2025-12-30 20:14:19 337

原创 Python构建包,打包.whl文件,使用.whl文件安装包指南

whl.whl会覆盖到常用的配置文件、目录结构和具体命令。

2025-12-30 19:28:30 645

原创 华为鸿蒙/OpenHarmony 的设备调试工具hdc介绍

摘要: hdc是华为鸿蒙/OpenHarmony专用的设备调试工具,类似Android的adb,用于应用安装、日志调试等开发场景;SSH则是通用的远程登录协议,适用于各类Linux/Unix服务器的运维管理。两者核心区别在于:hdc针对鸿蒙生态开发,提供专属调试功能;SSH是标准化远程工具,侧重通用性。在鸿蒙开发中必须使用hdc,而设备运维可配合SSH,二者互补而非替代。简言之,hdc是鸿蒙开发工具,SSH是通用远程方案。

2025-12-30 17:05:36 440

原创 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 964

原创 开放词汇系列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 372

原创 grpc工具概念介绍与核心组成,应用领域说明

gRPC是一种高性能、通用的远程过程调用(RPC)框架,由Google开发。它基于HTTP/2协议和Protocol Buffers序列化格式,支持多语言和流式通信。相比传统REST/HTTP,gRPC具有更高性能、强类型接口定义和自动代码生成等优势,特别适合微服务内部通信、实时数据流等场景。但调试不如REST直观,浏览器支持有限。gRPC适用于高并发内部服务调用,而面向浏览器的公开API可能更适合REST。

2025-12-30 10:27:53 1309

原创 常见实用的 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 685

原创 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 928

原创 mujoco安装的一些经验

摘要:本文介绍了Mujoco物理引擎在不同Ubuntu系统版本下的安装建议(20.04推荐3.3.4版,22.04可用最新版),并提供了详细的安装教程参考链接。同时给出了创建Mujoco桌面快捷图标的具体操作步骤,包括下载图标文件、创建.desktop配置文件的完整命令流程。安装过程涉及修改文件权限、设置启动参数等操作,适用于开发和教育用途。

2025-12-29 11:20:12 105

原创 C++ 中 std::move 的使用方法与注意事项

本文介绍了C++中std::move的核心概念和使用场景。首先区分了左值和右值的概念,指出右值引用允许为临时对象提供移动语义。std::move本质上是一个类型转换工具,将左值显式转换为右值引用以启用移动操作。文章详细讲解了四个典型使用场景:实现移动构造/赋值、优化函数返回值、避免容器操作中的不必要拷贝,以及在模板中配合std::forward实现完美转发。最后强调了正确使用std::move的判断标准,并提醒被移动后的对象处于有效但未指定状态,不应依赖其原有内容。

2025-12-29 10:22:29 952

原创 C++ 中string的初始化和使用方法

本文介绍了C++中字符串的常见类型和使用方法。重点讲解了std::string的基本操作,包括初始化、访问字符、拼接、查找等。特别解析了std::string二维数组的使用场景,通过示例代码展示了如何根据字符串前两个字符的值将第三个字符分类存储到对应数组位置中。文章还比较了C风格字符串和std::string的区别,强调了std::string在自动内存管理方面的优势。对于C++开发者理解字符串操作具有实用参考价值。

2025-12-29 10:14:32 763

原创 计算C++线程频率的一个小函数

该代码片段实现了一个计算当前运行频率的辅助函数calcCurrentHz,并在有限状态机FSM的run方法中调用。通过记录上次时间点last_tp,计算时间间隔dt的倒数得到当前频率hz,并使用ROS日志以1秒间隔输出实际运行频率。匿名命名空间封装了工具函数,避免命名冲突。该设计适用于需要监控循环执行频率的场景。

2025-12-28 17:09:39 84

原创 轻量化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 1009

原创 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 427

原创 Python 多线程详解(概念、初始化方式、线程间变量传递、线程锁以及一些注意事项)

本文详细介绍了Python多线程编程的核心概念与应用。主要内容包括:1)多线程的基本概念,指出GIL限制使其适用于I/O密集型任务而非计算密集型任务;2)线程创建与管理方法,使用threading.Thread初始化线程;3)线程间共享变量的风险及Lock锁机制解决数据竞争问题;4)线程间通信的队列(Queue)方案;5)守护线程和线程池(ThreadPoolExecutor)的使用场景。文章建议计算密集型任务使用多进程,I/O密集型任务使用多线程或异步编程,并强调合理规划线程数量和使用同步机制的重要性。

2025-12-23 19:54:38 353

原创 Python 常用特殊变量与关键字详解

本文介绍了Python中常用的特殊变量与关键字,包括__file__、__name__、__doc__和__dict__等。这些以双下划线开头结尾的变量具有特殊用途:__file__表示当前文件路径,__name__标识模块运行方式,__doc__存储文档字符串,__dict__保存对象属性。文章通过示例演示了它们的应用场景,并指出这些变量并非保留字但具有特殊含义,建议避免覆盖使用。掌握这些特殊变量有助于编写更健壮、可维护的Python代码。

2025-12-23 18:34:00 553

原创 CMake 常用预设命令说明

本文介绍了CMake构建系统中常用的预设命令,包括指定CMake最低版本、定义项目名称和语言、设置编译模式、控制编译输出信息以及指定C++标准版本等关键功能。文章通过典型示例展示了这些命令的实际应用,并提供了命令行构建的基本操作说明。这些预设命令是构建C/C++项目的基础配置,能够确保项目在不同平台和编译器下正确构建,同时便于开发调试和版本控制。

2025-12-23 15:50:04 594

原创 Linux 桌面(Desktop)图标的生成原理/执行流程/自己编写桌面图标的方法

Linux桌面图标由.desktop文件定义生成,该文件遵循freedesktop.org规范,包含程序名称、命令、图标路径等信息。主要存放在系统目录(如/usr/share/applications/)或用户目录(如~/.local/share/applications/)。.desktop文件包含关键字段如Type、Name、Exec、Icon等,其中图标会根据主题在指定路径查找。创建桌面图标需要编写.desktop文件并设置执行权限,同时确保图标文件存放在正确位置。不同桌面环境对图标显示有不同要求,G

2025-12-22 15:13:48 1016

原创 linux文本处理工具sed 使用方法详解

sed 是 Linux/Unix 下的流编辑器,用于非交互式文本处理。核心功能包括查找替换(s命令)、删除行(d)、插入/追加文本(i/a)等,支持正则表达式和行号范围匹配。常用选项如 -n(抑制输出)、-i(原地编辑)和 -E(扩展正则)。可通过 -e 执行多命令或 {} 组合命令,处理时建议备份文件。典型应用包括批量替换、删除空行等文本操作,是命令行环境下的高效编辑工具。

2025-12-22 15:12:55 385

原创 Python 的 @cache装饰器详细介绍及其作用

摘要:Python 3.9引入的@cache装饰器来自functools模块,用于缓存函数结果避免重复计算。它基于lru_cache实现,具有无限缓存大小,适用于纯函数场景。使用时需注意参数必须可哈希,且没有自动失效机制。与@lru_cache相比,@cache更简单但不支持缓存大小限制。典型应用包括递归计算和耗时操作,能显著提升程序性能,但需注意内存占用问题。

2025-12-22 14:39:20 515

原创 在 VS Code 中使用 Black 格式化 Python 代码

VS Code中使用Black格式化Python代码的简明指南 Black是Python社区流行的自动格式化工具,以"极少配置、强制风格"为核心理念。本文介绍在VS Code中配置Black的步骤:首先在虚拟环境或全局安装Black(pip install black),然后在VS Code中设置Python扩展,选择正确的解释器路径。通过修改settings.json将Black设为默认格式化工具("python.formatting.provider":&quot

2025-12-17 23:54:35 1158

原创 使用 pylintrc 配置 Python 代码检查的详细指南

本文详细介绍了如何使用 pylintrc 配置文件优化 Python 代码检查。主要内容包括:Pylint 基本使用方法;配置文件的生成、放置与加载;常用配置段落详解(消息控制、命名规范、格式要求等);以及项目落地实践建议。通过合理配置 .pylintrc,可以统一团队代码规范,提高代码质量,同时避免过度检查带来的干扰。文中提供了典型配置示例和实用技巧,帮助开发者根据项目需求定制检查规则。

2025-12-17 21:20:30 862

原创 旋转矩阵,齐次变换矩阵,欧拉角,四元数等相互转换的常用代码C++ Python

本文提供了一个基于C++(Eigen)和Python(NumPy/SciPy)的姿态转换工具库,统一了机器人领域常用的坐标系和旋转表示方法之间的转换。核心内容包括:1)采用右手坐标系和Z-Y-X欧拉角顺序;2)四元数统一表示为(w,x,y,z);3)提供旋转矩阵、欧拉角、四元数和齐次变换矩阵之间的两两转换函数。C++实现基于Eigen库,包含从欧拉角到旋转矩阵、四元数到旋转矩阵等常用转换接口,所有函数都遵循统一的约定,可直接集成到项目中作为长期可复用的姿态计算库。

2025-12-15 20:24:36 1126

原创 旋转矩阵与欧拉角转换数学公式与代码详解

本文介绍了欧拉角与四元数之间的转换方法,重点针对Z-Y-X顺序(yaw-pitch-roll)的航空/机器人学常用约定。首先通过数学推导给出了欧拉角转四元数的公式,并详细说明了四元数转欧拉角的计算过程,特别处理了万向节锁情况下的数值稳定性问题。随后提供了C++和Python的实现代码示例,确保不依赖第三方库即可使用。所有转换均采用右手坐标系,输入输出单位为弧度,适用于需要精确姿态表示的应用场景。

2025-12-15 19:44:21 956

原创 C++ Python使用常用库时如何做欧拉角 ⇄ 四元数转换

本文介绍了在C++和Python中使用常见库进行欧拉角与四元数转换的方法,重点说明不同库的约定差异。C++部分涵盖Eigen、ROS tf2和GLM库的转换实现,包括欧拉角到四元数以及反向转换的代码示例。Python部分涉及SciPy、ROS tf_transformations等库。文章强调不同库对欧拉顺序和四元数分量顺序的约定可能不同,使用时需保持一致以避免方向错误。关键点包括:右手坐标系、Z-Y-X欧拉角顺序、四元数分量顺序等,并提供了各库的具体实现示例和注意事项。

2025-12-15 17:43:57 1004

原创 pip遇到依赖冲突警告时候的排查办法

摘要 记录Python依赖冲突解决过程。使用pip安装requirements.txt时出现依赖版本冲突,主要涉及fastapi、uvicorn、pydantic等包的版本要求。部分依赖如pydantic>=2.0.0、requests>=2.31.0已满足,但需要下载fastapi-0.124.4、uvicorn-0.38.0等新版本。过程中发现starlette<0.51.0、pydantic-core==2.41.5等特定版本约束。解决方案包括检查已安装包版本、确认依赖关系,适用于类

2025-12-14 22:21:14 1068

原创 conda使用详细指南

一句话:conda = 环境管理器(虚拟环境) + 包管理器(跨语言包),解决“你可以把每个 conda 环境想成是:一个轻量的“用户级小系统”(有自己的 Python、库、Python 包等)。

2025-12-14 22:15:16 841

原创 详细解释pip及其使用方法(对比apt)

本文介绍了Python包管理工具pip的核心用法及与apt的区别。主要内容包括: pip与apt的区别:apt管理系统级软件包,pip管理Python第三方包 推荐使用python -m pip代替直接使用pip命令 pip基本操作: 安装包:pip install及版本控制 升级:pip install -U 卸载:pip uninstall 查看:pip list和pip show pip search已被弃用,推荐使用PyPI官网搜索 虚拟环境venv的使用方法,解决项目间依赖冲突问题 文章提供了详细

2025-12-14 21:29:03 1176

原创 Python 对象序列化与存储库pickle详细介绍

Python 的 pickle 模块是标准库中的对象序列化工具,支持将Python对象转换为二进制字节流(序列化)或从字节流还原为对象(反序列化)。它支持大多数内置类型和自定义类实例,是Python专用的二进制协议。pickle 提供了 dump/load(文件操作)和 dumps/loads(字节操作)两套接口,使用时需指定协议版本(推荐HIGHEST_PROTOCOL)。对于自定义类,可通过__getstate__/__setstate__方法控制序列化行为。pickle适合在Python环境内部保存复

2025-12-11 18:17:02 611

原创 ubuntu20.04使用flathub遇到Unable to load summary from...exceeded maximum size of 10485760 bytes解决办法

在使用flathub软件安装一个Color Picker程序的时候,总是遇到这个报错的关键是:意思是:Flatpak 在下载 Flathub 的summary文件时,发现它超过了当前 Flatpak 允许的最大大小(10 MB),于是直接拒绝了。

2025-12-05 20:59:58 353

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除