亚图跨际
国际网址https://viadean.notion.site

基于Jetson Nano和PyTorch的图像识别

 二维码 949

背景知识视频教程

入门篇

设置您的Jetson Nano

刷新操作系统并启动

Jetson Nano运行ARM兼容版本的Ubuntu 18.04,您必须使用笔记本电脑或台式机将其刷到SD卡中。按照Nvidia的说明,在强大的Jetson Nano上启动并运行Ubuntu。

不用担心SD卡在闪烁后是否会显得较小,它将在Nano的首次启动时扩展到最大容量。首次使用时,设置有时似乎停留在“正在应用更改”上,并显示消息“正在等待无人参与的升级退出”。 它并不总是会发生,但是只要有耐心。 我的曾经花了25分钟才能完成。

使用SSH控制

与其直接在Jetson上工作,还不如从您自己的计算机上通过SSH控制它,这是我的建议。您可以在Ubuntu,macOS和Windows 10中使用SSH(发布2018年4月更新)。要通过SSH控制Jetson Nano,您需要使其通过以太网或Wi-Fi连接到相同的本地网络。

通过在Jetson上运行ifconfig来找到其网络地址。输出应如下所示:

在台式机或笔记本电脑上运行ssh mircea@192.168.1.70,在Nano上用您的用户名替换mircea,用通过ifconfig找到的IP地址替换192.168.1.70。

它将警告您主机的真实性无法确定。输入是继续,输入您的Jetson Nano密码,您就可以进入!

现在,您可以在自己的计算机上使用Jetson进行SSH了,您可以随时断开显示器,键盘和鼠标的连接,并释放桌面上的一些空间!

如果SSH停止工作该怎么办

如果您设置SSH,然后重新刷新SD卡并从头开始重新启动所有内容,则会收到错误消息:

如果您使用的是Ubuntu或macOS,只需运行建议的命令

ssh-keygen -f "/home/mircea/.ssh/known_hosts" -R "192.168.1.70"

您可以在其中用自己的用户名替换mircea,并用Jetson Nano的IP地址替换192.168.1.70。如果使用macOS,请相应调整路径。

如果您使用的是Windows,请注意以Offending ECDSA key in开头的行末显示的数字。在上面的Windows示例中,该数字为3。现在,使用以下命令编辑known_hosts文件:

notepad C:\\Users\\Mircea/.ssh/known_hosts

您用错误消息中看到的路径替换C:\\Users\\Mircea/.ssh/known_hosts的位置。 您可以简单地复制粘贴路径。 现在,删除错误消息中显示的违规行并保存文件。 该行应包含您的Jetson的IP地址。

创建交换文件

如果4 GB的RAM内存已满,Jetson Nano可能会变得无响应。 为避免这种情况,您可以创建一个交换文件,该文件至少在清除内容时保持它的运行状态。 要创建一个4 GB的交换文件,请运行以下命令:

sudo fallocate -l 4G /var/swapfile
sudo chmod 600
/var/swapfile
sudo mkswap
/var/swapfile
sudo swapon
/var/swapfile
sudo bash -c '
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab'

/ etc / fstab'是其上方命令的一部分,而不是单独的命令。要检查一切是否正常运行,请运行free -h。交换应显示4,0G或您为交换文件选择的任何其他大小。

更新软件

为了确保到目前为止安装的所有内容都是最新的,请首先更新软件包列表,然后使用以下命令升级所有已安装的软件包:

sudo apt-get update
sudo apt-get upgrade

最好使用以下方法重启系统:

sudo reboot

安装pip

Python的标准软件包安装程序pip尚未预装在Jetson Nano上。通过以下方式安装:

sudo apt install python3-pip

使用虚拟环境

在您的Python编程需求中使用虚拟环境被认为是最佳做法。您可能熟悉conda,但是很遗憾,它无法安装在ARM上。相反,您可以使用通过以下方式安装的Python3-venv软件包:

sudo apt install -y python3-venv

以下命令将创建一个文件夹python-envs(如果尚不存在),并在/ home / mircea / python-envs / env中创建一个新的虚拟环境:

python3 -m venv ~/python-envs/env

要激活环境,请运行:

source ~/python-envs/env/bin/activate

终端通过在用户名之前显示(env)来显示环境处于活动状态。要停用环境,只需运行deactivate。

确保还要在创建的每个环境中都安装wheel软件包,这是安装许多后续软件包所必需的。为此,请执行以下操作:

pip3 install wheel

建议为您进行的每个主要项目创建一个新的虚拟环境。 它允许您安装特定的软件包版本,并让您高枕无忧,您可以简单地删除环境并在出现问题

时重新启动。 比重新完成整个Jetson设置容易得多。

设置Jupyter Notebook

Jupyter Notebook使创建和共享包含实时代码,方程式,可视化文件和格式化叙事文本的文档变得容易。如果您还不熟悉Python,这是一个很好的入门方法。

建议如上所述,在虚拟环境中安装每个软件包。要安装Jupyter笔记本,请运行:

pip3 install jupyter

通过SSH的Jupyter Notebook

建议使用您自己的计算机的浏览器来访问Nano上的Jupyter笔记本。 在Jetson上运行浏览器会占用分配给深度学习的资源。 要访问Jetson上的Jupyter服务器,我们使用SSH隧道。 SSH隧道命令可在Ubuntu,macOS和Windows 10中使用(发布于2018年4月更新)。 在自己的台式机或笔记本电脑上运行它(或者通过按Ctrl + D退出当前SSH会话):

ssh -L 8000:localhost:8888 mircea@192.168.1.70

当然,用您自己的用户名和IP地址代替。 现在,您可以在自己的计算机上的端口8000上访问8888端口(Jupyter Notebook的默认设置)在Jetson Nano上运行的任何设备。对于本地端口,请使用8000或更高版本,因为它们很可能可用。

使用jupyter笔记本启动Jetson上的Jupyter服务器,然后在您自己的计算机上转到http://localhost:8000。 带有Jupyter徽标的页面和要求输入令牌或密码的字段应该会出现。 您可以阅读有关如何使用密码的信息,但是为了简洁起见,我们将在此处使用令牌。 令牌紧随http://localhost:8888/?token=其后。 将其复制粘贴到浏览器中,您应该一切顺利!

实践篇

在Jetson Nano上使用PyTorch进行图像识别

阅读完整文档

文章分类: 创客物语PyTorch