首页
首页 >> 科技咖 >> 正文

用英伟达Jetson Nano运行PyTorch & Fast.ai丨手把手教程+第三方工具

日期:2019-04-14 15:01:26 来源:互联网 编辑:小狐 阅读人数:405

原作 Interogativ

郭一璞 编译

英伟达Jetson Nano,作为老黄家最便宜的硬件,只要99美元。

看到便宜就想捡,拿到手里怎么玩?

造机器人、造小车、在家里DIY一个语音控制的窗帘,都得先装轮子。

如果你使用的框架是PyTorch,那你最好再装一个Fast.ai。

Fast.ai是在PyTorch上非常好用的深度学习库,来自MOOC平台Fast.ai,只要一个API,就包含了所有常见的深度学习应用。

那么,拿到Jetson Nano之后,如何把轮子部署上去呢?一位名叫Interogativ的用户就把用它运行PyTorch 1.0和Fast.ai 1.0的攻略发在了Fast.ai的论坛上,量子位全文编译如下:

用英伟达Jetson Nano运行PyTorch & Fast.ai丨手把手教程+第三方工具(图1)

英伟达Jetson Nano,配备了ARM Cortex A57处理器和4G内存,CUDA和PyTorch两者都可以在上面运行,这块板有难以置信的价值。

当然,你也可以用它来运行截至2019年4月最新最好的PyTorch和Fast.ai版本,这里是攻略。

软硬件准备

1、花99美元买一块英伟达Jetson Nano,现在国内已经可以买到了,当然,价格会比99美元(665)要贵一点。

2、一张64G的Micro SD卡,确保它是或者更高级别。

用英伟达Jetson Nano运行PyTorch & Fast.ai丨手把手教程+第三方工具(图2)

SD卡速度等级,来自SD协会网站

3、USB键盘,就台式机上那种。

4、2.5Amp电源线,带一个Micro-USB插头。

5、一个HDMI或者DisplayPort连接线显示器

6、连网:以太网网线,无线路由器或者HUB,这块板子没有本机无线支持,所以请确保你能用有线网络

7、能插Micro SD卡的PC,不能插SD卡的话你还需要准备读卡器。

setup_swapfile.sh

fastai_jetson.sh

setup_jupyter.sh

jetson_headless.sh

jupyter_notebook_config.py

当然,得记住你的存储路径。

可以开箱啦

你的新板子到货之后,无视里面自带的纸架,找一些防静电的泡沫塑料,其他的防静电的材料也行,把你的板子放上去。

用英伟达Jetson Nano运行PyTorch & Fast.ai丨手把手教程+第三方工具(图3)

2、按照说明把这些文件装到SD卡里。

3、将SD卡插入Nano,插上USB键盘、显示器和网线。

4、开机,接受各种许可协议之类的。

5、设置用户名密码,别忘了。

联网之后

2、用PC终端程序打开与Jetson Nano的SSH会话。

1chmod +x fastai_jetson.sh

2chmod +x jetson_headless.sh

3chmod +x setup_swapfile.sh

4chmod +x setup_jupyter.sh 设置交换文件

Nano只有4GB的RAM(GPU共享)你需要设置一个交换文件,如果已经有了就跳过此步骤。你可以从终端会话中运行setup_swapfile.sh:

./setup_swapfile.sh

确保这一步只进行一次,因为脚本里没写检查是否已设置,你可以执行以下操作检查是否设置了交换文件:

free

这时候你就应该看到创建了一个8GB的交换文件。

安装PyTorch和Fast.ai

如果这会儿你就想安装标准的Fast.ai和PyTorch,那就装吧,反正装不上。

这会儿,标准的pip命令根本没法用,但是如果你只是运行fastai_jetson.sh脚本,就可以把俩都装上。这个过程需要几个小时,所以不用屏住呼吸。

./fastai_jetson.sh

安装Jupyter笔记本

安装好Fast.ai后,它会告诉你:

Done withpart1 – now logout, login again andrun setup_jupyter.sh

这是因为Jupyter安装不会导出运行所需的shell变量。所以现在,关闭所有终端、SSH会话等,从图形界面重启Nano。重启完了就从图形界面打开终端。

2、运行./setup_jupyter.sh。

./setup_jupyter.sh

这也得一阵儿,所以这里也不用屏住呼吸。

此脚本的最后一步需要Jupyter密码,记住:

不是Jupyter登录密码!

不是Jupyter登录密码!

不是Jupyter登录密码!

就是设置一个单独的密码,你可以用这个密码在你网络上的任何PC上登录Jupyter笔记本,设置好密码后记住它。

运行Jupyter笔记本的话,需要打开终端或SSH实例并运行:

jupyter notebook

如果它没有运行,可能是因为你没有退出后再次登录。

好了,现在你可以运行PyTorch和Fast.ai了。

但如果你像我一样,你不需要在Nano上使用图形界面,并且想把所有内存都拿来跑程序的话,就接着往下看。

关于Python,Pip和VirtualEnv

一些有经验的Python用户习惯于虚拟环境(virtualenv,conda)它要求您在安装或运行软件之前激活“source activate”我们现在还没安装,其中一个副作用是pip和Python命令将在活动环境中自动运行Python 3或pip 3。

你必须用pip3和Python3分别运行pip和Python。因此,如果你正在运行一些使用!python xyz的笔记本,除非你将代码更改为!python3 xyz,否则它将无效。

存储空间不是一切,但绝对非常重要:

过去,比如说2010年,4GB的内存很大。如果不在这块板子上跑GPU,那就足以让笔记本电脑运行良好(8 GB的交换文件有很大帮助)但是你要想跑CUDA,那就没法在交换磁盘上运行,因此它占满了4GB的每个字节。

所以,为了省下一些存储空间,放弃图形界面吧,通过SSH用远程控制台操作。

现在,如果你准备好了,就找到最后一个脚本jetson_headless.sh,运行它,卸载图形界面,还能顺带清除300多M的不必要的软件包。

运行之后,重新启动,你就能拥有Nano控制台访问权限,现在机器只占用了大约378M的内存,留下了3.6G左右的空间可以运行PyTorch和Fast.ai。

1、运行

./jetson_headless.sh

2、重启,用SSH连接Nano。

传送门

Tera Term

WinSCP

英伟达者网站Jetson Nano套件指南

本文相关词条概念解析:

运行

解释:⒈周而复始地运转。2.犹活动。3.世运;命运。4.指程序正在被使用。5.系统命令。基本解释[move;beinmotion]星球、车船等周而复始地运转在轨道上运行。

图形界面

图形界面(简称GUI)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

网友评论