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

相关文章

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N