自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OS八股:为什么进程间通信开销大?线程间通信为什么快?

摘要: 进程间通信(IPC)开销远高于线程间通信(TIC),核心差异在于内存隔离性与内核介入程度。进程因独立地址空间需通过内核中转(如管道、Socket),触发上下文切换与数据拷贝;线程共享内存,可直接访问变量,仅需用户态同步(如CAS)。关键优化包括:1)优先多线程减少IPC;2)使用无锁结构(Atomic类)避免内核锁;3)高频场景用共享内存(mmap)。选择依据:安全隔离选进程,性能优先选线程,通信密集用共享内存+无锁同步。

2025-12-22 21:05:06 608

原创 算法学习记录18——并查集 vs Set + BFS/DFS

本文对比了LeetCode 2092题的两种解法:Set+BFS和并查集(Union-Find)。Set+BFS通过按时间分组处理会议,从已知秘密者出发遍历连通分量,具有直观、高效剪枝的优点。并查集解法需为每个时间点新建并查集,操作虽快但需处理所有节点且容易出错。分析表明,对于分阶段状态传播问题,Set+BFS更合适;而动态连通性查询场景仍需并查集。两者适用场景不同:Set+BFS适合离线传播状态,并查集更适合在线动态连通性判断和高频集合合并操作。

2025-12-19 13:09:49 949

原创 算法学习记录17——力扣“股票系列题型”

dp[j][0]:在「最多 j 次交易」的限制下,不持股的最大利润dp[j][1]:在「最多 j 次交易」的限制下,持股的最大利润最多 j 次交易而不是「已经完成 j 次交易」。这是后面所有结论的根源。是否需要对 k 倒序遍历,关键不在于 DP 的形式,而在于 j 表示什么。j 的含义是否需要倒序已经用掉 j 次交易✅ 必须倒序最多允许 j 次交易❌ 可以正序再补一句非常重要的经验:在「最多 k 次交易」的股票 DP 中,即便同一天发生“买入 → 卖出”,

2025-12-17 16:20:57 270

原创 算法学习记录16——Floyd 判圈算法(环形链表 II)

。看题解了解到了,感觉本质上还是数学一开始我对这个算法只是有个模糊的印象——“快慢指针能判断有没有环”,但具体怎么找到环的入口?为什么那样做是对的?这些细节我其实并不清楚。于是,我决定花点时间彻底搞懂它,并把整个思考过程记录下来。

2025-12-15 13:56:33 550

原创 算法学习记录15——有向图的环检查(课程表)

✅三色法不是为了炫技,而是为了准确表达三种必要状态。❌仅用两色 + 全局重置会导致效率灾难和逻辑脆弱。✅ 如果你用visitedpath_set,其实也是三状态,只是实现方式不同。💡算法设计的关键,是建模清楚“状态”的含义,而不是追求形式上的简化。“灰色”不是可有可无的中间色,而是检测环的唯一可靠依据。我删掉的,真的是冗余,还是核心?写于 2025 年 12 月 14 日,周日下午。调试完代码,喝了一口冷掉的咖啡,终于搞懂了三色法的深意。

2025-12-14 20:32:31 810

原创 算法学习记录14——单调栈学习笔记

一定要存索引,不是值!值可能重复,而且我们需要知道位置来更新答案或计算距离(比如柱状图面积)。方向很重要从左往右:通常求“右侧”的第一个更大/小元素。从右往左:可以求“左侧”的第一个更大/小元素。相等元素怎么处理?一般题目中“更大”指严格大于,所以相等时不弹出。但要看题意,有时需要弹出(比如“下一个不小于”)。哨兵技巧(进阶)在数组开头或结尾加一个极小/极大值,可以避免边界判断。比如在柱状图问题中,在末尾加 0,确保所有柱子都被弹出并计算面积。

2025-11-28 15:16:07 820

原创 算法学习记录13——中位数贪心

