- 博客(141)
- 资源 (4)
- 收藏
- 关注
原创 git reflog用法
本文详细介绍了git reflog的实用技巧:1)如何浏览更多条目,包括使用--no-pager参数和限制显示数量;2)如何显示更详细信息,推荐使用git log -g命令格式化输出;3)如何延长reflog保存时间,通过修改gc.reflogExpire配置项。文章最后总结了不同需求下的推荐命令,帮助用户更好地利用reflog这个"后悔药"工具来管理Git操作历史。
2025-12-22 15:55:13
518
原创 Python 内置的 HTTP 服务
Python内置的HTTP服务提供了一种快速启动本地Web服务器的方法,主要使用http.server模块(Python3)或SimpleHTTPServer模块(Python2)。通过命令行可以一键启动文件服务器,指定端口和绑定IP。也可以在脚本中启动,实现更灵活的控制。还可以自定义请求处理器,创建简单的API接口。适用于快速文件共享、本地开发测试等场景,但性能有限且存在安全风险,不适合生产环境使用。
2025-12-17 17:39:01
506
原创 Git 回退到某个 commit
本文介绍了Git中回退到某个commit的三种主要方法及其适用场景: git reset:彻底删除本地未推送的提交,有--soft(保留更改到暂存区)、--mixed(保留更改到工作区)和--hard(彻底丢弃更改)三种模式,会修改历史记录。 git revert:安全撤销已推送的提交,通过新增一个抵消提交来保留完整历史,适合团队协作场景。 git checkout:临时查看旧版本代码(进入分离头状态),不影响现有分支。 文章还提供了操作示例,并推荐使用git reflog恢复误删的提交。
2025-12-16 10:47:12
975
原创 git stash 用法
摘要:git stash是Git的临时储藏功能,用于保存当前未提交的修改,使工作区变"干净"以便切换分支。核心命令包括:git stash save保存修改并添加描述,git stash list查看储藏列表,git stash pop恢复最新储藏并删除,git stash apply恢复但不删除。进阶用法包括-u参数保存未追踪文件,git stash show查看修改内容,以及从储藏创建新分支。这个功能特别适合在开发中途需要处理紧急任务时临时保存工作进度,解决分支切换时的代码冲突问题。
2025-12-15 15:48:47
784
原创 图片的base64表示
Base64编码的图片数据URI是一种将图片直接嵌入文本文件的技术,格式为data:image/[类型];base64,[编码数据]。它通过将二进制图片转换为ASCII字符串,省去了外部文件请求,适合小图标等资源。优点是减少HTTP请求、便于独立部署,缺点是体积增大33%、无法缓存、维护困难。适用于小型图片,但不推荐用于大文件。
2025-12-11 16:54:15
445
原创 Python中的异步与并行
Python中的异步与并行是提升程序性能的两种主要方式,适用于不同场景。异步编程通过asyncio库实现单线程内的并发,利用事件循环和协程高效处理I/O密集型任务,避免线程阻塞。并行编程则通过multiprocessing库实现多进程并行计算,突破Python的GIL限制,适用于CPU密集型任务。异步适用于网络请求、数据库查询等I/O等待场景,而并行适用于科学计算、数据处理等CPU计算密集型任务。开发者应根据任务类型选择合适的方案来优化程序性能。
2025-11-07 17:48:02
875
原创 torch多进程代码示例
本文介绍了PyTorch多进程编程的核心原理和实现方法,重点演示了分布式编程中的初始化、身份识别、通信和清理四个关键环节。通过一个最小可运行示例,展示了如何使用torch.distributed和torch.multiprocessing实现多进程数据通信,其中all_reduce操作用于进程间数据聚合和广播。文章详细解释了world_size、rank、backend等核心概念,并提供了完整的代码实现和运行说明,帮助读者理解分布式训练的基础工作流程。
2025-10-02 11:59:29
1010
原创 插件化(Plugin)设计模式——Python 的动态导入和参数解析库 argparse 的高级用法
文章摘要:本文介绍了一种Python插件化设计模式,通过动态导入和argparse库实现主程序与插件的解耦。项目包含主程序(main.py)和插件目录(plugins/),每个插件需实现add_arguments和process接口。核心技巧是分两阶段解析参数:先解析已知参数确定插件,再加载插件并注册其专属参数。示例演示了文本处理插件(转大写/反转/词数统计)的实现,其中wordcount插件支持--ignore-case专属参数。这种设计使主程序无需预先知道插件细节,实现了灵活扩展。(149字)
2025-09-22 16:52:33
784
原创 pytorch中.pt和.pth文件区别
PyTorch中.pt和.pth文件功能完全相同,都是使用pickle保存的二进制文件。区别仅在于历史惯例:.pth是早期版本常用扩展名,而.pt是当前官方推荐格式,能避免与Python路径配置文件的混淆。实际使用时,扩展名不影响文件内容,但建议优先保存模型状态字典(state_dict)而非整个模型对象,以提高灵活性和可移植性。对于新项目,推荐使用.pt扩展名。
2025-09-18 00:01:47
1010
原创 pytorch中的FSDP
摘要: PyTorch的FSDP(Fully Sharded Data Parallel)是一种分布式训练技术,通过将模型参数、梯度和优化器状态分片到所有GPU上,显著降低单卡内存消耗,支持训练超大规模模型。相比DDP(每个GPU需存储完整模型副本),FSDP采用"分片存储、用时重构"策略,在前向/反向传播时动态聚合参数分片,计算后立即释放,实现内存高效利用。其优势包括:1) 内存节省,支持千亿参数模型训练;2) 通信优化,计算与通信重叠提升吞吐量;3) 训练速度与DDP相当。使用需通过
2025-09-17 19:42:39
1131
原创 神奇简单的命令行接口库fire
fire是Google开发的Python库,能自动将Python对象(函数、类等)转换为命令行接口(CLI)。其特点包括:自动解析函数参数生成命令行选项、支持类方法映射为子命令、自动生成帮助文档。通过简单的fire.Fire()调用,即可快速为脚本添加命令行交互功能,比传统argparse更简洁高效。典型应用场景包括实验脚本参数传递、工具类方法调用等。安装方式为pip install fire,适用于需要快速构建命令行工具的Python开发场景。
2025-09-10 21:06:15
367
原创 huggingface模型中各文件详解
Hugging Face模型仓库包含五类核心文件:1) 模型权重文件(如.safetensors分片文件及索引文件);2) 模型配置文件(config.json定义模型架构);3) 分词器文件(tokenizer.json、词汇表等处理文本转换);4) 生成配置文件(generation_config.json设置文本生成参数);5) 其他文件(README说明文档等)。这些文件共同支持transformers库通过几行代码即可加载完整的预训练模型,包括模型架构、权重参数和文本处理功能。
2025-09-10 20:11:56
1907
原创 python把路径转为绝对路径
Python中os.path.abspath可将路径转为绝对路径,但结果依赖于当前工作目录,可能不符合预期。建议使用os.path.dirname(os.path.abspath(__file__))或pathlib.Path(__file__).parent获取脚本所在目录作为基准路径,确保路径可靠性。对于符号链接的情况,可使用os.path.realpath或pathlib.Path.resolve()。现代Python项目推荐使用pathlib模块进行更清晰、健壮的路径操作。
2025-09-10 16:09:54
1195
原创 python对象引用污染
本文通过Python示例展示了对象引用污染的常见问题。当多个字典引用同一个对象时,修改其中一个引用会意外影响其他引用。文章用一个学生准考证生成的案例演示了这个问题:两份准考证引用同一个学生信息对象,导致最终两张票的考试场次都被覆盖为最后一次修改的值。 解决方案是使用.copy()方法创建对象的独立副本,确保每次修改都在新对象上进行,从而避免引用污染。修正后的代码正确生成了上午场和下午场两张不同的准考证。这个案例警示我们在处理共享引用时需要格外小心,合理使用副本以避免意外修改。
2025-09-08 17:28:19
520
原创 使用预训练的ImageNet1K模型在ImageNet100上测试
此时模型的输出维度是1000,然后必须要将label进行映射,才能得到正确的结果。
2024-11-19 19:51:38
1081
原创 github将云端的文件同步到本地,同时保留本地文件的更改
通过这几个步骤,你可以把云端的A、B文件更新同步到本地,同时保留并合并本地的C文件更新。文件有冲突,Git 会提示冲突部分,你可以手动解决冲突并提交。如果有未提交的更改,请先使用。
2024-08-20 15:38:52
1021
原创 cv2.connectedComponentsWithStats中连通性和输出图像标签的类型
通过上述代码,可以看到使用不同输出类型得到的组件标签和数量。根据具体的应用场景选择适当的标签类型。如果你预计图像中连通组件数量较多,可以选择。函数用于标记图像中的连通组件,并计算每个组件的统计信息。这个函数可以使用4连通性或8连通性来确定哪些像素属于同一个组件。通过上述代码,可以看到使用不同连通性得到的组件数量和标记结果。根据具体的应用场景选择适当的连通性。是指在图像处理中,像素如何与其邻近像素连接。参数指定了输出图像标签的类型。,它只与上下左右四个方向的像素相连。,它与其所有八个方向的像素相连。
2024-07-01 20:57:48
1240
1
原创 Python多进程加快for循环速度
循环改为多进程实现。下面是一个简单的示例代码,演示了如何使用。会等待所有的进程完成,并返回结果列表。你可以使用Python的。列表中的每个元素上,然后。函数会被并行地应用到。
2024-05-29 21:29:09
1042
原创 Linux中bash脚本怎么表示一个字符串变量
通常情况下,如果字符串中包含变量或者希望转义字符生效,建议使用双引号;如果字符串中不包含变量或者不希望转义字符生效,可以使用单引号。在Bash脚本中,你可以使用单引号(')或双引号(")来表示一个字符串变量。
2024-05-25 22:37:07
666
原创 Pytorch reshape, view方法与张量连续性
在多维数组中,如果在内存中逐元素地行进时,能够遵循数组的索引顺序,则称这个数组是连续的。在多维情况下,通常有更复杂的内存布局策略,如行优先存储(C风格)和列优先存储(Fortran风格)。操作是在PyTorch中用来改变张量形状的一种方法,但在使用时需要确保张量是连续的(即内存中的数据是连续排列的)。操作创建了一个非连续的张量副本(因为转置改变了数据的物理布局,但不实际移动数据),直接对其使用。方法来获取一个连续的张量副本,然后对这个连续的副本执行。在PyTorch中,一个张量的数据连续性可以通过调用。
2024-05-16 10:56:26
875
1
原创 pytorch中统计一个数在tensor中出现了几次
函数会返回一个新的Tensor,其中对于每个元素来说,如果和指定的数值相等,则该位置为True(1),否则为False(0)。是将一个只有一个元素的Tensor转换为Python的标量。这样就可以得到指定数值在Tensor中出现的次数。可以计算这个结果Tensor中True(即1)的个数,也就得到了指定数值在原Tensor中的出现次数。在这个示例中,我们首先创建了一个Tensor,然后使用。来统计某个数值在Tensor中出现的次数。在PyTorch中,可以使用。统计这些元素的数量。
2024-05-10 17:04:03
1267
1
原创 numpy数据类型提升
uint8类型表示无符号整数(0到255),uint16类型表示更大范围的无符号整数(0到65535)。为了能够包含更大范围的数而不丢失信息,NumPy将选择uint16作为结果数组的数据类型,因为uint16可以表示uint8能表示的所有数值,并且还能表示更大的数值。当您将多个NumPy数组连接(concatenate)起来时,结果数组的数据类型(dtype)将依赖于输入数组的数据类型。所以,当你将两个uint8数组和一个uint16数组连接起来时,最终的数组将会是uint16类型的。
2024-04-26 11:14:31
501
1
原创 Python pathlib中Path用法
对象可以表示文件路径或目录路径,并且可以执行各种与路径相关的操作,例如连接路径、检查路径是否存在、创建路径等。类的一些常见用法,它提供了更多功能来处理文件系统路径,使得代码更加清晰、易读和易于维护。模块的主要组成部分之一,它提供了一种面向对象的方式来处理文件系统路径。对象的属性来获取路径的各种信息,例如文件名、父目录等。方法递归地获取目录中的所有文件和子目录。类来创建文件路径或目录路径的对象。方法获取目录中的所有文件和子目录。方法来检查文件或目录是否存在。方法来递归创建目录及其父目录。
2024-04-11 22:22:46
1305
原创 Openmmalb InternLm2.0笔记
Openmmalb InternLm2.0浦语大模型全链路开源体系文章目录Openmmalb InternLm2.0浦语大模型全链路开源体系
2024-03-28 11:02:22
302
原创 Python logging模块使用
你可以根据需要对日志记录器进行更复杂的配置,例如指定日志文件的位置、设置不同级别的日志输出、添加处理程序等。通常在应用程序的启动代码中进行配置,以指定日志记录的格式、级别和目标(文件、控制台等)。模块的基本用法,还有更多高级功能可以探索,如自定义格式、过滤器、处理程序等。这将配置日志记录器以记录所有级别的日志,包括日期时间、日志级别和消息。模块,你可以更有效地管理和调试Python应用程序中的日志信息。的文件中,并且仅记录INFO级别以上的日志。在应用程序中的需要记录日志的地方,使用。
2024-03-20 15:46:49
555
1
原创 python -u含义
选项用于在输出中禁用缓冲。缓冲是一种将输出暂时存储在内存中,然后批量写入到文件或屏幕的技术。当Python程序的输出被重定向到文件或管道时,通常会启用缓冲以提高性能,但这可能会导致输出的延迟或顺序混乱。选项可以禁用这种缓冲机制,即实时地将输出写入到文件或屏幕,从而确保输出立即显示。的输出立即显示,而不会受到缓冲的影响。
2024-03-20 15:40:03
1805
原创 torch.einsum用法详解
是PyTorch中的一个函数,用于执行爱因斯坦求和约定(Einstein summation)运算。它提供了一种灵活而强大的方式来执行多维张量的操作和变换。其中,equation是一个字符串,用于指定爱因斯坦求和约定的运算方式,operands是一个或多个输入张量。在equation中,你可以使用大写字母表示张量的维度标识符,使用小写字母表示对应维度的长度。通过指定输入张量和输出张量之间的维度关系,你可以定义所需的运算操作。下面是一个简单的例子,展示了如何使用# 两个向量的点积。
2024-03-20 13:10:53
19977
10
原创 pytorch花式索引提取topk的张量
这个方法可以用于广播操作,以便在执行一些需要相同形状的张量之间的数学运算时,使它们具有相同的形状。另外,扩展后的张量与原始张量共享底层数据,因此在原始张量上进行的任何修改都会反映在扩展后的张量上,反之亦然。或者说,有一个(bs, dim, L)的大张量,索引的index形状为(bs, X),想得到一个(bs, dim, X)的reduced向量。的形状必须与输出张量的形状一致,或者是可以广播成与输出张量形状一致的形状。,该张量的形状是在原始张量形状的基础上每个维度都扩展了一倍。在上面的示例中,我们使用了。
2024-02-13 22:30:43
1707
2
原创 pytorch中的wheel文件
whl 文件是 Python 的一个软件包分发格式,用于在 Python 中安装软件包。它是 Python Wheel 的缩写,也被称为 wheel 文件。这种文件格式旨在简化 Python 软件包的安装和分发。对于 PyTorch 而言,它提供了预编译的 .whl 文件,您可以通过 pip 安装这些文件来快速方便地安装 PyTorch。这些 .whl 文件是已经编译好的二进制分发文件,可以直接安装在您的 Python 环境中,而无需再进行编译。
2024-01-05 10:08:42
2854
原创 自定义Matplotlib中的颜色映射(cmap)
这将显示使用自定义颜色映射的热图。您可以根据自己的需求和喜好调整颜色映射的定义和使用。是您为自定义颜色映射选择的名称,您可以根据需要更改它。表示在映射的起始位置(值为0)使用红色(表示在映射的结束位置(值为1)使用蓝色(表示在中间位置(值为0.5)使用绿色(您可以根据需要添加更多的颜色位置。
2023-11-14 21:27:35
5810
原创 KITTI Road 数据集训练验证集划分
该数据集由德国卡尔斯鲁厄理工学院和丰田美国技术中心联合发布,包含了来自汽车行驶中的短视频序列和对应的传感器数据。KITTI Road数据集是现今最受欢迎和广泛使用的道路场景理解数据集之一,常用于道路检测、车道线检测、车辆检测等任务。我们在运用KITTI Road数据集时候,经常需要将数据集划分为以下格式,但是KITTI官方的数据集只提供了training和testing部分,并没提供validation部分,因此需要我们写代码自己划分训练集和验证集。
2023-06-25 11:50:45
1245
2
原创 【打卡】苹果叶片病害分类和建筑物变化检测数据挖掘竞赛
在这个任务中,参赛选手需要对两个赛题的数据进行可视化。对于苹果病害数据,选手可以展示苹果叶片的病害图像以及它们所属的标签。对于建筑物检测数据,选手需要使用"吉林一号"高分辨率卫星遥感影像作为数据集。选手需要展示这些卫星影像,并可视化其中的建筑物变化。数据加载阶段,选手需要编写代码来读取和处理提供的图像数据。数据增强阶段,选手可以使用各种图像处理技术和方法,如旋转、缩放、翻转、亮度调整等,来增强数据集的多样性和数量。方法很简单,总体来说就是使用。
2023-06-09 17:33:55
1061
原创 Water valve concept流水法判断D-separation
如果路径P被一个集合Z所阻断,那么我们称路径P在给定集合Z的条件下是被阻断的。如果路径P的所有非观测节点都被Z所阻断,那么我们称路径P在给定集合Z的条件下是完全被阻断的。如果在一个概率图模型中任意一条连接两个未观测到节点的路径都是被某个集合Z完全阻断的,那么我们称这个集合Z可以D-分离这两个节点,即这两个节点是条件独立的。具体来说,给定一个概率图模型,如果其中两个随机变量X和Y不直接相连,且它们之间没有任何未观测到的随机变量,那么我们称X与Y是D-separated的,即在这种情况下X和Y是条件独立的。
2023-06-07 21:08:48
510
原创 Pytorch中x.cuda(non_blocking=True)参数解释
如果将数据迁移至 GPU 设备时使用默认设置,则表示该操作是同步的,即数据迁移完成后会阻塞主机的执行流程,直到所有数据都被成功加载到 GPU 上,然后才能继续执行后面的代码。函数的参数,数据迁移操作就会变成异步的,即数据开始被复制到 GPU 后,主机不需要等待它们全部被加载到 GPU 上,就可以继续执行其它操作,这样可以充分利用计算资源,减少程序执行时间。类创建了一个新的 CUDA 流,并在该流上执行了一些其它操作,从而确保这些操作不会与异步传输操作产生竞争关系,保证程序正确性和性能表现。
2023-06-03 11:32:27
7437
Keil for ARM SoftwarePacks for STM32F1-F4.iso
2021-08-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