claude-mem实战:构建AI对话记忆系统的三层架构与检索优化
1. 从claude-mem这个名字说起它到底想解决什么问题第一次看到claude-mem这个命名我的直觉是这是一个围绕对话记忆做文章的项目。拆开来看claude指向的是对话式AI的交互场景mem则是memory的缩写。合在一起它要处理的核心矛盾非常明确——对话式AI在长周期、多轮次交互中如何不丢失上下文如何记住用户说过的话、做过的决定、偏好过的风格。这个问题听起来简单真正动过手的人才知道有多痛。你和AI聊了三十轮前面二十轮里你明确说过这个项目用Python 3.11不要用3.10的语法结果到第二十八轮它给你写了一段3.10才支持的写法。或者你花了半小时跟它对齐了一套命名规范关掉窗口再开一个新会话一切归零。这不是AI不聪明是它压根没有记忆这个能力层。claude-mem这类项目要做的就是在AI的对话能力之上架一层可持久化、可检索、可注入的记忆系统。它让AI在每次新对话开始时能自动想起之前发生过什么而不是每次都从一张白纸开始。我先把话说在前面这篇文章不是官方文档的翻译也不是API手册的复述。我会从一个实际搭建过类似系统的人的视角把claude-mem涉及的核心机制、落地步骤、踩过的坑、以及那些文档里不会写的经验完整地摊开来讲。适合两类人看一是想给自己的AI应用加上记忆能力的开发者二是好奇AI记忆这件事到底怎么实现的技术爱好者。哪怕你之前没接触过向量数据库、embedding这些概念我也会用生活化的方式把它讲清楚。2. 记忆系统的三层结构为什么不能只做一个存聊天记录的功能很多人对AI记忆的第一反应是把聊天记录存下来下次拼到prompt里不就行了这个思路能跑通最简单的场景但只要对话量稍微上来一点立刻撞墙。原因很简单——上下文窗口是有上限的而聊天记录是无限增长的。你不可能把三个月的对话全塞进去。所以一个能用的记忆系统必须分层。我在实际搭建中总结出来的结构是三层原始层、提炼层、检索层。claude-mem的设计思路也基本遵循这个逻辑只是每层的实现细节有取舍。2.1 原始层对话流水账的存储与它的局限原始层就是最朴素的把每轮对话存进数据库。用户说了什么、AI回了什么、时间戳、会话ID一条条记下来。这一层的作用是保底——当提炼层出问题、检索层召回不准的时候你还能回到原始记录去查证。但原始层单独用是没有价值的。我做过一个测试把某项目两周的对话记录大约8万token直接拼进prompt结果不仅响应变慢AI还因为信息过载开始胡言乱语把不同会话里的决定混在一起。这就是典型的上下文污染。提示原始层的存储建议用结构化数据库如SQLite或PostgreSQL不要图省事直接写文本文件。后期你要按时间、按会话、按关键词做筛选时结构化查询能省掉大量手工解析的功夫。原始层的字段设计我建议至少包含session_id、turn_index、role、content、timestamp、token_count。其中token_count这个字段很多人会忽略但它在后期做上下文预算分配时非常关键——你得知道每条记忆占多少地方。2.2 提炼层把流水账变成可复用的结论提炼层是整个系统里最考验设计功力的一层。它的任务是把原始对话里的关键信息抽出来去掉寒暄、去掉重复、去掉过程性的试错只留下结论性的内容。举个例子。原始对话可能是这样的用户我想给这个函数加个缓存AI可以用functools.lru_cache用户但是参数里有list不可哈希AI那可以转成tuple或者自己实现一个基于字符串key的缓存用户自己实现吧lru_cache的maxsize不好控制AI好的那用字典加时间戳做过期这一整段对话提炼后应该变成一条记忆该项目的缓存方案自行实现基于字典时间戳过期的缓存不用lru_cache原因是参数含不可哈希类型且需要灵活控制容量。你看从六轮对话压缩成一句话信息密度提升了而且这句话在未来的任何相关对话里都能直接复用。这就是提炼层的价值。提炼的触发时机有两种常见做法实时提炼每轮对话结束就抽一次和批量提炼会话结束时统一处理。我实测下来更推荐批量提炼因为实时提炼容易把还没定论的中间状态也存进去造成记忆污染。批量提炼虽然有一点延迟但质量高得多。2.3 检索层让对的记忆在对的时候出现有了提炼后的记忆下一个问题是新对话来了我该把哪些记忆注入进去全注入不行上下文爆炸随机注入更不行可能注入无关的。这就需要一个检索机制。检索层的核心是相关性匹配。主流做法是把每条记忆转成向量embedding新对话的问题也转成向量然后算余弦相似度取Top-K条最相关的记忆注入。这套流程听起来很标准但实操中有几个细节决定成败环节常见做法我踩过的坑向量化粒度整条记忆转一个向量长记忆被平均掉细节召回不准相似度阈值固定阈值0.7不同领域阈值差异大固定值要么漏要么滥Top-K选择固定取5条简单问题取5条是浪费复杂问题5条不够时间衰减不考虑三个月前的决定和昨天的决定权重一样不合理这张表里的每一条后面我都会展开讲怎么处理。先记住一个原则检索层的目标不是找到最相似的而是找到最有用的。相似不等于有用这是两回事。3. 提炼层怎么落地从对话里榨出值得记住的东西提炼层说起来简单做起来最难。难在判断标准——什么该记什么不该记。记多了是噪音记少了会丢关键信息。我在几个项目里反复调整过提炼策略下面这套方法是目前跑得比较稳的。3.1 用决策、偏好、事实三类标签做筛选我最终把值得记住的内容收敛成三类决策类项目里做过的技术选型、方案取舍、架构决定。比如数据库选了PostgreSQL而不是MySQL因为需要JSONB字段。偏好类用户的个人习惯和风格要求。比如代码注释用中文、变量命名用驼峰、回复尽量简短不要客套。事实类项目本身的客观信息。比如项目名是X主语言是Go部署在容器里。这三类之外的内容基本都可以丢。寒暄、过程性讨论、被否决的方案除非否决理由很重要、AI的自我解释这些都不进记忆库。具体实现上我会在提炼的prompt里明确要求AI按这三类输出结构化结果格式类似{ type: decision, content: 缓存方案采用字典时间戳过期不用lru_cache, reason: 参数含不可哈希类型且需灵活控制容量, confidence: 0.9 }confidence这个字段是我后来加的非常有用。它表示这条记忆有多确定。用户明确说就这么定了的confidence给0.9以上用户说先这样试试的给0.6左右。检索时低confidence的记忆权重会被压低避免把试探性的想法当成定论。3.2 去重与合并别让同一个决定存了八遍不做去重的话同一个决定会在多轮对话里被反复提炼最后记忆库里全是重复条目。检索时Top-5里可能4条是同一个意思白白浪费上下文。我的做法是入库前先做相似度检查。新提炼出的记忆先和已有记忆算相似度超过阈值我用的0.85就判定为重复然后走合并逻辑保留信息更全的那条或者把两条的补充信息拼起来。合并这里有个细节要注意如果新记忆和旧记忆是冲突关系而不是重复关系不能简单合并要标记为更新。比如旧记忆是数据库用MySQL新记忆是数据库改用PostgreSQL了这时候应该把旧记忆标记为已废弃新记忆标记为当前有效而不是两条都留着让AI自己猜。3.3 记忆的生命周期管理记忆不是存进去就一劳永逸的。项目在推进三个月前的决定可能早就变了。所以我给每条记忆加了生命周期字段active当前有效superseded被新决定取代expired超过有效期自动失效检索时只召回active状态的记忆。superseded的保留着做历史追溯但不参与注入。这个机制能有效防止AI拿着过时的信息做决策。注意生命周期管理一定要有手动干预的入口。自动判断再聪明也会出错得让用户能手动把某条记忆标记为失效或修正。我在系统里加了一个简单的命令行工具输入记忆ID就能改状态用起来很顺手。4. 检索层的调优相似度不是唯一标准检索层我调了最久因为它直接决定AI在关键时刻能不能想起对的事。前面表格里列的四个坑我一个个说怎么填。4.1 向量化粒度长记忆要拆短记忆要合整条记忆转一个向量的问题在于一条200字的记忆可能前半段讲缓存方案后半段讲日志格式转成一个向量后两边的特征被平均检索时哪边都匹配不准。我的解决方案是按语义单元拆分。一条记忆如果包含多个独立信息点就拆成多条子记忆每条单独向量化。反过来如果一条记忆太短比如就用Go两个字信息量不足以支撑检索就合并到相关的上下文记忆里。拆分的粒度怎么把握我的经验是一条记忆对应一个可独立成立的陈述。能单独拿出来说清楚一件事的就是一条。这个标准比按字数切分靠谱得多。4.2 动态阈值不同场景用不同的相似度门槛固定阈值0.7的问题在于不同领域的向量分布差异很大。技术类对话的向量往往比较聚集0.7可能召回一堆生活类对话的向量比较分散0.7可能一条都召不回。我的做法是用相对排名代替绝对阈值。不设固定的相似度线而是取相似度最高的前N条同时加一个相对门槛——只保留相似度不低于最高分80%的那些。这样无论向量分布如何召回的都是相对最相关的一批。4.3 混合检索向量之外还要加关键词纯向量检索有个盲区专有名词、代码标识符、特定数字这类内容向量化后特征很弱容易漏。比如你搜那个叫foo_bar的函数向量检索可能召回一堆泛泛而谈的函数讨论就是找不到真正提到foo_bar的那条。所以我在向量检索之外加了一路关键词检索BM25或简单的全文索引两路结果做加权融合。实测下来混合检索的召回准确率比纯向量高出不少尤其是技术类场景。4.4 时间衰减新记忆该有更高权重三个月前的决定和昨天的决定如果相似度一样应该优先信昨天的。这是常识但很多实现里没体现。我给每条记忆算最终得分时加了一个时间衰减因子final_score similarity * decay_factor decay_factor exp(-λ * days_since_created)λ 的取值看场景。项目决策类记忆衰减慢一点λ取0.01左右半衰期约70天临时偏好类衰减快一点λ取0.05半衰期约14天。这样既尊重历史又不会让过时信息霸占上下文。5. 上下文注入的预算分配别把窗口塞爆检索出相关记忆后最后一步是把它们注入到当前对话的上下文里。这一步看似简单其实有个硬约束上下文窗口是有限的。你检索出20条记忆不可能全塞进去。5.1 给记忆留多少预算我的经验值是记忆注入占整个上下文预算的20%到30%。剩下的留给系统提示、当前对话历史、以及AI的回复空间。如果记忆占太多当前对话的细节反而被挤掉得不偿失。假设模型上下文是200K token那记忆部分大概留40K到60K。按每条记忆平均100 token算能注入400到600条。听起来很多但实际检索时我一般只注入Top-10到Top-20条因为注入太多会稀释相关性——AI面对一堆记忆反而抓不住重点。5.2 记忆的排序与呈现方式注入的记忆怎么排我试过几种按相似度降序最相关的放最前面按时间降序最新的放最前面按类型分组决策、偏好、事实分开列实测下来按类型分组 组内按相似度排序效果最好。因为AI在处理时能清晰地看到这是决策类信息这是偏好类信息不容易混淆。呈现格式上我会给每条记忆加一个简短标签比如[决策] 缓存方案字典时间戳过期不用lru_cache [偏好] 代码注释使用中文 [事实] 主语言Go部署在容器环境这种格式AI读起来清晰也方便它在回复里引用。5.3 注入失败的兜底有个容易被忽略的场景检索层挂了或者召回为空时怎么办。我的做法是准备一个核心记忆子集——那些最重要的、几乎每次对话都需要的记忆比如项目基本信息和用户核心偏好无论检索结果如何都固定注入。这样即使检索出问题AI也不至于完全失忆。6. 实操中那些文档不会告诉你的坑前面讲的都是应该怎么做这一节讲实际做的时候会撞上什么。这些是我踩过之后才明白的希望你能绕过去。6.1 提炼的prompt比检索的算法更重要我一开始把大量精力花在优化检索算法上调向量模型、调阈值、调权重效果提升有限。后来发现瓶颈根本不在检索而在提炼质量。提炼出来的记忆本身就是模糊的、不完整的检索再准也没用。优化提炼prompt的几个要点明确要求输出结构化字段type、content、reason、confidence给出正反例什么样的该记、什么样的不该记要求AI标注不确定性拿不准的降低confidence。这三点做到提炼质量立刻上一个台阶。6.2 记忆冲突的处理比想象中频繁我原以为记忆冲突是偶发情况实际跑下来发现冲突非常频繁。用户改主意、项目需求变更、AI理解偏差都会导致新旧记忆打架。如果系统没有冲突检测机制AI就会在矛盾的信息里随机选一个行为变得不可预测。我的冲突处理流程是新记忆入库前先检索出高相似度的旧记忆然后判断关系——是重复合并、是补充拼接、还是冲突标记旧记忆为superseded。这个判断可以交给AI做给它两条记忆让它判断关系类型准确率挺高。6.3 别忽视记忆的隐私边界如果这个系统是多人共用的记忆的隔离就是必须考虑的问题。A用户的偏好不能被B用户看到A项目的决策不能污染B项目。我的做法是在记忆的每个字段上都带owner标识检索时强制按owner过滤。这个过滤要在检索的最前面做不能等召回后再筛否则会有性能和安全双重问题。6.4 冷启动阶段体验最差系统刚上线、记忆库还空的时候体验是最差的——因为没东西可召回AI表现得和没有记忆系统一样。这个阶段要有心理准备也要有应对可以预置一批种子记忆项目的基本信息、通用偏好让系统一开始就有东西可用。随着使用记忆库慢慢充实体验才会爬升。7. 从能跑到好用几个进阶优化方向系统能跑通之后如果想让它从能用变成好用还有几个方向可以深挖。7.1 记忆的主动遗忘不是所有记忆都值得永久保留。有些临时性的、一次性的信息用完就该忘。我加了一个TTL机制某些类型的记忆比如这次调试用的临时端口设一个过期时间到期自动清理。主动遗忘能保持记忆库的信噪比让检索更准。7.2 记忆的关联图谱单条记忆是孤立的但记忆之间其实有关系。缓存方案和性能优化相关数据库选型和部署架构相关。把这些关系建成图谱检索时就能做关联扩展——召回一条记忆时顺带把它强关联的记忆也带出来。这个方向我还在探索初步效果不错但复杂度也上来了建议先把基础版跑稳再考虑。7.3 用反馈闭环持续优化系统上线后要收集记忆有没有用的反馈。最简单的做法是AI回复后让用户点个这条记忆有用/没用。积累一段时间就能知道哪些记忆类型召回率高、哪些检索策略效果好据此持续调整。没有反馈闭环的系统优化全靠拍脑袋。8. 我个人的一点体会搭claude-mem这类记忆系统的过程让我对AI能力这件事有了新的理解。很多人以为AI的瓶颈在模型本身但实际做下来会发现在模型能力已经足够强的今天真正的瓶颈往往在信息组织上。同样的模型喂给它组织良好的记忆和喂给它一堆杂乱的历史表现天差地别。记忆系统的本质是帮AI做信息减法和信息组织。它把海量的对话历史压缩成少量高价值的结论在对的时候送到AI面前。这件事做好了AI就从每次都要重新交代的工具变成了越用越懂你的伙伴。如果你正准备动手做类似的东西我的建议是先跑通最小闭环再谈优化。原始层存下来、提炼层抽出来、检索层召回来、注入层塞进去这四步能跑通系统就有价值了。至于向量模型选哪个、阈值调多少、权重怎么配这些都是后面慢慢磨的事。别一上来就追求完美架构那样大概率会卡在设计阶段出不来。最后分享一个我一直在用的小技巧给记忆库加一个手动添加的入口。有时候你知道某条信息很重要但对话里没自然出现自动提炼抓不到。这时候手动加一条比等它自己冒出来靠谱得多。这个入口用起来频率不高但关键时刻能救场。

