文章图片
前言
最近在做机器学习的作业,项目的目的是要用华为给的板子和课程完成一个类似于垃圾分类的图片分类的功能,但是,因为华为的开发版本的变化,导致我按照教程跑垃圾分类都跑不起来,wrong声一片
,花了博主一天的时间去调整改变,这篇文章带大家避坑,希望大家都能完成好项目。另外 @华为云开发者社区,希望我这篇文章对你们的教程改进有一点点帮助。
文章目录用于速查哪里出了问题对照
- 前言
-
- 开发环境的搭建
- Sdcard的制作
- 连接Atlas 200 DK开发者板
-
- 使用win系统下虚拟机进行连接开发板
- 转换模型
- 开发板运行
-
- 联网
- pip安装
- python3模块的安装
- atlas_utils安装
- 后记
开发环境的搭建
相关的网址在这里:Atlas200DK分设环境搭建指南其实上面的做完开发环境的搭建就算是完成了。接下来才是麻烦的开始。。。。。
我刚开始尝试使用原生的方式进行安装,结果折腾半天依赖过于麻烦,所以还是建议大家使用docker极简版安装。Atlas 200 DK开发者套件环境部署(1.0.9.alpha)极简版
其实按照教程直接往下走就好了,写的蛮好的,但是我遇到的点给大家记录一下:
一定要切换成Ascend
用户进行下载运行操作,因为Ascend
里面集成了环境变量,运行命令的时候不会发生错误。
Sdcard的制作
手边有个树莓派非常感谢胖哥送我的这玩意,所以手边有读卡器,但是那个博客给了一个4G的百度网盘,,,,我不是会员,我下不动,,,所以我自己做好吧。。。连接Atlas 200 DK开发者板
读卡器场景
其实这个部分官网都是有教程的。所以还算是比较方便的,按照上面的教程下载三个文件进行运行安装就好了。
我现在这个文档推荐的是1.0.9.alpha
,我就直接使用了它的最新版的5.0.2.alpha002
。其实docker里面带的是3.3.0,但是没啥影响我就没改
直接按照教程运行下载就好了。其实这里也没啥坑。这里如果你不是像我一样用的USB网卡的话建议改下LAN口的IP防止冲突
。不然后面连不上后悔死。。。。
上面的SDcard制作好了之后就插入开发板,然后上电。华为介绍了各种指示灯。我的建议就是转换模型有四个灯 你等到他们全都亮了就是启动完成了
。其他情况别瞎动,如果刷写固件的时候断电直接GG。。。
使用win系统下虚拟机进行连接开发板
因为我是使用的虚拟机,所以其他场景我也不知道咋弄,只提供虚拟机的连接方式。插上usb线(华为这个usb是个网卡,额,秀到我了,我还以为是个ttl)
如何安装windows的USB网卡驱动
按照上面的教程进行硬件的安装。然后官网教程就没了。。。。厉害厉害 我来补。。。
教程结束你win会拥有一个网卡像下图一样:
文章图片
然后按照下面的进入网络适配器的设置:
文章图片
文章图片
可能去控制面板进到这里更快??不清楚 你们试试
文章图片
官网给到的是需要修改本地的地址和板子保持同一个网段,我们这里找到适配器之后双击属性,找到IPV4改成下面这样:
文章图片
测试一下能不能连上:直接打开终端输入ssh HwHiAiUser@192.168.1.2
输入密码Mind@123
能连上就说明一切正常。
文章图片
我改IP了别学我。。。
然后到了这一步其实你的虚拟机和win网络是共享的,这就意味着你可以在虚拟机甚至虚拟机里的docker直接ssh访问,事实证明只要有ssh就行了,甚至没有也行,,反正都是scp传文件,用win传也不是不行。。。不过不重要,这样就算连上了完成了!!
上面的都完成了,按照教程,我们需要进行开发板运行atc
转换模型,可以看这个
实验二:基于CANN的垃圾分类实验,但是,这个地方清清楚楚的写着再开发板上运行
文章图片
我做了 一运行
文章图片
嗯,板子上没这个,整挺好,但是因为版本问题,我百度了很久告诉我这个是和toolkit
在一起的,我很庆幸自己没一开始就用docker想到这是开发linux上安装的。
所以这个命令是在linux开发机(说白了就是我们自己的电脑)上运行的
,记住我上面说的要用Ascend
用户,不然没有环境变量还是运行不了。转换模型之后再全部搬迁到开发板上!
教程给的这里很简单就是后记 【XingleiGao的日常|Atlas 200 DK开发者套件基于CANN的垃圾分类实验踩坑指南】筋疲力尽,教程中出现了太多的没有出现的情况,相信我这些坑解决之后,修改python标签啥的对各位看官都是洒洒水啦。祝大家都能完成,也希望亲爱的华为能够及时更新文档,不要让课程体验这么糟糕,糟心啊-。-
python3.6 src/classify_test.py ./data/
我敲了。然后numpy
没有,,,那我装不行嘛。哦 ,没网。。。。
联网
网上插上,然后按照这个使用网线通过路由器连接Ubuntu服务器,按照使用网线通过路由器连接Ubuntu服务器进行配置dhcp之后就能联网了。。。。。
pip安装
有了网我就想那就pip3 install numpy
呗
嗯 没有。。。那我apt isntall python3-pip
嗯 也没有/。。。这还能没有??????所以我们需要换源。。。
sudo vi /etc/apt/sources.list
将下面的内容填进去
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse# 预发布软件源,不建议启用 # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
其实就是清华源的内容,但是是arm64的处理器,注意选择ubuntu-port
接下来
sudo apt update sudo apt install python3-pip
就好了
python3模块的安装
先装一些依赖:
sudo apt-get build-dep python-imaging sudo apt-get install libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev
我装python-imaging
出错了,但是不影响。
然后是直接安装python3模块
pip3 install -i https://mirror.baidu.com/pypi/simple Cython numpyPillow
使用了百度镜像加速,不然太慢。
终于结束了,运行!!!!!
文章图片
又炸了。。。。
atlas_utils安装
上面炸了,我在想pip3安装不就好了,但是仔细一想,,这好像是华为自己的库,,,嗐,百度把。。。找到了下面的库
昇腾CANN样例仓介绍
然后只能用v5.0.0
的库,不然它改了名称我不确定会不会炸,直接下的zip解压会多一个master的后缀,建议mv
改掉。。。。弄好传到板子上目录像我这样:
文章图片
然后按照gitee仓库说的
文章图片
export PYTHONPATH=$HOME/samples/python/common/:$PYTHONPATH
就可以运行了,一切都完成了。
不过,还是非常感谢华为给我们提供平台资源让我们更加有效的学习机器学习这门课程的,华为yyds!
推荐阅读
- 机器学习|机器学习——垃圾邮件识别——SVM、MNB模型使用
- 深度学习|学习笔记(深度学习(4)——卷积神经网络(CNN)PyTorch实践篇)
- C++|STL - string(典型操作demo)
- 学习交流|C语言关键字auto,case,default,switch应该如何使用
- C编程语言|《c陷阱与缺陷》1-3章笔记
- 学习交流|C语言sizeof与strlen的区别与使用
- C语言|C语言打印字符,转义字符,注释(小白版)
- 读书笔记|C陷阱与缺陷--笔记
- C++|C++STL详解(一)(string类的介绍以及基本使用)