尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
华为Atlas 300V 24G部署YOLOv5实战:从模型转换到性能调优
说实话第一次听到“Atlas”这个名字我以为是地图软件。后来在边缘计算项目里接触到了华为的Atlas系列AI加速设备才发现这是一整套覆盖训练、推理、边缘部署的计算平台。尤其是Atlas 300V 24G这张推理卡最近问的人特别多核心问题基本都是两个它到底算不算运算加速卡能不能拿来部署YOLO做目标检测这篇文章我不打算复述官网参数而是把自己实际部署YOLOv5到Atlas 300V 24G的完整过程、方案取舍、性能调优和踩坑记录一次性讲清楚。内容面向准备在边缘设备上落地目标检测的工程师不管是刚接触Ascend生态还是已经在用但被各种报错折腾得头疼应该都能从这里找到答案。1. Atlas 300V 24G到底是一块什么卡1.1 它和显卡、GPU加速卡有什么区别先说结论Atlas 300V 24G是一块AI推理加速卡严格来说不是传统意义上的“运算加速卡”更不能把它当成一张通用GPU来用。很多刚接触的人会拿它和NVIDIA的显卡类比这个方向对但不完全对。Atlas 300V是华为基于自研达芬奇架构做出来的PCIe卡24G这个版本通常对应Atlas 300V Pro板载内存24GB主打边缘侧视频分析、目标检测、图像分类这类推理负载。它和GPU最大的区别在于GPU是通用并行计算设备你写CUDA代码做数值计算、图形渲染、科学模拟都没问题而Atlas 300V的芯片是ASIC思路算子流水线固定得比较死专门为神经网络推理设计了AI Core跑CNN类模型效率极高但如果你想拿它做通用并行计算不好意思它没有类CUDA的通用编程模型。打个比方GPU像是一个什么菜都能做的中央厨房Atlas更像是一条专门做快餐的全自动流水线。做固定的那几个菜又快又省电但你想在流水线上临时研发一道新菜就得专门去开发适配它的算子。这个定位决定了它的真实使用场景模型固定、算力需求明确、功耗和成本敏感的边缘项目。比如智慧园区里的安全帽检测、工地渣土车识别、电力巡检图像分析、工厂质检这些场景模型常年不变推理并发要求可控Atlas 300V 24G的性价比就体现出来了。单卡可以插在标准x86服务器上不需要额外供电线半高半长的板卡设计对服务器机箱的兼容性也不错单卡功耗大概在70W到80W区间相比一块T4都省了不少能耗。1.2 达芬奇架构与CANN软件栈为什么软硬件要一起理解很多人在Atlas上栽跟头第一道坎就是没搞清楚它的软件栈。Atlas不认PyTorch的.pt文件不认TensorFlow的.pb它只认自己的一套运行时格式。整套软件体系的核心是CANN全称是Ascend Computing Language华为自己的异构计算架构。你可以把它理解成Atlas上的CUDA cuDNN TensorRT的集合体。CANN上层接的是MindSpore和MindSpore Lite这类框架底层调用的是ACLAscend Computing Language Runtime接口ACL再驱动达芬奇芯片上的AI Core执行算子。这里有个非常重要的概念达芬奇架构的算力核心叫AI Core每个AI Core内部是Cube单元和Vector单元的配合Cube负责矩阵乘加这种卷积层的核心计算Vector负责激活函数、归一化这类逐元素操作。所以算子能不能在AI Core上高效执行直接决定了你的模型跑得快不快。理解了这层关系你就能明白为什么在Atlas上部署模型不是简单地装个驱动就能跑。你要跟他打交道的核心工具链包括驱动与固件让操作系统识别到PCIe设备npu-smi info能看到卡的基本信息和健康状态。CANN Toolkit提供ATC模型转换工具、ACL运行时库、算子开发调试工具等。MindSpore Lite或者ACL开发套件用于编写推理脚本加载OM模型执行推理。这套东西初看有点绕但实际上手之后你会发现它有一个很明确的分工驱动管硬件CANN管编译和运行推理框架管API调用。后面整个部署流程其实就是在跟这三层打交道。2. 在Atlas上部署YOLO的核心链路与方案设计2.1 为什么用Atlas跑YOLO而不是直接上GPU项目选型的时候团队内部其实有过激烈的争论。有人坚持用GPU服务器理由很简单生态成熟PyTorch训练完直接就能推理社区资料多遇到问题一搜就有答案。但我们的项目场景是几十个边缘节点每个节点要跑多路视频流目标检测对单卡功耗、体积、成本都有硬指标。算一笔简单的账一台配了T4的服务器单卡功耗75W左右再加整机功耗和散热成本一年下来的电费和维护成本不低。Atlas 300V 24G单卡功耗基本在同一水平但价格低不少而且提供24GB板载内存对于YOLOv5s、YOLOv8s这种参数量不大的模型多batch并发时内存非常充裕。再加上Atlas在INT8量化后的性能很可观实测下来单位算力的成本明显低于通用GPU方案。但也要说句公道话如果你的需求是频繁换模型结构、做训练推理一体化、对大量自定义算子有强需求那Atlas的生态灵活度确实不如CUDA生态现在的CANN对常见算子的覆盖已经很好但冷门算子偶尔还是要自己适配。所以我的建议是模型相对固定、推理场景明确、有批量部署需求的边缘项目Atlas很合适如果只是拿来随便跑跑实验那还得权衡一下学习成本。2.2 模型转换链路从PyTorch权重到OM离线模型在Atlas上跑YOLO最核心的一环是把训练好的模型转换成Atlas能执行的OM格式。整个链路大概是PyTorch权重 - ONNX - OM通过ATC工具转换为什么要经过ONNX因为ATC的模型适配器虽然支持多种框架格式但ONNX是目前兼容性最稳的中间格式社区对ONNX的支持也最完善。YOLOv5和YOLOv8官方都提供了导出ONNX的脚本操作起来非常方便。ONNX转OM这一步是真正的核心。ATC工具会做几件事把ONNX的计算图解析出来做图优化和算子融合然后根据目标芯片的架构进行算子排布最终生成一个带完整运行配置的离线模型文件。这个过程中你需要指定很多关键参数比如输入数据的shape、芯片型号、预处理方式、输出节点等任何一个地方写错模型转换就会失败或者推理结果不对。这里必须提醒一个新手最爱犯的错在GPU上训练好的模型默认输入是NCHW排布通道顺序通常是RGB但你用OpenCV读图读出来是BGR如果不做处理出来的检测框问题会很离谱。这些问题在后续实战部分我会展开讲。2.3 整体方案架构设计结合我们实际项目的形态我建议把整个系统拆成几个独立模块来做清晰也方便排查视频流拉流模块用FFmpeg或者GStreamer拉RTSP流解码成YUV或RGB帧。图像预处理模块做resize、letterbox、归一化、通道转换。这一步可以在CPU上做也可以用Atlas的DVPP硬件模块来做部分加速。推理模块把预处理好的图像数据拷贝到Atlas设备端执行OM模型推理拿到原始输出张量。后处理模块解析模型输出的锚框、置信度、类别执行NMS得到最终检测结果。业务模块把结果上报给业务平台画框保存或者触发告警。这套架构在应用层看来推理模块就是一个黑盒输入一张处理好的图像输出一组检测结果。如果你的模型和需求相对固定模块之间的耦合度可以设计得很低后续换模型只需要重新转换OM并调整预处理参数推理模块的代码几乎不用大改。3. 实战操作把YOLOv5完整跑在Atlas 300V上3.1 环境准备驱动、固件、CANN Toolkit和Python环境环境安装是整个过程中最容易让人崩溃的环节因为不同版本之间的依赖关系非常严格必须按顺序来。先把系统环境确认好我使用的是Ubuntu 20.04的干净系统这个系统的兼容性比较好资料也多。首要任务是装驱动和固件。驱动是让系统识别Atlas卡的关键固件是芯片内部的微码程序。安装包可以从华为官方支持页面下载注意一定要选择和操作系统内核版本匹配的驱动包。装完后重启在终端执行npu-smi info命令如果能列出卡的名字、温度、内存使用率说明硬件驱动已经正常。然后安装CANN Toolkit。安装包是个.run文件解压后执行安装脚本即可。安装完成后非常重要的一步是source环境变量source /usr/local/Ascend/ascend-toolkit/set_env.sh这个环境变量脚本会把ATC工具路径、ACL运行库路径、Python绑定路径全部加到系统环境变量里不执行这一步后面atc命令都找不到。建议把它写入.bashrc文件否则每次新开会话都要重新执行。最后创建Python虚拟环境推荐用condaPython版本选3.8或3.9太新或者太旧都可能出现依赖冲突conda create -n atlas_yolo python3.8 conda activate atlas_yolo这里有一个实测经验CANN自带的Python绑定和系统Python环境混用容易出问题最好在虚拟环境里再安装一个PyACL或者MindSpore Lite的Python包具体安装方式以你下载的CANN版本说明为准。我这次用的是MindSpore Lite作为推理框架原因是API比直接用ACL更简洁上手快。3.2 导出ONNX模型我用的是YOLOv5s作为示例反正官方代码仓库自带导出脚本直接跑python export.py --weights yolov5s.pt --include onnx --img 640 --batch 1如果用的是YOLOv8命令更简单yolo export modelyolov8s.pt formatonnx imgsz640导出完成后先用netron工具打开生成的ONNX文件确认输入节点的名称和shape。这一步非常重要不同版本的YOLO输入名称可能不同常见的有“images”、“input”等这直接关系到后面ATC转换时的参数填写。另一个关键检查点是模型的输出。YOLOv5原版导出ONNX时默认会把检测头也带进计算图也就是模型直接输出已经解码后的检测结果但有些版本或者加了修改的模型输出的是三个特征图后处理要自己写。不管哪种方式都要在netron里看清楚结构后面转换和推理策略完全不同。3.3 使用ATC完成ONNX到OM的转换这个是整个部署流程中最有技术含量的一步。先写一个AIPP预处理配置文件我这里命名aipp.cfgaipp_op { aipp_mode: static input_format: RGB888_U8 mean_value: 0.0:0.0:0.0 min_value: 0.0:0.0:0.0 csc_switch: false }这个配置的用途是在模型内部完成图像数据预处理。input_format这里我写的是RGB888_U8意思是在转换时输入的是RGB格式的Uint8图像然后在芯片内部帮你做归一化处理。mean_value和min_value组合起来计算关系是像素值减去mean再乘以scale对应YOLO需要的除以255操作。然后执行ATC命令atc \ --modelyolov5s.onnx \ --framework5 \ --outputyolov5s_atlas \ --soc_versionAscend310P3 \ --input_shapeimages:1,3,640,640 \ --insert_op_confaipp.cfg \ --output_typeFP32参数说明如下--framework5表明输入模型是ONNX格式。--soc_version指定目标芯片型号Atlas 300V Pro对应的是Ascend310P3。这里一定要查清楚自己的卡用的是什么芯片可以用npu-smi info看或者看产品规格书。写错的话后续推理必然报错。--input_shape和ONNX里的输入节点一一对应名称、维度都不能错。--insert_op_conf把AIPP配置文件嵌入到模型里。转换过程会在终端打印很多日志看到“Success”字样基本就说明成功了。如果中间报错大部分情况是算子不支持、输入名不匹配、芯片型号设置错误这三类问题后面在第5章我会展开讲排查思路。转换成功后你会得到一个yolov5s_atlas.om文件这就是最终用于推理的离线模型。3.4 用MindSpore Lite写推理脚本模型转换好了接下来就是编写推理脚本。这里我选用MindSpore Lite的Python接口整体代码比较简洁适合快速验证。import numpy as np import cv2 import mindspore_lite as mslite # 1. 配置推理上下文 context mslite.Context() context.target [ascend] # 2. 加载OM模型 model mslite.Model() model.build_from_file(yolov5s_atlas.om, mslite.ModelType.MINDIR, context) # 3. 获取模型输入输出信息 inputs model.get_inputs() outputs model.get_outputs() print(input tensor name:, inputs[0].name, shape:, inputs[0].shape) # 4. 读取图像并预处理 img cv2.imread(test.jpg) # BGR格式 img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # letterbox处理把图像等比缩放并填充到640x640 def letterbox(img, new_shape640): h, w img.shape[:2] scale min(new_shape / h, new_shape / w) nh, nw int(h * scale), int(w * scale) resized cv2.resize(img, (nw, nh)) canvas np.full((new_shape, new_shape, 3), 114, dtypenp.uint8) dx, dy (new_shape - nw) // 2, (new_shape - nh) // 2 canvas[dy:dynh, dx:dxnw] resized return canvas, scale, dx, dy padded, scale, dx, dy letterbox(img) padded padded.astype(np.float32) / 255.0 # 转换为NCHW格式 padded np.transpose(padded, (2, 0, 1))[None] # 5. 输入数据拷贝到设备端并推理 inputs[0].set_data_from_numpy(padded) outputs model.predict(inputs) # 6. 取出输出 out outputs[0].get_data_to_numpy() print(output shape:, out.shape)这段代码跑通之后你的YOLO模型就算真正在Atlas上跑起来了。注意我这里输出结果是模型的裸输出也就是包含边界框坐标、置信度、类别概率的原始张量还需要通过后处理才能得出最终检测框这部分我们下一节说。3.5 后处理与目标框可视化后处理是整个流程里最容易被轻视却最容易出问题的环节。YOLOv5的输出格式通常是(1, 25200, 85)其中25200是三个尺度特征图的先验框数量总和85代表4个坐标值、1个置信度、80个类别概率。你要做的就是先通过置信度阈值过滤掉大量背景框然后做NMS去除重叠框最后把坐标映射回原始图像尺寸。这里特别强调坐标映射。由于我们在预处理阶段做了letterbox图像被等比缩放并填充所以模型输出的坐标是在640x640这个pad之后的坐标系里的要还原回原始图像的坐标必须把padding偏移和缩放比例反向计算回来。def postprocess(pred, conf_thres0.25, iou_thres0.45): # pred shape: (1, 25200, 85) pred pred[0] # (25200, 85) # 过滤低置信度 scores pred[:, 4] mask scores conf_thres pred pred[mask] if len(pred) 0: return [] # 获取类别和类别分数 class_scores pred[:, 5:] * pred[:, 4:5] class_ids np.argmax(class_scores, axis1) confs np.max(class_scores, axis1) # 简单NMS实现实际建议用cv2.dnn.NMSBoxes或更高效率的实现 boxes pred[:, :4] keep cv2.dnn.NMSBoxes(boxes.tolist(), confs.tolist(), conf_thres, iou_thres) results [] for i in keep: x1, y1, x2, y2 boxes[i] # 坐标还原 x1 (x1 - dx) / scale y1 (y1 - dy) / scale x2 (x2 - dx) / scale y2 (y2 - dy) / scale results.append((x1, y1, x2, y2, confs[i], class_ids[i])) return results写完这段后可以在测试图上画框验证。如果框的位置明显偏移或者大小不对九成是letterbox的缩放比例、padding偏置计算错误或者通道顺序没有统一先从这两个方向排查。4. 性能调优与工程化落地经验4.1 显存/内存管理Batch Size和动态shape的选择模型在Atlas上跑通只是第一步项目落地看的是吞吐量和延迟。Batch Size的设定是一个非常关键的调优参数。ATC转换时你可以把模型的输入shape固定成单张图也可以固定成多张图。比如把--input_shape设置为images:4,3,640,640那么模型一次推理处理4张图多个推理请求可以在Host端拼成batch再一次性提交给Atlas。这种方式能显著提高吞吐量因为AI Core的矩阵计算单元在处理更大batch时利用率更高。实测下来YOLOv5s在batch1时单帧延迟比较低但ATLAS的算力没有完全跑满batch4时单帧延迟会略涨一点但吞吐量能接近3到3.5倍提升。所以对实时视频流场景我通常建议用batch2或batch4配合多线程队列把多路视频流的数据聚合成batch处理而不是为每路视频流单独起一个推理请求。另外还有动态batch的方案通过--dynamic_batch_size1,2,4,8参数指定多个可选的batch值运行时再指定具体维度。这个方案看起来灵活但动态shape会导致算子排布无法针对每个batch做最优化实际性能会有损耗在能预估并发的边缘项目里我还是建议用固定batch。4.2 AIPP预处理下推减少Host与Device之间拷贝图像预处理放哪里做直接影响推理延迟。很多人习惯在CPU端用OpenCV做完全部预处理再传数据给Atlas这在数据量小的时候没问题但多路视频流场景下CPU端的预处理会成为瓶颈而且Host和Device之间的数据拷贝消耗也不小。AIPP的核心理念是把一部分预处理放到芯片内部的AI Core前面在数据从DDR进入AI Core之前就完成归一化、减均值、色域转换等操作。这样你在Host端只需要把原始图像数据拷到设备端芯片内部自动完成后续处理省掉了中间多次拷贝。我的实际做法是letterbox这种需要动态计算填充尺寸和偏移的操作放在Host端做用OpenCV完成归一化和通道转换通过AIPP配置直接下沉到芯片内部。这样既兼顾了灵活性又减轻了CPU负担。实测在多路输入场景下这个调整能让CPU占用率降低大概15%到20%。4.3 NMS放置策略AI Core还是CPUYOLO全流程的最后一个算力大户是NMS。NMS这个算子比较特殊它的流程里有大量排序、比较和条件跳转不是典型的矩阵运算所以在达芬奇架构的AI Core上跑这种算子效率远不如在CPU上跑。如果你直接拿带完整检测头的ONNX模型转OMATC可能会尝试把NMS算子也调度到AI Core上甚至在算子不支持时回退到CPU端这个过程可能引发性能问题。我在实际项目里改为把检测头从模型里拆出去ONNX只导出Backbone和Neck的特征图输出然后在Host端用Python或者C写NMS和坐标解码。这样虽然要自己维护后处理代码但好处是模型的输出结构更可控NMS也可以用成熟库优化整体延迟反而更低。4.4 多路视频流场景的调度思路最后说一下多路视频流的调度。边缘项目里经常需要同时分析多路RTSP视频流这里最容易犯的错是每一路流起一个线程每个线程单独做预处理、推理、后处理线程间互相争抢资源。更好的做法是生产者-消费者模式拉流解码线程只负责往图像队列里放原始帧一个Batch组装线程把队列里的帧拼装成固定大小的batch推理线程只负责把batch交给Atlas执行返回结果后再分发给对应的后处理回调。通过这种流水线方式模型的算力始终是打满的CPU和AI Core之间的等待时间也降到最低。我当时用4路1080p视频流做压测YOLOv5s模型batch4在Atlas 300V 24G上整体帧率能做到25FPS以上每路视频还能保持15FPS以上的实时性功耗也不高。这个成绩在同等功耗的普通CPU方案下是做不到的。5. 常见问题速查与排查技巧5.1 模型转换失败E19999与算子不支持ATC转换报错是最高频的问题。如果你看到类似E19999这种内部错误十有八九是模型里有某个算子找不到适配实现。处理思路分三步先把ONNX模型放到netron里把报错信息里提到的节点名称对应到具体操作如果这个操作是自定义算子比如你自己写的C插件那就需要在CANN里注册算子或者改用等效的标准算子组合如果这个操作是标准算子检查一下CANN版本是不是太老升级到新版本通常能覆盖更多算子。另外还有一个让人崩溃的坑ATC转换时提示“Input shape mismatch”或者找不到输入节点。这个就是输入名不匹配用netron确认ONNX的实际输入名再修改--input_shape参数即可。不要用网上教程里的默认名字一定要以自己的模型为准。5.2 推理输出全零或检测框完全不对模型能跑但输出结果全零这个问题的根源几乎都在数据预处理上。最常见的有三类第一输入图像没有除以255数值范围还在0到255之间超出模型在训练时看到的输入分布第二通道顺序错误OpenCV读出来是BGR但模型训练时用的是RGB直接喂进去检测框会异常第三输入排布错误模型期望NCHW但你的numpy数组是NHWC。排查方法很简单在你自己的训练环境里拿同一张测试图、同一套预处理pipeline和同一份模型权重做一次GPU推理对比GPU推理输出和Atlas的输出。如果GPU正常但Atlas不对那就是预处理参数配置问题如果GPU本来就不对就是你预处理脚本有问题。检测框位置偏得离谱比如框跑到图像边缘或者完全没有框九成是letterbox的缩放和填充逻辑不对。记住一个核心原则模型在640x640坐标系里预测的坐标必须反向映射到原始图像坐标之后才能画框中间的scale和offset一定要算对。5.3 性能上不去先别怀疑卡看看这几个地方如果你发现Atlas推理延迟比预期高很多或者吞吐量上不去我排查的顺序是这样的先用npu-smi info看卡的算力利用率和内存占用如果利用率只有百分之二三十说明模型没有把AI Core喂饱检查batch是否太小、预处理是否变成了瓶颈再看Host和Device之间数据拷贝的次数每多一次拷贝就等于白多一份延迟还要检查后处理是不是都堆在CPU上NMS如果每帧都在Python里跑几千个框的排序CPU很容易被拖垮。还有一个容易被忽略的点环境变量是否用了多进程推理。MindSpore Lite和ACL都支持多线程并发推理如果你只开单线程模型虽然默认支持多batch但请求提交的并发度不够AI Core还是吃不饱。建议多路场景用线程池去维护并发推理请求。5.4 常用排查命令清单这里整理一张我平时排查问题必用的命令表建议直接收藏目的命令说明查看卡状态与算力npu-smi info查看驱动是否正常、温度、显存占用、算力利用率查看设备内存npu-smi info -t mem查看设备端内存使用详情排查内存泄漏查看进程日志dmesg | grep -i ascend查看底层驱动日志芯片异常时通常能看到记录查看ATC转换日志atc ... --loginfo转换失败时用info级别日志定位具体算子检查环境变量echo $ASCEND_HOME_PATH确认CANN环境是否正常配置MindSpore Lite版本python -c import mindspore_lite; print(mindspore_lite.version)确认推理框架版本与CANN是否对应最后再分享一个小技巧Atlas的调试不像GPU环境那么直观我强烈建议把推理脚本做成可复现的单元测试。准备一张固定的测试图片把预处理、推理、后处理每一步的中间结果都用np.save保存下来这样每次改完参数直接对比中间结果就能快速定位问题不用反复盯着一堆无意义的报错日志猜。按照这套实践流程我从拿到Atlas 300V 24G到跑通YOLOv5、再到接入多路视频流完成工程化落地大概用了两个星期。最难的不是写代码而是理解它的软硬件设计逻辑模型转换的思路、预处理的定位、算子排布的优化空间这些理解透了后面换模型、换场景都只是重复一遍流程而已。
RELATED

