Transformers直接加载GGUF:本地模型不再二选一
如果你这两年搞过本地模型大概率经历过这种纠结下载模型之前先得问自己一句我到底走哪条路想用 Ollama 或者 llama.cpp那就得认 GGUF想用 Transformers 做开发、接 Agent、玩 Hugging Face 整套生态又得老老实实去下 safetensors 格式。明明是同一个模型硬生生被拆成两个阵营本地党经常得“二选一”。这个局面最近终于被撕开了一道口子——Transformers 已经能直接加载 GGUF 了。说“直接”可能还不够准确准确说是from_pretrained一个带.gguf后缀的文件就能把模型跑起来不用先转格式不用单独跑去 llama.cpp 那边推理。这篇博文我就从原理、实操、踩坑到场景组合把这个更新的来龙去脉说明白适合那些既想用 Transformers 生态、又不想放弃量化模型低占用优势的人。不管是研究代码、跑本地 Agent还是想让 Cursor、Claude Code 接上本地模型这个改动都能让你省掉一大圈折腾。1. 为什么以前 GGUF 和 Transformers 一直“互相看不见”1.1 GGUF 是怎么变成本地模型“通用语言”的GGUF 的诞生和 llama.cpp 的崛起分不开。早期 llama.cpp 用的是 GGML 格式但那套格式扩展性差加一点元数据都费劲后来官方直接推倒重来设计了 GGUF。和普通权重文件最大的区别是GGUF 把模型的所有信息都塞进一个文件里张量数据、超参数、tokenizer 词表、特殊 token、甚至一些自定义的 metadata全给你打包好了。打个不严谨的比方safetensors 更像一个“零件盒”里面是纯权重你需要另外拿一份 config 才知道怎么组装GGUF 更像一个“自动安装包”下载下来就能用。再加上 GGUF 原生支持 llama.cpp 那套 K-quant 分块量化方案Q4_K_M、Q5_K_M 这种同样一个 7B 模型原始 fp16 要 14GB 左右压成 Q4_K_M 只有 4GB 出头显存压力直接小了三分之二。这就是为什么本地模型圈快速把 GGUF 当成了事实标准文件小、单文件分发、拿到就能跑。1.2 Transformers 之前不认 GGUF 的真正原因不是人家看不起 GGUF纯粹是两套生态的底层设计差异。Transformers 的模型加载流程很固定读 config 文件构建模型骨架然后往骨架里塞 PyTorch 的state_dict或者 safetensors 的权重张量。它对“权重”的假设是字典结构state_dict里每个键对应一个 torch 张量模型类按名取参。而 GGUF 是另一种二进制布局张量按顺序存储在文件里还内嵌了量化信息一个小数要拆成几个字节来编码。Transformers 没有能力直接反序列化这玩意儿。更麻烦的是GGUF 文件的量化权重需要特殊的反量化算子才能在 GPU 上跑Transformers 的核心逻辑是抽象成nn.Module它并不关心底层量化方案。所以在过去很长一段时间你的选择只有两条路要么用 llama.cpp/Ollama 跑 GGUF享受低显存和高效 CPU 推理要么用 Transformers 跑原始权重换取完整的生态工具链比如微调、评估、Agent 集成。两边就像 iOS 和 Android明明都是手机应用却不通用。2. 现在到底怎么“直接跑”GGUF 加载实操2.1 装对版本写出最小加载代码Transformers 大概是 4.45 版本正式加入的 GGUF 加载支持所以第一件事是把环境升上去顺便装一个ggufPython 库它是用来解析 GGUF 文件元数据的。pip install -U transformers pip install gguf torch然后奇迹发生了。代码长这样from transformers import AutoModelForCausalLM, AutoTokenizer model AutoModelForCausalLM.from_pretrained( Qwen/Qwen2-7B-Instruct-GGUF, gguf_fileqwen2-7b-instruct-q4_k_m.gguf ) tokenizer AutoTokenizer.from_pretrained(Qwen/Qwen2-7B-Instruct)其中gguf_file这个参数是关键。它告诉 Transformers这个 repo 里可能有普通权重但我只想加载这一个指定名字的 GGUF 文件。如果没有传gguf_file而 repo 里恰好只有一个.gguf文件Transformers 也会自动识别但绝大多数 GGUF 仓库里都有好几个量化版本所以老老实实指定文件名最稳妥。加载完之后模型就是一个正常的AutoModelForCausalLM对象后面你想.generate()、想接pipeline、想塞进自己的推理封装都行和以前用 safetensors 加载没有任何区别。这就是“不用二选一”的含义量化模型的体积优势保住了Transformers 生态的工具链也保住了。2.2 用本地 GGUF 文件加载不一定要走 Hugging Face有人可能说我不走 Hugging Face我自己下载了一个qwen1.5-0.5b-chat-q4_k_m.gguf放在磁盘上怎么加载直接指向本地目录就行model AutoModelForCausalLM.from_pretrained( /path/to/local/gguf_dir, gguf_fileqwen1.5-0.5b-chat-q4_k_m.gguf ) tokenizer AutoTokenizer.from_pretrained(/path/to/local/gguf_dir)但这里有一个非常容易踩的坑Transformers 可以读 GGUF 的权重但 tokenizer 的加载逻辑仍然是原来的逻辑。tokenizer 需要tokenizer.json、vocab.json、tokenizer_config.json这些标准文件不会从 GGUF 里自动提取至少当前版本还没有完全做到。如果你本地只有一个光秃秃的.gguf文件AutoTokenizer.from_pretrained一定会报错。解决方式有三个第一去模型原仓库把 tokenizer 相关文件一并下下来放进同一个目录第二如果模型在 Hugging Face 上有原始仓库tokenizer 直接指向原始仓库名字像我上面的例子就是权重指向 GGUF 仓库、tokenizer 指向原始仓库第三实在找不到网上有很多将 GGUF 模型重新导出 tokenizer 的工具脚本但没必要直接下载原版几个小文件就行。2.3 量化格式和推理精度的关系别被文件大小骗了Transformers 加载 GGUF 时其实并不是“直接运行 GGUF”而是先把 GGUF 文件里的权重读出来还原成 torch 张量再装进常规模型结构里。这个逻辑很重要很多人误解它能像 llama.cpp 一样把 Q4 量化模型直接塞进显存跑。现阶段支持的量化格式主要在常见几种里面量化格式说明适合场景F32 / F16未量化或半精度追求质量不在乎体积Q4_04bit基础量化显存极小质量损失大Q4_K_S4bitK-quant 小型质量/体积平衡Q4_K_M4bitK-quant 中型目前本地模型的“甜点位”兼顾体积和质量Q5_0 / Q5_K_S / Q5_K_M5bit 量化比 Q4 质量更好文件稍大K-quant 是 llama.cpp 提出的一套量化策略核心思路是模型里不同张量的重要性不同重要的张量保留更多 bit不重要的压得更狠。所以 Q4_K_M 虽然还是 4bit 量级但实际效果往往比最早的 Q4_0 好不少。这里必须提醒一句Transformers 加载 GGUF 之后模型的推理精度取决于你加载时有没有配置额外的量化方案。如果你只是普普通通from_pretrained了一个Q4_K_M.gguf那么权重会被解压回 fp16 或 fp32取决于模型 config 默认值显存占用并不会等于那个 4GB 的文件大小可能还是接近原始模型的体量。想要真正低显存运行还需要配合bitsandbytes做二次量化from transformers import BitsAndBytesConfig import torch quant_config BitsAndBytesConfig( load_in_4bitTrue, bnb_4bit_compute_dtypetorch.float16 ) model AutoModelForCausalLM.from_pretrained( ..., gguf_file...gguf, quantization_configquant_config )这样做模型加载后在显存里就是 4bit 状态这才是真正冲着小显存去的玩法。官方文档里还支持直接传GGUFConfig它能从 GGUF 文件 metadata 推断出原始量化配置但实际推理时那个配置更多是“告诉模型你本来是什么”让你心里有个数。3. 我实际踩过的坑几个报错和它们的根源3.1no lm runtime found for model format gguf这个报错我在好几个帖子里看到过配合“claude code 调用 lmstudio 的本地模型”这个热搜词特别典型。它不是 Transformers 本身抛的错误而是你用的 AI 编程工具或者 Agent 框架去连本地推理服务时后端运行时没有正确响应。我遇到的具体场景是这样的Claude Code 里配置了本地模型地址指向 LM Studio 暴露的 OpenAI 兼容服务但 LM Studio 那个服务里根本没加载模型或者加载的是一个模型目录而不是具体的 GGUF 文件于是一调用就报no lm runtime found for model format gguf。翻译成人话就是调用方说“我要跑 GGUF”但服务端压根没有能处理 GGUF 的运行时。排查思路很简单按顺序来第一步打开 LM Studio / Ollama / llama.cpp server手动确认这个 GGUF 文件能被直接加载跑通第二步检查你配的 base URL确认端口和路径正确比如 LM Studio 默认是http://localhost:1234/v1Ollama 是http://localhost:11434/v1第三步把 AI 工具那边的模型名和 server 里实际加载的模型名对齐这个最容易忽视名字对不上就是找不到 runtime。3.2aimv2 is already used by a transformers config, pick another name这个报错是 Transformers 加载 GGUF 时比较有代表性的一个说明 Transformer 在解析模型配置时发现命名冲突。通常发生在两种情况下一是你使用的 repo 里既有原始 Transformers config又带了 GGUF 文件加载时 GGUF 的 metadata 和 config 里预注册的模型结构名撞了二是某些多模块模型比如带视觉塔的 VLM里内部模块的名字和已注册的 config 名重复。解决办法也不复杂。优先试试不去手动传 config只传gguf_file让 Transformers 自己从 GGUF 文件读架构如果还是要报错就把冲突的 config 备份移走只留一个再不行下载最新版 transformers因为 GGUF 支持迭代很快很多命名冲突是早期版本对某些架构解析不完善导致的升级之后就消失了。我当时加载某个 Qwen2-VL 量化版时遇到类似问题就是升级版本解决的没有任何魔改。3.3 加载成功但显存爆了或者推理没变快这是“文件小了显存没小”的认知误区前面已经说了一半。如果你按裸from_pretrained加载 GGUF权重回到 fp16那么一个 7B 模型照样占 14GB 显存模型文件才 4GB你肯定觉得不对劲。这时候先检查模型 dtype加上quantization_config走 bitsandbytes 才是正道。另外一部分人抱怨“为什么 Transformers 跑 GGUF 比 Ollama 慢”这个其实正常。llama.cpp 是纯 C 推理引擎针对量化权重做了大量底层优化还把 KV cache、采样、并行都揉进了一套代码里Transformers 是通用框架加载 GGUF 本身就是“兼容更多场景”的取舍不是性能竞赛。如果你追求极致的推理速度继续用 Ollama 或者 llama.cpp 完全没问题这次更新的意义在于“我不用为了用 Transformers 再去重新下载一份模型”而不是“Transformers 要取代 llama.cpp”。4. 本地模型不再二选一之后场景怎么组合4.1 Ollama、LM Studio、Transformers 终于可以共用同一个文件以前我电脑里经常出现同一个模型的三个副本一份 GGUF 放在 Ollama 里跑聊天一份 GGUF 放在 LM Studio 里做 OpenAI 兼容服务还有一份原始 safetensors 放在项目目录里给 Transformers 调。浪费磁盘倒是其次关键是版本管理混乱有时候三个副本的量化粒度还不一样调出来的结果都对比不了。现在 Transformers 能读 GGUF 之后理论上你只需要维护一份 GGUF 文件。举例来说我想把一个本地 GGUF 交给 Ollama 托管只需要写一个 ModelfileFROM /models/qwen2.5-7b-instruct-q4_k_m.gguf然后执行ollama create qwen-local -f ModelfileOllama 就会把这个 GGUF 注册成一个新模型。这条命令我以前只能用在“从 Ollama 官方库拉下来”的模型上现在任何渠道下载的 GGUF 都能注册进去。LM Studio 就更简单了图形界面里直接选 GGUF 文件就能加载。于是你可以组成一条很顺滑的链路用 Hugging Face 下载某个模型的 GGUF 量化版扔给 Ollama 做本地 server然后 Cursor、Continue.dev、Claude Code 这类工具统一通过http://localhost:11434/v1调用。你说它是二选一吗根本不是了是一套文件多处复用。4.2 本地小模型在代码重构、日志分析里的实用姿势热搜里有一条“grep 在本地小模型”还有“如何使用本地 AI 模型重构 C# 项目代码”这两个我都实测过非常能说明本地模型的新玩法。先说代码重构。以前我用 Cursor 接云模型做 C# 重构总担心代码片段被传出去。现在直接用 Continue.dev 接 Ollama 里的 Qwen2.5-Coder 量化版选中一段老代码让模型给出重构建议配合本地的grep、rg搜索项目内相似模式完全离线干活。0.5B 那种小模型做简单注释补全还行真正做重构建议建议至少 7B 级别的量化模型否则经常给出语法不完整的代码。再说日志分析。本地小模型配合grep可以做成一个半自动排查流程先用grep把日志里的 ERROR、Exception 行提取出来丢给本地小模型做分类和根因归纳。以前这个活要么人工看几百行日志要么把日志粘到网页端 AI 里现在一条管道命令就搞定还不用联网。这就是“grep 在本地小模型”的现实意义检索靠传统工具理解和归纳靠本地模型两者互补效果好得离谱。4.3 ComfyUI 里的 GGUF 和多模态模型本地化ComfyUI 也早就支持 GGUF 了不过走的是专门的第三方节点比如 comfyui_GGUF把 GGUF 量化后的视觉语言模型加载进 ComfyUI 里做推理。热搜里那个“comfyui gguf”指的就是这条路。我尝试过在 ComfyUI 里跑 Qwen2-VL 的 GGUF 量化版做“图片输入 → 文字描述”的节点效果挺惊艳的。一个多模态模型量化后体积能压到 4~5GB放在一张消费级显卡上就能跑比原来跑 fp16 多模态模型轻松太多。这也说明 GGUF 的支持范围不只是纯文本模型视觉语言模型同样是重点。至于“本地部署视频模型”现在主流视频生成模型走的是扩散模型路线和 GGUF 的关联还不大但多模态大模型统一量化分发的大方向是明确的未来视频模型模型如果也进入 LLM 扩散混合架构GGUF 或类似的统一格式大概率会成为标配。5. 这件事对本地模型生态的长期影响5.1 “不用二选一”之后工作流可以怎么走我最喜欢的一个变化是微调和量化之间不再有壁垒。以前如果你想本地跑一个微调后的模型常规流程是用 Transformers 微调出 safetensors然后转成 GGUF再放到 llama.cpp 里跑。中间转换工具偶尔会出新问题比如某些新算子不支持还要对着报错修半天。现在 Transformers 能加载 GGUF虽然目前还不能直接微调 GGUF 文件加载后转成 torch 权重再做微调是可以的但至少推理、评估、部署这条链路打通了。你想评估某个 GGUF 量化模型的实际效果可以直接在 Transformers 里跑一段标准评测脚本不需要再专门为 llama.cpp 写一套代码你觉得某个量化模型表现不够好也可以把它加载后接上 PEFT/LoRA 做轻量微调。这在以前是完全不敢想的操作涉及两套生态的衔接成本太高了。5.2 社区迭代速度比你想的快随时留意新版支持Transformers 的 GGUF 支持上线之后社区迭代速度很快。最开始只支持 Llama、Mistral、Qwen 这些主流架构后面陆续加了不少新模型。我个人的习惯是每过一两个星期就看一下 release notes重点看 “GGUF” 关键词出现在哪些模型架构的说明里说不定你手里的冷门模型哪天就被支持了。如果你要加载的模型架构还不支持最简单的办法是继续用 llama.cpp 或者把 GGUF 转换回 safetensorsHugging Face 官方有转换脚本。但说实话如果模型架构太新官方转换脚本也未必能转得完美这种情况就老实排队等支持就行。从一个从业者的角度说这次更新的意义不只是“多了一个加载格式”而是让本地模型从“双轨制”慢慢走向“单文件多端通用”。磁盘上不用再囤好几份不同格式的模型副本Ollama 用户和 Transformers 开发者讨论时也不用再先确认对方用的是哪套格式。模型还是那个模型但工具链的围墙倒了一面。最后分享一个我现在的选择标准如果只是纯聊天、追求速度我直接用 Ollama 拉 GGUF轻量省心如果要写代码、接 Agent、做评估我直接用 Transformers 加载同一份 GGUF不再额外下载 safetensors。同一个模型、同一个文件、两种用法这不就是“不用二选一”最大的意义么。

