新闻详情

新闻详情

首页 / 资讯中心 / 详情

半自动标注组合拳:X-AnyLabeling、Grounded-SAM与autodistill实战指南

发布时间:2026/9/30 10:03:36来源:尧图网络
半自动标注组合拳:X-AnyLabeling、Grounded-SAM与autodistill实战指南
三年前我第一次给一个检测项目标数据两万张图四个人标了整整三周。后来我学会一句话能用模型标的绝不用人手标。这句话不是偷懒而是今天要聊的这套组合拳X-AnyLabeling、autodistill 和 Grounded-SAM。这三样东西单独拎出来都是好工具串起来之后基本就是一条“原始图片进、标注数据集出”的流水线。先说清楚这套方案解决什么问题。深度学习项目里数据标注往往比训练模型还耗时。X-AnyLabeling 是一个带图形界面的标注工具内置了大量预训练模型能实现半自动标注Grounded-SAM 把 Grounding DINO 的开放词汇检测能力和 SAM 的分割能力拼在一起给定一句文本描述就能自动生成掩码标注autodistill 则是把大模型当成老师自动打标后直接蒸馏出一个轻量检测模型。三者揉在一起可以用一句大白话概括让机器先按你的语义描述把图“看一遍”生成初步标注再用人工在界面上快速校正最后用校正过的数据迭代训练一个小模型让它慢慢取代大模型把成本降下来。这篇文章我打算按实战路径走从思路、原理、环境部署到完整操作流程和排坑全部铺开讲适合正在做检测/分割项目、想提升标注效率的工程师和研究者参考。1. 组合拳的底层逻辑为什么要这么搭1.1 人工标注的痛点和半自动化的切入口我之前接过一个安防场景的项目要识别几十种违规物品。第一轮把八千张图发给标注团队对方报了个四十天的排期而且追加预算。问题不是团队不专业而是纯手工画框、抠轮廓这件事本身就慢。一张复杂场景图精细分割可能花几分钟一万张图就是几万分钟。所以半自动标注的思路不是“抛弃人工”而是把人工从画框、抠轮廓的低价值劳动中解放出来集中精力做审核和修正。过去画一个精细掩码要靠多边形多次点击现在大概只需要“改几个顶点的位置”甚至“确认一下就行”。真正有价值的人机协作界面应该是人工只做决策不管绘图。X-AnyLabeling 在这个链条里刚好充当了这个决策确认层。1.2 三件套各自承担的角色三件套不是三个功能完全重叠的工具而是各管一段的接力赛。Grounded-SAM 负责“从零到一”的自动标注它最大的特点是不挑类别。传统检测模型只能识别训练过的类别你不想要什么它根本不认识。Grounded-SAM 用自然语言描述目标比如“戴头盔的人”“地上的裂缝”模型就去图中找语义匹配的区域。它解决的核心问题是冷启动在没有标注数据的时候先用它过一遍图片得到一个“机器初判”的数据集。X-AnyLabeling 负责“从一到十”的人工介入层。它不只是一个画框工具而是集成了多个推理模型的交互式标注器。你可以把 Grounded-SAM 初步标注的结果导入其中用它的 AI 辅助功能快速修正还能直接导成 YOLO、COCO、Labelme 等主流格式。它的角色类似“人工复核工作台”。autodistill 负责“从十到百”的模型蒸馏。Grounded-SAM 这种大模型虽然效果好但是推理速度慢、显存占用高。生产环境里不可能每张新图都跑一遍大模型。autodistill 的思路是让大模型自动标注一批数据然后去训练一个轻量级检测模型比如 YOLOv8让这个小模型学会大模型的判断能力。这样后续的批量推理就能跑在小模型上速度快成本低。我把这三者的关系比喻成“老师、助教和学生”Grounded-SAM 是老师X-AnyLabeling 是助教autodistill 负责让学生跟老师学。老师水平高但你不可能每次考试都让他代笔最终还是要学生自己上考场。1.3 这套方案适合什么项目不适合什么项目需要先泼一盆冷水这套方案不是万能的。我实测下来的经验是它最适合的领域包括工业质检、安防监控目标识别、遥感图像地物分割、医学影像备选、农业病虫害识别。共同特点是目标类别相对明确语义描述可以精确表达且视觉特征相对稳定。不太适合的场景主要有三类。第一类是需要像素级精确分割的医疗手术规划级标注自动标注只能做初筛后期人工成本依然很高第二类是高度抽象、依赖专业知识的标注任务比如病理切片中的细胞分型文本描述指导不了这种专业级语义第三类是视频流中的实例跟踪Grounded-SAM 是逐帧处理的没有时序一致性但 X-AnyLabeling 和 autodistill 也没有补上这段能力。所以这套组合的准确定位是规模化初标 人工复核 轻量模型落地的闭环它追求的是在可接受的精度范围内把标注成本降到原来的五分之一甚至十分之一而不是追求一次性达到 100% 的像素级准确。2. 核心原理拆解Grounded-SAM 与 autodistill 是怎么工作的2.1 Grounded-SAM 的零样本标注机制Grounded-SAM 的核心是两个模型串联。前排是 Grounding DINO一个开放词汇目标检测模型输入文本描述和图像输出的是“目标框 对应文本类别”。后排是 SAMSegment Anything Model一个强大的分割模型输入图像和框/点提示输出的是精确的二值掩码。整个串联过程其实很容易理解。第一步你输入一句话比如“一只黑色的猫”第二步Grounding DINO 检索图中所有与“黑色猫”语义匹配的区域画出候选框并附上置信度第三步把这些候选框作为 SAM 的框提示输入SAM 在每一个框内做精细分割输出掩码第四步程序把检测框、掩码、类别名整理成标注文件。这种做法和传统检测模型有个本质区别传统模型是被固定的类别列表“钉死”的你训练了猫狗它就只会输出猫狗。Grounded-SAM 是通过文本编码器把类别描述映射到联合视觉语言空间在推理阶段再动态匹配所以不需要重新训练就能识别新的类别描述。你只要换一句文本描述就等于换了一个检测目标集合。不过这里要提醒一个重要细节文本描述的质量直接决定标注质量。我用“person”和“a person wearing a red safety helmet”做对比前者的召回率可能更高但误检也多后者更精准但可能漏检。所以在配置 prompt 的时候建议结合场景反复试验找到召回率和准确率的平衡点。2.2 autodistill 的知识蒸馏路径autodistill 的思路其实非常简单但很多项目都卡在“理论懂、落地难”这一步。它抽象出了两个核心概念Ontology和Target Model。Ontology 是类别定义文件你告诉它“我要检测哪些东西”比如[“person”, “car”, “tree”]或者带属性的描述比如[“a red traffic light”]。Base Model老师模型是自动标注的执行者它会读入一批无标注图片按照你的 Ontology 生成伪标注。Target Model学生模型是最终你想训练的轻量模型比如 YOLOv8它拿着一堆伪标注数据开始训练。流程上有两条线可以走。第一条是“端到端蒸馏”图片进 Base Model出标注直接丢给 Target Model 训练。第二条是“中间产物复用”把 Base Model 的标注结果导出来先人工修正一部分再合流到训练集里。我强烈推荐后者因为完全依赖自动标注容易让模型继承老师的错误有一个“人工抽检修正”环节整个数据质量会上一个台阶。autodistill 在技术实现上使用了零样本检测和零样本分割模型作为 Base Model并且把输出统一转成 Target Model 需要的格式。它内部接入了 Supervision 和若干工具库来做标注转换这个设计极大降低了工程成本。我最早自己写脚本把 SAM 掩码转成 YOLO 分割格式转完还得验证坐标换算autodistill 直接把这些流程封装好了。2.3 X-AnyLabeling 的交互标注引擎X-AnyLabeling 在技术定位上类似于一个“升级版的 LabelImg”但它不止画框。它内置了多种推理引擎包括但不限于Segment Anything 系列模型、YOLOv8 系列模型、OCR 识别模型、深度估计模型以及各种分类/检测模型。核心优势是你在标注界面里可以调起这些模型对单张图执行推理然后直接把推理结果转成标注。有一个功能非常实用交互式分割。你只需在目标物上点一个正点、点一个负点模型就能实时更新掩码。这比手动多边形快了不知道多少倍。而且它内置了对多种标注格式的导入导出支持比如 LabelMe JSON、COCO JSON、YOLO txt、DOTA 格式等。这意味着 Grounded-SAM 自动标注后的结果可以无缝导入到 X-AnyLabeling 中进行复核而不需要写一堆格式转换脚本。这工具的另一个亮点是支持自定义模型集成你可以把训练好的模型导出成 ONNX然后注册进 X-AnyLabeling 的配置里这样后续的标注界面里就能直接调用你自己的模型做辅助。这个功能对已经训练过一版模型的迭代项目来说是个宝藏。3. 环境部署与源码运行PyCharm 跑 X-AnyLabeling 的完整记录3.1 部署前的硬件与版本评估先给结论推荐显卡显存不低于 8GB建议 16GB。为什么Grounded-SAM 的推理不仅吃显存还吃内存。如果你想加载 GroundingDINO 的 Swin-T 版本和 SAM 的 ViT-B 版本显存占用轻松超过 6GB如果图片分辨率再高一点8GB 就容易爆。autodistill 里默认调用的 GroundingDINO 模型规格通常不低实测下来 8GB 显存跑小图勉强跑大图会 OOM。如果显存不够有两个妥协方案降低图像分辨率或者选用更小的 SAM 权重ViT-B 而非 ViT-H。代价是分割边缘会粗糙一些。系统和开发环境方面我实测的环境是Ubuntu 20.04 Python 3.8 PyTorch 1.12 CUDA 11.3 RTX 3090。这套组合跑 X-AnyLabeling 源码没问题跑 Grounded-SAM 和 autodistill 也兼容。Windows 上同样可行只需注意编译 wheels 的时候容易缺 Microsoft C Build Tools特别是某些依赖需要从源码编译时更明显。3.2 PyCharm 运行 X-AnyLabeling 源码的关键配置网上很多教程是直接pip install x-anylabeling用命令行启动就完事。但如果你想改代码、调试、加自定义模型就得用 PyCharm 打开源码跑。我踩过的坑主要有四个。第一个是解释器选择。不要用 PyCharm 默认新建的虚拟环境我建议用 conda 先建一个干净环境然后在 PyCharm 里把解释器指向这个 conda 环境。这样你在终端里能装的包在 PyCharm 里都能直接 import。第二个是工作目录。直接在 PyCharm 里右键运行app.py大概率会报找不到资源文件原因是工作目录不对。X-AnyLabeling 的资源是相对路径组织的必须把工作目录设置到源码根目录。在 Run Configuration 里把 Working directory 改成源码根目录即可。第三个是依赖安装顺序。X-AnyLabeling 的 requirements 里既有 PyTorch 又有 OpenCV如果直接一把梭装全部很可能装错 PyTorch 版本。正确顺序是先装 CUDA 对应的 PyTorch再装其他依赖。我在 3090 上用的是pip install torch1.12.0cu113 torchvision0.13.0cu113 --extra-index-url https://download.pytorch.org/whl/cu113装完再安装 requirements整个过程没有再出兼容性问题。第四个是模型文件的加载路径。源码默认会从模型仓库目录中找权重文件如果你自定义过路径需要在配置文件中修改模型路径。这里建议不要自定义而是按源码默认目录结构放权重避免在 PyCharm 环境下引入不必要的路径问题。3.3 手动跑通 Grounded-SAM 和 autodistill 的环境Grounded-SAM 的部署比 X-AnyLabeling 稍微繁琐一点。官方仓库依赖 GroundingDINO 的编译版setup.py编译过程对 PyTorch 和 CUDA 版本有严格对应关系。我的建议是把 GroundingDINO 和 SAM 分开配环境避免相互污染。关键的依赖版本对应关系如下组件推荐版本说明Python3.8 / 3.93.10 下部分编译仍然能过但不推荐PyTorch1.12 / 1.132.0 也能用但需要重新编译 GroundingDINOCUDA11.3 / 11.7与 PyTorch 配套不是装的越新越好GCC9.x编译 GroundingDINO 时太新或太老都有坑autodistill 的部署就简单得多它主打的就是开箱即用。pip install autodistill autodistill-grounded-sam autodistill-yolov8一条龙装好就行。但有一个隐藏问题autodistill 依赖的 supervision 版本、ultralytics 版本和 GroundedSAM 之间可能存在 API 不兼容。所以我通常是在 autodistill 内部用他的GroundedSAMBaseModel再手动把标注结果转成 coco/yml喂给 ultralytics 的 YOLO 训练脚本这样反而能绕过一些封装层的兼容问题。如果你只是要快速体验全流程直接在 autodistill 的 API 里跑端到端蒸馏是最省事的但如果你想把自动标注结果导入 X-AnyLabeling 复核那么 explicit 的标注导出更合适。我已经习惯了自己写导出脚本控制力更强。4. 手动标注全流程实操从原始图片到训练数据集4.1 OpenAI 格式不从图片筛选开始在跑任何自动标注之前第一件事不是跑模型而是清洗待标注图片集。我给一个参考策略先用感知哈希算法对全量图片做去重再用方差/清晰度筛选去除模糊帧最后按场景聚类抽样确保各类别分布均匀。具体操作不复杂用 OpenCV 可以写几十行脚本搞定。也可以先用 X-AnyLabeling 自带的图像浏览功能做快速人工筛选但大规模场景下脚本更高效。我在项目里一般会用两步先脚本去重去模糊再人工抽样看一眼类别分布把异常样本直接删掉。这一步省下的量通常是 15% 到 30%。很多新手一上来就扔两万张图给模型跑结果光推理就花了几个小时其中一大半还是重复或低质量图。4.2 用 Grounded-SAM 进行批量自动标注启动 Grounded-SAM 前先把你的类别列表转换成描述短语。这里的转换直接影响标注质量我给出两个常见转换模式实际类别通用描述高精度描述厂区工人personworker wearing orange vest路面缺陷cracka long narrow crack on asphalt road车辆cara car on the road通用描述的召回率更高高精度描述准确率更高。我的策略是先跑一轮通用描述再按场景拆分跑高精度描述最后通过坐标重合度合并结果。重合度高的就保留重合度低的进入人工复核队列。具体运行 Grounded-SAM 批量推理时命令行核心参数包括--image_dir、--text_prompt、--box_threshold、--text_threshold、--output_dir。其中两个阈值需要反复调整。box_threshold 控制目标框置信度默认 0.3 左右text_threshold 控制文本匹配置信度默认 0.25 左右。如果误检严重就调高两个阈值如果漏检多就调低。我建议先拿五十张图做测试调好阈值再跑全量。GPU 推理速度可以参考RTX 3090 上跑一张 1080p 图片GroundingDINO Swin-T SAM ViT-B 的组合大概 0.4 到 0.8 秒。两万张图大约需要三到五个小时配合 CPU 预处理和 GPU 推理流水线基本可以接受。4.3 把自动标注结果导入 X-AnyLabeling 进行人工复核自动标注结果通常是 COCO JSON 或者一组单个掩码文件。X-AnyLabeling 对 COCO JSON 导入支持得不错不过在导入之前需要留意类别名是否和之前定义的一致。不一致会导致标注张冠李戴。在界面中我最常用的功能是“框选目标 自动分割修正”和“交互式分割”。比如 Grounded-SAM 把一棵树的轮廓画歪了我就在漏掉的区域点一个正点在废气区域点一个负点模型几毫秒就更新了掩码。工具有一个Edit Polygon模式可以直接微调关键点。另一个好用的点是标签自动传播。如果同一视频序列的多帧都包含同一目标可以在关键帧上精标一次然后借助跟踪算法把标注传播到前后帧。实测下来静态场景的传播精度较高动态场景则出现漂移需要人工抽检。在人工复核阶段一定不要省时间哪怕多花一天后面训练和调模型的时间都会加倍省下来。数据集的错误是“滚雪球”的模型学到错误标注后不仅精度差而且很难排查。4.4 autodistill 蒸馏训练从自动标注到轻量化模型完成人工复核后把导出格式统一转成 YOLO 格式。X-AnyLabeling 可以直接导出 YOLO txt但需要确认类别编号顺序一致否则只有天知道模型学的是什么。autodistill 的使用我通常走半自动路线先用它内置的 Base Model 把全部图片再跑一遍得到一个全自动版本再把人工复核的标注文件合并作为 Target Model 训练集的“黄金标注”。这样有两个好处一是通过比较自动标注和人工标注的差异可以看出 Grounded-SAM 在哪类目标上容易出错二是人工修正的数据作为更高质量的子集在训练时给更高采样权重。Target Model 我推荐优先使用 YOLOv8它的分割分支和检测分支都成熟训练速度快部署也方便。在 autodistill 里调target_model.train(...)时核心参数包括epochs、batch_size、imgsz。我的经验是初始跑 100 个 epoch、batch size 按显存调整、imgsz 用 640。蒸出来的模型和直接训练一个从头模型相比收敛更快精度更高因为初始伪标注质量比较高。不过要留意autodistill 的 end-to-end 流程倾向于自动化但它自身对“人工干预”的支持不够细腻。所以我始终坚持“autodistill 做老师打分人工做教研组”而不是把 autodistill 当作一个纯黑盒的标注机器。4.5 标注格式转换与数据集组织的细节模型的炼丹链路中标注格式混乱是最常见的灾难。这里我总结一套我自己整理的转换经验X-AnyLabeling 导出 LabelMe JSON用脚本转成 COCO JSON再用脚本把 COCO 转成 YOLO txt。非必要不要手写解析推荐使用 LabelMe 官方工具和 pycocotools 配合转换。还有一个容易踩坑的点图片尺寸变化与标注坐标。自动标注阶段和训练阶段如果用了 resize边的填充方式不一致就会导致坐标偏移。所以建议全程固定一个基准尺寸如 1280x720所有工具和模型都在这个尺寸上操作最终训练时再用 letterbox 而不是拉伸。在我个人经验里一个规范的数据集应该包含原始图像文件夹、标注文件夹、类别名文件YOLO 的 classes.txt 或 COCO 的 categories、训练验证测试划分建议按 721 或 811。autodistill 生成的目录结构已经比较规范但 X-AnyLabeling 导出的结构需要自己整理。5. 常见问题排查与避坑速查5.1 环境与部署阶段的典型报错问题现象根本原因解决方案import torch 报 CUDA 错误PyTorch 版本与 CUDA 驱动不匹配重装对应 cu113 或 cu117 构建的 PyTorchGroundingDINO 编译失败编译器、CUDA、PyTorch 版本不匹配换 GCC 9确认 PyTorch 是源码编译兼容版本X-AnyLabeling 启动后界面空白资源路径错误检查 PyCharm 工作目录是否切到源码根目录autodistill 加载模型超时第一次运行时权重未下载完成手动下载权重放到缓存目录再运行显存不足直接退出图片分辨率过大 / batch 过大降低分辨率换 SAM ViT-B开启 AMP 混合精度关于 PyCharm 场景还有一个很多人忽略的坑如果你不是管理员权限模型下载默认写到用户目录下而 PyCharm 的虚拟环境可能没有该目录的读写权限。解决办法是把模型权重手动放到源码环境的~/.cache或weights目录并赋予可读权限。在 Windows 下如果使用 PyTorch 2.0 以上的版本ImageNet 预训练权重的加载有时会因为 SSL 证书问题卡住通常是因为系统根证书过期。直接设置CURL_CA_BUNDLE空或者更新证书能解决但不建议关掉安全验证这只适合纯离线场景。5.2 标注质量自查的五个关键指标自动标注不是“跑完就完事”质量自查必须有量化手段。我一般看五个指标第一类别分布。统计每个类别的目标数量如果某个类明显偏少说明这一类描述词没有覆盖全需要调整 prompt 或者补充人工标注。第二框的尺寸分布。如果大量目标框的面积占比小于 0.1%说明漏检大量小目标。小目标在 GroundingDINO 上表现通常不如大目标这时候可以根据场景切分图块再跑。第三置信度分布。如果大部分检测框置信度都集中在 0.3 到 0.5说明模型判得“勉强”需要采样做人工复核而不是直接信任。第四掩码覆盖率。对分割任务来说掩码面积占框面积的百分比是个好指标。如果大面积目标却只有很薄的掩码说明 SAM 分割失误。第五人工抽检准确率。按 5% 的比例随机抽图用 X-AnyLabeling 逐个核对计算准确率。准确率低于 90% 的数据集建议返回重新调 prompt而不是直接训练。5.3 我常用的标注界面快捷键和提效习惯X-AnyLabeling 的快捷键不算多但能用熟的话效率提升非常明显。我最常用的包括A切到上一张图、D切到下一张图、W切换到多边形标注、E切换到编辑模式、CtrlZ撤销、CtrlS保存、CtrlD复制上一张的标签。在批量复核时左手放在 A/D 和 CtrlS 上右手鼠标点选和微调基本能在一分钟内复核十张图。另一个提效习惯是用“标签自动填充”功能。对于视频抽帧数据同一场景的连续帧标签往往高度相似。先在关键帧把目标框好然后复制标签到下一帧只微调位置即可。在 X-AnyLabeling 里可以使用快捷方式复制上一帧的全部标注再把移动的目标点拉一下消耗极小。我用这套流程做过一次完整的项目复盘从采集到 2.8 万张图开始去重后剩余 2.1 万张Grounded-SAM 自动标注耗时四十分钟人工复核和修正耗时三天最后 autodistill 蒸馏出 YOLOv8s 模型在测试集上的 mAP50 达到 0.86mAP50-95 达到 0.62。如果纯人工标这 2.1 万张图按每人每天 300 张的速度算需要四个人将近二十天。实际节约了 75% 以上的标注时间而代价只是多花了一点算力。5.4 几个值得单独提示的“隐形坑”有些坑不会报错但会悄悄毁掉数据质量。第一是类别名前后不一致Grounded-SAM 里用 “person”X-AnyLabeling 里用 “people”YOLO classes.txt 里用 “person”三个文件三个叫法训练时只认 classes.txt前面的努力全白费。这个只能靠统一命名规范并从源头约束我自己的做法是维护一个 categories.json任何流程都从这个文件读取类别定义。第二是掩码格式与训练需求的匹配。Grounded-SAM 和 X-AnyLabeling 生成的掩码通常是 RLE 或单通道 PNG而 YOLO 分割格式要求归一化后的多边形坐标。转换时如果掩码有空洞多边形化很容易产生大量碎片点导致模型训练炸掉。我通常会对掩码做一次形态学闭运算过滤小面积噪声区域再转多边形。第三是自动标注的“偏见”问题。GroundingDINO 的训练数据偏向日常场景在特殊视角、极端光照、遮挡严重的工业场景里表现显著下降。我建议第一次跑全量前先拿一个一百张的小样本试跑如果结果惨不忍睹优先考虑换描述词而不是盲目调阈值。第四是不要忽略图像 EXIF 方向信息。手机和无人机拍的照片经常自带旋转方向直接喂给 Grounded-SAM 可能导致检测框和画面内容错位。如果 X-AnyLabeling 显示的图像方向正常但自动标注的掩码歪了十有八九就是 EXIF 旋转没处理。统一用脚本去掉 EXIF 方向或转正再跑是正解。最后再说一个运营层面的经验自动标注流程一定要做成“可重跑”的脚本而不是一次性命令行。因为 prompt 要调阈值要调数据要增删如果没有脚本化、参数化的闭环每次调整都是一场灾难。我把整个流程写成了三个阶段的 Python 脚本预标注、转换合并、训练蒸馏所有参数集中在一个 yaml 配置里。这样每次项目迭代只要改配置跑一遍脚本就能快速得到新版本数据集和模型。这套组合拳的实战价值不在于某一个模型多惊艳而在于它把“数据→标注→模型”的链路压缩到了一个晚上能跑完的程度。以后再有新项目我第一反应是先看看能不能用自动化方案把标注成本打下来因为时间真的就是项目里最贵的东西。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

