mlbo · 2020年08月21日

玩转智能硬件(三)Jetson Nano深度学习环境搭建

作者:iotsharer
首发:知乎

0、前言

在玩转智能硬件(一)(二)中,我们安装好Jetson Nano系统并配置好基本环境,接下来开始搭建深度学习开发环境。

1、TensorRT安装

1.1、TensorRT介绍

NVIDIA®TensorRT™的核心是一个C++库,可促进在NVIDIA图形处理单元(GPU)上进行高性能推理。 它旨在与训练框架(如TensorFlow、Caffe、PyTorch、MXNet等)以互补的方式工作。它特别侧重于在GPU上快速高效地运行已训练的网络,以生成结果(这一过程在不同的地方被称为评分、检测、回归或推理)

一些训练框架(如TensorFlow)集成了TensorRT,因此可以用它来加速框架内的推理。 或者,TensorRT可以用作用户应用程序中的库。 它包括用于从Caffe、ONNX或TensorFlow导入现有模型的解析器,以及用于以编程方式构建模型的C++和PythonAPI。

TensorRT是一个用于生产部署的高性能神经网络推理优化器和运行时引擎。

TensorRT通过组合层和优化内核选择来优化网络,以提高延迟、吞吐量、能效和内存消耗。 如果应用程序指定,它将额外优化网络以更低的精度运行,从而进一步提高性能并降低内存需求。下图显示了定义为部分高性能推理优化器和部分运行时引擎的TensorRT。 它可以吸收在这些流行框架上训练的神经网络,优化神经网络计算,生成轻量级运行时引擎(这是您唯一需要部署到生产环境中的东西),然后它将最大化这些GPU平台上的吞吐量、延迟和性能。

1.2、TensorRT安装

  • 基于JetPack

如果按照玩转智能硬件(一)Jetson Nano安装篇装篇使用官方提供JetPack 4.4镜像安装操作系统后,系统已经安装好TensorRT 7.1.3环境,使用下面指令即可查看

dpkg -l | grep TensorRT

查询结果

  • 自行编译安装

根据个人实际情况参考下面两个文档

NVIDIA Deep Learning TensorRT Documentation​docs.nvidia.comhttps://github.com/NVIDIA/TensorRT​github.com

  • 安装PyCuda

PyCUDA允许您从Python访问NVIDIA的CUDA并行计算API。

配置cuda环境变量

export CUDA_HOME=/usr/local/cuda-10.2 #根据实际cuda版本修改
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.2/bin:$PATH

配置好cuda环境变量后执行nvcc -V

安装

pip install 'pycuda>=2019.1.1'

2、PyTorch安装

Nvidia提供了编译好的PyTorch安装包,根据自己的需要选择合适的安装包。

wget https://nvidia.box.com/shared/static/ncgzus5o23uck9i5oth2n8n06k340l6k.whl -O torch-1.4.0-cp36-cp36m-linux_aarch64.whl
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev 
pip3 install Cython
pip3 install numpy torch-1.4.0-cp36-cp36m-linux_aarch64.whl
  • 安装torchvision
$ sudo apt-get install libjpeg-dev zlib1g-dev
$ git clone --branch v1.2 https://github.com/pytorch/vision torchvision   # see below for version of torchvision to download
$ cd torchvision
$ sudo python setup.py install    # use python3 if installing for Python 3.6
$ 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

注意:torchvision版本需要与PyTorch版本对应

  • 验证安装
import torch
import torchvision
print('torch version: ' + str(torch.__version__))
print('torchvision version: ' + str(torchvision.__version__))
print('CUDA available: ' + str(torch.cuda.is_available()))
print('CUDA version: ' + str(torch.version.cuda))
print('cuDNN version: ' + str(torch.backends.cudnn.version()))

参考文档:
【1】https://forums.developer.nvidia.com/t/pytorch-for-jetson-nano-version-1-6-0-now-available/72048
【2】https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#overview
【3】JetPack SDK



相关阅读

定期更新,更多AIoT相关技术知识请关注动手学AIoT专栏。
推荐阅读
关注数
1210
内容数
19
关于AIoT相关的技术文章以及相关资源。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息