中位数贪心是基于中位数特性的优化策略,核心结论是:在最小化 “点到所有目标位置距离之和” 的场景中,选择中位数作为决策点最优。

2025-11-15 19:35:03 665

原创 算法学习记录11——Python 多变量赋值问题

当用Python实现链表反转时,多变量赋值的顺序会导致结果差异。两段看似相似的代码中,正确的last, head.next, head = head, last, head.next会先基于原状态计算右侧值再赋值,确保指针正确反转;而错误的head, head.next, last = head.next, last, head会因先移动head导致错误修改指针,使链表断裂。这揭示了Python多变量赋值的执行机制:先并行计算右侧表达式值,再顺序完成左侧赋值操作。在链表操作中必须注意这种细微差别。

2025-11-03 18:46:10 464

原创 算法学习记录10——01背包和完全背包

我最早搞懂的是 0-1 背包。有 n 个不同物品,每个物品只有 1 个,要么放进背包,要么不放,求背包能装下的最大价值。比如这个例子:有 3 个物品,重量分别是 2、3、4,价值分别是 3、4、5,背包容量是 5。每个物品只能选一次,怎么选价值最大?答案是选前两个(总重 5,总价值 7)。dp[j]代表「当背包容量为 j 时,能获得的最大价值」。这个定义很关键,把二维问题压缩成了一维(省空间)。每个物品可以无限次选,只要背包装得下。还是用之前的例子:物品重量 2、3、4,价值 3、4、5,背包容量 5。

2025-10-31 09:38:44 656

原创 算法学习记录09——二叉树遍历:“根右左” 遍历在特殊二叉树中的实战发现

二叉树的右侧优先遍历

2025-10-27 11:00:14 599

原创 算法学习记录08——并归的应用(LeetCode[315])

并归的应用

2025-10-26 17:01:10 906

原创 算法学习记录07——归并排序的实现与优化

力扣(LeetCode)【912】排序数组.给你一个整数数组 nums,请你将该数组升序排列。

2025-10-26 14:47:57 457

原创 算法学习记录06——哈希链表构建LRU算法

学习记录——力扣LeetCode【146】设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构

2025-10-24 14:00:00 813

原创 算法学习记录05——优先队列到最小堆

使用最小堆构建优先队列,LeetCode力扣经典题:合并 k 个有序链表

2025-10-23 20:10:10 926

原创 算法学习记录03——二叉树学习笔记:从两道题看透后序位置的关键作用​

练完这两道题,我自己总结了一个小规律:​以后在做二叉树的题目时,先看题目是不是和 “子树” 有关 —— 比如求子树的节点数、子树的高度、子树的最大值、判断两棵子树是否对称等等。如果是,那大概率要用到后序遍历。​而且这类题的解题步骤也很固定:​先给递归函数定一个明确的 “返回值”—— 比如求子树节点数,返回值就是当前节点子树的节点数;求子树高度,返回值就是当前节点子树的高度;​递归处理左子树和右子树,拿到它们的返回值;​在后序位置,用左子树和右子树的返回值,计算当前节点的结果;​。

2025-10-21 21:54:46 933

原创 算法学习记录02——“起床困难综合症” 解题思路拆解

本文解析 “起床困难综合症” 问题

2025-10-17 14:20:27 915

原创 算法学习记录01——快速幂取模:轻松计算“a的b次方对p取模”

在编程和数学竞赛中,我们经常会遇到这样的问题:如何快速计算abmodp。比如,计算3100mod7是多少?如果直接计算3100,那将是一个天文数字,不仅计算慢,还可能溢出。今天,我们就来聊聊一个高效又实用的算法——快速幂取模。

2025-10-16 14:02:49 850

原创 图像分类数据集难度怎么评?

