版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲老师:李锋基于AI框架应用的开发及调优项目2:AI应用开发及测试任务2.3《车载计算平台技术与应用》目录任务导入AssignmentINTRO学习目标LearningobjectivesCONTENTS0102知识准备Backgroundknowledge03任务实施Assignmentimplement课堂总结Classroomsummary040605课堂小测ClassroomquizzPART01任务导入AssignmentINTRO任务导入MDC610基于昇腾芯片,提供专用的AI框架,不仅支持多种模型的应用开发,还提供丰富的调优工具,帮助开发者更高效地优化模型性能,请从开发者的角度分析,基于AI开发框架的开发步骤和调优流程。应用开发步骤开发步骤调优流程思政专栏
大部分AI框架都是基于国外技术搭建的,这是因为在AI领域中,国外的科学家长期处于主导位置。2007年,在斯坦福任教的华裔科学家李飞飞,发起创建了ImageNet项目。为了向人工智能研究机构提供足够数量可靠的图像资料,ImageNet号召民众上传图像并标注图像内容。ImageNet目前已经包含了1400万张图片数据,超过2万个类别。Imagenet华人之光:AI
教母李飞飞思政专栏
自2010年开始,ImageNet每年举行大规模视觉识别挑战赛,全球开发者和研究机构都会参与贡献最好的人工智能图像识别算法进行评比。尤其是2012年由多伦多大学在挑战赛上设计的深度卷积神经网络算法,被业内认为是深度学习革命的开始。她在斯坦福的两年休假期间创办的AI公司WorldLabs,今年4月才成立,到现在不过3个多月,最新估值已达10亿美元(70亿人民币)!华裔科学家李飞飞华人之光:AI
教母李飞飞PART02学习目标Learningobjectives学习目标素质目标了解华人科学家在AI领域的贡献,激发学生科技强国的责任感;通过学习基于MDC的AI框架,激发学生对人工智能的研究兴趣;通过AI模型运行时的性能解析,培养学生综合分析能力。能力目标能使用ATC工具进行AI开发及测试[A18];能掌握Profiling结果分析并制定调优方案[A19]。知识目标了解性能分析解决关键途径[K23];熟悉基于MDCAI开发框架的开放方法[K24];熟悉MindStudio界面及操作方法[K25]。PART03知识准备Backgroundknowledge一、AI集成开发工具MindStudioMDC平台提供了一套工具体系链,其覆盖了软件开发集成、调测、标定、路测仿真及故障诊断等汽车的全生命周期。软件开发集成工具主要包括:配置工具MDCManifestConfigurator、应用开发工具MDCDevelopmentStudio和AI集成开发工具MindStudio。1.MDC软件开发工具链MDC集成工具运作流程一、AI集成开发工具MindStudioMMC是MDC平台的Manifest(配置文件)配置工具,用于配置MDC软件系统。1.MDC软件开发工具链(1)MDCManifestConfigurator(MMC)MDCManifestConfigurator遵循AUTOSARAdaptivePlatform规范对软件进行服务化设计和抽象化设计对抽象后的参数进行配置MDCDevelopmentStudioMMC的功能一、AI集成开发工具MindStudioMDS是MDC平台的IDE集成开发工具。1.MDC软件开发工具链(2)MDCDevelopmentStudio(MDS)导入ARXML通信框架代码MDS的功能MDCDevelopmentStudio源码编辑编译软件运行调试代码自动生成一、AI集成开发工具MindStudioMindStudio是华为面向昇腾AI开发者提供的一站式开发环境和工具集。1.MDC软件开发工具链(3)MindStudio命令行工具集一、AI集成开发工具MindStudioMindStudio连接昇腾AI处理器
与PC开发环境的开发工具。1.MDC软件开发工具链部署架构图(3)MindStudio一、AI集成开发工具MindStudioMindStudio所在的环境为开发环境,安装了昇腾AI处理器的环境(如MDC)为运行环境,实际运行用户开发的应用。1.MDC软件开发工具链(3)MindStudio工程管理集成开发环境编译运行模型转换应用开发性能分析自定义算子MindStudio的功能一、AI集成开发工具MindStudioADK开发工具包为开发者提供基于昇腾AI处理器的相关算法开发工具包。开发者可以将开发工具包安装到MindStudio上,使用MindStudio开发工具进行算法快速开发。2.ADK开发工具包ACLlibADK开发工具包ATCOPPToolkitADK开发工具包一、AI集成开发工具MindStudioACLlib是AI应用程序开发使用的API和运行库。包含AscendCL层及GE执行器等模块。AscendCL(ACL)提供C语言API库供用户开发深度神经网络应用,用于实现目标识别、图像分类等功能。2.ADK开发工具包(1)ACLlibDevice管理ACLContext管理Stream管理内存管理模型加载与执行算子加载与执行ACL提供的库媒体数据处理一、AI集成开发工具MindStudio在运行应用时,AscendCL调用GE执行器提供的接口实现模型和算子的加载与执行、调用运行管理器的接口实现Device管理/Context管理/Stream管理/内存管理等。2.ADK开发工具包(1)ACLlibAscendCL逻辑架构图一、AI集成开发工具MindStudioATC是模型和算子编译器。用于将开源框架网络模型或AscendIR定义的单算子描述文件(json格式)通过ATC工具转换成适配昇腾AI处理器的离线模型。2.ADK开发工具包(2)ATCATC工具功能框架Caffe/TensorFlow/MindSpore/ONNX基于AscendIR定义的单算子描述文件ATC工具图准备图优化图拆分图编译单算子编译Model.omfile一、AI集成开发工具MindStudio算子库,包含算子原型库及算子实现库、算子插件、融合规则。算子实现包含TBE算子、AICPU算子,另外包含算子parser。2.ADK开发工具包(3)OPP(4)Toolkit调测工具包,主要包含开发者调测应用、算子需要使用的工具包,例如profiling性能调试工具。二、MindStudio进行模型转换模型转换是进行AI应用开发的核心步骤,用户使用Caffe/TensorFlow等框架训练好的模型,可通过ATC工具将其转换为昇腾AI处理器支持的离线模型(.om模型),模型转换过程中可以实现算子调度的优化、权重数据重排、内存使用优化等,也可以脱离设备完成模型的预处理。Caffe/TensorFlow/MindSpore/ONNXATC工具图准备图优化图拆分图编译Model.omfileModelfileATC工具功能框架二、MindStudio进行模型转换1.ModelInformation(配置模型信息)模型转换过程中,需要在ModelInformation页签中配置模型文件和权重文件等信息。ModelInformation页签二、MindStudio进行模型转换1.ModelInformation(配置模型信息)(1)ModelFile(必填)ModelFile指传入的模型文件,有两种选择方式:1)单击右侧的文件夹图标,在后台服务器路径选择需要转化的模型文件并上传。2)在参数后面的输入框中输入模型文件在后台服务器的路径,包括模型文件名称后缀。ModelFile二、MindStudio进行模型转换1.ModelInformation(配置模型信息)(2)WeightFile(选填)WeightFile指传入的权重文件,当原始框架为Caffe时,该参数存在且必填:1)模型和权重文件在同一目录下,且名称相同,则选择模型文件后,权重文件会自动填充。2)模型和权重文件在不同目录下,或在同一目录下,但名称不相同时,手动上传权重文件。WeightFile二、MindStudio进行模型转换1.ModelInformation(配置模型信息)(3)ModelName(必填)ModelName指传入的模型文件名称,选择模型文件后,该参数会自动填充,用户可以根据需要自行修改名称。ModelName二、MindStudio进行模型转换1.ModelInformation(配置模型信息)(4)TargetSoCVersion(必选)TargetSoCVersion指模型转换时指定的芯片版本。根据板端环境具体芯片形态进行选择,如本课程中默认使用昇腾310芯片,即选择Ascend310。TargetSoCVersion二、MindStudio进行模型转换1.ModelInformation(配置模型信息)(5)InputFormat(必选)InputFormat指输入模型的数据格式,在传入模型时会自动识别。InputFormat二、MindStudio进行模型转换1.ModelInformation(配置模型信息)(6)InputNodes(必填)InputNodes指模型输入的节点信息,如果选择模型文件并且解析成功,则该参数下方会展示模型输入节点的shape信息以及指定输入节点类型信息。解析模型成功后生成的节点信息二、MindStudio进行模型转换1.ModelInformation(配置模型信息)(6)InputNodes(必填)如果选择模型文件后,无法解析“InputNodes”,需要用户根据模型文件中的相关信息手动输入:单击该参数右侧的,在弹出界面中输入模型节点的Name、Shape信息和输入节点的数据类型Type。单击删除节点信息。InputNodes二、MindStudio进行模型转换1.ModelInformation(配置模型信息)(6)InputNodes(必填)1)模型节点数据信息Shape根据前面选择的“InputFormat”数据格式,填入模型输入的shape信息,如数据格式为“NCHW”,分别代表N(模型一次处理的图片个数),C(Channel),H(Height),W(Width)。查看Shape信息二、MindStudio进行模型转换1.ModelInformation(配置模型信息)(6)InputNodes(必填)NCHW的具体数值可以通过单击右侧的按钮,查看该模型的原始网络结构图。通过查看网络的模型输入维度,填写Shape信息。模型输入维度二、MindStudio进行模型转换1.ModelInformation(配置模型信息)(6)InputNodes(必填)2)模型节点数据类型TypeFP32FP16Uint8Int32Int64BoolFP32Uint8FP32FP16Uint8FP32FP16Uint8指定输入节点的数据类型二、MindStudio进行模型转换1.ModelInformation(配置模型信息)当模型需要配置AIPP功能时,需要选取Type取值为Uint8才可以配置;如果模型有多个输入,只有Type取值为Uint8的节点的模型才可以配置。(6)InputNodes(必填)Uint8Type取值二、MindStudio进行模型转换2.DataPre-Processing(配置数据预处理)只有当“ModelInformation”页签,“InputNodes”参数中,输入节点的“Type”有配置为“Uint8”类型,“DataPre-Processing”页签才可以配置该节点的数据预处理功能。配置数据预处理二、MindStudio进行模型转换3.AdvancedOptionsPreview(高级选项配置)高级选项配置中包含OperatorFusion、AutoTuneMode、AdditionalArguments、CommandPreview四部分内容。OperatorFusionAdditionalArgumentsCommandPreviewAutoTuneMode二、MindStudio进行模型转换3.AdvancedOptionsPreview(高级选项配置)是否关闭融合功能。(1)OperatorFusion(融合功能)关闭融合功能开启融合功能参数默认关闭,即默认打开融合功能。二、MindStudio进行模型转换3.AdvancedOptionsPreview(高级选项配置)使用该功能时,确保MindStudio和运行环境在同一台服务器。控制TBE算子编译时,对算子进行调优可以在昇腾AI处理器上寻找最好的性能配置。(2)AutoTuneMode(自动调优模式)遗传算法,用于设置Cube算子的调优性能。强化学习,用于设置Vector算子的调优性能。GA和RL调优功能同时开启。调优模式二、MindStudio进行模型转换3.AdvancedOptionsPreview(高级选项配置)模型转换界面不支持配置,但是ATC工具支持的参数,均可通过此选项进行扩展。最多支持输入2048个字符。(3)AdditionalArguments(扩展转换参数)ATC工具二、MindStudio进行模型转换3.AdvancedOptionsPreview(高级选项配置)MindStudio实际上是通过图形化界面的方式完成AI模型的转换,底层逻辑也是调用了ATC工具,CommandPreview则是根据模型转换配置生成的ATC命令预览。不支持修改。(4)CommandPreview(ATC命令)模型转换二、MindStudio进行模型转换对于已经转换成功的.om模型文件,可以在MindStudio界面呈现其网络拓扑结构,并可以查看模型所使用的算子。依次在MindStudio界面上单击菜单栏“Ascend>ModelVisualizer”,或在工具栏选择,在所示界面中选择已经转换成功的.om模型文件,单击“OK”。resnet50模型可视化界面4.模型可视化4.模型可视化模型可视化界面还展示了每一层算子输出的维度和shape信息,如每一层算子连接线中间的1,224,224,4等shape信息,将鼠标移至某个shape上面,在其上面会显示算子输出的维度信息,例如NCHW以及NC1HWC0等维度。resnet50模型可视化界面(1)查看算子信息二、MindStudio进行模型转换如果模型转换时设置了Select节点的输出类型,对应模型转换章节“ModelInformation”页签中OutputNodes区域下方节点的DataType类型,模型转换完毕,用户可以单击NetOutput节点,查看不同输入节点的数据类型,常见的数据类型如下:dtype数据类型DT_FLOATFP32DT_FLOAT16FP16DT_UINT8UINT84.模型可视化(2)查看模型输出节点的数据类型二、MindStudio进行模型转换如果模型转换时只设置了“ModelInformation”页签中的“OutputType”参数取值,没有Select节点,则模型转换完毕,单击NetOutput节点,查看输入数据类型即可。模型输出数据类型查看4.模型可视化(2)查看模型输出节点的数据类型二、MindStudio进行模型转换三、ATC进行模型转换MDC610
中配置的昇腾张量编译器(AscendTensorCompiler,简称ATC)是模型转换工具。其中ATC包含开源框架网络模型以及单算子描述文件两种使用场景。ATC工具功能框架开源框架网络模场景型单算子描述文件场景三、ATC进行模型转换1.开源框架网络模型场景执行推理CaffeTensorFLowONNXMindSporeCaffeParserTFParserONNXParser统一中间图IRGraph图准备图拆分图优化图编译离线模型(.om)①转换为中间态IRGraph②转换为离线模型③上传到板端实现推理模型描述文件(.json)④转换为模型描述文件命令行举例-离线模型转换:atc--model=totxt--weight=resnet50.caffemodel--framework=0--output=/home/eisa/resnet50--soc_version=Ascend610--input_format=NCHW--input_fp16_nodes=data--output_type=FP32--out_nodes=prob:0原始模型文件路径与文件名权重文件路径与文件名原始框架类型转换后的离线模型的路径以及文件名模型转换时指定芯片版本。输入数据格式指定输入数据类型为FP16的输入节点名称网络输出数据类型指定输出节点1.开源框架网络模型场景三、ATC进行模型转换1.开源框架网络模型场景atc--mode=1--om=$HOME/module/out/tf_resnet50.om--json=$HOME/module/out/tf_resnet50.json运行模式需要描述的模型文件离线模型转换为json格式文件的路径和文件名。命令行举例-resnet50模型描述文件生成:三、ATC进行模型转换2.单算子描述文件场景基于AscendIR定义的单算子描述文件(.json)单算子编译执行单算子验证离线模型(.om)三、ATC进行模型转换PART04Assignmentimplement任务实施一、基于ResNet-50的AI开发应用1.概述该AI示例工程的主要功能是将ResNet-50模型在MDC上运行起来。其主要过程包括模型转换、输入数据预处理、AI推理和数据后处理等。运行过程运行程序编译程序生成测试数据模型转换Profiling性能数据采集一、基于ResNet-50的AI开发应用2.实验环境准备(1)设备检查本次实验环境包括MDC610,电源线,安装Ubuntu20.04虚拟环境的PC机一台。每套实验环境适用于4~12名学生同时上级操作。设备名称数量备注MDC6101台所有实验组共用电源线1组所有实验组共用笔记本或台式机每组1台台式机要有无线网卡一、基于ResNet-50的AI开发应用(2)软件包准备ATC工具文件:Ascend文件夹ResNet-50项目文件:2-3resnet50文件夹2.实验环境准备软件包一、基于ResNet-50的AI开发应用(3)文档准备MDC6101.1.027-T000产品文档.chm2.实验环境准备产品文档一、基于ResNet-50的AI开发应用3.分析项目工程目录工程目录功能out存放编译出的可执行文件script执行数据准备脚本,将*.jpg转换为*.bindata测试数据caffe_model原始模型文件model转换后的.om模型文件.json描述文件src源文件工程目录的主要结构如下,本项目用到的关键工程文件如下。一、基于ResNet-50的AI开发应用4.模型转换打开主目录/Sample/2-3resnet50文件夹,在该文件夹目录下右键打开终端,在环境变量中添加ATC工具。打开终端(1)添加环境变量设置环境变量一、基于ResNet-50的AI开发应用4.模型转换调用ATC工具进行模型转换,若出现“ATCrunsuccess”,则说明转换模型成功。模型转换(2)模型转换一、基于ResNet-50的AI开发应用5.生成测试数据将.jpg图像数据文件转换成模型适配的.bin数据文件,转换完成后,可在data文件夹中查看转换成功的数据文件图像数据转换转换后的图像数据一、基于ResNet-50的AI开发应用6.编译程序编译程序需要用到运行环境添加到环境变量中添加编译的环境变量(1)添加环境变量一、基于ResNet-50的AI开发应用6.编译程序在2-3resnet50下新建存放编译文件的文件夹新建编译文件夹(2)创建编译文件创建命令一、基于ResNet-50的AI开发应用6.编译程序进入创建的host文件夹,并且设置CMake不在构建和安装期间为可执行文件添加运行时路径(RPATH)。设置编译参数(3)设置编译参数一、基于ResNet-50的AI开发应用6.编译程序使用make命令编译程序编译程序(4)编译程序一、基于ResNet-50的AI开发应用7.运行程序命令后需要进行密码认证,密码为Huawei12#$,将完整的resnet50项目文件复制到MDC610上。复制项目文件(1)复制项目代码到MDC上一、基于ResNet-50的AI开发应用7.运行程序登录到root账户,密码为Huawei12#$登录MDC账户(2)SSH远程进入MDC设备一、基于ResNet-50的AI开发应用7.运行程序进入到2-3resnet50的out文件夹下,并用pmupload命令运行main文件。运行结果(3)
在MDC上运行程序脚本一、基于ResNet-50的AI开发应用7.运行程序在终端上显示data文件夹中两张图片的识别结果,返回top5置信度的类别编号(index)和置信度(value)运行项目文件(4)
解析运行结果一、基于ResNet-50的AI开发应用7.运行程序结合项目文件“类别对应表.txt”查看id对应的输出项。输出结果解析(4)
解析运行结果一、基于ResNet-50的AI开发应用8.profiling性能数据采集清空历史数据,避免占用过多内存。清空历史数据(1)
清空历史数据一、基于ResNet-50的AI开发应用8.profiling性能数据采集重新运行AI应用工程,并在MDC上生成性能数据文件;数据采集完成后可在MDC上查看该数据的文件夹(PROF_开头的文件夹)采集性能数据(2)
采集性能数据性能采集文件一、基于ResNet-50的AI开发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级语文下册 课文1 3 开满鲜花的小路第2课时教学设计 新人教版
- 海城市海州街道招聘社区网格员备考题库附答案详解
- 调兵山市晓南镇招聘社区网格员备考题库附答案详解
- 河津市阳村乡招聘社区网格员备考题库附答案详解
- 铜仁地区松桃苗族自治县招聘社区网格员考试试题附答案详解
- 滕州市招聘社区网格员备考题库附答案详解
- 2026年青岛求实职业技术学院单招职业技能测试题库及参考答案详解
- 镇安县黑窑沟林厂招聘社区网格员备考题库附答案详解
- 江油市彰明镇招聘社区网格员真题附答案详解
- Module4Unit 2教学设计外研版英语八年级下册
- 房建工程总承包EPC项目技术标(投标方案)(技术标)
- 安装之星汇报材料
- 2025年江苏省安全员-C证(专职安全员)考试题库
- 广东省广州市越秀区2025年中考一模历史模拟试题(含答案)
- 《山西省安全生产条例》培训课件2025
- 污水处理中的突发事件应急响应与处理
- 卵巢性索间质肿瘤病理学
- 小学六年级数学方程应用题100道及答案解析
- JTG-QB-003-2003公路桥涵标准图钢筋混凝土盖板涵
- 六年级防性侵安全教育课件
- 食堂盘点管理制度
评论
0/150
提交评论