相关新闻

AI应用底座:打通大模型与企业业务的最后一公里

AI应用底座:打通大模型与企业业务的最后一公里

1. 先搞清楚“AI 应用底座”到底是个什么东西先讲个我最近的真实经历。上个月有个做智能制造的朋友找我,说他们公司响应号召,已经接了某个大模型 API,让十几个人试用了几周,结果除了几个工程师偶尔问点技术问题,业务部…

2026/10/2 22:52:47 阅读更多 →
YOLOv9绝缘子缺陷检测数据集:破壳/闪络四类识别达93.5%

YOLOv9绝缘子缺陷检测数据集:破壳/闪络四类识别达93.5%

简介:本资源是面向电力设备智能巡检与计算机视觉初学者的绝缘子缺陷检测专用数据集,适用于YOLOv9目标检测模型训练与验证,解决输电线路中绝缘子破壳、闪络损坏、外壳正常及绝缘子串定位等典型缺陷识别问题。压缩包共2000个文件,含…

2026/10/2 22:50:59 阅读更多 →
产品管理需求管理功能表格PDF:从字段设计到自动化生成与测试联动

产品管理需求管理功能表格PDF:从字段设计到自动化生成与测试联动

简介:这份PDF面向产品经理、项目经理及需求分析人员,提供一套可直接落地的产品管理需求管理功能表格v2.0模板,帮助团队规范需求收集、缺陷跟踪与进度管理流程。文档以表格模块形式组织,核心为需求管理列表与对应功能列表&#xff…