图像分类数据集的难度可不是凭感觉判断的!从 MNIST 到 ImageNet,为什么有的数据集训练起来轻松,有的却让模型频频出错?这篇文章整理了评估数据集难度的核心方法,包括距离度量、信息熵、分离度等关键指标,还对比了经典数据集的难度差异。无论是想选合适的训练数据,还是理解模型性能差异,这些实用知识都能帮你快速入门,小白也能看懂哦~

2025-10-14 20:35:10 758

原创 图像处理踩坑:浮点数误差导致的缩放尺寸异常与解决办法

在做图像预处理(按最短边缩放 + 中心裁剪)时,我遇到了 DataLoader 报错 “Trying to resize storage that is not resizable” 和 “stack expects each tensor to be equal size”。排查后发现,罪魁祸首是浮点数误差导致缩放后的图像尺寸不符合预期,进而引发批量拼接失败。本文会详细讲清楚问题根源、排查过程,以及兼顾 “精准缩放” 和 “极端情况鲁棒性” 的解决方案,希望能帮到遇到同样 bug 的朋友。

2025-10-09 15:57:16 912

原创 Linux服务器NAS挂载教程:使用Truenas

本文档用于配置 Linux 服务器自动挂载 NAS 设备的 NFS 共享资源,确保系统启动时自动建立连接。

2025-09-29 19:00:00 444

原创 双网卡服务器校园网访问故障排查与解决​

本文记录双网卡服务器(校园内网固定 IP + 路由器分配公网 IP)在校园网环境下,外部设备通过校园网直连无法访问内网 IP 的故障排查过程。核心定位路由表回包策略问题,通过配置策略路由实现校园网流量精准转发,同时保留双网卡功能,为同类网络配置问题提供参考。

2025-09-27 21:59:32 1032 1

原创 PyTorch 模型参数获取方法介绍:state_dict 、parameters 、named_parameters 等

在 PyTorch 模型训练和部署过程中,灵活获取和操作模型参数是一项基础且重要的技能。本文整理了我在学习过程中总结的 PyTorch 参数获取方法,包括 parameters ()、named_parameters ()、state_dict () 等常用接口,详细对比了它们的区别、适用场景,展示了如何在实战中选择合适的方法。无论是模型训练中的参数优化、部分层冻结,还是模型保存加载,掌握这些方法都能让我们更高效地处理模型参数。

2025-09-22 21:42:24 1024 1

原创 快速入门 PyTorch 数据加载三兄弟:Dataset、Sampler 与 DataLoader

初学 PyTorch 时,Dataset、Sampler、batch_sampler 和 DataLoader 的关系总让人混淆。本文以个人学习笔记的形式,用 “餐厅运营” 的通俗类比,拆解各组件的核心作用与关联逻辑,搭配实战代码举例,帮大家快速理清数据加载的底层流程,避开理解误区。

2025-09-21 18:29:21 711

原创 Python编程技巧:浅谈dict的解包(**dict)

本文详细解析了 Python 中字典的 ** 操作符的用法,通过实际案例讲解字典解包与合并的原理,介绍了这一技巧在配置合并、函数参数传递、字典更新等场景的应用,帮助 Python 初学者快速掌握字典的高级用法,提升代码简洁性和效率。

2025-09-16 21:06:19 656

原创 从 torch.no_grad () 到PyTorch 计算图

在 PyTorch 深度学习框架中,torch.no_grad()是一个极为关键且实用的功能,对模型训练与推理流程影响深远。本文以torch.no_grad()为切入点,深入浅出地阐释 PyTorch 计算图相关知识。详细讲解计算图构建机制、自动求导原理,阐述torch.no_grad()关闭梯度计算、暂停计算图记录的工作方式,以及在推理、验证等场景中节省内存、提升速度的显著作用。

2025-09-15 20:35:10 1002

原创 USB接口与通用串行总线控制器

