自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode题库刷题记录

leetcode打卡(先定个小目标:前300题)

2025-12-20 14:53:13 623

原创 深入理解线程:从基本概念到内核实现与内存管理

摘要:本文深入探讨了Linux系统中线程的概念、实现原理与控制方法。线程是进程内的执行分支,作为CPU调度的基本单位,在Linux中通过轻量级进程(LWP)实现,复用进程的task_struct结构。文章分析了进程与线程的资源共享关系,介绍了Linux通过clone系统调用创建线程的机制,并详细讲解了线程控制相关的POSIX函数(如pthread_create、pthread_join等)。特别指出Linux线程具有用户态(pthread_t)和内核态(LWP)两种ID,前者是线程控制块在共享区的地址。

2025-12-08 22:04:47 1250

原创 Linux进程信号

摘要:Linux信号机制是进程间通信的重要方式,本质是异步事件通知。信号可由键盘输入、硬件异常、系统命令或软件条件触发,通过内核写入进程PCB中的位图保存。信号处理包括默认终止、忽略或自定义捕捉三种方式。内核通过三张表(Block、Pending、Handler)管理信号状态,确保信号递达的可靠性。信号处理流程涉及用户态与内核态的切换,通过中断机制实现异步响应。开发者需注意可重入函数、volatile变量优化等问题,并合理处理SIGCHLD信号以回收子进程资源。深入理解信号机制对Linux系统编程和异常处理

2025-12-01 23:06:08 1018

原创 System V 消息队列与信号量

消息队列与SystemV IPC机制解析 消息队列是一种进程间通信机制,基于内核管理的链表结构,通过消息类型实现选择性通信。关键点包括:1)使用ftok生成唯一key标识队列;2)提供msgget/msgsnd/msgrcv等系统调用接口;3)消息结构需包含mtype字段实现类型过滤。SystemV IPC还包括信号量(用于同步互斥)和共享内存,三者采用统一管理架构:内核通过kern_ipc_perm基类结构实现多态管理,具体资源(如msg_queue)通过嵌套基类实现继承,并使用ipc_ids全局数组统一

2025-11-22 22:41:05 986

原创 从管道到共享内存:深入理解 Linux 进程间通信

本文深入探讨了Linux系统中的三种关键进程间通信(IPC)机制。首先介绍了匿名管道,它仅适用于有亲缘关系的进程间通信,具有单向性;随后讲解命名管道(FIFO),通过文件系统路径实现无关进程间的通信;最后重点分析了最高效的共享内存方式,它通过内存映射实现零拷贝通信。文章详细阐述了每种机制的原理、特点和使用场景,并提供了具体的代码实现示例,包括管道封装类和共享内存管理类。特别强调了共享内存的创建、挂接、使用和释放流程,以及其无保护机制带来的并发问题,为后续同步机制讨论奠定了基础。

2025-11-19 19:00:11 1003

原创 【深入理解】动静态库的制作、使用与加载原理(附详细操作指南)

本文介绍了编程中两种库类型:静态库和动态库。静态库在编译时嵌入可执行文件,生成较大但独立的程序;动态库在运行时加载,实现多程序共享。文章详细讲解了两种库的制作使用方式、ELF文件格式结构,以及链接加载过程。通过对比分析,静态库适合独立部署,动态库利于资源共享和更新。还介绍了readelf、objdump等工具用于分析库文件结构。理解这些概念能帮助开发者选择适当的库类型,提升程序效率和维护性。

2025-11-15 21:16:34 761

原创 Linux进程池与管道通信详解:从原理到实现

本文详细介绍了基于管道通信的Linux进程池实现方案。系统通过预先创建多个子进程和管道来实现高效任务处理,包含四个核心模块:1) 任务函数定义,使用函数指针数组统一管理;2) 子进程任务处理逻辑,通过阻塞读取管道获取任务;3) Channel类封装进程通信通道;4) ProcessPool类管理整个进程池生命周期。重点解决了文件描述符泄漏等关键问题,并提供了完整的代码实现和测试流程。该方案通过轮询调度和管道通信机制,有效降低了频繁创建进程的开销,为Linux系统高并发编程提供了实用参考。

