首页/新闻资讯/正文详情

Atlas 300V加速卡部署YOLOv5全指南:从驱动、CANN到模型转换

发布时间:2026/9/25 7:25:10 来源:云帆数科 栏目:资讯中心
Atlas 300V加速卡部署YOLOv5全指南:从驱动、CANN到模型转换
之前手头有一块 Atlas 300V 24G很多第一次接触昇腾计算卡的朋友第一反应都是这玩意儿到底是不是显卡能不能像 GPU 那样直接跑 YOLO我最近刚好把一套 YOLOv5 检测服务完整迁移到 Atlas 平台上从驱动固件、CANN 工具链、模型转换到推理代码跑通中间踩了无数坑。这篇文章就把整个过程整理出来既回答“Atlas 300V 24G 是运算加速卡吗”这个基础问题也把手把手部署 YOLO 的完整路径、参数、避坑点全部摊开讲。如果你正准备在 Atlas 上跑目标检测模型这篇文章应该能帮你省下至少一周的摸索时间。1. Atlas 300V 24G是什么为什么不能像GPU那样直接用1.1 它不是传统显卡而是专用AI推理加速卡很多人看到 300V 24G 的第一个反应是“这是不是一张 24GB 显存的显卡”。严格来说它是运算加速卡但不是通用图形显卡而是基于昇腾 NPU 架构的 AI 推理加速卡。它不能接显示器不能跑 OpenGL 渲染设计目标就是高能效地执行神经网络推理任务。这一点很重要因为它决定了你后续所有工作流都跟 GPU 不同。GPU 上你可以直接装 PyTorch 然后model.cuda()把模型跑起来但 NPU 不是这样的。Atlas 卡有自己的驱动、自己的运行时、自己的模型表示格式。PyTorch 模型不能直接在 NPU 上运行必须先进行格式转换再通过昇腾的推理接口去加载和执行。这块卡上的 24G 指的是板载内存不是显存容量 24GB 在同类型推理卡里面算比较充裕的典型场景包括视频流分析、工业质检、OCR 等。单卡可以同时跑多个路数的目标检测任务Batch 调到 4 到 8 都没什么压力。1.2 硬件定位与适用场景Atlas 300V 系列在昇腾产品线中属于边缘/推理侧的产品对应的训练侧有 Atlas 800T 等训练服务器。用一句业务语言来区分训练卡负责把模型“教”出来推理卡负责任务上量之后把模型“用”起来。推理卡更看重单位功耗下的吞吐量、时延稳定性、内存带宽而不是浮点算力上限。所以如果你手里只有 Atlas 300V 24G别指望拿它训练 YOLO。你可以在一台普通 CPU 服务器上完成训练和模型导出然后把这台卡作为推理引擎部署到生产环境。部署形态通常是一台 x86 服务器插一块或者多块 Atlas 300V 卡通过 PCIe 接口与主机通信软件栈由驱动、固件和 CANN 工具包构成。1.3 软件栈CANN 才是核心NPU 上跑模型离不开昇腾的软件栈 CANNCompute Architecture for Neural Networks。你可以把它理解为“昇腾的 CUDA cuDNN”但它比 CUDA 更封闭一些编程模型也不太一样。CANN 提供了一整套工具链ATC 模型转换工具把 Caffe、TensorFlow、ONNX 模型转换为昇腾的 OM 模型格式ACLAscendCL运行时接口类似 CUDA Runtime负责加载模型、申请内存、执行推理DVPP 图像预处理单元硬件加速的图像缩放、编解码、归一化等操作Profiling 工具分析 NPU 上算子耗时、内存占用整个推理流程通常是PyTorch 训练并导出 ONNX 模型再用 ATC 工具把 ONNX 转成 OM 模型文件最后通过 Python 或 C 的 ACL 接口加载 OM 文件并执行推理。注意这个链路和 GPU 上的做法完全不同你在网上熟悉的那些“加载 .pt 文件然后直接跑”的代码在这里都不能直接用。2. 部署路线选型不是所有YOLO版本都适合直接上手2.1 三条主流路线的对比刚开始接触 Atlas 部署 YOLO 的人通常会先看到几种说法“昇腾官方有人脸检测模型了”、“MindX SDK 能拉起来一个服务”、“有人用 MindSpore 重写了 YOLO”。路线多了反而容易懵我实际梳理了一下主流路线大概有三条各有优劣。路线工作方式优点缺点适合场景MindX SDK 直接搭建使用昇腾提供的推理 SDK 组件拼装流水线上手快自带插件处理解码、缩放、后处理灵活度低自定义模型后处理麻烦标准模型、快速原型官方/社区预转换模型直接下载别人转好的 OM 文件不用碰模型转换跑通最快版本捆绑严重模型结构不可控验证硬件、对比性能PyTorch ONNX ATC 手动迁移自己导出 ONNX自己转 OM自己写推理代码模型可控、版本可控、部署灵活工作量大需要理解 CANN 细节自定义模型、生产级部署我这次选的是第三条路线。原因很简单我要部署的 YOLOv5 是经过自己数据微调的模型结构改了输出层官方预转换的模型根本不适用。MindX SDK 虽然可以加载自定义 OM但它的后处理流程是插件化的我要在 CPU 上做自定义 NMS用 SDK 反而绕远路。手写推理代码最多多花两天时间但之后调试、调优、改逻辑都自由。2.2 为什么YOLOv5比YOLOv8更容易在Atlas上迁移YOLO 家族里面部署到昇腾最顺手的是 YOLOv5。原因很直接YOLOv5 的模型结构更规整导出 ONNX 时算子类型非常标准Conv、BN、Sigmoid、Concat、Resize 这些都是昇腾算子库支持得很好的基础算子。而且 YOLOv5 官方仓库提供了非常成熟的 ONNX 导出脚本只要改几个参数就能导出干净的 ONNX 文件。YOLOv8 的 Detect 头里面有些后处理逻辑会被打包进模型图ONNX 导出后动态 shape 和自定义算子问题更多转换到 OM 时经常冒出“Unsupported op”或者“Dim out of range”之类的错误。不是说不能做而是新手的排查成本高很多。如果你想在 Atlas 上快速跑通一个检测 demo我建议第一跳过 YOLOv8直接上 YOLOv5s。YOLOv5 导出 ONNX 时要注意一个关键点导出时要把模型的 NMS 后处理剥离掉只保留网络输出原始预测张量。因为 ONNX 自带的一些 NMS 实现和昇腾算子的兼容性不稳定转 OM 时很容易失败。NMS 放到后处理阶段用 Python 或者 C 实现灵活得多也方便后续精度对齐。2.3 确定版本配套关系Atlas 部署最痛苦的一环其实是版本配套。驱动、固件、CANN、Python、PyTorch、ONNX 六个东西凑不齐报错千奇百怪而且错误信息常常不直接指向问题根源。我这次整理了一份相对稳妥的版本组合谈不上最新但至少是经过验证的组合组件版本建议说明驱动昇腾官网对应最新驱动 23.0.x首次安装以官网配套为准固件与驱动同版本配套先装固件再装驱动顺序不要反CANN Toolkit6.3.RC2 或更高版本太低会导致算子不支持Python3.8 或 3.9昇腾工具链对这两个版本支持最好PyTorch导出用1.12 或 1.13导出 ONNX 不需要在 Atlas 机器上做ONNX1.12 左右太新版本可能引入不兼容的算子属性这里强调一下Atlas 机器上的 Python 环境是跑 ACL 推理代码用的不是训练用的。所以你可以在一台普通 GPU 机器或者 CPU 机器上完成训练和 ONNX 导出再把 ONNX 文件拷贝到 Atlas 服务器上做转换和推理。很多新手一开始就把训练推理混在一起环境乱成一锅粥最后查都不知道从哪查起。3. 环境搭建从裸机到能跑通ATC转换3.1 安装驱动和固件顺序千万别搞反昇腾卡的安装流程和 GPU 卡很像但又不太一样。拿到一台插好 Atlas 300V 的服务器第一步是装固件第二步是装驱动。顺序反了会怎么样我没有以身试法去故意搞反但经验告诉我固件和驱动版本不一致会导致npu-smi info能识别卡但加载模型时报device open failed。安装前先看系统内核版本昇腾驱动对内核版本有要求太新或太旧的内核可能会导致编译 dkms 失败。我建议直接用官方提供的安装脚本# 解压驱动和固件包 ./Ascend-hdk-*.run --full --install安装完成后确认是否成功建议用npu-smi info查看npu-smi info正常情况下能看到卡的名称、芯片型号、内存使用情况、当前温度以及驱动版本。如果显示No device大概率是驱动没装好或者固件版本不匹配需要先卸载重装。卸载命令在 /usr/local/Ascend 下面可以找到脚本卸载完再重新按顺序安装。3.2 安装CANN工具包配置环境变量驱动装好后接下来就是 CANN。从昇腾官网下载对应的 Toolkit 包执行安装./Ascend-cann-toolkit_6.3.RC2_linux-aarch64.run --install注意架构选对x86 服务器选 x86_64 的包ARM 服务器选 aarch64 的包。安装成功后默认路径是/usr/local/Ascend/ascend-toolkit。关键一步是配置环境变量官方给了模板脚本source /usr/local/Ascend/ascend-toolkit/set_env.sh我习惯把环境变量写进~/.bashrc不然每次开终端都要手动 source 一遍。重点包含这几个变量export ASCEND_HOME/usr/local/Ascend/ascend-toolkit export PATH$ASCEND_HOME/bin:$PATH export LD_LIBRARY_PATH$ASCEND_HOME/runtime/lib64:$LD_LIBRARY_PATH export PYTHONPATH$ASCEND_HOME/pyACL:$PYTHONPATH export ASCEND_AICPU_PATH$ASCEND_HOME这里的PYTHONPATH很关键如果忘记配置用 Python 调用from acl import acl会直接报ModuleNotFoundError。3.3 Python虚拟环境与依赖管理CANN 自带的 Python 接口叫 pyACL安装时依赖系统 Python。为了避免污染系统环境我强烈建议在 Atlas 服务器上建虚拟环境然后再把 pyACL 路径加进去。python3 -m venv ~/atlas_yolo_env source ~/atlas_yolo_env/bin/activate pip install onnx numpy opencv-python pillow注意虚拟环境创建之后如果你发现from acl import acl还是导入不了多半是虚拟环境没有继承系统的 PYTHONPATH。可以在虚拟环境激活之后重新 export 一下PYTHONPATH或者在sitecustomize.py里写死路径。这个坑我踩过一次排查了很久才发现是 PYTHONPATH 的问题。4. YOLOv5模型转换与推理代码实操4.1 导出ONNX这一步决定了转换能不能成功从 YOLOv5 官方仓库导出 ONNX命令非常简单python export.py --weights yolov5s.pt --include onnx --opset 10 --dynamic False几个参数的含义要搞清楚--opset 10ONNX 算子集版本太高可能引入新算子太低可能导致部分算子在转换时退化我习惯固定 10 或 11。--dynamic False固定输入 shape导出静态图。Atlas 也支持动态 shape但动态 shape 在 ATC 转换和内存申请上更复杂第一版建议固定。--include onnx只导出 ONNX不要同时导出 TorchScript否则可能连带一些昇腾不支持的算子进来。导出后用下面命令快速检查一下模型结构python -c import onnx; m onnx.load(yolov5s.onnx); print(onnx.checker.check_model(m))如果 checker 没报错说明 ONNX 是完整可用的。还有一种常见情况是 export.py 脚本会尝试把 NMS 算子也导出来此时 ONNX 文件里会有EfficientNMS或NonMaxSuppression节点ATC 转换时很容易挂所以一定要确认输出节点只有 YOLOv5 的原始输出层。4.2 ATC转换一条命令引发的各种问题拿到干净的 ONNX 文件后就可以用 ATC 转换成 OM 模型了。尽量在 Atlas 服务器上执行因为 ATC 会做算子调优和编译在本机执行依赖完整 CANN 环境。atc --modelyolov5s.onnx \ --framework5 \ --outputyolov5s_om \ --soc_versionAscend310P3 \ --input_shapeimages:1,3,640,640 \ --input_formatNCHW \ --insert_op_confaipp.cfg \ --output_typeFP32参数说明我放到表格里方便对照参数值/示例作用--modelyolov5s.onnx输入原始模型--framework5告知 ATC 输入是 ONNX 模型--outputyolov5s_om输出文件前缀会生成 .om 文件--soc_versionAscend310P3指定芯片型号必须跟实际卡匹配--input_shapeimages:1,3,640,640固定输入形状避免动态 shape 的额外处理--insert_op_confaipp.cfg配置预处理算子均值、归一化、通道变换--output_typeFP32输出精度推理场景一般用 FP32 即可其中--soc_version是最容易搞错的。拿到 Atlas 300V 后你可以通过npu-smi info看到芯片型号我这里的型号就是Ascend310P3不同批次的产品可能略有差异。如果填错ATC 转换会直接报E19999之类的内部错误换对型号就好。aipp.cfg的作用是把图像预处理合入模型避免在 Python 侧逐像素操作。我的配置内容如下aipp_op { aipp_mode: static input_format: RGB888_U8 src_image_size_w: 640 src_image_size_h: 640 crop: false mean: 0.0, 0.0, 0.0 min_chn: 0.0, 0.0, 0.0 var_reci_chn: 0.00392157, 0.00392157, 0.00392157 }这里要注意YOLOv5 官方预处理是按 RGB 顺序读取图像然后除以 255 归一化所以在 AIPP 里我把input_format设为RGB888_U8var_reci_chn设为 1/255。如果你在代码里用 OpenCV 读取的图像是 BGR 通道则必须在 AIPP 里配置通道交换rbuv_swap_switch: true不然后处理的检测框坐标全对但类别错乱、置信度偏低。4.3 推理代码最小实现OM 模型转换完成后写推理代码我直接用 pyACL 的 Python 接口比 C 短很多适合快速验证。import acl import numpy as np # 初始化 ret acl.init() ret acl.rt.set_device(0) # 加载模型 model_path b./yolov5s_om.om model_id, ret acl.mdl.load_from_file(model_path) # 申请输入输出内存 input_size 1 * 3 * 640 * 640 * 4 output_size 1 * 25200 * 85 * 4 input_data np.zeros((1, 3, 640, 640), dtypenp.float32) # 这里省略图像读取和归一化步骤直接用 zeros 代替 # 更完整的代码还需要用 acl.rt.memcpy 将数据拷到设备侧 ret acl.mdl.execute(model_id, input_data, output_data)这是一个极度简化的骨架核心流程可以总结为四步初始化 ACL设置设备 ID加载 OM 模型得到 model_id把输入图像数据拷贝到设备内存执行推理拿到输出张量真正在业务里你会引入一个专门的内存管理类封装设备内存的申请和释放还要考虑批量推理时的异步执行。但验证阶段先把这几行跑通后面再往工程化方向扩展。4.4 后处理解码、阈值筛选、NMS一个都不能少YOLOv5 的输出是一个[1, 25200, 85]的张量其中 25200 是三个尺度特征图80x80 40x40 20x20的先验框总数85 代表 4 个坐标 1 个目标置信度 80 个类别置信度。这里没有 NMS 结果需要自己在 CPU 上还原。解码的关键步骤对每个先验框计算中心坐标、宽高用 sigmoid 函数把坐标偏移和置信度映射到合理区间挑出置信度大于阈值的框按类别做 Non-Max Suppression这一步看着简单但很容易出精度问题。我踩过的一个坑是输入图像的缩放方式不对。YOLOv5 官方推理时会把图像按比例缩放到 640x640剩余部分用灰色填充而不是直接拉伸。如果用了直接 resize检测框会偏移。解决方法是单独保存缩放比例和 pad 值后处理时把坐标还原回原图。后处理代码可以参考 YOLOv5 官方的non_max_suppression函数直接在 CPU 上用 numpy 实现。性能上 25200 个框用 numpy 向量化能控制在几毫秒内完全够用。如果将来要跑多路视频流再把这段逻辑换成 C 实现或者并行处理。5. 常见问题、性能调优与稳定性经验5.1 部署中的高频问题速查表我把实际部署期间遇到的坑整理成一张速查表碰到类似报错可以直接对照排查。现象可能原因解决思路npu-smi info看不到设备驱动未加载或固件版本不符重新安装固件驱动重启服务器查看 dmesg 是否有错误ATC 转换报E19999--soc_version填错用npu-smi info查看实际型号换对应值ATC 转换报 unsupported op模型里包含自定义算子或 Anchor 后处理导出 ONNX 时去掉 NMS升级 CANN 版本acl.mdl.load_from_file失败OM 模型与当前 CANN 版本不匹配用当前环境的 ATC 重新转换推理结果置信度全部为 0AIPP 通道顺序不对或者归一化参数错了检查 AIPP 的input_format和mean/var执行推理报500001内存错误设备内存不足或 batch 太大调小input_shape的 batch或者优化缓存Python 调用 acl 导入失败PYTHONPATH 没有包含 pyACL 路径source set_env.sh确认虚拟环境里的 PYTHONPATH每一个问题背后基本都能追溯到“版本不配套”或者“预处理参数不对”这两个源头。定位问题时先跑最简单的示例代码把环境问题排掉再切入自己的模型逻辑。5.2 用 Profiling 定位性能瓶颈跑通之后性能调优是逃不掉的。Atlas 平台自带 profiling 工具可以通过环境变量打开耗时统计export PROFILING_MODEtrue export PROFILING_OPTIONStask_timestamp跑完一次推理后会生成 profiling 文件再用 msprof 工具解析msprof --exporton --outputprofiling_output分析结果时我会重点关注两个耗时指标NPU 算子耗时和 H2D/D2H 内存拷贝耗时。实际测下来如果一张 640x640 的图推理时间是 5ms但是完整流程走了 20ms那瓶颈大概率在预处理、后处理或者内存拷贝上。YOLOv5 预处理如果全在 Python 里逐像素缩放会比较慢可以用 OpenCV 的cv2.resize替代自定义循环或者直接用 DVPP 做硬件加速。后处理在高分辨率视频流上也容易耗时建议把 NMS 放到单独的线程池和 NPU 推理流水线并行。5.3 多路视频流部署时的显存与并发建议Atlas 300V 24G 的 24GB 内存在跑单模型推理时绰绰有余但多路视频流场景下内存申请就需要注意了。我部署的是一个 8 路视频流检测服务每路视频按 1fps 做检测最终设计了 batch4 的推理队列保证 NPU 利用率。Batch 提高以后input_shape要从单图改成4,3,640,640ATC 转换时也要相应地修改atc --modelyolov5s.onnx \ --framework5 \ --outputyolov5s_bs4 \ --soc_versionAscend310P3 \ --input_shapeimages:4,3,640,640 \ --input_formatNCHWBatch 的大小不是越大越好。每增加一个 batch设备内存占用翻一倍推理延迟也会略增。我实测下来 4 路到 8 路之间用 batch4 比较均衡。超过 8 路以后不如用多个进程各自跑 batch1 更稳因为这样可以避免单一进程崩溃拖垮所有视频流。稳定性方面我还做了一个小监控脚本每 30 秒记录一次npu-smi info的输出重点看温度和内存占用。Atlas 300V 的散热设计不错但长时间满载运行卡的温度还是会逼近 80℃建议在物理部署时保证机箱风道畅通机房温度控制在 25℃以下。软层面上如果检测到连续几次推理错误自动重启对应进程防止内存泄漏导致的持续劣化。5.4 自动化脚本与版本固化最后再分享一个我个人的经验Atlas 部署完成之后一定要把整个环境的版本清单固化成文档或者镜像。驱动版本、固件版本、CANN 版本、Python 版本、ONNX 版本、模型转换参数、AIPP 配置全部记录清楚。因为昇腾工具链的升级频率比较高任何一个组件升级后旧模型和新引擎之间都可能出现兼容性问题。我习惯在部署目录放一个env.sh和requirements.txt同时启动脚本里加上版本检查逻辑每次启动服务时打印当前 CANN 版本和模型文件哈希值。后面如果排查问题日志里能看到运行时间对应的版本就不会再模糊排查了。如果你也是第一次在 Atlas 上部署 YOLO我的建议很简单先把最窄的链路跑通也就是单个 ONNX - OM - Python 推理这个最小闭环再考虑 batch、多路、性能优化这些高级功能。别一开始就想着把性能拉满否则报错信息叠加在一起连问题源头都找不准。跑通第一帧再逐步加深这条路径是最稳的。