相关推荐

Atlas 300V实战:基于昇腾AI加速卡的YOLO推理部署全攻略

Atlas 300V实战:基于昇腾AI加速卡的YOLO推理部署全攻略

1. Atlas 300V到底是什么先说结论:Atlas 300V Pro(也就是大家常说的Atlas 300V 24G)确实是一块运算加速卡,但它不是普通意义上的“显卡”。它是一块专门为AI推理设计的加速卡,主要任务是把已经训练好的深度学习模型&am…

📅 2026/9/25 15:56:39
SpringBoot整合MQTT实现软硬件通信实战

SpringBoot整合MQTT实现软硬件通信实战

1. 项目概述:为什么软硬件通信必须跨过“协议鸿沟”在工业现场、智能楼宇、农业物联网这些真实场景里,我见过太多团队卡在同一个地方:后端服务写得再漂亮,前端页面再炫酷,一到要跟温湿度传感器、PLC控制器、电表采集器…

📅 2026/9/25 15:56:39
AI时代FDE前线部署工程师:从需求勘探到交付的实战方法论

AI时代FDE前线部署工程师:从需求勘探到交付的实战方法论

1. 从"实现不再是瓶颈"说起:FDE 到底在解决什么问题这两年跟不少做研发的朋友聊天,大家有个共同的感受:写代码这件事本身,正在变得越来越不"值钱"。不是说代码不重要,而是说"把需求翻译成能跑…

