华为昇腾系列开发入门教程三:应用开发环境配置及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

相关文章

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做