相关新闻

SketchUp Pro 2021 Mac版安装全流程与避坑指南

SketchUp Pro 2021 Mac版安装全流程与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 2:50:37 阅读更多 →
STM32C5开发实战:从环境搭建到TrustZone安全量产

STM32C5开发实战:从环境搭建到TrustZone安全量产

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 2:49:37 阅读更多 →
Python数据分析实战:从数据清洗到回归建模的完整流程

Python数据分析实战:从数据清洗到回归建模的完整流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 2:49:37 阅读更多 →

最新新闻

gRPC从入门到实战:跨语言微服务通信与Python并发避坑指南

gRPC从入门到实战:跨语言微服务通信与Python并发避坑指南

我真的是太爱学习了——这种念头冒出来的时候,通常不是因为刚学会了一个妙招,而是因为刚被一个不算难的框架折腾到凌晨一点。最近这个对象就是 gRPC。很长一段时间里,我提到 gRPC 都是能躲就躲:要写 .proto、要装 protoc、跨语言还…

2026/10/12 8:44:35 阅读更多 →
从人耳到算法:MFCC梅尔倒谱系数原理与实战调参指南

从人耳到算法:MFCC梅尔倒谱系数原理与实战调参指南

1. 从人耳到算法:为什么需要梅尔倒谱系数做语音相关项目的人,迟早会撞上MFCC这个词。不管你是做语音识别、声纹比对、情感计算,还是只是想做个简单的关键词唤醒,翻开源码或者论文,MFCC几乎无处不在。但很多人第一次看到…

