大家好,我是虎哥,Jeston Orin nano 8G模块,提供高达 40 TOPS 的 AI 算力,安装好了Jetpack5.1之后,我们需要配置一些支持环境,来为我们后续的深度学习开发提供支持。本章内容,我将主要围绕安装对应版本pytorch跟torchvision展开。
安装好了Jetpack5.1之后,我才发现英伟达官方还没有正式发布适配的pytorch版本跟torchvision版本,但是我在官方的论坛里面发现了这个:Installing PyTorch for Jetson Platform - NVIDIA Docs
通过:PyTorch for Jetson - Jetson Nano - NVIDIA Developer Forums介绍,我们找到了对应的版本。
参考入口:PyTorch for Jetson - Jetson Nano - NVIDIA Developer Forums
Python 3.8 - torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl 296
PyTorch v2.0.0 - torchvision v0.15.1
JetPack 5.1.1是一个生产质量版本,支持Jetson Orin Nano开发套件、Jetson AGX Orin 64GB、Jetson OrinNX 8GB、Jetson Orin Nano 8GB和Jetson Orin-Nano 4GB模块。它包括带有Linux内核5.10的Jetson Linux 35.3.1 BSP、基于Ubuntu 20.04的根文件系统、基于UEFI的引导加载程序和作为可信执行环境的OP-TEE。JetPack 5.1.1包CUDA 11.4、TensorRT 8.5.2、cuDNN 8.6.0和VPI 2.2,以及其他更新。
VPI (Vision Programing Interface) 是一个软件库,提供在Jetson上的多个硬件加速器上实现的计算机视觉/图像处理算法,如PVA(可编程视觉加速器)、GPU、NVDEC(NVIDIA解码器)、NVENC(NVID IA编码器)、VIC(视频图像合成器)等。
NVIDIA Isaac™ ROS 是一组硬件加速包,使ROS开发人员更容易在NVIDIA硬件(包括NVIDIA Jetson)上构建高性能解决方案。
Isaac ROS DP3版本支持JetPack 5.1.1
如何在Jeston Orin Nnao 刷对应JetPack 5.1.1的系统,请参考我之前的文章。【Jeston Orin】Orin nano 8G模块使用官方系统包生成标准烧写系统测试_机器人虎哥的博客-CSDN博客
PyTorch(用于JetPack)是一个用于深度学习的优化张量库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够 实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。 PyTorch提供了两个高级功能:
具有强大的GPU加速的张量计算(如Numpy)
包含自动求导系统的深度神经网络
Jetpack默认已安装opencv、cuda、cudnn,故只需再安装pytorch即可,留意jetson是arm架构,需要下载对应的安装文件加以安装
nvidia@nvidia-desktop:~$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
nvidia@nvidia-desktop:~$ head -n 1 /etc/nv_tegra_release
# R35 (release), REVISION: 3.1, GCID: 32827747, BOARD: t186ref, EABI: aarch64, DATE: Sun Mar 19 15:19:21 UTC 2023
说明使用的是R35.3.1系统。
jetson_release -v
nvidia@nvidia-desktop:~$ jetson_release -v
Software part of jetson-stats 4.2.1 - (c) 2023, Raffaello Bonghi
Model: NVIDIA Orin Nano Developer Kit - Jetpack 5.1.1 [L4T 35.3.1]
NV Power Mode[0]: 15W
Serial Number: [XXX Show with: jetson_release -s XXX]
Hardware:
- 699-level Part Number: 699-13767-0003-300 L.3
- P-Number: p3767-0003
- Module: NVIDIA Jetson Orin Nano (8GB ram)
- SoC: tegra23x
- CUDA Arch BIN: 8.7
- Codename: P3768
Platform:
- Machine: aarch64
- System: Linux
- Distribution: Ubuntu 20.04 focal
- Release: 5.10.104-tegra
- Python: 3.8.10
jtop:
- Version: 4.2.1
- Service: Active
Libraries:
- CUDA: 11.4.315
- cuDNN: 8.6.0.166
- TensorRT: 8.5.2.2
- VPI: 2.2.7
- Vulkan: 1.3.204
- OpenCV: 4.5.4 - with CUDA: NO
nvidia@nvidia-desktop:~$ python --version
Python 2.7.18
nvidia@nvidia-desktop:~$ python3 --version
Python 3.8.10
sudo apt-get -y update;
sudo apt-get -y install autoconf bc build-essential g++-8 gcc-8 clang-8 lld-8 gettext-base gfortran-8 iputils-ping libbz2-dev libc++-dev libcgal-dev libffi-dev libfreetype6-dev libhdf5-dev libjpeg-dev liblzma-dev libncurses5-dev libncursesw5-dev libpng-dev libreadline-dev libssl-dev libsqlite3-dev libxml2-dev libxslt-dev locales moreutils openssl python-openssl rsync scons python3-pip libopenblas-dev;
国内安装经常会有网络无法连接发生各种错误,没事多执行几次命令行肯定可以安装成功的(我的个人经验)。
#注意,我们安装的JetPack 5.1.1,所以找对版本对应
export TORCH_INSTALL=https://developer.download.nvidia.cn/compute/redist/jp/v511/pytorch/torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl
#`JP_VERSION`
#The major and minor version of JetPack you are using, such as `461` for JetPack 4.6.1 or `50` for JetPack 5.0.
python3 -m pip install --upgrade pip; python3 -m pip install aiohttp numpy=='1.19.4' scipy=='1.5.3' export "LD_LIBRARY_PATH=/usr/lib/llvm-8/lib:$LD_LIBRARY_PATH"; python3 -m pip install --upgrade protobuf; python3 -m pip install --no-cache $TORCH_INSTALL
要验证PyTorch是否已成功安装在Jetson平台上,您需要启动Python提示并导入PyTorch。
$ export LD_LIBRARY_PATH=/usr/lib/llvm-8/lib:$LD_LIBRARY_PATH
$ python3
之后在python3的环境输入
>>> import torch
>>> print(torch.__version__)
>>> print('CUDA available: ' + str(torch.cuda.is_available()))
>>> print('cuDNN version: ' + str(torch.backends.cudnn.version()))
>>> a = torch.cuda.FloatTensor(2).zero_()
>>> print('Tensor a = ' + str(a))
>>> b = torch.randn(2).cuda()
>>> print('Tensor b = ' + str(b))
>>> c = a + b
>>> print('Tensor c = ' + str(c))
如果PyTorch安装正确,则执行此命令时应不会出现错误。
PyTorch可以使用pip3卸载命令轻松卸载,如下所示:
$ sudo pip3 uninstall -y torch
安装好pytorch之后,使用下面的命令行从源码安装torchvision 0.15.1版本,先安装依赖,然后下载安装包,最后从源码编译安装,大概十分钟左右就好,相关命令行如下:
sudo apt install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-devpip3 install --upgrade pillowwget https://github.com/pytorch/vision/archive/refs/tags/v0.15.1.zipcd vision-0.15.1export BUILD_VERSION=0.15.1python3 setup.py install --user
官方指导步骤
$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev
$ git clone --branch https://github.com/pytorch/vision torchvision # see below for version of torchvision to download
$ cd torchvision
$ export BUILD_VERSION=0.x.0 # where 0.x.0 is the torchvision version
$ python3 setup.py install --user
$ cd ../ # attempting to load torchvision from build dir will result in import error
$ pip install 'pillow<7' # always needed for Python 2.7, not needed torchvision v0.5.0+ with Python 3.6
我自己操作的步骤
$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev
#这个官方教程没写
$ pip3 install setuptools
#$ sudo pip3 install --upgrade pillowwget https://github.com/pytorch/vision/archive/refs/tags/v0.15.1.zip
#$ git clone --branch v0.15.1 https://github.com/pytorch/vision torchvision
#克隆源代码
git clone --branch v0.15.1 https://github.com/pytorch/vision torchvision
cd torchvision/
git checkout -b v0.15.1
#查看当前分支
git branch -a
#如果一直无法拉过来,可以选择使用迅雷下载包后拷贝到开发套件中
$ unzip v0.15.1.zip
$ cd vision-0.15.1
$ export BUILD_VERSION=0.15.1
$ python3 setup.py install --user
同样不行就执行几次,肯定会成功安装的,我安装与运行的截图如下:
如果torchvision安装正确,则执行此命令时应不会出现错误。
>>> import torchvision
>>> print(torchvision.__version__)
都安装好了用pip3 list查一下
pip3 list
发现如下信息,说明全部环境配置完毕
tensorrt 8.5.2.2
torch 2.0.0+nv23.5
torchvision 0.15.1
tensorrt 如果没有,记得用SDK manager 刷一下官方的cuda等支持库就有了
Jeston Orin Nnao -JetPack5.1.1环境下安装很还算顺利,按照以上步骤,中间可能会有几次反复,但是最终都可以完整的配置好环境。
以上就是我今天要分享的内容。纠错,疑问,交流: [email protected]