STM32F103 流水灯三种写法对比 + HAL 库按键中断控制(暂停/恢复) 2026/9/30 11:28:40

STM32F103 流水灯三种写法对比 + HAL 库按键中断控制(暂停/恢复)

STM32F103 流水灯三种写法对比 HAL 库按键中断控制(暂停/恢复) 写在前面:这次要交的是"用 HAL 库 按键中断控制流水灯"。 但在动手之前,我把同一个流水灯用三种方式各写了一遍 —— 直接操作寄存器、调用标准外设库、…

阅读更多 →
ESXi 7.0 服务器虚拟化部署全流程:从U盘引导到管理网络配置 2026/9/30 11:28:25

ESXi 7.0 服务器虚拟化部署全流程:从U盘引导到管理网络配置

简介:这是一份面向服务器运维、虚拟化管理员与IT基础架构人员的PDF技术资料,聚焦VMware vSphere ESXi 7.0从零开始的完整安装部署流程。读者可据此在物理服务器上快速搭建裸金属虚拟化平台,并掌握管理网络、IPv4地址等基础配置,适…

阅读更多 →
生产排产PMC的4种经典算法:最短工期、最早交货期、Slack、CR值 2026/9/30 11:28:18

生产排产PMC的4种经典算法:最短工期、最早交货期、Slack、CR值