📅 2026/9/25 15:56:39
MORE NEWS

更多资讯

📰

《机器学习快速入门》10周教学提纲

文章目录《机器学习快速入门》10周教学提纲(精简实践版)课程定位第1周:机器学习是什么?第1课:认识机器学习内容三类学习方式1.监督学习2.无监督学习3.强化学习实践第2周:从数据到模型第2课:机器…

📰

OpenCode+Harness:AI数据分析全流程实操指南

最近在折腾 OpenCode 和 Harness 这套组合,把一条数据分析全流程真正跑通之后,我忍不住想把它整理成一篇实操笔记。标题里的“OpenCode”指的是那个跑在终端里的 AI 编程代码智能体,“Harness”指的是负责编排和调度智能体运行的框架&#xf…

📰

AI自动化工程系统提示词:从零搭建到实战落地

1. 从零理解AI自动化工程系统提示词到底在解决什么问题很多人第一次听到“AI自动化工程系统提示词”这个词,脑子里浮现的可能是某个具体的工具或者某个开源项目。实际上它不是一个软件,也不是某个现成的框架,而是一套用提示词驱动AI完成工程化…

📰

毕业论文word排版之公式自动化编号及交叉引用

目录 1. 总体需求 2. 软件环境 3. 插入公式 3.1 开始新的章编号 3.2 插入编号 3.3 公式居中,公式编号右对齐 3.3.1 新建“公式”样式 3.3.2 对齐公式 4. 引用公式 5. 刷新公式编号 1. 总体需求 目标:公式居中,公式编号右对齐&#x…

📰

我的C++模板的学习总结

模板总结 文章目录模板总结1.形式注意点:函数模板:类模板:2.实例化与使用注意点函数模板1.隐式实例化(直接使用)2.显示实例化类模板3.非类型模板参数(常量作为模板参数)注意点:形式&…

📰

5G NR通感一体化ISAC系统级模拟器设计:从OFDM波形到距离多普勒处理

简介:基于5G NR的通信感知一体化(ISAC)系统级模拟器源码工程,面向通信工程、电子信息、人工智能等专业的本科毕业设计或课程设计场景,以Matlab仿真实例完整演示5G新空口框架下的综合传感与通信联合仿真流程与数据分析方…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