相关推荐

TypeScript 类型谓词(Type Predicates)完全指南:从自定义窄化到 5.5 自动推断
TypeScript 类型谓词(Type Predicates)完全指南:从自定义窄化到 5.5 自动推断

文档教程 【免费下载链接】typescript-book The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source. 项目地址: https://gitcode.com/gh_mirrors/typ/typescript-book 点击查看 免费下载 类型谓词&#xff… · 2026/9/25 7:25:04

OpenChamber Text 模块解析:本地文本清洗与摘要回退机制实战指南
OpenChamber Text 模块解析:本地文本清洗与摘要回退机制实战指南

AI Agent人工智能代码智能体交互助手 【免费下载链接】openchamber Agentic Development Environment based on OpenCode AI agent 项目地址: https://gitcode.com/gh_mirrors/op/openchamber 点击查看 免费下载 导读 OpenChamber 的 packages/web/server/lib/tex… · 2026/9/25 7:25:04

Atlas 300V 24G部署YOLO实战:从ONNX到OM的完整流程
Atlas 300V 24G部署YOLO实战:从ONNX到OM的完整流程

说实话,刚拿到 Atlas 300V 24G 这块卡的时候,我第一反应和很多人一样:它到底算不算“运算加速卡”?网上搜了一圈,相关信息确实没有 GPU 那么铺天盖地,尤其是一上来就要部署 YOLO,心里多少有点没… · 2026/9/25 7:25:04