2025-11-15 19:02:16 717

原创 Acwing--并查集、堆、哈希表

本文介绍了三种常用数据结构的Python实现方法。1.并查集:使用树结构表示集合,支持合并和查询操作,通过路径压缩优化时间复杂度至O(1)。2.堆:实现小根堆的插入、删除、修改等操作,使用up和down函数维护堆性质,堆排序通过从中间建堆优化时间复杂度。3.哈希表:包括开放寻址法和字符串哈希,后者将字符串视为P进制数进行快速比较。这些实现均采用数组存储数据,并包含必要的优化技巧,如路径压缩、堆化调整等,代码简洁高效。

2025-09-23 10:16:28 795

原创 Trie应用

Trie树是一种高效处理字符串和二进制数据的数据结构。摘要介绍了两种Trie树的应用:1) 字符串统计,通过共享前缀实现高效插入和查询;2) 最大异或对问题,将数字转为31位二进制处理。相比暴力解法O(n²)的时间复杂度,Trie树将最大异或对优化到O(n),同时详细分析了两种场景下Trie数组的空间分配策略。

2025-09-18 10:59:12 369

原创 VS Code和Cursor扩展主机在过去5分钟内意外终止了3次问题解决方案

VS Code/Cursor关闭遥测数据的正确方法:无需删除插件或回退版本。在Mac系统下,进入Preferences的VSCode Settings,搜索"telemetry"选项,将最后的下拉菜单设置为"off"即可完成设置。该方法同样适用于VSCode用户,具体可参考GitHub相关issue讨论。

2025-09-17 20:11:03 999

原创 Acwing算法基础课--链表

本文介绍了单链表和双向链表的实现方法。单链表部分详细讲解了头指针的作用、节点插入/删除操作,以及如何通过数组模拟链表结构。双向链表部分则说明了如何利用左右指针实现更灵活的插入删除,并介绍了使用哨兵节点简化边界处理的技巧。两种实现都采用静态数组存储,通过索引值模拟指针操作,具有内存连续、访问高效的特点。文章还特别解释了数组下标与逻辑位置的关系,以及哨兵节点的设计原理,为理解链表操作提供了清晰的技术解析。

2025-09-14 14:24:21 513

原创 Acwing算法基础课--离散化、区间合并

本文介绍了两种区间处理算法:1. 离散化算法将稀疏大范围数据映射为紧凑区间,通过排序去重后使用前缀和计算区间和,时间复杂度为O(nlogn)。2. 区间合并算法先按左端点排序,然后用双指针方法扫描区间,分三种情况合并重叠区间,最终输出合并后的区间数量。两种算法都适用于处理大规模区间数据,离散化适合求和操作,合并算法适合区间整合。

2025-09-13 13:20:50 363

原创 Acwing算法基础课--前缀和与差分

本文介绍了前缀和与差分的算法实现及应用。前缀和部分包含一维和二维前缀和的计算方法,通过预处理数组实现O(1)时间复杂度的区间查询。差分部分则作为前缀和的逆运算,详细展示了一维和二维差分的构建及区间更新操作,最后通过差分数组重构原始数组。两种算法都提供了Python代码实现,并附有核心公式说明,适用于需要频繁进行区间查询或更新的场景。

2025-09-09 10:02:43 224

原创 Acwing算法基础课--高精度加减乘除

这是一组Python实现的高精度运算代码,包含加减乘除四种基本运算。加法采用逆序处理、逐位相加并处理进位;减法先比较大小,再逆序逐位相减处理借位;乘法通过逆序处理,逐位相乘并累加上一步的余数;除法则顺序处理,逐位计算商和余数。所有运算都包含去除前导零的处理,减法和除法还涉及结果符号的判断。这些算法都采用列表存储数字,通过反转列表实现逆序处理,最终输出时将结果再反转回正常顺序。这是处理大数运算的典型实现方式。

2025-09-08 22:36:25 369