2026/10/1 13:09:06 阅读更多 →

最新新闻

互联网商业医疗保险直付平台:从理赔垫付到秒级结算的落地拆解

互联网商业医疗保险直付平台:从理赔垫付到秒级结算的落地拆解

简介:这份PDF文献面向医疗信息化从业者、医院信息中心技术人员及医疗保障研究者,聚焦互联网商业医疗保险直付平台的解决方案。内容系统梳理了商保的概况与现状、传统理赔流程的痛点,并重点论述平台设计原则,包括数据安全、实时性、…

2026/10/2 22:52:08 阅读更多 →
PPTX作为云架构契约:从幻灯片到可执行基础设施

PPTX作为云架构契约:从幻灯片到可执行基础设施

简介:本资源是一份面向智慧城市、大数据与人工智能领域技术决策者及系统架构师的《高效数据中心云基础架构解决方案》专业PPT课件,聚焦企业级IT基础设施向云化演进的核心路径。内容系统阐述动态基础架构管理(AIM)、基础架构云&…

2026/10/2 22:52:08 阅读更多 →
Jev AI研发智能体:任务闭环、本地部署与Codex集成实践

Jev AI研发智能体:任务闭环、本地部署与Codex集成实践

最近社区里聊 Jev 的人越来越多了,但大部分人还停留在"听说它很厉害"的阶段。有人说它是新的 AI 模型,有人说它就是个编码插件,还有人拿它和 Codex 对比,问是不是要抢饭碗。我前阵子也花了不少时间研究 Jev,…