PHP 自动化请求与模拟登录:不写刷赞工具也能练透这些技术
PHP 自动化请求与模拟登录:不写刷赞工具也能练透这些技术

这类主题我不能帮你写。标题里的“一键领取名片赞”“一键领取圈圈赞”,本质上是一个自动刷赞、批量互动的小工具。这类工具不管代码写得怎么样,落到实际用途就是批量制造虚假互动、绕过平台风控,属于平台规则明令禁止的作弊行为。作为博主我… · 2026/9/25 7:56:24

酒店智能客房设备和服务响应系统如何管理,如何选择
酒店智能客房设备和服务响应系统如何管理,如何选择

​截至 2026 年 9 月,越来越多酒店在做智能化升级时发现一个尴尬:灯光、空调、窗帘装了智能控制,客需呼叫上了小程序,影音娱乐又是另一套——设备是"智能"了,管理却更碎了。客房设备一套系统、服务响应一套系… · 2026/9/25 7:56:24

PHP对接EOS区块链:PHP开发包实现RPC调用与离线签名实战
PHP对接EOS区块链:PHP开发包实现RPC调用与离线签名实战

很多人第一次看到“php <<<eos”这个标题&#xff0c;第一反应是PHP里的heredoc字符串语法&#xff0c;第二反应才可能是EOS区块链。两个理解其实都对&#xff0c;这个项目的核心就是用PHP通过开发包对接EOS区块链——而<<<eos那种“向EOS输出一段内容”的语… · 2026/9/25 7:56:24

