Nvidia Jetson Nano B01初体验(一)
(一)背景
Jetson Nano是Nvidia推出的AI套件。由于各种原因,Nvidia的价格几乎成为了这几年游戏玩家和AI学习者的噩梦,Jetson Nano也没有逃出这个局。
2021年11月左右,CANN训练营第三期的奖品之一是一个不带主板的机械臂。这个机械臂可以使用两种类型的主板——树莓派和Jetson Nano(B01)。记得当时的价格是带主板的接卸比为2600元,不带主板的为1600元,相当于Jetson Nano为1000元左右(谁还记得当初发布的时候报价为99美元),但是当时单买主板需要1300元。当然,这是商家的定价策略,希望用户能够打包购买。当时张小白做了一个错误的决定——因为感觉单主板需要1300——太贵,买了当时价格为750+的树莓派(现在价格为799元)。
结果到了2022年1月份,Jetson Nano的价格一路飙升,至本篇文字发稿时为止,单主板的价格已涨到2499元,已经接近了机械臂套件(含主板)的价格——这也证明,张小白完全不会理财。
这一度阻止了张小白玩转机械臂的进程(其实是张小白你懒癌发作了吧——旁白)
然而,作为一款搭载Cortex A57、128核Maxwell GPU和4G LPDDR内存,支持2路摄像头,提供472GFLOP算力(相比而言,昇腾Atlas 200DK开发者套件提供22/16/8 TOPS INT8,11/8/4 TFLOPS FP16算力)的经典产品,能跑TensorFlow(含Keras),PyTorch,Caffe,MXNet等框架的经典产品,还是值得把玩一番的。
(二)制卡
张小白下载了Nivida 2022冬季训练营的CUDA On ARM 的 Nano 版镜像:
并且在Windows11环境下载了balenaEtcher软件:
安装之后打开:
准备一张空白的64G TF卡
点击 Flash from file,选择前面下载好的镜像文件:
点击中间的Change,选择TF卡的盘:
点击Select:
点击Flash进行刷机:
。。。
耐心等待刷机完毕:
(三)开箱
Nano的包装盒正面:
反面:
打开外包装,这是一个由黑色包装袋包装好的设备:
全新未拆封:(卖家还是非常良心的)
撕开包装之后:
主板正中上面是一个很大的散热片,左边是两个摄像头CSI接口,右边有个40引脚的CPIO,右下角是个5V2A的MicroUSB接口(可以使用电源供电,或者使用PC连接);正下方有1个HDMI 2.0视频接口和1个DisplayPort 1.3视频接口,4个USB3.0接口,一个RJ45千兆以太网接口。左下角是个5V的DC供电口。看视频是推荐使用5V4A的DC供电方式( 使用DC电源需要短接J48跳线帽),因为电源连接这里可以开启15w的高功率模式。据说YoloV3的应用,电流需要2.9A左右,如果连接右下角的电源口,会让Nano板不断地发热和重启。但张小白貌似没有找到这个跳线帽。问了下卖家,他说用MicroUSB做电源应该也没事儿。
(四)安装亚克力板
下面第一件事就是将Nano装入亚克力板中保护起来。
先拆开散热片:
将右边另购的无线网卡插入上图左边的插槽,并用螺丝拧紧。
陆陆续续装好之后,大概是这个样子:
然后将前面制好的TF卡插入上图孔中的TF卡槽。
然后在USB口上接入鼠标、键盘,并在网口接入网线,在HDMI口接入电视机(貌似有点奢侈)
(五)启动
加电启动:
切到这里就不动了:
按理说,这个应该是启动起来了,但是张小白也不知道用户名和密码是啥。而且这个报的是什么错也搞不清。
(六)重新制卡
于是决定从官网下载镜像来装试试。
打开官网:https://developer.nvidia.com/embedded/downloads
点击上图箭头所指的 Download the SD Card Image:
下载好的Jetpack 4.6大约有6.3G左右。
然后再用Etcher制作TF卡:
(张小白是用32G的TF卡制作的)
制卡完毕后,拔出原来的TF卡,插入这张TF卡。
(七)Nvidia版Ubuntu安装配置
加电启动:
进入Ubuntu安装界面:
选中accept,继续:
选择中文(简体),继续:
选择键盘,继续:
选择时区上海,继续:
输入以上用户名密码(zhanghui/nano1234)
选择默认的App分区大小:
删除无用的启动分区:
Nvpmodel选择缺省MAXN
耐心等待配置完毕:
系统会重启:
登陆后,进入了Ubuntu的图形界面:
可惜字太小了,张小白真的看不清。
可以到路由器上看下IP地址:
(也不知道张小白为啥不直接打开终端看一下。。是在显摆自己绝版的极路由吗?)
于是,可以使用MobaXterm登录Nano了:
(八)apt更新
还是打开终端,需要做下apt更新:
sudo apt-get update
...
然后做sudo apt-get full-upgrade
按Y继续,这里要有点耐心,可能会因为网络慢而超时报错,如果遇到了不要紧,耐心重做一遍即可:
(九)安装curl、nano、pip等系统软件
然后安装curl:
sudo apt install curl
安装nano:
sudo apt install nano
安装pip:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3 get-pip.py
貌似报错了,缺省的Python是3.6.9,get-pip.py需要Python3.7。于是张小白决定暂时不装Python 3.7,而是下载与Python3.6配套的get-pip
curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip3.6.py
sudo python3 get-pip3.6.py
虽然报了个错,但是也安装完毕。
当然,张小白不能期待一个不完美的安装:
sudo pip3 install testresources
再来一遍:
这回没报错了。
(十)检查已安装软件CUDA10.2,cuDNN,openCV4.1.1,visionworks
然后我们看一下已经安装的软件:
CUDA10.2,cuDNN,openCV4.1.1,visionworks好像都已经装了。
我们来配置一下nvcc:
修改.bashrc
source ~/.bashrc使其生效:
cd /usr/src/cudnn_samples_v8/mnistCUDNN/
sudo make
报错了,不过这个难不倒张小白:
sudo apt-get install libfreeimage3 libfreeimage-dev
按Y继续:
再来:
sudo make
运行:
./mnistCUDNN
..
运行成功。
(十一)安装TensorFlow所需依赖
下面我们来安装TensorFlow:
sudo apt-get install python3-numpy
sudo apt-get install python3-scipy
sudo apt-get install python3-pandas
sudo apt-get install python3-matplotlib
貌似上面几个在Jetpack 4.6已经内置,无需安装了。
sudo apt-get install python3-sklearn
按Y继续:
。。。
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
。。。
打开 https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html
前面有些动作已经做过了,那就接着做完:
sudo pip3 install -U --no-deps numpy==1.19.4 future==0.18.2 mock==3.0.5 keras_preprocessing==1.1.2 keras_applications==1.0.8 gast==0.4.0 protobuf pybind11 cython pkgconfig
这里也要耐心等待,时长也会出超时的错误,遇到后重新执行就行了。
。。。
sudo env H5PY_SETUP_REQUIRES=0 pip3 install -U h5py==3.1.0
好像出错了。
sudo apt-get install python3-pip
按Y继续:
sudo pip3 install -U pip testresources setuptools==49.6.0
再来一遍试试:
sudo env H5PY_SETUP_REQUIRES=0 pip3 install -U h5py==3.1.0
终于安装成功了。
(十二)安装TensorFlow 1.15
我们来安装TensorFlow 1.15吧,毕竟TF2与TF1的差异还是蛮大的。
sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v46 'tensorflow<2'
。。。
安装完毕,我们来做个验证:
写了不少了,暂时就到这里吧。
祝大家节日快乐!
(未完待续)
- 点赞
- 收藏
- 关注作者
评论(0)