一、MindStudio体验官活动的背景
张小白曾经在 《张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4》系列文章中体验过MindStudio 3.0.4,当时MindStudio确实在多处文章中出现,包括:
安装:https://bbs.huaweicloud.com/blogs/345869 ,
模型转换: https://bbs.huaweicloud.com/blogs/348182
等。
因为使用MindStudio的方式跟直接在终端运行推理的方式略有不同,比如说在MindStudio运行作业,CMakesLists.txt文件可能需要修改等等,这些张小白在文中还特意指出过。
但是作为一个正在冉冉升起的CANN集成化开发工具,MindStudio确实做得越来越出色了,这不,它已经推出了5.0版本(不要问我为啥没有4.0版本,我曾经解释过了)。
近期的MindStudio体验第一期正在进行中:https://bbs.huaweicloud.com/forum/thread-190510-1-1.html ,下载链接中的附件,解压后,会发现有两个活动:
活动1是使用MindX SDK复现应用,活动2是MindX SDK开发应用。
于是,张小白聪明地先选择了复现。
当然,体验前没那么简单,需要做好几件事情:
(1)阅读 https://www.hiascend.com/document/detail/zh/mindstudio/50RC1/msug/msug_000144.html 中的相关内容,了解如何通过MindStudio 5.0.RC进行MindX SDK类型的应用开发。
(2)准备MindStudio 5.0.RC的环境以及跟其配套的CANN环境(这次体验的环境将会由MindStudio团队准备完毕后,由小助手以镜像的方式发给体验官——也就是我本人)
(3)查看并选择MindX SDK要复现的案例:https://www.hiascend.com/developer/case-studies
(4)在相关环境上复现相关案例。
二、了解复现案例内容
当然,当张小白打开 ”图像卡通风格迁移“的案例:https://www.hiascend.com/zh/developer/mindx-sdk/case-studies/051ec03c-ea76-4fca-9c2e-5bf2f98a4909
并打开上面gitee的链接:https://gitee.com/ascend/mindxsdk-referenceapps/tree/master/contrib/CartoonGANPicture
在上面的页面中,找到下载链接:
先把这个下载下来,备用:
https://gitee.com/link?target=https%3A%2F%2Fmindx.sdk.obs.cn-north-4.myhuaweicloud.com%2Fmindxsdk-referenceapps%2520%2Fcontrib%2FCartoonGANPicture%2Fmodel.zip
然后我们到昇腾官网,打开MindStudio主页:https://www.hiascend.com/software/mindstudio
点击下面的立即下载:
可以看到:
MindStudio 5.0.RC2配套的CANN版本需要是 CANN商用版本 5.1.RC2
三、准备MindStudio 5.0的体验环境
1、购买AI1S服务器
了解了这些知识点之后,张小白就耐心等待小助手的 MindStudio所需的镜像(应该是CANN 5.1.RC1的)
于是使用该镜像申请服务器:
选择 按需-X86-AI加速型-ai1S.large.4:
确认金额大概是每小时1块多钱左右,基本上就没错了
下一步,网络配置:
选择网络,安全组FullAccess,现在购买弹性公网按流量计费100M
下一步输入云服务器的名称和root密码:
确认配置:
点击同意后,立即购买!(千万别忘了看下收多少钱。。。)
返回列表查看服务器是否创建完毕:
一会儿就建好了(从而也开始收费了!)
使用MobaXterm登陆:
点击OK登陆:
输入密码:xxx
成功登陆。
查看下CANN的版本看看:
确认CANN是5.1.RC1版本。(但其实张小白也不知道怎么区分社区版和商业版)
2、下载MindStudio 5.0安装包
于是,又一个两难的选择放在张小白面前:到底是在Windows上安装MindStudio,还是在这台AI1S服务器上安装MindStudio。
想起在别的地方也能玩转MindStudio 5.0,不妨就直接装到服务器上吧!不过这样就得选择Linux-X86版本了!(记得当时张小白选择的是X86服务器)
回到:https://www.hiascend.com/software/mindstudio/download
怕是这次测试的版本也已经尽早地离开了当前舞台。。。
只好到下面的“历史版本”中追寻~~
好在看到了这个:
点击下载Linux版本(第一个)
同意后立即下载:
耐心等待562M的tar.gz包下载完毕。
将其传到AI1S服务器上去。
稍等,好像下错了!
看来只能下载5.1.RC2啊。因为没有5.1.RC1了。刚才眼花,看到的历史版本里面其实是5.0.RC1.。。。
天啦!
无奈只好再下载 5.1.RC2:
好在是宽带,不然1个G的流量都没了!
(在这个过程中AI1S服务器在缓慢的呼吸,它在偷偷消费。。。)
说实话,我有点老眼昏花。我明明下载的是5.1.RC2,下载完毕的文件名是:MindStudio_5.0.RC2_linux.tar.gz
原来我又看错了。。。
MindStudio确实应该下载5.0.RC1.。。。。仅仅是因为CANN的版本是5.1.RC1而已。。
花钱中。。请稍后:
文件被传到了 /root下:
3、安装MindStudio 5.0的相关依赖
根据手册 https://www.hiascend.com/document/detail/zh/mindstudio/50RC1/instg/instg_000011.html
我们得安装到 HwHiAiUser用户下:
根据 https://www.hiascend.com/document/detail/zh/mindstudio/50RC1/instg/instg_000014.html
要求,检查相关软件是否安装:
这里的镜像居然HwHiAiUser用的是sh
需要改为bash:
vi /etc/passwd
重新进入HwHiAiUser用户,在.bashrc下增加以下语句:
编辑一个 use_private_python.info,里面增加以下语句:
重新检查 python3和pip3的版本:
好了,Python变成3.7.5了。
pip3 list 查看已经安装的包:
跟 https://www.hiascend.com/document/detail/zh/mindstudio/50RC1/instg/instg_000014.html
中的要求好像有点差异:
pip3 install numpy
pip3 install decorator
pip3 install sympy
pip3 install cffi
pip3 install pyyaml
pip3 install pathlib2
pip3 install psutil
pip3 install protobuf
pip3 install scipy
pip3 install requests
pip3 install grpcio
pip3 install pylint
pip3 install absl-py
pip3 install pyyaml --user -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pathlib2 --user -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pylint --user -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install absl-py --user -i https://pypi.tuna.tsinghua.edu.cn/simple
现在应该都装齐了:
pip3 list
以上安装依赖执行完毕。
4、安装并启动MindStudio 5.0
使用root将MindStudio的安装包拷贝过去,设置下权限
cd /root
cp MindStudio_5.0.RC1_linux.tar.gz /home/HwHiAiUser/
cd /home/HwHiAiUser/
chown HwHiAiUser:HwHiAiUser MindStudio_5.0.RC1_linux.tar.gz
切换到 HwHiAiUser用户下:
解压
tar -zxvf MindStudio_5.0.RC1_linux.tar.gz
cd MindStudio
cd bin
./MindStudio.sh
看解决方案:https://www.hiascend.com/document/detail/zh/mindstudio/50RC1/instg/instg_000030.html
确实是登陆用户为root,启动MindStudio的用户为HwHiAiUser
那么我们就需要使用HwHiAiUser登陆。在这之前,需要修改下HwHiAiUser的密码:
MobaXterm重新使用HwHiAiUser登陆:
再来试试:
有希望:
MindStudio的主窗口已经出来了。
四、使用MindStudio 5.0体验卡通风格迁移
1、下载卡通风格迁移的案例代码
再打开一个MobaXterm窗口:
将sample代码仓拉下来:
git clone https://gitee.com/ascend/mindxsdk-referenceapps.git
进入卡通的目录:
cd mindxsdk-referenceapps/
cd contrib/CartoonGANPicture
mkdir -p data/model
cd data/model
下载模型和配置文件:
wget https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/CartoonGANPicture/model.zip --no-check-certificate'
解压:
unzip model.zip
没想到带了目录,就把文件往上挪一层目录试试:
2、使用MindStudio打开卡通风格迁移的项目工程的失败尝试
在MindStudio页面上打开这个工程看看:
点击OK:
点击Trust:
总觉得打开的姿势哪里不对。。记得MindX工程应该有个图形界面什么的,都跑到哪里去了?
关闭这个工程。
点击New Project:
在弹出的菜单中,选择Ascend App:
点击CANN version右边的change:
选择 CANN toolkit的路径:
/usr/local/Ascend/ascend-toolkit/5.1.RC1,上面会自动变为 CANN 5.1RC1
点击Finish:
点击Next:
这里选择 MindX SDK Project(C/C++)的模板吧!(上面那个,下面是个图像检测+图像分类的例子)
这相当于新建了一个MindX SDK的工程,下面看看如何将 卡通的项目迁移到这个工程里面来。
阅读文档 https://www.hiascend.com/document/detail/zh/mindstudio/50RC1/msug/msug_000150.html
对比现在MindStudio的页面:
好像还是有点丈二和尚摸不着头脑。。。
3、使用命令行方式跑通卡通风格迁移的工程样例
先看看能不能按照 https://gitee.com/ascend/mindxsdk-referenceapps/tree/master/contrib/CartoonGANPicture
的方式把应用跑起来。
先切换到 data/models目录下,完成atc模型转换:
耐心等待转换结束:
可见om离线模型已经生成。
通过阅读 https://www.hiascend.com/document/detail/zh/mind-sdk/30rc1/vision/mxvisionug/mxvisionug_0031.html
找到查看 MX_SDK_HOME的方法:
bash ./usr/local/Ascend/mindx_sdk/mxVision_3.0.RC1/linux-x86_64/mxVision-3.0.RC1/set_env.sh
env | grep MX_SDK
可以得出:MX_SDK_HOME=/usr/local/Ascend/mindx_sdk/mxVision_3.0.RC1/linux-x86_64/mxVision-3.0.RC1
再回到 https://gitee.com/ascend/mindxsdk-referenceapps/tree/master/contrib/CartoonGANPicture
将以下内容加入 .bashrc
export MX_SDK_HOME=MX_SDK_HOME=/usr/local/Ascend/mindx_sdk/mxVision_3.0.RC1/linux-x86_64/mxVision-3.0.RC1
export LD_LIBRARY_PATH=${MX_SDK_HOME}/lib:${MX_SDK_HOME}/opensource/lib:/usr/local/Ascend/ascend-toolkit/latest/acllib/lib64:/usr/local/Ascend/ascend-toolkit/:${LD_LIBRARY_PATH}
source .bashrc使其生效。
cd ~/mindxsdk-referenceapps/contrib/CartoonGANPicture
vi CMakeLists.txt
因为环境变量刚设过了,所以按理说不改这个文件应该也行的。
bash build.sh
查一下这个文件:
好像还真的改CMakeLists.txt
重新编译:bash build.sh
居然有权限问题。。。
原来镜像中,这个目录的权限是root/root
改为HwHiAiUser/HwHiAiUser吧!
chown -R HwHiAiUser:HwHiAiUser /usr/local/Ascend/mindx_sdk
重新编译:
bash build.sh
acl也没找到,估计也是权限问题。
chown -R HwHiAiUser:HwHiAiUser 5.1.RC1
再来:
bash build.sh
还是一样。
检查了下CMakeLists.txt,原来acl的路径并没有放到 里面:
于是在include_directories里面加上acl的路径:
/usr/local/Ascend/ascend-toolkit/5.1.RC1/acllib/include
再来:
bash build.sh
终于编译成功了!
创建两个目录:
data/images
data/output
下载样例图片:
cd images
wget https://r.huaweistatic.com/s/ascendstatic/lst/as/dev/casestudy/pc/img_casestudy_%20Colorizationin_20211216.png
回到主目录,执行推理:
./CartoonGAN_picture ./data/images
看来还是执行代码有问题啊。。
看来需要加上MindX SDK的库文件路径才行:
在 ~/.bashrc中增加以下内容:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Ascend/mindx_sdk/mxVision_3.0.RC1/linux-x86_64/mxVision-3.0.RC1/opensource/lib
source ~/.bashrc使其生效。
重新执行:
可以执行了。但是报了一个文件权限不对的问题。
查了gitee最后一段文字:
原来我前面上传的文件是png格式。那当然不行。
怎么办?
将图片在windows端下载后,用 画图打开,另存为 jpg文件:
然后再上传到AI1S服务器上,确认是jpg无误后,再次执行:
发现output目录终于有结果文件了:
下载到本地:
好像确实卡通化了。
我们看看原图:
张小白一时兴起,就拿着自己前两天的海报做了一下:
恩。。。。
所以,这只是MindX在 终端上完成了gitee上的功能,但是并没有解决本次要体验MindStudio的问题。
so。。。。MindStudio到底应该怎么体验呢?
4、使用MindStudio正式体验卡通风格迁移的工程
经过张小白在群里不懈追问:
终于认识到这个工程的合理打开方式。
于是开机:
登陆MobaXterm,打开MindStudio,来验证一下:
先打开这个工程:
点击Trust:
打开后:
关闭tips
点击 Ascend菜单-》Convert to Ascend Project :
选择 Type为Ascend App, sub Type为 Ascend MindX SDK App。点击OK。
点击 Ascend-CANN Manager:
可见CANN的软件都配置上去了。
交叉编译器里面也有g++
点击 MindX SDK配置:
目前是空的。应该是因为MindX SDK的目录不对。从前面的命令行的实践结果来看,MindX SDK的地址是:/usr/local/Ascend/mindx_sdk/mxVision_3.0.RC1/linux-x86_64/mxVision-3.0.RC1
我们来改改看:点击Import SDK,输入上面的路径,点击OK:
SDK也被成功识别了。
打开Tools菜单的Deployment-configuration,配置一个server:AI1S
在右边配置connection:点击SSH configuration右边的。。。
在弹出的菜单中配置一个ssh server:
增加一个服务器,输入AI1S服务器的IP地址,HwHiAiUser用户名和密码:
点击Test Connection,第一次会弹出以下界面:
点击OK即可。
第二次Test就会显示 成功连接。
点击OK。
再切换到Mappings配置:
点击下面的 + ,选择缺省配置,保存即可:
张小白暂时理解一下他的意思:
local path:/home/HwHiAiUser/mindxsdk-referenceapps/contrib/CartoonGANPicture
就是工程在MindStudio这里的目录
Deployment Path:/home/HwHiAiUser/MindStudio-WorkSpace/CartoonGANPicture_58765241
就是工程部署到服务器上的目录,可以看到这个目录后面带个随机数。就是怕可能跟其他工程重复。
这里面的意思大概是,在MindStudio本地开发的项目,通过ssh协议,将其传到 服务器上的Deploment Path运行。
点击OK关闭这些配置窗口。
点击Build菜单-》Edit Build Configuration:
点击+
先保持缺省的看看:
点击OK。
点击Build-》Build -》Debug
在output窗口可以看到编译结果。目前是成功的。
因为以前张小白在命令行编译过,所以特意将原来目录下的 CartoonGAN_picture改名,然后再build一次试试:
build结果如下:
可见生成了一个新的可执行文件。
我们试着将这个可执行代码运行一下,同样的,需要先 Run-Configuration一下:
Run Mode选择remote run
Executable选择 刚才编译好的 CartoonGAN_picture
command arguments选择 原来命令行的参数 ./data/images
点击OK。
点击Run-》Run CartoonGAN_picuture:
先耐心等待相关的代码传到服务器上(张小白突然想起 om文件挺大的,好像又多花钱了,还有pb文件,完全没必要上传啊。。。感觉非常郁闷)
正当张小白郁郁寡欢的时候,突然屏幕乱闪:
这两张图片居然都处理完毕了。
当然,由于张小白前面做过一次。也不知道是不是新生成的,还是老的。
于是大胆删除了output下的文件,再来一次:
output下已经空了。
再来Run一次:
对了,新的两个文件生成了!
恩。。。剩下来的事情,就是看看代码中pipeline到底怎么看。。。
老师让我找一下这个目录下有没有一个后缀名为 .pipeline的文件,如果有,就可以看pipeline
并没有。。
所以,这个工程是没有pipeline的。
当然,上层目录下有很多工程都是有pipeline的,张小白正好找到了没有的那个。看来张小白可以去买彩票了!
终于使用MindStudio 5.0完成了这个卡通风格迁移。
最后提醒一句,记得关机(或者删除AI1S服务器),不要花冤枉钱!
(全文完,谢谢阅读)
评论(0)