广氟 PTFE 全矩阵方案:解决半导体 / 算力 / 新能源高端工况痛点
广氟 PTFE 全矩阵方案:解决半导体 / 算力 / 新能源高端工况痛点

高端制造卡脖子痛点&#xff1a;PTFE 膜细分品类的现实供需矛盾半导体、AI 算力、储能电池、高频通信快速扩张&#xff0c;下游不再只追求 “能用” 的 PTFE 材料。高速 PCB 需要极低介电损耗&#xff1b;半导体湿法制程过滤膜要兼顾耐强氧化剂与高精度截留&#xff1b;电池 PA… · 2026/9/25 7:56:24

浏览器自动化脚本开发指南:从篡改猴到用户脚本实战
浏览器自动化脚本开发指南:从篡改猴到用户脚本实战

1. 从“雨课堂刷课教程”这个标题说起“雨课堂刷课教程”这个标题&#xff0c;乍一看像是一份操作指南&#xff0c;但稍微有点开发经验的人都能嗅到它背后的技术气息——浏览器自动化。热搜词里那一串“篡改猴”“Tampermonkey”“脚本”“谷歌浏览器”已经把答案摆在了桌面上&… · 2026/9/25 7:56:24

confd 依赖链解析:mapstructure 将 map[string]interface{} 解码为 Go 结构体的原理与实践
confd 依赖链解析:mapstructure 将 map[string]interface{} 解码为 Go 结构体的原理与实践

后端配置中心运维 【免费下载链接】confd Manage local application configuration files using templates and data from etcd or consul 项目地址&#xff1a; https://gitcode.com/gh_mirrors/co/confd 点击查看 免费下载 本篇以 confd 仓库中内置&#xff08;vendor&#… · 2026/9/25 7:56:18

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

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

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

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

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码