本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、参考资料
Nvidia Jetson nano 安装Archiconda、gpu版torch、踩坑记录
二、重要说明
- Jetson Tx2 用不了 nvidia-smi 命令。
- Jetson TX2用Jetpack刷机之后,系统环境自带有CUDA,cudnn,Python,tensorRT,uff,graphsurgeon等相关包,并且这些包有很强的版本匹配关系,也即需要版本对齐。
- Anacona目前不支持aarch64架构,因而无法直接安装。Archiconda是用于64位ARM平台的Conda发行版,下载地址:Archiconda3-0.2.3-Linux-aarch64.sh。Archiconda==在2019年就已经停止维护==了,所以很多功能并不能跟上如今的anaconda,但是基本功能完全能满足。
- (==不推荐==)使用archiconda方式创建虚拟环境,需要自己去安装arch版本的tensorRT以及其他一些包,特别麻烦。
- (==推荐==)使用Virtualenv Environment方式创建虚拟环境(项目相关的环境),默认在项目所在目录(venv),可以继承系统已经安装好的包,默不需要你重新安装,很方便。
三、重要技巧
3.1 设置虚拟内存
[日常] Jetson TX2 安装 Tensorflow 在NVIDIA Jetson TX2上安装TensorFlow
重要说明: 添加swap file是为了在硬盘上创建虚拟内存,给编译像TensorFlow这种大型的项目提供足够的内存。
3.1.1 创建8GB大小的swapfile
```bash
fallocate -l 8G swapfile
```
3.1.2 更改swapfile的权限
```bash
chmod 600 swapfile
```
3.1.3 创建swap区
```bash
mkswap swapfile
```
3.1.4 激活swap区
```bash
sudo swapon swapfile
```
3.1.5 确认swap区在用
```bash
swapon -s
```
3.2 安装pytorch
PyTorch for Jetson - version 1.9.0 now available
3.3 安装torchvision
NVIDIA Jetson Xavier NX安装torch和torchvision
方法一(源码安装):
- github下载torchvision源码 下载地址
- 编译安装
cd vision
python3 setup.py install
方法二(不推荐):
# 该方法可能失效
pip3 search torchvision --timeout=500
# 查看到有torchvision的0.7.0a0+78ed10c
pip3 install torchvision==0.7.0a0+78ed10c
3.4 安装tensorflow
官方安装教程 TensorFlow For Jetson Platform [日常] Jetson TX2 安装 Tensorflow tensorflow下载连接 Download tensorflow
3.4.1 重要说明:
- nvidia专门为jetson tx2的板子出的tensorflow,直接用pip命令安装即可。
- As of the 20.02 TensorFlow release, the package name has changed from tensorflow-gpu to tensorflow. 2020年02月,tensorflow-gpu的名称改为了tensorflow。
- JP_VERSION,TF_VERSION,NV_VERSION,三者版本对齐,查看jetpack对应的tensorflow版本 TensorFlow For Jetson Platform。
- 截止到2021年10月11日,jetpack最高支持python3.6。
3.4.2 安装最新版本
pip install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v46 tensorflow
3.4.3 安装1.x版本
pip install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v46 'tensorflow<2'
3.4.4 安装指定版本
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v$JP_VERSION tensorflow==$TF_VERSION+nv$NV_VERSION
JP_VERSION
The major and minor version of JetPack you are using, such as 42 for JetPack 4.2.2 or 33 for JetPack 3.3.1.
TF_VERSION
The released version of TensorFlow, for example, 1.13.1.
NV_VERSION
The monthly NVIDIA container version of TensorFlow, for example, 19.01.
四、可能出现的问题
Q:找不到opencv
```text
解决办法
找到 /usr/lib/python3.6/dist-packages/cv2/python-3.6路径下的cv2.cpython-36m-aarch64-linux-gnu.so文件,复制到路径/home/jetson/archiconda3/envs/tf-gpu/lib/python3.6文件夹下即可。
sudo cp /usr/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-aarch64-linux-gnu.so /home/jetson/archiconda3/envs/tf-gpu/lib/python3.6
```
```text
类似的问题:找不到tensorrt,uff,graphsurgeon
注意:保持python版本一致,找到对应的文件夹。
/usr/lib/python3.6
/usr/lib/python3.7
/usr/lib/python3.8
```
Q:Illegal instruction (core dumped)
非法指令(核心已转储)
```text
python
import torch
```
[Ubuntu/Jetson Nano问题解决“Illegal instruction(core dumped)”](https://blog.csdn.net/LYiiiiiii/article/details/119133826)
```text
错误原因:
1. pytorch版本问题,安装合适的pytorch版本
2. python的版本问题,安装合适的python版本
解决办法:
方法一(推荐):
将 export OPENBLAS_CORETYPE=ARMV8 添加到环境变量即可。
sudo gedit ~/.bashrc
export OPENBLAS_CORETYPE=ARMV8
更新配置
source ~/.bashrc
方法二:
在运行python程序之前,运行下列的代码
OPENBLAS_CORETYPE=ARMV8 python demo.py
```
Q:安装Pytorch,缺少openblas.so库
>>> import torch
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/media/mydisk/MyDocuments/PyProjects/20220113/venv/lib/python3.6/site-packages/torch/__init__.py", line 196, in <module>
from torch._C import *
ImportError: libopenblas.so.0: cannot open shared object file: No such file or directory
‵
解决办法:
sudo apt-get install libopenblas-dev