2026/10/2 22:52:08 阅读更多 →
RAGFlow深度解析:企业知识库文档解析与本地部署实战

RAGFlow深度解析:企业知识库文档解析与本地部署实战

1. 先从“文档抽血”说起:RAGFlow 到底解决了什么 企业知识库这条赛道上,开源方案看着一堆,真能拿来当生产力的没几个。RAGFlow 是其中一个让我愿意花时间反复测试的项目。它最打动我的地方,不是又出了一款“聊天问答机器人”&…

2026/10/2 22:52:08 阅读更多 →
从数据传输结构拆解AXI协议:通道、握手与突发机制

从数据传输结构拆解AXI协议:通道、握手与突发机制

AXI协议这个东西,做数字IC和SoC的同学迟早要正面硬刚它。不管你是做设计、验证还是FPGA原型验证,面试时被问AXI的概率几乎是百分之百。但市面上讲AXI的资料两极分化严重:要么是ARM官方手册那种几百页的规格书,啃下来耗神费力&…

2026/10/2 22:52:08 阅读更多 →
TerraScan点云处理实战:参数原理与LiDAR测绘精度控制

TerraScan点云处理实战:参数原理与LiDAR测绘精度控制

简介:本资源是一份面向测绘、遥感、地理信息系统(GIS)及三维建模领域从业者与高校相关专业师生的技术参考文献,系统讲解基于TerraScan软件的LiDAR点云数据处理全流程。内容涵盖LiDAR技术原理与发展现状、TerraScan核心功能&#x…