原创 Acwing算法基础课--二分算法

这篇文章介绍了两种二分查找的应用:整数区间查找和浮点数三次方根求解。第一部分讲解如何在一个升序数组中查找某元素的起始和终止位置,提供了两种二分模板——左端点查找和右端点查找,分析了指针移动规则和边界条件。第二部分演示了用二分法求浮点数的三次方根,重点说明了精度控制方法,并与整数二分模板进行了对比。两部分的代码实现都附有详细注释,展示了二分查找在不同场景下的应用技巧。

2025-09-07 13:46:13 842

原创 Acwing算法基础课--快速排序和归并排序

本文介绍了两种经典排序算法及其应用。快速排序通过选取基准值x(常用中间值)分割数组,递归处理左右子区间,时间复杂度平均O(nlogn)。归并排序采用分治策略,先递归分割数组,再合并有序子序列,时间复杂度稳定O(nlogn)。在逆序对问题中,巧妙利用归并排序的合并过程统计逆序数:当右元素小于左元素时,左半剩余元素均构成逆序对。两算法均适用于大规模数据(n≤1e5),提供了Python实现模板,其中快速排序需注意边界条件,归并排序需要额外空间。逆序对计算展示了排序算法的拓展应用。

2025-09-06 22:56:52 519

原创 数据分析处理库Pandas常用方法汇总

数据分析处理库Pandas常用方法汇总

2025-04-18 08:30:03 2173

原创 Numpy常用库方法总结

Numpy常用库方法总结

2025-04-16 23:36:55 1246

原创 EventEmitter--Node.js 事件驱动的核心

net.Server对象在每次有新连接时触发事件。对象在文件被打开时触发事件。所有这些事件对象都是的实例。是 Node.js 中用于创建、注册和触发事件的核心模块,实现了事件驱动编程的基础。

2025-03-25 10:17:44 559

原创 关于《Hands-On Large Language Models: Language Understanding and Generation》各章节博客目录汇总

《Hands-On Large Language Models: Language Understanding and Generation》一书的博客目录,共整理了12篇博客,对应书中12章的内容。每篇博客都提供了详细的地址,方便您快速查阅与学习。

2025-02-28 16:42:46 883

原创 第十二章:生成模型微调

在本章中,我们探讨了微调预训练LLM的不同步骤。我们通过低秩适应(LoRA)技术利用参数高效微调(PEFT)进行微调。我们解释了如何通过量化扩展LoRA,这是一种减少表示模型和适配器参数时内存约束的技术。我们探讨的微调过程分为两个步骤。在第一步中,我们使用指令数据对预训练的LLM进行监督微调,通常称为指令调优。这样得到了一个具有聊天行为且能紧密遵循指令的模型。在第二步中,我们通过在对齐数据上进一步微调模型,数据表示了哪些类型的回答优于其他回答。

2025-02-28 16:29:39 984

原创 第十一章:微调表示模型用于分类

在本章中,我们探索了如何对预训练表示模型进行微调,适应不同的分类任务。我们首先演示了如何对一个预训练的 BERT 模型进行微调,然后将这些例子扩展到冻结部分模型层的情况。接着,我们实验了一种少样本分类技术——SetFit,它通过仅使用有限的标记数据来微调预训练的嵌入模型与分类头,并生成了与前面章节中探索的模型相似的性能。然后,我们深入探讨了继续预训练的概念,使用一个预训练的 BERT 模型作为起点,继续用不同数据进行训练。这种基于掩码语言模型的方法不仅用于创建表示模型,还可以用于继续预训练模型。

2025-02-28 15:46:52 1461

原创 第十章:创建文本嵌入模型

对比学习是训练和微调文本嵌入模型的一种重要技术。对比学习的目标是训练嵌入模型,使得相似文档在向量空间中彼此更接近,而不相似的文档则距离更远。如果这听起来很熟悉,那是因为它与第二章中提到的word2vec方法非常相似。我们在图10-2和图10-3中已经看到过这个概念。对比学习的基本思想是,学习和建模文档之间的相似性/不相似性的最佳方式是向模型提供相似和不相似的文档对。为了准确捕捉文档的语义特征,通常需要将其与另一篇文档进行对比,以便模型学习什么使它们相似或不同。这种对比过程非常强大,且与文档的写作背景相关。

