安装pytorch
Nano上预装的Jetpack版本为4.6.1,Python为3.6.9,CUDA环境为10.2。在PyTorch for Jetson中可以下载不同版本的torch,torch<=1.10.0。
1 安装torch1.8.0
- # substitute the link URL and wheel filename from the desired torch version above
- wget https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl -O torch-1.8.0-cp36-cp36m-linux_aarch64.whl
- sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev
- pip3 install 'Cython<3'
- pip3 install numpy torch-1.8.0-cp36-cp36m-linux_aarch64.whl
如果安装numpy时报错,可以先更新pip
- pip3 install --upgrade pip
2 编译torchvision0.9.0
- sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev
- git clone --branch v0.9.0 https://github.com/pytorch/vision torchvision
- cd torchvision
- export BUILD_VERSION=0.9.0 # the torchvision version
- python3 setup.py install --user
- cd ../ # attempting to load torchvision from build dir will result in import error
配置yolov5环境
由于yolov5的最新版本中要安装包ultralytics,总是报错,没有版本,所以选择yolov5-6.0。
2 替换清华镜像源
创建.pip文件夹
使用vim打开pip.conf配置文件
修改pip.conf配置文件
- [global]
- index-url = https://pypi.tuna.tsinghua.edu.cn/simple
- [install]
- trusted-host = https://pypi.tuna.tsinghua.edu.cn
按ESC,然后输入:wq即可保存修改
3 安装包
- pip3 install -r requirements.txt
4 运行程序
如果出现了killed程序终止,可以关掉一些不用的程序,或者设置交换分区
设置交换分区
1 安装Jtop监控运行
执行安装命令
- sudo pip3 install jetson-stats
安装完成后,终端运行

2 增加Swap分区大小
创建swap文件
- sudo fallocate -l 4G swapfile
锁定文件的root权限,防止普通用户能够访问该文件,以免造成重大的安全隐患:
将文件标记为交换空间
启用该交换文件
这时,我们可以通过jtop再次查看swp增加了4g,Dsk也少了4g空间。

如果我们重新启动,服务器不会自动保留swap设置,但是dsk的空间已经减少了,我们可以通过以下指令还原
我们可以通过将swap文件添加到/etc/fstab文件中来永久保存。备份/etc/fstab文件以防出错:
- sudo cp /etc/fstab /etc/fstab.bak
将swap文件信息添加到/etc/fstab文件的末尾:
- echo 'swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
这样就保留了swap文件。
配置cuda10.2环境
vim打开配置文件
在此文件中添加以下信息
- export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
- export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- export CUDA_ROOT=/usr/local/cuda
更新
此时使用 “nvcc -V” 命令,就可以看到 cuda 的版本号了。
安装tensorrtx
下载yolov5权重和tensorrtx
- git clone -b v6.0 https://github.com/ultralytics/yolov5.git
- git clone https://github.com/wang-xinyu/tensorrtx.git
拷贝tensorrtx项目中的gen_wts.py到yolov5项目中,利用gen_wts.py生成.wts权重
- // clone code according to above #Different versions of yolov5
- // download https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt
- cp {tensorrtx}/yolov5/gen_wts.py {ultralytics}/yolov5
- cd {ultralytics}/yolov5
- python gen_wts.py -w yolov5s.pt -o yolov5s.wts
- // a file 'yolov5s.wts' will be generated.
方法1:使用tensorrt c++推理:build tensorrtx/yolov5然后运行
- cd {tensorrtx}/yolov5/
- // update CLASS_NUM in yololayer.h if your model is trained on custom dataset
- mkdir build
- cd build
- cp {ultralytics}/yolov5/yolov5s.wts {tensorrtx}/yolov5/build
- cmake ..
- make
- sudo ./yolov5 -s [.wts] [.engine] [n/s/m/l/x/n6/s6/m6/l6/x6 or c/c6 gd gw] // serialize model to plan file
- sudo ./yolov5 -d [.engine] [image folder] // deserialize and run inference, the images in [image folder] will be processed.
- // For example yolov5s
- sudo ./yolov5 -s yolov5s.wts yolov5s.engine s
- sudo ./yolov5 -d yolov5s.engine ../samples
- // For example Custom model with depth_multiple=0.17, width_multiple=0.25 in yolov5.yaml
- sudo ./yolov5 -s yolov5_custom.wts yolov5.engine c 0.17 0.25
- sudo ./yolov5 -d yolov5.engine ../samples
方法2:使用tensorrt python推理
- // install python-tensorrt, pycuda, etc.
- // ensure the yolov5s.engine and libmyplugins.so have been built
- python yolov5_trt.py
-
- // Another version of python script, which is using CUDA Python instead of pycuda.
- python yolov5_trt_cuda_python.py
参考
1. jeston nano 刷机及开发环境搭建(二)
2. 在Pi和Jetson nano上运行深度网络,程序被Killed