2026/10/2 22:51:07 阅读更多 →

日新闻

从零搭建AI工程化:模型之外的完整闭环

从零搭建AI工程化:模型之外的完整闭环

先搞清楚一件事:从零开始做 AI 工程化,难的从来不是调模型、写提示词,而是把一套原型 Demo 变成长得像是“正经系统”的东西。你手里可能已经有了能跑通的代码,也可能刚读完一些概念,但真到了要把它变成可维护、可观测…

2026/10/2 0:00:20 阅读更多 →
大模型训练显存估计与混合精度训练实战指南

大模型训练显存估计与混合精度训练实战指南

1. 大模型训练显存估计与混合精度训练详解显存不够用,几乎是每个做大模型训练的人都会撞上的第一堵墙。你可能也经历过:模型代码写完了,数据管道跑通了,满心欢喜地按下训练启动脚本,结果几秒钟后终端弹出一行红字——C…

2026/10/2 0:00:20 阅读更多 →
小样本学习数据集选型指南:27个真正可用的高质量数据集

小样本学习数据集选型指南:27个真正可用的高质量数据集

1. 小样本学习的“弹药库”:为什么你总在找数据集,却总找不到真正能用的? 小样本、数据集——这两个词最近半年在我处理的200多个AI项目咨询里,出现频率排进前三。不是模型调不好,不是代码写不对,而是卡在…

2026/10/2 0:00:20 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/2 10:36:31 阅读更多 →
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/2 5:26:06 阅读更多 →
黑夜航拍船只数据集训练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/2 6:09:11 阅读更多 →