• [优秀实践] 兔年大吉
    prompt:Blessed Rabbit He Chun's wealth is lush,and happy stars shine high.
  • 宁静街头 .......
    宁静街头,令人向往啊啊。
  • [活动公告] (获奖名单已公示)【华为云·微话题(第59期)】编程语言哪家强,谁是你心中的NO1?
    Java、Python、C语言……Rust、SQL、Go语言……编程语言排行榜每每一出必有热议!聊聊各类编程语言在你眼中的排名~有哪些优劣势?你最认可的是哪种?欢迎大家回帖讨论期望看到大家精彩的评论:1、各类编程语言在你眼中的排名?或2、你觉得各类语言未来的趋势是怎样的?或3、有哪种语言是你想学习的?......【本期微话题】编程语言哪家强,谁是你心中的NO1?【活动时间】22年12月12日~22年12月25日【参与方式】1、直接回复本帖,就微话题题目进行回答讨论2、为你觉得优质回复的楼层点赞或发表评论【本期奖品】优质回复奖:奖品抽取数量有效回复楼层数需达到华为云定制键盘120定制钢笔套装140幸运回复奖:奖品抽取数量有效回复楼层数需达到华为云云宝公仔220开发者定制鼠标垫240 【活动规则】1、开发者用户回复的内容,必须与本期的微话题相关,回复其他内容均视为无效内容,否则取消该用户获奖资格2、 开发者用户回复内容的字数需≥100字,禁止复制其他楼层内容或改编自其它楼层内容(包括本人发布在其他楼层的内容),如经发现,取消该用户获奖资格3、本次活动不限用户的总回复数及连续回复数,但需保证回复质量,如华为云社区小编认定参与用户有恶意刷楼嫌疑,则取消该用户获奖资格 【评奖方式】1、 在本帖所有有效回复的用户中抽取若干名幸运开发者获得幸运回复奖,奖品及数量见上方示例。2、 在所有参加回复的用户中,根据其回复质量及被回复的数量,综合评选优秀奖,奖品见上方示例。3、 本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况。4、每期活动预计于结束后三天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
  • [交流吐槽] 这个周四是上新了吗
    我蹲点可长时间了,没看见上新。今天一看,多了好多。所以,昨天是上新了吗?我喜欢的小鸭子灯灯。。。。希望下个周能蹲到一个~~
  • [交流吐槽] 后续能否实现后台执行RPA的操作
    ↵请问后续能否支持边执行RPA的工作边做其他工作,也就是后台运行RPA,有没有这个功能的计划?当前的方案只能设置夜间定时或者单独找一台机器执行,很多业务用起来不方便,刚入门的小白,不知道这是不是RPA的特性
  • [问题求助] was无法启动8443端口
    【问题来源】 星网【问题简要】 通过维护助手安装was后tomcat无法启动8443端口【问题类别】 CTI【AICC解决方案版本】【AICC版本:AICC 22.100.0】【UAP版本:UAP9600 V100R005C00SPC108】【CTI版本:ICD V300R008C25SPC006】【期望解决时间】尽快【问题现象描述】通过维护助手安装was后tomcat无法启动8443端口【日志或错误截图】
  • [分享交流] 新的技术热点出现,咱们该不该追?该追什么类型的技术?该用什么方式追?
    最近,在社区论坛看见了“【华为云·微话题(第58期)】技术热点出现,开发者该不该追?”这个微话题,感觉非常有趣。所以我想要在此把我个人的观点跟大家分享一下(如果有同样感兴趣的小伙伴看到后可以一起加入进来交流讨论,或者与我私聊哦~)对于这个话题,在微话题中官方抛出了以下三个方面的问题,我都做出了解答,大家也可以积极发表自己的看法:1、我要不要追热点?用哪种方式追?首先先明确表明我自己的观点:出现新的技术,先别盲目别冲动,冷静判断这项技术以后的发展前景怎么样,可以应用的范围广不广,市场需求量大不大,倘若学习这项新技术将要投入多大的时间、精力和预算,可以根据以上几点基本判断适这项新技术适不适合自己学习,如果发现适合自己学习,可以在不影响本身工作和生活的前提条件下来适当地“追”这一项新技术;如果发现并不适合自己学习,则可以适当地关注这些技术,而不是一味地去疯狂追求热点技术,因为社会和科技的发展日新月异,每隔一段时间出现的热点技术都很多,广大开发者和学习者需要认真辨别。总而言之一句话,适合自己和市场需要的技术才是好的。2、热点技术会带来什么好处?科学技术始终是第一生产力,热点技术的产生带来的好处我个人主要认为集中在这几个方面:为国家为社会乃至全人类可以贡献新的技术,为以后的子孙万代造福,毕竟新技术逐渐取代旧技术是人类历史发展的必然性。为以后更加颠覆性的更具有创新性的新技术诞生奠定坚实的基础,每一个热点技术的产生其实都离不开社会的发展和市场的需要,一旦有热点技术产生势必会引发一部分技术人员乃至非技术人员的强烈关注,这便可以带来社会和市场发展的推动力,极大地推进了人类的科技水平向前进步。可以让我们个人在新的技术领域有新的思考和新的机遇,每个人所掌握的技术都是有限的,想要再行业内发展得更好,就需要不断地学习和接触相关的新知识新内容。然而热点技术的产生正好可以让业内人士有新的思路与挑战,也可以随着带来更多的就业岗位和就业机会,也相当于为更多的技术人员开辟了一条可选择的“后路”。3、对于新技术,你是如何入门学习的?对于一项新的热点技术产生后,如果根据我刚刚说的第一点,大家判断这项新技术对自身有益并且适合自己学习,那可以通过以下几个方法来学习:看这项热点技术的专业书籍和官网。在成千上万的编程图书中,可能很大一部分根本毫无用处。但是仍然有很多图书对开发者的能力有很大的提升。我一直坚持,相比在网络上查找很多有用信息,在同类图书中查找要来得更容易更快捷。阅读技术图书可心更好地抓住核心内容。对于理论,架构和设计等方面来说,图书也一样很有帮助。只不过要找到 高质量的、权威的信息,就不如网络上可供查找的范围广。多读核心代码。这也是我很喜欢的一种方式。需要学习新技术的往往都是具有几年专业编程工作经验的程序员。可以从一些开源项目里,去学习那些源代码(当然自己写的除外,也要判断代码是否有误)。要从自己以后可能会使用到的, 或者自己感兴趣的程序开始这项工作。阅读完源代码之后,一定要记得总结归纳,避免学完就忘记了。自己尝试着写代码。谨记,要写大量的代码,写完之后还需要反复检查自己写的代码是否正确。从根本上来讲,最好的学习方法就是实践。如果不写代码,根本不能把(某种语言中、某项技术架构中、某项服务或者某种模式中)内在的东西学习透彻。学习之初,可以从一些技术指南和图书中照搬一些尽量简单的程序。当然,这种照搬是要自己完全手工输入,而不是复制和粘贴,这两种之间的效果差别是很大的。这种方法的主旨就在于使知识内在化,并思考其用法,而不是盲目照抄。学习过程中,要时常查找新的 API 调用方法,并理解每一步的含义。与其他经验丰富的开发者交流。像 Apple、微软、Google 等大公司他们某些新闻中描述的一样,与其他开发者交流可以让你解决一些复杂的问题。虽然这并不能让你感觉到自己已经成一个团队或是社区的成员,但是这种方法可以让你接触到更多不同的想法。不同类型的项目要求不同的设计方法,代码技术,开发流程和设计思想。如果工作在一个小团队里,不必与太多的人接触,只要在用户群会议中找到一些人来讨论即可。如果这样还不行的话,参与到在线论坛中与其他人讨论,这时就需要更努力地寻找高质量的讨论内容。试着教会别人。相对于仅仅读代码之类的工作,教其他人学习可以让自己更深入地学习某个技术,这种方法有着非凡的效果。教会别人某个技术,同样也会让自己更专注于这种技术,并且可以比别人更深层次地理解它。同样自身可能也会面对一些问题。阅读优质技术博客、贴吧、文章。博客远远比阅读者要多,其中有一些博客和文章写得是极其优秀的。而且这也是这项新热点技术开发者进行沟通交流的好方法。最后,我奉上微话题的官方链接,大家如果感兴趣的就快来一起讨论吧:【华为云·微话题(第58期)】技术热点出现,开发者该不该追?探讨看法领好礼~
  • [问题求助] CSM可视化工具,现在发布没?
    CMS可视化工具,现在发布没?
  • [技术干货] 使用MindStudio对SuperRetina模型转化并进行推理测试和精度验证
    使用MindStudio对SuperRetina模型转化并进行推理测试和精度验证Bilibili视频链接 https://member.bilibili.com/platform/upload-manager/article目录一、MindStudio 环境搭建 1.1 MindStudio 软件下载 1.2 MindStudio 软件安装 1.3 MindStudio 环境搭建 二、模型获取 2.1 模型介绍 2.2 获取源码 2.3 安装依赖 三、 模型转化 3.1 pth模型转化为onnx模型 3.1.1模型介绍 3.1.2模型获取 3.1.3编写模型转化程序 3.2 onnx模型转化为om模型 3.3 pipeline流程编排 四、 测试推理功能 4.1 准备数据集 4.2 配置项目路径及代码介绍 4.2.1配置项目路径 4.2.2介绍predictor.py代码 4.3 设置环境变量 4.4 开始测试推理 五、 精度测试 5.1 准备数据集 5.2 介绍main.py代码 5.3 开始精度测试 5.4 其他结论 六、 FAQ 6.1环境配置错误 6.2环境变量设置的其他方法 6.3昇腾社区的力量 一、MindStudio 环境搭建 通过 MindStudio 官网介绍可以学习了解 MindStudio 的功能,以及按照 MindStudio 用户手册进行安装和使用。 官网链接: https://www.hiascend.com/zh/software/mindstudio 用户手册: https://www.hiascend.com/document/detail/zh/mindstudio/50RC3/progressiveknowledge/index.html 1.1 MindStudio 软件下载 在官网首页中点击“立即下载”,如下图。 官网安装页面然后我们进入版本选择界面,可以根据自己的操作系统、安装方式选择不同 的软件包,我们这里选择的是 MindStudio_5.0.RC2_win.exe,进行下载安装。选择历史版本点击对应的“软件包下载”,弹出软件下载需知对话框,勾选“我已阅读并 已同意 MindStudio 软件许可协议 的条款和条件”,然后点击“立即下载”进入下载流程。 1.2 MindStudio 软件安装 双击打开下载好的 MindStudio_5.0.RC2_win.exe 软件包,进入安装流程:欢迎界面,点击“Next” 安装欢迎界面选择安装路径,我们使用的是默认安装路径,然后点击“Next”。自行选择安装目录安装配置,我们只勾选了创建桌面快捷方式,和以工程方式打开文件夹添加到右键菜单中。然后点击“Next”。 安装配置页面启动菜单文件夹我们使用默认配置,点击“Install”,程序进入自动安装步骤。 安装完成后点击“Finsh”完成安装。启动菜单文件夹(一般默认即可)安装完成页面1.3 MindStudio 环境搭建 通过桌面快捷方式启动 MindStudio。 初次使用不导入配置首次打开选择选择不导入配置,点击“OK”。Projects 标签用于工程打开、创建等。 Projects 标签Customize 标签用于 IDE 配置,包括界面、字体大小等。Plugins 标签用于管理插件的安装、删除等。 Customize 标签Pluins 标签用于管理插件的安装、删除等Pluins 标签Learn MindStudio 标签可以通过点击“Help”进入官方社区获取帮助。Learn MindStudio 标签进入MindStudio配置功能,可选择以下任意一种方式进入。①在工程界面,在MindStudio上方菜单栏中选择“File > Settings...”。②如下所示,在MindStudio欢迎界面左侧导航栏,选择“Customize”,并在右侧找到并单击“All settings...”Customize 标签左侧导航栏找到并选中“Appearance & Behavior > System Settings > MindX SDK”,右侧功能区中找到并单击“Import SDK”Settings选项卡依次点击两个加号,并在红框中输入服务器信息远程同步MindX SDK输入服务器信息后点击Test Connection测试,信息正确会有提示。然后依次点击OK。输入服务器信息选择CANN路径,依次点击OK。选择CANN路径选择SDK路径,依次点击OK。选择SDK路径全部选择完毕后点击OK,开始远程同步远程同步SDK同步结束后显示安装完成SDK安装完成在 Projects 标签下点击“New Project”创建一个新的工程。选择 Ascend App,输入工程名、和工程目录,点击“Change”选择或者添加 CANN 版本。 配置CANN 版本点击 Remote CANN Setting 对话框中的加号,弹出 SSH Configurations 对 话框,然后点击其中的加号,填写红框中的服务器信息,点击“Test Connection” 弹出连接成功对话框。  Remote CANN Setting 对话框SSH Configurations界面依次点击“OK”完成 Remote Connection 配置。点击文件夹图标,在弹出的对话框中选择 CANN 安装路径,点击“OK”。 选择 CANN 安装路径点击“Finish”。开始同步远程 CANN 版本资源。 同步远程 CANN 版本资源过程同步完成后点击“Next”。同步远程 CANN完成选择 MindX SDK(Python),点击“Finish”。 工程创建此时成功创建了一个空的工程。新工程界面点击“Tools”->“Start SSH session”。 选择远程环境,启动远程终端窗口。 远程SSH连接说明:远程终端出现当前服务器目录命令行说明SSH连接成功,如图:远程终端现实命令符点击“Tools”->“Deployment”->“Configuration”。按自己服务器对应的任务目录,配置远端映射路径。依次点击“OK”完成配置。配置远端映射路径配置远端映射路径如图,配置项目SDK。点击“SDKs”,点击加号,点击“Add Python SDK...”, 配置项目SDK点击“SSH Interpreter”,自动识别远程 Python 环境信息,点击“OK”。 配置SSH Interpreter点击“Project”,选择创建的 SDK,点击“OK”。配置工程点击“Modules”->“Dependence”,选择创建的 SDK,点击“OK”。 配置Modules依赖如果想要自动上传至远端服务器,(并不推荐,建议等项目在本地结构完整后再上传)可以点击“Tools”-> “Deployment”->“Automatic Upload”。自动上传远程服务器设置选择远程服务器,可自动上传修改并保存的文件。 选择服务器至此 MindStudio 开发环境搭建完成。 二、模型获取 2.1 模型介绍 此案例基于深度学习的图像配、准基于 MindX SDK 开发,可在晟腾芯片上进行图像配准。输入两幅图片后,可以匹配两幅图像中的特征点。SuperRetina是一种新颖的半监督的方式进行训练,训练时使用以小组未完全标记的数据集和较多未标记的数据集。基于深度学习的图像配准使用SuperRetina模型,论文链接:    https://arxiv.org/pdf/2207.07932v1.pdf2.2 获取源码 在本地终端中通过git命令获取源码,参考命令如下。 git clone cid:link_5  克隆项目到本地。、输入命令下拉代码获取源码工程目录中出现项目源码2.3 安装依赖 Ⅰ.上传依赖文件,在服务器上添加依赖文件“requirements.txt” 上传依赖文件上传成功说明:由项目文件的结构可知,requirements.txt文件是在superretina文件目录下的,所以上传服务器时,会在我们本来的映射目录下再创建一级 ./superretina/目录后上传requirements.txt文件。也就是说,我们之前配置的Mappings项里的Deployment path为/home/hailiang1/MindStudio-WorkSpace但最终上传时在服务器上的绝对路径为/home/hailiang1/MindStudio-WorkSpace/superretina/requirements.txt因此在下一步执行安装依赖时,一定要先打开requirements.txt的目录,(即/home/hailiang1/MindStudio-WorkSpace/superretina/)在该级目录下执行安装依赖指令服务器才能找到requirements.txt文件。Ⅱ.在远程终端窗口通过pip命令安装依赖  执行命令如下:①cd /home/hailiang1/MindStudio-WorkSpace/superretina/先打开requirements.txt所在的目录②pip install -r requirements.txt  再在该级目录执行pip指令安装依赖安装依赖<注1>安装依赖是为远端服务器安装一些包、环境,所以是在远程终端窗口执行pip命令<注2>由于服务器已具备依赖,所以示例图片中提示Requirement already satisfied。通过上述步骤,我们已经在本地获取了模型源码,并完成了远端服务器的依赖环境的安装配置。模型转化3.1 pth模型转化为onnx模型3.1.1模型介绍SuperRetina.pth模型的各层网络结构如图所示。 (每列从上到下,各列从左到右)          网络结构3.1.2模型获取将基于深度学习的图像配准模型SuperRetina.pth下载到本地,并放入项目同级目录。cid:link_4ABKqq6gVFL?usp=sharing注意:此链接为Google链接,注意是否具备网络环境!3.1.3编写模型转化程序Ⅰ.在同级目录下新建pth2onnx.py程序,编写模型转化工具。项目目录Ⅱ.下面介绍pth2onnx.py的逻辑:①首先引入torch和torch的onnx包,以及在项目中的model文件的super_retina.py中引入SuperRetina类:pth2onnx.py说明(1)model中的super_retina.py的SuperRetina类②调用torch.onnx.export()函数,定义模型转化方法。pth2onnx.py说明(2)③然后再将.pth文件的目录和.onnx文件的输出路径及其他参数输入pth2onnx()函数完成调用。pth2onnx.py说明(3)Ⅲ.配置运行命令。如图所示,点击Edit Configuration进入配置页面。 点击Edit Configuration点击加号新建Ascend app。新建 Ascend app选择pth2onnx.py作为可执行程序配置Ascend appⅣ.点击运行toonnx Ascend app点击运行转onnx转化成功运行成功后会在目录下生成SuperRetina.onnx文件。SuperRetina.onnx所在目录3.2 onnx模型转化为om模型首先,先把SuperRetina.onnx上传至服务器。上传onnx模型下面使用 MindStudio 的模型转换功能将 onnx 模型转成 om 模型。昇腾官方用户手册中对模型转化的介绍如下:cid:link_0如下图所示,点击“Model Converter”按钮。“Model Converter”按钮。在弹出的 Model Converter 窗口中选择 Model File。选择我们之前转化好的SuperRetina.onnx文件,点击“OK”。 选择onnx文件自动解析模型中,如下图。解析模型d.解析完成后,设置模型名称、soc 版本、om 模型生成目录、通讯模型的 Input Format、Shape、Type 信息,点击“Next”。解析完成说明1:此处报红是因为我的该输出路径下已经有SuperRetina.om文件了,继续转化的话会覆盖重写。说明2:其他各参数含义如下Model File:选择已上传的预训练模型(.pb)文件。Target Soc Version:选择处理器型号,本案例以“Ascend310”为例。Output Path:选择当前工程目录下“models”文件夹。Input Nodes:将输入的“shape”修改为项目所需。如果案例只涉及单张图片,则不涉及动态batch。本案例中的参数按照之前的pth2onnx.py的输入尺寸及下面截图中输入即可:参数参照e.命令检查。命令检查f.检查完成后点击“Next”。 检查完成g.输入命令参数,检视生成的 atc 命令,确认无误后点击“Finish”。两个参数及其含义如下:--onnx_path= ./SuperRetina.onnx    此参数是onnx模型所在的路径--om_path= ./SuperRetina       此参数是om模型的输出路径注意:输入命令参数时直接用一个空格将两个参数隔开即可,如下图输入命令参数h.模型转换成功后,如下图所示。 转化成功提示通过以上步骤,使用 MindStudio 的模型转换功能成功将 onnx 模型转成 om 模型:SuperRetina.om,并放于当前工程目录下的model文件夹下。 SuperRetina.om所在目录om模型转换使用的是ATC工具,具体使用教程可参考[《ATC工具使用指南》]https://support.huawei.com/enterprise/zh/doc/EDOC1100234054/79fc5a603.3 pipeline 流程编排官方对于pipeline的详细介绍链接如下:cid:link_1点击Acend > MindX SDK Pipeline,如图:MindX SDK Pipeline页面按照上面链接中介绍的,在新的pipeline文件编辑界面中,通过左侧插件库中找到以下插件,选择并拖动至右侧画板,按照顺序从左至右排列,如图。appsrcmxpi_tensorinferappsinkpipeline文件编辑界面单击“appsrc0”插件块,参考图中在右侧属性配置中修改参数。blocksize:409600。“appsrc0”插件块参数设置单击“mxpi_tensorinfer0”插件块,参考图中在右侧属性配置中修改参数。modelPath:模型转换后的om模型文件,选择“models”目录下的“SuperRetina.om”mxpi_tensorinfer0插件参数单击“appsink0”插件块,参考图中在右侧属性配置中修改参数。blocksize:409600appsink0插件参数其中各插件的参数按照下面图片中的json文件配置即可;参数配置配置完后点击Save As,命名后保存于./pipeline/目录下。保存pipeline文件保存后的项目目录如下。项目目录测试推理功能4.1 准备数据集在data目录下新建 /samples路径,将需要推理的两幅图像上传到/samples文件夹中,并命名为query.jpg和refer.jpg,如图: 测试推理数据集4.2 配置项目路径及代码介绍4.2.1配置项目路径在同级目录下新建predictor.py和main.py。项目路径然后将之前获得的SuperRetina.om文件放入model中。项目目录4.2.2介绍predictor.py代码各种工具包的导入和参数的设置predictor.py(1)定义预处理,标准化等函数predictor.py(2)transform()等函数的定义predictor.py(3)定义读图片函数predictor.py(4)定义池化函数predictor.py(5)定义像素处理函数:predictor.py(6) predictor.py(7) 其他各子函数的定义:predictor.py(8)predictor.py(9)predictor.py(10)predictor.py(11)predictor.py(12)predictor.py(13)predictor.py(14)predictor.py(15)主函数中调用上述参数,完成推理。predictor.py(17)4.3 设置环境变量①打开远程终端,输入vim .bashrc指令,回车,进入.bashrc文件进入.bashrc文件②滚轮滑或按↓方向键到最下方一行的最后一个字符,按i键进入insert状态进入INSERT状态③进入INSERT状态后,先按几下回车后,输入:source /home/hailiang1/MindX_SDK/mxVision-3.0.RC2/set_env.shsource /home/hailiang1/Ascend/ascend-toolkit/set_env.sh说明:配置MindX SDK和Ascend-cann-toolkit安装路径下的环境变量 配置脚本路径输入命令 添加环境变量③进入按Esc键退出INSERT状态后:退出INSERT状态④输入 :wq! 后回车,强制保存退出输入指令强制保存退出⑤输入source .bashrc命令,使添加的变量生效输入source .bashrc命令说明:在MindStudio的远程终端执行的所有指令都完全等效于在远端服务器执行。而不同的是,MindStudio提供了非常便捷、强有力的可视化操作界面,操作上手也十分容易。在完全具备远端服务器的所有功能的同时,又能通过映射很好的在本地进行项目的工作。有兴趣的同学可以安装能进入服务器的软件,在服务器命令行中执行上述过程。cid:link_6  安装  。4.4 开始测试推理配置运行命令。如图所示,点击Edit Configuration进入配置页面。点击加号新建Ascend app。选择predictor.py作为可执行程序 点击Edit Configuration新建 Ascend app选择可执行程序运行Ascend app执行 predictor 如果配置好环境变量,那么测试推理的运行提示如下推理完成在统计目录下会生成结果:match_result.jpg和result.jpg结果所在目录及示例结果如下精度测试5.1 准备数据集下载FIRE数据集,解压后将./FIRE文件夹,放到./data文件夹。数据集链接:    https://projects.ics.forth.gr/cvrl/fire/FIRE.7z在data目录下放入FIRE数据集注意:项目自带的data文件中的FIRE是空的,需自行下载解压到相应目录。5.2 介绍main.py代码说明:main.py和predictor.py代码逻辑十分相似,只不过predictor.py只处理一对图片,而main.py处理FIRE数据集的全部图片。所以下面截图对代码逻辑不再做过多赘述。main.py比predictor.py要多一个计算准确率的子函数main.py(1)main.py(2)main.py(3)main.py(4)main.py(5)main.py(6)main.py(7)main.py(8)main.py(9)main.py(10)main.py(11)主程序调用子函数。main.py(12)main.py(13)5.3 开始精度测试一样的步骤,点击Edit Configuration进入配置页面,配置main Ascend app。选择main.py作为可执行程序。配置app然后执行我们的main 可执行程序。执行main Ascend app需等待较长时间,(两小时左右)最终结果显示,准确率达到98.5%。精度测试结果5.4 其他结论基本功能测试:模型转换功能正常,模型推理功能正常,模型精度测试功能正常精度测试:模型在GPU上mAUC:0.762,目标精度mAUC:0.762,经过测试,实际模型精度为mAUC:0.759,与目标精度误差在0.5%以内,符合要求。FAQ6.1环境配置错误如果出现下图类似的报错,大致意思为程序找不到对应的包。应该是4.3小节当中的环境变量没有配置好。(注意:predictor.py和main.py执行之前都要先进行环境变量的设置)环境变量设置错误6.2环境变量设置的其他方法如果有同学难以掌握使用命令行进入.bashrc配置环境变量,可以在配置Ascend app时在Environment Variables栏手动输入。Ascend app 的Environment Variables输入框输入格式示例如下:设需设置的变量为  (仅为示例,路径格式可能并不合法)export install_path=/a/b/c/export DDK_PATH=/d/e/f/则可以打开输入框右侧的输入栏,仿照下图手动输入变量名和值输入格式示例6.3昇腾社区的力量说明:这是我本人进行项目时遇到的个例性问题及解决方案,可能不具有代表性。在在执行predictor Ascend app时,本来一直可以运行的predictor忽然报错Synchronization Failure   无法同步到远端服务器报错示意后来在社区发现,有人也有这样的问题且已经有人给出作答:问题链接: 不能连接到远端服务器_MindStudio_昇腾论坛 (hiascend.com)无法完成远端同步的原因可能是服务器满了。因为Ascend app执行时,会先在服务器对应空间中映射一个相同项目,然后执行相关操作,并将结果进行返回。如果服务器空间不够,则没有空间来对项目进行映射。果然,我再清理了一下服务器空间后,项目就可以完成同步映射了。因此,如果有实在不知道如何解决的问题,可以去昇腾社区找寻一下答案。里面有很多有代表性的问题,并且里面有很多技术大牛会给出自己的意见。昇腾社区链接:昇腾论坛 (hiascend.com)
  • [技术干货] MindStudio对SuperRetina模型进行测试推理和精度验证
    使用MindStudio对SuperRetina模型转化并进行推理测试和精度验证   目录一、MindStudio 环境搭建 1.1 MindStudio 软件下载 1.2 MindStudio 软件安装 1.3 MindStudio 环境搭建 二、模型获取 2.1 模型介绍 2.2 获取源码 2.3 安装依赖 三、 模型转化 3.1 pth模型转化为onnx模型 3.1.1模型介绍 3.1.2模型获取 3.1.3编写模型转化程序 3.2 onnx模型转化为om模型 3.3 pipeline流程编排 四、 测试推理功能 4.1 准备数据集 4.2 配置项目路径及代码介绍 4.2.1配置项目路径 4.2.2介绍predictor.py代码 4.3 设置环境变量 4.4 开始测试推理 五、 精度测试 5.1 准备数据集 5.2 介绍main.py代码 5.3 开始精度测试 5.4 其他结论 六、 FAQ 6.1环境配置错误 6.2环境变量设置的其他方法 6.3昇腾社区的力量 一、MindStudio 环境搭建 通过 MindStudio 官网介绍可以学习了解 MindStudio 的功能,以及按照 MindStudio 用户手册进行安装和使用。 官网链接: https://www.hiascend.com/zh/software/mindstudio 用户手册: https://www.hiascend.com/document/detail/zh/mindstudio/50RC3/progressiveknowledge/index.html 1.1 MindStudio 软件下载 在官网首页中点击“立即下载”,如下图。 官网安装页面然后我们进入版本选择界面,可以根据自己的操作系统、安装方式选择不同 的软件包,我们这里选择的是 MindStudio_5.0.RC2_win.exe,进行下载安装。选择历史版本点击对应的“软件包下载”,弹出软件下载需知对话框,勾选“我已阅读并 已同意 MindStudio 软件许可协议 的条款和条件”,然后点击“立即下载”进入下载流程。 1.2 MindStudio 软件安装 双击打开下载好的 MindStudio_5.0.RC2_win.exe 软件包,进入安装流程:欢迎界面,点击“Next” 安装欢迎界面选择安装路径,我们使用的是默认安装路径,然后点击“Next”。自行选择安装目录安装配置,我们只勾选了创建桌面快捷方式,和以工程方式打开文件夹添加到右键菜单中。然后点击“Next”。安装配置页面启动菜单文件夹我们使用默认配置,点击“Install”,程序进入自动安装步骤。 安装完成后点击“Finsh”完成安装。启动菜单文件夹(一般默认即可)安装完成页面1.3 MindStudio 环境搭建 通过桌面快捷方式启动 MindStudio。 初次使用不导入配置首次打开选择选择不导入配置,点击“OK”。Projects 标签用于工程打开、创建等。 Projects 标签Customize 标签用于 IDE 配置,包括界面、字体大小等。Plugins 标签用于管理插件的安装、删除等。 Customize 标签Pluins 标签用于管理插件的安装、删除等Pluins 标签Learn MindStudio 标签可以通过点击“Help”进入官方社区获取帮助。Learn MindStudio 标签进入MindStudio配置功能,可选择以下任意一种方式进入。①在工程界面,在MindStudio上方菜单栏中选择“File > Settings...”。②如下所示,在MindStudio欢迎界面左侧导航栏,选择“Customize”,并在右侧找到并单击“All settings...”Customize 标签左侧导航栏找到并选中“Appearance & Behavior > System Settings > MindX SDK”,右侧功能区中找到并单击“Import SDK”Settings选项卡依次点击两个加号,并在红框中输入服务器信息远程同步MindX SDK输入服务器信息后点击Test Connection测试,信息正确会有提示。然后依次点击OK。输入服务器信息选择CANN路径,依次点击OK。选择CANN路径选择SDK路径,依次点击OK。选择SDK路径全部选择完毕后点击OK,开始远程同步远程同步SDK同步结束后显示安装完成SDK安装完成在 Projects 标签下点击“New Project”创建一个新的工程。选择 Ascend App,输入工程名、和工程目录,点击“Change”选择或者添加 CANN 版本。配置CANN 版本点击 Remote CANN Setting 对话框中的加号,弹出 SSH Configurations 对 话框,然后点击其中的加号,填写红框中的服务器信息,点击“Test Connection” 弹出连接成功对话框。 Remote CANN Setting 对话框SSH Configurations界面依次点击“OK”完成 Remote Connection 配置。点击文件夹图标,在弹出的对话框中选择 CANN 安装路径,点击“OK”。 选择 CANN 安装路径点击“Finish”。开始同步远程 CANN 版本资源。 同步远程 CANN 版本资源过程同步完成后点击“Next”。同步远程 CANN完成选择 MindX SDK(Python),点击“Finish”。 工程创建此时成功创建了一个空的工程。新工程界面点击“Tools”->“Start SSH session”。 选择远程环境,启动远程终端窗口。 远程SSH连接说明:远程终端出现当前服务器目录命令行说明SSH连接成功,如图:远程终端现实命令符点击“Tools”->“Deployment”->“Configuration”。按自己服务器对应的任务目录,配置远端映射路径。依次点击“OK”完成配置。配置远端映射路径配置远端映射路径如图,配置项目SDK。点击“SDKs”,点击加号,点击“Add Python SDK...”, 配置项目SDK点击“SSH Interpreter”,自动识别远程 Python 环境信息,点击“OK”。 配置SSH Interpreter点击“Project”,选择创建的 SDK,点击“OK”。配置工程点击“Modules”->“Dependence”,选择创建的 SDK,点击“OK”。 配置Modules依赖如果想要自动上传至远端服务器,(并不推荐,建议等项目在本地结构完整后再上传)可以点击“Tools”-> “Deployment”->“Automatic Upload”。自动上传远程服务器设置选择远程服务器,可自动上传修改并保存的文件。 选择服务器至此 MindStudio 开发环境搭建完成。 二、模型获取 2.1 模型介绍 此案例基于深度学习的图像配、准基于 MindX SDK 开发,可在晟腾芯片上进行图像配准。输入两幅图片后,可以匹配两幅图像中的特征点。SuperRetina是一种新颖的半监督的方式进行训练,训练时使用以小组未完全标记的数据集和较多未标记的数据集。基于深度学习的图像配准使用SuperRetina模型,论文链接: https://arxiv.org/pdf/2207.07932v1.pdf2.2 获取源码 在本地终端中通过git命令获取源码,参考命令如下。 git clone cid:link_5 克隆项目到本地。、输入命令下拉代码获取源码工程目录中出现项目源码2.3 安装依赖 Ⅰ.上传依赖文件,在服务器上添加依赖文件“requirements.txt” 上传依赖文件上传成功说明:由项目文件的结构可知,requirements.txt文件是在superretina文件目录下的,所以上传服务器时,会在我们本来的映射目录下再创建一级 ./superretina/目录后上传requirements.txt文件。也就是说,我们之前配置的Mappings项里的Deployment path为/home/hailiang1/MindStudio-WorkSpace但最终上传时在服务器上的绝对路径为/home/hailiang1/MindStudio-WorkSpace/superretina/requirements.txt因此在下一步执行安装依赖时,一定要先打开requirements.txt的目录,(即/home/hailiang1/MindStudio-WorkSpace/superretina/)在该级目录下执行安装依赖指令服务器才能找到requirements.txt文件。Ⅱ.在远程终端窗口通过pip命令安装依赖 执行命令如下:①cd /home/hailiang1/MindStudio-WorkSpace/superretina/先打开requirements.txt所在的目录②pip install -r requirements.txt 再在该级目录执行pip指令安装依赖安装依赖<注1>安装依赖是为远端服务器安装一些包、环境,所以是在远程终端窗口执行pip命令<注2>由于服务器已具备依赖,所以示例图片中提示Requirement already satisfied。通过上述步骤,我们已经在本地获取了模型源码,并完成了远端服务器的依赖环境的安装配置。模型转化3.1 pth模型转化为onnx模型3.1.1模型介绍SuperRetina.pth模型的各层网络结构如图所示。 (每列从上到下,各列从左到右)网络结构3.1.2模型获取将基于深度学习的图像配准模型SuperRetina.pth下载到本地,并放入项目同级目录。cid:link_4ABKqq6gVFL?usp=sharing注意:此链接为Google链接,注意是否具备网络环境!3.1.3编写模型转化程序Ⅰ.在同级目录下新建pth2onnx.py程序,编写模型转化工具。项目目录Ⅱ.下面介绍pth2onnx.py的逻辑:①首先引入torch和torch的onnx包,以及在项目中的model文件的super_retina.py中引入SuperRetina类:pth2onnx.py说明(1)model中的super_retina.py的SuperRetina类②调用torch.onnx.export()函数,定义模型转化方法。pth2onnx.py说明(2)③然后再将.pth文件的目录和.onnx文件的输出路径及其他参数输入pth2onnx()函数完成调用。pth2onnx.py说明(3)Ⅲ.配置运行命令。如图所示,点击Edit Configuration进入配置页面。点击Edit Configuration点击加号新建Ascend app。新建 Ascend app选择pth2onnx.py作为可执行程序配置Ascend appⅣ.点击运行toonnx Ascend app点击运行转onnx转化成功运行成功后会在目录下生成SuperRetina.onnx文件。SuperRetina.onnx所在目录3.2 onnx模型转化为om模型首先,先把SuperRetina.onnx上传至服务器。上传onnx模型下面使用 MindStudio 的模型转换功能将 onnx 模型转成 om 模型。昇腾官方用户手册中对模型转化的介绍如下:cid:link_0如下图所示,点击“Model Converter”按钮。“Model Converter”按钮。在弹出的 Model Converter 窗口中选择 Model File。选择我们之前转化好的SuperRetina.onnx文件,点击“OK”。 选择onnx文件自动解析模型中,如下图。解析模型d.解析完成后,设置模型名称、soc 版本、om 模型生成目录、通讯模型的 Input Format、Shape、Type 信息,点击“Next”。解析完成说明1:此处报红是因为我的该输出路径下已经有SuperRetina.om文件了,继续转化的话会覆盖重写。说明2:其他各参数含义如下Model File:选择已上传的预训练模型(.pb)文件。Target Soc Version:选择处理器型号,本案例以“Ascend310”为例。Output Path:选择当前工程目录下“models”文件夹。Input Nodes:将输入的“shape”修改为项目所需。如果案例只涉及单张图片,则不涉及动态batch。本案例中的参数按照之前的pth2onnx.py的输入尺寸及下面截图中输入即可:参数参照e.命令检查。命令检查f.检查完成后点击“Next”。 检查完成g.输入命令参数,检视生成的 atc 命令,确认无误后点击“Finish”。两个参数及其含义如下:--onnx_path= ./SuperRetina.onnx 此参数是onnx模型所在的路径--om_path= ./SuperRetina 此参数是om模型的输出路径注意:输入命令参数时直接用一个空格将两个参数隔开即可,如下图输入命令参数h.模型转换成功后,如下图所示。 转化成功提示通过以上步骤,使用 MindStudio 的模型转换功能成功将 onnx 模型转成 om 模型:SuperRetina.om,并放于当前工程目录下的model文件夹下。 SuperRetina.om所在目录om模型转换使用的是ATC工具,具体使用教程可参考[《ATC工具使用指南》]https://support.huawei.com/enterprise/zh/doc/EDOC1100234054/79fc5a603.3 pipeline 流程编排官方对于pipeline的详细介绍链接如下:cid:link_1点击Acend > MindX SDK Pipeline,如图:MindX SDK Pipeline页面按照上面链接中介绍的,在新的pipeline文件编辑界面中,通过左侧插件库中找到以下插件,选择并拖动至右侧画板,按照顺序从左至右排列,如图。appsrcmxpi_tensorinferappsinkpipeline文件编辑界面单击“appsrc0”插件块,参考图中在右侧属性配置中修改参数。blocksize:409600。“appsrc0”插件块参数设置单击“mxpi_tensorinfer0”插件块,参考图中在右侧属性配置中修改参数。modelPath:模型转换后的om模型文件,选择“models”目录下的“SuperRetina.om”mxpi_tensorinfer0插件参数单击“appsink0”插件块,参考图中在右侧属性配置中修改参数。blocksize:409600appsink0插件参数其中各插件的参数按照下面图片中的json文件配置即可;参数配置配置完后点击Save As,命名后保存于./pipeline/目录下。保存pipeline文件保存后的项目目录如下。项目目录测试推理功能4.1 准备数据集在data目录下新建 /samples路径,将需要推理的两幅图像上传到/samples文件夹中,并命名为query.jpg和refer.jpg,如图:测试推理数据集4.2 配置项目路径及代码介绍4.2.1配置项目路径在同级目录下新建predictor.py和main.py。项目路径然后将之前获得的SuperRetina.om文件放入model中。项目目录4.2.2介绍predictor.py代码各种工具包的导入和参数的设置predictor.py(1)定义预处理,标准化等函数predictor.py(2)transform()等函数的定义predictor.py(3)定义读图片函数predictor.py(4)定义池化函数predictor.py(5)定义像素处理函数:predictor.py(6) predictor.py(7) 其他各子函数的定义:predictor.py(8)predictor.py(9)predictor.py(10)predictor.py(11)predictor.py(12)predictor.py(13)predictor.py(14)predictor.py(15)主函数中调用上述参数,完成推理。predictor.py(17)4.3 设置环境变量①打开远程终端,输入vim .bashrc指令,回车,进入.bashrc文件进入.bashrc文件②滚轮滑或按↓方向键到最下方一行的最后一个字符,按i键进入insert状态进入INSERT状态③进入INSERT状态后,先按几下回车后,输入:source /home/hailiang1/MindX_SDK/mxVision-3.0.RC2/set_env.shsource /home/hailiang1/Ascend/ascend-toolkit/set_env.sh说明:配置MindX SDK和Ascend-cann-toolkit安装路径下的环境变量 配置脚本路径输入命令 添加环境变量③进入按Esc键退出INSERT状态后:退出INSERT状态④输入 :wq! 后回车,强制保存退出输入指令强制保存退出⑤输入source .bashrc命令,使添加的变量生效输入source .bashrc命令说明:在MindStudio的远程终端执行的所有指令都完全等效于在远端服务器执行。而不同的是,MindStudio提供了非常便捷、强有力的可视化操作界面,操作上手也十分容易。在完全具备远端服务器的所有功能的同时,又能通过映射很好的在本地进行项目的工作。有兴趣的同学可以安装能进入服务器的软件,在服务器命令行中执行上述过程。https://mobaxterm.mobatek.net/download.html 安装 。4.4 开始测试推理配置运行命令。如图所示,点击Edit Configuration进入配置页面。点击加号新建Ascend app。选择predictor.py作为可执行程序点击Edit Configuration新建 Ascend app选择可执行程序运行Ascend app执行 predictor 如果配置好环境变量,那么测试推理的运行提示如下推理完成在统计目录下会生成结果:match_result.jpg和result.jpg结果所在目录及示例结果如下精度测试5.1 准备数据集下载FIRE数据集,解压后将./FIRE文件夹,放到./data文件夹。数据集链接: https://projects.ics.forth.gr/cvrl/fire/FIRE.7z在data目录下放入FIRE数据集注意:项目自带的data文件中的FIRE是空的,需自行下载解压到相应目录。5.2 介绍main.py代码说明:main.py和predictor.py代码逻辑十分相似,只不过predictor.py只处理一对图片,而main.py处理FIRE数据集的全部图片。所以下面截图对代码逻辑不再做过多赘述。main.py比predictor.py要多一个计算准确率的子函数main.py(1)main.py(2)main.py(3)main.py(4)main.py(5)main.py(6)main.py(7)main.py(8)main.py(9)main.py(10)main.py(11)主程序调用子函数。main.py(12)main.py(13)5.3 开始精度测试一样的步骤,点击Edit Configuration进入配置页面,配置main Ascend app。选择main.py作为可执行程序。配置app然后执行我们的main 可执行程序。执行main Ascend app需等待较长时间,(两小时左右)最终结果显示,准确率达到98.5%。精度测试结果5.4 其他结论基本功能测试:模型转换功能正常,模型推理功能正常,模型精度测试功能正常精度测试:模型在GPU上mAUC:0.762,目标精度mAUC:0.762,经过测试,实际模型精度为mAUC:0.759,与目标精度误差在0.5%以内,符合要求。FAQ6.1环境配置错误如果出现下图类似的报错,大致意思为程序找不到对应的包。应该是4.3小节当中的环境变量没有配置好。(注意:predictor.py和main.py执行之前都要先进行环境变量的设置)环境变量设置错误6.2环境变量设置的其他方法如果有同学难以掌握使用命令行进入.bashrc配置环境变量,可以在配置Ascend app时在Environment Variables栏手动输入。Ascend app 的Environment Variables输入框输入格式示例如下:设需设置的变量为 (仅为示例,路径格式可能并不合法)export install_path=/a/b/c/export DDK_PATH=/d/e/f/则可以打开输入框右侧的输入栏,仿照下图手动输入变量名和值输入格式示例6.3昇腾社区的力量说明:这是我本人进行项目时遇到的个例性问题及解决方案,可能不具有代表性。在在执行predictor Ascend app时,本来一直可以运行的predictor忽然报错Synchronization Failure 无法同步到远端服务器报错示意后来在社区发现,有人也有这样的问题且已经有人给出作答:问题链接: 不能连接到远端服务器_MindStudio_昇腾论坛 (hiascend.com)无法完成远端同步的原因可能是服务器满了。因为Ascend app执行时,会先在服务器对应空间中映射一个相同项目,然后执行相关操作,并将结果进行返回。如果服务器空间不够,则没有空间来对项目进行映射。果然,我再清理了一下服务器空间后,项目就可以完成同步映射了。因此,如果有实在不知道如何解决的问题,可以去昇腾社区找寻一下答案。里面有很多有代表性的问题,并且里面有很多技术大牛会给出自己的意见。昇腾社区链接:昇腾论坛 (hiascend.com)
  • [交流吐槽] 同志们,微快递订单已经受理
    订单已受理,单号还没生成11月2日到11月15日兑换的有没有一起的?
  • [问题求助] DME最新的用户手册哪里有?
    DME最新的用户手册哪里有?特别是介绍“生命周期”,“权限”相关部分的功能定义和运用事例
  • [热门活动] 有奖问卷 | 毕昇编译期待您的反馈!
    毕昇编译诚邀您参与填问卷赢好礼活动~问卷链接:cid:link_0
  • [问题求助] CloudSOP-UniEP一键式安装DigitalView失败
    【问题来源】公司内部实践学习【问题简要】CloudSOP-UniEP一键式安装DigitalView失败【问题类别】   DV【AICC解决方案版本】【必填】    【AICC版本:AICC 22.100.0】    【UAP版本:UAP9600 V100R005C00SPC108】    【CTI版本:ICD V300R008C25SPC006】【问题现象描述】CloudSOP-UniEP一键式安装DigitalView失败【错误截图】
  • [交流吐槽] 11月会员日的通知咋还没发呢
    这已经28号了,后天就是本月最后一天会员日了,小助手咋还没发通知贴呢,这个月都有什么好东东?
总条数:385 到第
上滑加载中