NVIDIA Jetson Xavier NX入门(3)——安装miniforge和Pytorch

1 安装miniforge

1.1 miniforge简介

conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。搞深度学习的应该都十分熟悉anaconda,但是NVIDIA Jetson Xavier NX是arm架构的,anaconda及其精简版miniconda并不支持arm64架构。现在主流的CPU架构分为Intel的x86/x64架构和ARM的ARM/ARM64两种,平常用的电脑大部分都是x86/x64的(苹果除外),Xavier使用的是ARM64,所以很多在x86/x64上能用的的东西到了它这里就不能用了。这一点请谨记,如果你在Jetson上遇到什么奇奇怪怪的例如“No such file or directory”之类的问题,第一时间要考虑是不是版本不是ARM64的版本
在ARM64上的anaconda替代品是miniforge,miniforge与miniconda的区别在于miniforge的下载通道是conda-forge,其他基本没什么不同。

1.2 miniforge安装教程

(1)先到miniforge的官方下载地址下载对应的sh文件:https://github.com/conda-forge/miniforge/releases
别下错了,例如我下载的是Miniforge-pypy3-4.10.3-3-Linux-aarch64.sh,代表适用于arrch64架构下的Linux系统。(ARM64对应32位和64位分为arrch32和arrch64)
(2)进入到miniforge的sh文件所在目录,右键打开Terminal,输入以下命令进行安装:

sh Miniforge-pypy3-4.10.3-3-Linux-aarch64.sh

(3)安装完毕后,添加环境变量,否则会出现bash:conda Command not found的错误。顺便提一下vim编辑器按a是进入编辑模式,编辑完毕后按ESC退出编辑模式,再输入:wq!是保存并退出。总感觉有人不知道。

# 编辑环境变量
vim ~/.bashrc
# 增加环境变量, 将换成你的用户名
export PATH=/home/<username>/miniforge-pypy3/bin:$PATH
# 激活环境变量
source ~/.bashrc
# 显示(base)
source activate

(4)更换下载源为清华源

conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

(5)更换pip源
创建并进入pip.conf文件

mkdir ~/.pip
cd ~/.pip
vim pip.conf

在pip.conf 文件中添加

[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple/

安装完毕。

2 安装PyTorch

2.1 安装新的虚拟环境

这个教程是在miniforge上安装PyTorch的,如果你不想装在虚拟环境上,可以参考这篇博客。
安装完miniforge后,打开终端,命令行前面应该有个(base),表示base环境,就像下图一样。如果没有,那就输入:source activate激活miniforge。

NVIDIA Jetson Xavier NX入门(3)——安装miniforge和Pytorch_第1张图片
输入以下命令创建一个虚拟环境,输入y继续。这里推荐的python版本是3.6,因为英伟达官方提供的PyTorch安装包是python3.6的,如果选择其他版本就要自己去找安装包了。 ```bash conda create -n pytorch python=3.6 ``` 激活该环境 ```bash conda activate pytorch ```

2.2 PyTorch 1.8

直接输入命令安装PyTorch,pip3是python3的pip,如果没装,就换成pip

pip3 install -U future psutil dataclasses typing-extensions pyyaml tqdm seaborn
wget https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl -O torch-1.8.0-cp36-cp36m-linux_aarch64.whl 
pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl

如果网络不好的话,也可以先把PyTorch的whl文件下载下来,NVIDIA官方网址是:https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-9-0-now-available/72048

NVIDIA Jetson Xavier NX入门(3)——安装miniforge和Pytorch_第2张图片
将对应的.whl放到Xavier上,cd进入目录,输入
pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl

安装完毕后可以在终端输入以下命令检验PyTorch是否正确安装:

python3 -c 'import torch; print(torch.cuda.is_available())'

正常来说,会返回True

排错1

如果出现Illegal instruction (core dumped)的错误,这是由于numpy 1.19.5和OpenBLAS冲突引起的,修改其中一项即可。选择以下两种做法之一:
(1)降低numpy版本

pip3 install -U "numpy==1.19.4"

(2)设置OpenBLAS

vim ~/.bashrc

加入

export OPENBLAS_CORETYPE=ARMV8

然后激活.bashrc

source ~/.bashrc

2.3 torchvision v0.9.0

Pytorch除了torch包之外还需要安装对应的torchvision才能运行,两者的版本对应关系如下图:

NVIDIA Jetson Xavier NX入门(3)——安装miniforge和Pytorch_第3张图片
PyTorch 1.8对应的是torchvision v0.9.0 输入以下命令完成安装
sudo apt install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
pip3 install --upgrade pillow
git clone --branch v0.9.0 https://github.com/pytorch/vision torchvision
cd torchvision
export BUILD_VERSION=0.9.0
python3 setup.py install --user
cd .. # running torch from torchvision/ will fail

之后可以尝试跑自己的代码测试PyTorch功能了。

参考博客

https://blog.csdn.net/qq_39567427/article/details/109158918
https://cognitivexr.at/blog/2021/03/11/installing-pytorch-and-yolov5-on-an-nvidia-jetson-xavier-nx.html

你可能感兴趣的:(深度学习)