时下火热的AI浪潮,似乎商品都需挂钩AI这名词,作为边缘计算类产品的JetsonNano是货真价宜人工智能产品,JetsonNano具备Maxwell128核心的GPU和4核心 ARM A57的CPU,可运行Ubuntu(Linux for Tegra,L4T),浮点运算能力为472GFLOPS(FP16),官方给出的功率为10W,如此功率和算力已经相当可观,对比其它厂商的板卡可谓一枝独秀。GPU、TPU、CPU等计算类产品相关介绍请点击我了解。
JetsonNano可以用来干嘛?若仅仅用来跑控制程序未免过于浪费,所以,本文开始将通过JetsonNano+TensorFlow介绍机器学习相关内容(神经网络(Neural Network)简要发展可点击我了解),帮助用户理清入门TensorFlow的思路
注意:
下载镜像,根据版本要求一定要下载4.2的。因为Cuda要一致,如果是4.3以上的版本不一致。
参考 https://tensorflow.google.cn/install/source#linux
更换 apt 镜像源,一定要换。
首先备份原本的source.list文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #为防止误操作后无法恢复,先备份原文件sources.list
sudo vi /etc/apt/sources.list
然后删除所有内容,复制
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
pip国内的一些镜像
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
修改源方法:
临时使用:
可以在使用pip的时候在后面加上-i参数,指定pip源
pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
永久修改(建议):
linux:
修改 ~/.pip/pip.conf (没有就创建一个), 内容如下:
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
windows:
直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,在pip 目录下新建文件pip.ini,内容如下
或者按照网友的建议:win+R 打开用户目录%HOMEPATH%,在此目录下创建 pip 文件夹,在 pip 目录下创建 pip.ini 文件, 内容如下
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
检查系统环境
cat /usr/local/cuda/version.txt
CUDA Version 10.0.326
① 登陆Jetson Nano,安装相关函数库,点击我参阅登录Jetson Nano相关教程,输入下面命令:
sudo apt-get update
sudo apt-get install python3-pip libhdf5-serial-dev hdf5-tools
sudo pip3 install --pre --no-cache-dir --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu
sudo python3 -m pip install --pre --no-cache-dir --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu
安装过程因为网络问题经常中断,可以迅雷下载。传到目录下手动安装
常见速度比较慢的几个下载地址:
https://developer.download.nvidia.cn/compute/redist/jp/v42/tensorflow-gpu/tensorflow_gpu-2.0.0+nv19.11-cp36-cp36m-linux_aarch64.whl
sudo pip3 instal tensorflow_gpu-2.0.0+nv19.11-cp36-cp36m-linux_aarch64.whl
https://pypi.tuna.tsinghua.edu.cn/packages/2d/f3/795e50e3ea2dc7bc9d1a2eeea9997d5dce63b801e08dfc37c2efce341977/numpy-1.18.4.zip
sudo pip3 install Desktop/numpy-1.18.4.zip
https://pypi.tuna.tsinghua.edu.cn/packages/cf/7a/9744998129fce7e29c5f2d8b0f545913b7383e65d8366fc0ae98d11936af/grpcio-1.28.1.tar.gz
sudo pip3 install Desktop/grpcio-1.28.1.tar.gz
pip安装报错,无意中查到可以这样安装参考https://askubuntu.com/questions/1093441/cannot-instal-h5py
解决: sudo apt install python3-h5py
多次尝试,下载安装,再次安装tensorflow。中途可以更新pip3, python3 -m pip install --upgrade pip 以后使用python3 -m pip install 语句执行pip3。 --no-cache-dir 不缓存
python3 -m pip install --pre --no-cache-dir Desktop/tensorflow_gpu-2.0.0+nv19.11-cp36-cp36m-linux_aarch64.whl
② Jetson Nano 镜像的numpy库是最新的测试版,若发现库不能使用,先卸载numpy库,再重新安装,安装完成后可直接在命令行导入tensorflow库查看是否正确安装。下图所示即为正确安装,失败则会有提示信息刷屏。输入下面命令:
sudo python3 -m pip uninstall numpy (成功卸载掉)
sudo python3 -m pip install numpy 重新安装编译时间比较长
sudo apt-get remove numpy
sudo pip3 install numpy
python3
import tensorflow
能够正常不报错,此时可以按下Ctrl+Z或键入exit()退出python3交互界面
③ 另外安装其它支持包,分别输入下面命令:
sudo apt-get install python3-matplotlib
sudo apt-get install python3-dev python3-setuptools libtiff5-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev tcl8.6-dev tk8.6-dev python3-tk
sudo pip3 install pillow
可以查看tensorflow版本
pip3 list | grep tensorflow
tensorflow-estimator 2.0.1
tensorflow-gpu 2.0.0+nv19.11.tf2
可以查看英伟达 CUDA 版本
cat /usr/local/cuda/version.txt
CUDA Version 10.2.89
这里的版本要与nano系统一致。
关于pip的几条建议:
第一条:只用系统管理包去升级系统的pip。系统的包是发行版,不使用系统发行版提供的工具去管理就会发生问题。
第二条:不要sudo 和pip一起用,这会改变系统的pip发行版本
第三条:积极使用–user,这样就可以在个人目录下安装软件包。
安装好后还是有小问题
ERROR: google-auth 1.14.2 has requirement setuptools>=40.3.0, but you’ll have setuptools 39.0.1 which is incompatible.
ERROR: tensorboard 2.0.2 has requirement setuptools>=41.0.0, but you’ll have setuptools 39.0.1 which is incompatible.
装好了TensorFlow但是调试有些不方便,本来 Jetson Nano的内存就不大,在上面跑pycharm有些不现实。
为了解决调试问题,我先是安装了jupyter notebook ,然后开启远程登录。
在服务器上配置jupyter设置远程登录
1、生成配置文件(~/.jupyter/jupyter_notebook_config.py)
jupyter notebook --generate-config
2、生成密钥
先进入python环境,执行
from notebook.auth import passwd
passwd()
此时会让你两次输入密码(该密码作为客户端登录jupyter用),然后就会生成秘钥 (秘钥作为配置文件用)
************
3、编辑配置文件
vim ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip=’*’ # 就是设置所有ip皆可访问。(这句是关键)
c.NotebookApp.password = u’sha:ce… # 刚才复制的那个密文’
c.NotebookApp.open_browser = False # 禁止自动打开浏览器
c.NotebookApp.port =8888 #随便指定一个端口
如果要配置默认目录:
c.NotebookApp.notebook_dir = u’/home/xxx’
4、在服务器端启动 jupyter notebook
本地地址栏输入服务器ip:8888 就可访问了,远程也可以访问。
拿了官网的测试了一下,发现在运行比较大的计算时还是不太方便,之后配置了pycharm远程连接。
要注意pycharm选择的版本不能是社区免费版,社区免费版没这功能啊。注意检查Tools -> Deployment -> Configuratgion 。看看如果没有这个就得换专业版。
新建sftp远程连接到 Jetson Nano,输入用户名密码可以测试一下。
设置开发路径mappings
python3 默认解析器的位置
File -> Setting -> Project Interpreter 点击齿轮添加解析器
重点是设置远程python包环境,这个具体要在nano里查。
pip3 --version 就会输出路径位置,
pip 20.1 from /home/tangyihao/.local/lib/python3.6/site-packages/pip (python 3.6)
通过输出可以知道是python3.6
只要将路径设置成 /usr/bin/python3.6 就可以了。
可以看到有在nano里安装的tensorflow-gpu
直接运行示例代码,文件会自动上传到Jeson Nano 里指定的目录下,并直接运行。
对于买不起专业显卡的学生党是个不错的入门工具。