华为昇腾系列开发入门教程三:应用开发环境配置及Mind Studio的若干实践

本文主要是介绍华为昇腾系列开发入门教程三:应用开发环境配置及Mind Studio的若干实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

编|章磊

大兄dei,你能从这个枯燥的标题里点进来,证明你也是走过未来的人呐

挪,今天是2021年8月16号,愿昇腾大火的那天,尔等再看到这篇文章时不要忘记点个赞噢~

说实话,真心特别不想写这类文章,给人的感觉就是很枯燥,勾不起用户读下去的欲望,比如我在百度上根据“昇腾 开发环境 配置”关键字来搜索,画风是这样滴。。。。

在这里插入图片描述
总结就是三句话:劳资不想看,啥时候能滑完,告辞!!!

文章的作者如果不幸看到了这里……
在这里插入图片描述
在这里插入图片描述
好了好了,玩笑归玩笑,既然分享了,就值得表扬,毕竟很多人连官网教程的入口都不知道在哪咧。

应用开发环境配置

先献出两篇巨作~

《MindStudio 版本: 3.0.2安装手册》
《安装MindX SDK开发套件》
之所以推荐这个文档,是因为它里面基本涵盖了昇腾应用层开发关于环境变更配置的所有内容,如果某天文档更新了,请记得在官网这样搜索(根据面包屑实在没找到直接入口)。
在这里插入图片描述
环境配置逻辑大概是这样的啊(以下所有截图均来自上述文档及其子页):

1、你说你要开发应用吧,比如前几篇文章提到的图像分类,你就要配置MindX SDK;
在这里插入图片描述
在这里插入图片描述

2、MindX SDK需要一些底层库支持以及应用开发过程中的模型转换、自定义算子等功能,你还要装CANN(Ascend-cann-toolkit)及插件包
在这里插入图片描述
在这里插入图片描述

3、装CANN得有个基于Linux的OS,如CenterOS或Ubuntu,或者干脆买台服务器。
在这里插入图片描述
4、没有Linux环境,可能要装个类似VM或者docker的玩意儿
5、想在命令行使用cann toolkit工具,要配置环境变量
在这里插入图片描述
在这里插入图片描述
6、你想图形界面开发,要装Mind Studio吧
在这里插入图片描述
7、你用python开发,要装个python环境
8、只是基于MxBase开发,装个C++环境应该差不多
9、想在本地开发,华为服务器上运行,还要装个ssh吧(也可以直接用MindStudio内置的Remote Run)
在这里插入图片描述

(*以上新鲜词汇请转至《致名词,其实我还在这里》)

快!!告诉自己还能看下去。

在这里插入图片描述

那。。。。。大家结合官网这张图看下吧。
在这里插入图片描述
其实也只是看起来复杂,配起来更复杂,自己动手去吧~

等你们明白了什么是实践才是真理,一定会回来跟我一起写下这段话滴。

Mind Studio的若干实践

就在昨天,老夫心血来潮想尝试下Mind Studio,并结合这个粟子来调试python代码,按照老夫的悟性,两个小时应该差不多了吧,然鹅。。。。

还是从10点搞到了9点,主要是解决以下几个问题:

1、没接触过python的痛

导入项目后,给我报个找不到python解释器。
在这里插入图片描述
直接点进去,MD一头雾水,你好歹也给我提示到对应的操作入口啊,google了下”pycharm python interpreter config“,解决。
在这里插入图片描述

2、cv2无法引用

这种问题好办,直接看看Studio里项目依赖有没有cv2,在这里加一下就解决了。
在这里插入图片描述
当然,也可以直接安装。
在这里插入图片描述
问题是解决了,但不优雅啊,凭什么命令行里可以”import cv2“,这里引用相同版本的python却不行了呢。。。。

3、atc命令用不了啊啊啊

之前做的时候,模型是在华为云服务器里配置的,因为那里环境都已经配置好了,所以什么atc转换模型用起来得心应手。

今天尝试在本地环境来转换下模型,“not found command atc”。
在这里插入图片描述
打开bashrc文件,加上mxsdk时的atc/lib54,source后再重启终端,反正怎么折腾都不行。就这样,过了两个小时……

最后,实在不想折腾了,把云里的bashrc文件拿过来简单的改了下,再输入atc,终端停顿了2s,终于告诉我参数格式不正确,你们能从字里行间里读出我看到我说这句话的喜悦了吗
在这里插入图片描述

4、改了环境变量,api叕用不了啊

潜意识下,觉得改完环境变量,MindStudio再打开应该会报错,果然, 25个小红叉。
在这里插入图片描述

这里的修复过程不说了,反正搞了3、4个小时,最后是LD_LIBRARY_PATH出了问题。
在这里插入图片描述

5、说好的远程运行呢

官网上关于Remote Run似乎只有C++部分,但是python具体的参数怎么填呢。
在这里插入图片描述
想当然地这样配置了,Mind Studio不出意外地报个错。
在这里插入图片描述
辣么,问题就回到如何让云服务端以python main.py来执行呢,而不是./main.py。
机智如我,在项目下建一个start.sh文件,写入python3 main.py,然把这个文件的路径配上去,可以是可以,但总觉得有点麻烦。

最后在老师的指导下,在executable处配上服务端的python地址,如usr/local/python3,参数处填上main.py,才似乎可以了,毕竟还是报了一个相对路径的错误,就不管啦,大不了去服务端输入个命令好啦。

总结

看到这里,相信大家对昇腾应用开发环境配置有个大概的了解了,还是那句话,细心使得万年船啊

好了,就扯这么多了,整个环境配下来,严重影响了老夫写文章的心情,不写了不写了,
写的什么鬼东西。

这篇关于华为昇腾系列开发入门教程三:应用开发环境配置及Mind Studio的若干实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/832382

相关文章

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据