2025-02-28 11:04:28 1495 1

原创 第九章:多模态大语言模型

在本章中,我们探索了多种方法,通过弥合文本和视觉表示之间的差距,使大型语言模型(LLMs)具备多模态能力。我们首先讨论了用于视觉的 Transformer,这些模型可以将图像转换为数值表示。这是通过使用图像编码器和 patch embedding 实现的,它们使得模型能够在不同尺度上处理图像。接着,我们探讨了如何通过 CLIP 创建嵌入模型,将图像和文本都转换为数值表示。我们看到 CLIP 如何通过对比学习将图像和文本嵌入对齐到一个共享空间中,从而实现零样本分类、聚类和搜索等任务。

2025-02-27 21:34:56 1824

原创 第七章:高级文本生成技术及工具

四种高级生成技术:Model I/OAgentMemoryChain

2025-02-26 20:12:16 1249

原创 第六章:提示词工程

prompt工程

2025-02-25 20:39:24 1784

原创 第五章:文本聚类和主题建模

文本聚类+主题建模

2025-02-25 10:56:46 1696

原创 第四章:文本分类

大模型应用--文本分类任务

2025-02-24 17:10:28 889

原创 第八章:语义搜索和RAG

检索与RAG

2025-02-23 20:37:52 1378

原创 第三章:Transformer模型探索

Transformer理解

2025-02-20 22:21:31 1429

原创 第二章 分词和嵌入

tokenizer和embedding

2025-02-19 21:21:17 1065

原创 第一章 初识LLMs

通过历史线初识LLM

2025-02-18 23:26:23 1209

原创 文本预处理

nltk库中:分词(Tokenization)、去停用词、词干化、词形还原的用法

2025-02-03 10:17:58 442

原创 文本预处理时Resource punkt/stopwords/averaged_perceptron_tagger_eng/wordnet not found报错解决方式--亲测有效

Resource punkt/stopwords/averaged_perceptron_tagger_eng/wordnet not found报错解决方式

2025-02-02 22:05:31 484

原创 深度学习的应用

本文介绍了深度学习在计算机视觉、自然语言处理和推荐系统中的应用,并通过CIFAR-100数据集展示了图像分类实验的实现过程。

2025-01-31 10:08:33 1629

原创 PyTorch 快速入门

本文介绍了PyTorch的基本使用,包括数据处理、模型创建、参数优化、模型保存与加载,通过FashionMNIST数据集的示例,展示了如何快速上手PyTorch进行机器学习任务。

2025-01-30 23:18:16 959

原创 Pytorch框架从入门到精通

本文介绍了PyTorch中张量的初始化、操作、优化模型参数、保存和加载模型等内容,涵盖了从基础张量操作到神经网络训练、模型保存与预测的全流程。

2025-01-30 23:05:09 1878

原创 循环神经网络(RNN)+pytorch实现情感分析

RNN,BPTT算法详解,pytorch代码实现情感分析

2025-01-27 23:42:24 1849 1

原创 卷积神经网络

卷积操作,池化操作,卷积中的反向传播算法,代码实现

2025-01-26 12:08:19 1016

原创 全连接神经网络(前馈神经网络)

全连接神经网络原理及代码实现,SGD,常用损失函数和激活函数

2025-01-24 22:37:56 4510 4

bjtu数据库门店点餐系统课程设计

代码链接在使用手册中

2024-06-28

2024年bjtu计算机视觉课程必考知识点汇总

适用于bjtu计算机视觉平时作业和期末考试复习

2024-06-28

计算机组成原理课后习题答案

该文件是《计算机组成原理唐朔飞第三版》课后习题答案,除第六章外其余章节全部都有且内容全,可以直接下载打印

2023-08-18

空空如也

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

TA关注的人

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