摘要:本文通过快递中转站的比喻,解释了Windows设备管理器中"通用串行总线控制器"的组成结构。笔记本物理USB接口对应"USB根集线器",外接扩展器接口则显示为"通用USB集线器",两者都由"USB主控制器"统一管理。关系链可简化为:主控制器→根集线器→物理接口(笔记本自带),或主控制器→根集线器→外接集线器→扩展器接口。这种层级结构帮助用户理解USB设备的连接路径和数据传输过程。

2025-09-08 13:52:19 1885

原创 LeetCode-4. 寻找两个正序数组的中位数

LeetCode 4. 寻找两个正序数组的中位数 解题思路与心得体会

2025-05-29 14:01:54 621

原创 LoRA微调-内在秩(Intrinsic Rank)

大型预训练语言模型(如 Transformer)的权重矩阵通常维度极高(例如数十亿参数),但实际起关键作用的信息可能并非完全 “满秩”(即矩阵的秩远低于其维度)。它描述了矩阵(或更复杂的张量)在低秩近似下能够保留主要信息的能力。,即大部分参数可通过低秩分解来近似表示,而不损失关键信息。LoRA 微调通过在原始模型旁添加一个。在深度学习和矩阵分解的语境中,,或者说矩阵所包含的。

2025-05-23 11:10:41 866

原创 浅谈使用CLIP 模型进行图像分类:基础使用和分类头构建

介绍使用 CLIP 模型进行图像分类的基础方法与分类头构建。CLIP 通过对比学习将图像与文本映射到同一特征空间,基础用法包括模型加载、图像文本预处理及相似度计算(附代码示例)。进阶部分讲解如何构建分类头,利用 CLIP 预训练文本嵌入初始化分类层,使模型直接输出类别标签,适用于小样本场景,减少训练成本。内容结合原理与实践,适合希望了解 CLIP 跨模态分类能力的读者。

2025-05-12 21:53:49 1336

原创 Python 属性访问方法分享

Python 属性访问方法分享

2025-04-28 20:09:26 1143

原创 FRP警告:WARNING: ini format is deprecated and the support will be removed in the future use yaml/json

WARNING: ini format is deprecated and the support will be removed in the future use yaml/json。当前使用的初始化(ini)格式已被标记为过时,在未来的版本中,相关支持将会被移除,建议使用 YAML、JSON 或 TOML 等其他格式来替代。需要注意的是,如果按照目前搜索引擎上搜索到的教程较为过时,大多采用的都是ini格式的配置文件,在0.61.2后版本采用ini配置文件可能会导致frp启动失败

2025-03-31 11:08:54 1494

原创 Python3.3+ 模块导入的坑:隐式命名空间包与传统包(__init__.py)以及ModuleNotFoundError的解决思路

Python在3.3后的版本新增了隐式命名空间包。本文主要讲解Python3.3+ 模块导入的坑:隐式命名空间包与传统包(__init__.py)以及ModuleNotFoundError的解决思路

2025-03-26 17:05:55 1022

原创 “似然(likelihood)”是什么意思,如何理解

似然是什么

2025-03-12 21:16:28 1055

原创 PyTorch 为什么会设计成默认累积梯度

PyTorch 默认累积梯度:这是为了支持更大的批量大小、更复杂的训练逻辑以及节省计算资源。手动清空梯度:在每次参数更新前,需要调用或清空梯度,防止梯度累积。梯度累积的用途模拟更大的批量大小。支持复杂的训练逻辑。减少参数更新的频率,节省计算资源。

2025-03-12 17:22:06 527

原创 解决Google浏览器(引擎)链接默认通过新标签页打开

本文受启发。

2025-02-26 15:33:02 3241

原创 Java习题—评价成绩

Java习题题目:评价成绩:体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班同学的平均成绩。Gymnastics类和School类都实现了接口ComputerAverage接口,但实现的算法不同。编写Java程序实现以上功能答案:ComputerAverage.javapublic interface ComputerAverage { public double average(double x[]);}

2022-05-23 22:11:53 2523 1

空空如也

空空如也

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

TA关注的人

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