很多PMC每天最头疼的,不是不会排计划,而是所有人都觉得自己的订单最急。 销售说客户催得厉害,老板说这个客户不能丢,生产说换线太频繁,采购说关键料还没到,仓库说半成品堆不下。 最后PMC夹在中间&#xff0…

阅读更多 →
合并两个有序链表:迭代、递归与原地合并的面试全攻略 2026/9/30 11:28:18

合并两个有序链表:迭代、递归与原地合并的面试全攻略

1. 这道题为什么值得反复刷:合并有序链表的本质与常见误区 如果只让我推荐三道链表入门题,LeetCode 21“合并两个有序链表”一定在其中。它的题干极短:给定两个升序链表 list1 和 list2 ,把它们合并成一个新的升序链表并返回。…

阅读更多 →
RL-10-赵-Actor-Critic03:DPG03【Deterministic Actor-Critic】【梯度优化:θₜ₊₁=θₜ+αᶿ∇ᶿμ(sₜ)(∇ₐqᵤ(sₜ,a))|a=μ(sₜ)】 2026/9/30 11:28:11

RL-10-赵-Actor-Critic03:DPG03【Deterministic Actor-Critic】【梯度优化:θₜ₊₁=θₜ+αᶿ∇ᶿμ(sₜ)(∇ₐqᵤ(sₜ,a))|a=μ(sₜ)】

二、The algorithm of deterministic actor-critic 基于policy gradient,the gradient-ascent algorithm就可以最大化 J ( θ ) J(\theta)

阅读更多 →
【从零写一个CAD 03】三个 double 值得单独一个类吗:把视图变换抽成 View 2026/9/30 11:28:11

【从零写一个CAD 03】三个 double 值得单独一个类吗:把视图变换抽成 View

🫧 励志不掉头发的内向程序员:个人主页✨️ 个人专栏: 《C语言》《Linux学习》🌅偶尔悲伤,偶尔被幸福所完善 👓️博主简介: 文章目录前言一、先看看这几个数现在住在哪二、这三个数的问题不是"多"&#xff0…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