2026/10/12 8:44:35 阅读更多 →
2025制造业AI落地实战:视觉质检、预测性维护与排程优化

2025制造业AI落地实战:视觉质检、预测性维护与排程优化

1. 制造业AI落地的真实图景:从概念狂欢到车间实战2025年过半,我跑了十几个城市的制造企业,从年产值几十亿的汽车零部件龙头到只有百来号人的精密加工厂,聊下来最大的感受是:制造业对AI的态度已经彻底变了。前两年大家还…

2026/10/12 8:44:35 阅读更多 →
3个爆火Claude Code工具深度解析:TaoToken统一Key下如何选对赛道

3个爆火Claude Code工具深度解析:TaoToken统一Key下如何选对赛道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 8:44:35 阅读更多 →
一站式接入Kimi K3:OpenAI协议兼容的零改造迁移方案

一站式接入Kimi K3:OpenAI协议兼容的零改造迁移方案

1. 项目概述:为什么“一站式接入Kimi K3”突然成了刚需?最近两周,我陆续收到七八位不同背景的朋友咨询——有做教育类SaaS产品的技术负责人,有独立开发AI助教工具的自由开发者,还有某高校实验室带学生做对话系统课题的…

2026/10/12 8:44:35 阅读更多 →
OpenAI DevDay 2026:dots、Spaces与GPT-6.1 Sol的工程化落地指南

OpenAI DevDay 2026:dots、Spaces与GPT-6.1 Sol的工程化落地指南

1. 这不是发布会速记,而是一份开发者视角的“技术落地可行性评估报告”OpenAI DevDay 2026 这个标题本身已经释放出强烈的信号:它不再是一场面向大众的炫技秀,而是一次明确指向工程实践边界的深度技术校准。我全程参与了线上直播与会后48小时…

2026/10/12 8:43:30 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →