aarch与arm架构的边缘设备需要下载: Archiconda (arm架构下的Anaconda替代品,Anaconda仅仅支持amd架构!!!) 安装参考博文:
NVIDIA Jeston Nano下载Anaconda代替品,点我进入博文~
amd架构下linux下载Anaconda可以参考博文:
linux下载Anaconda,点我进入博文~
sudo apt-get update
sudo apt-get full-upgrade
conda create -n mmaction2 python=3.8 && conda activate mmaction2
CUDA: (如果指令无法使用,则查看第6.1节,已给出解决方案)
nvcc -V
打印日志: 得出CUDA版本为11.4
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_May__4_00:02:26_PDT_2022
Cuda compilation tools, release 11.4, V11.4.239
Build cuda_11.4.r11.4/compiler.31294910_0
cudnn:
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR
打印日志: 得出 CUDNN_MAJOR为8
#define CUDNN_MAJOR 8
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
cat /usr/include/cudnn_version.h | grep CUDNN_MINOR
打印日志: 得出 CUDNN_MINOR为3
#define CUDNN_MINOR 3
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL
最终可得出,cudnn的版本为8.3!!!
方法1:在NVIDIA官方去找专门对应jetson系列边缘设备的pytorch,官方网站如下:
点我进入官方的PyTorch for Jetson!!!
注:查看Ubuntu版本信息: lsb_release -a ; linux信息: uname -a ;
查看自己的Jetson版本:
uname -a
输出为: (5.10.65)
Linux ubuntu 5.10.65-tegra #1 SMP PREEMPT Mon May 16 20:58:07 PDT 2022 aarch64 aarch64 aarch64 GNU/Linux
根据版本作者下载的jetson版本torch为: JetPack 5.0 (L4T R34.1.0) / JetPack 5.0.1 (L4T R34.1.1) / JetPack 5.0.2 (L4T R35.1.0)
cd /home/ai/workspace/
wget https://developer.download.nvidia.com/compute/redist/jp/v50/pytorch/torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl
pip install torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl
验证torch与torchvision是否成功安装:
import warnings
import torch
import torchvision
# import paddle
from torch.backends import cudnn
warnings.filterwarnings("ignore", category=DeprecationWarning)
print("==============================================>>>>>>")
print("torch version:", torch.__version__)
print("cuda version:", torch.version.cuda)
print("cudnn version:", torch.backends.cudnn.version())
print("torchversion -V:", torchvision.__version__)
print("==============================================>>>>>>")
v = torch.Tensor([1.]) # 如正常则静默
print("将v值放到cuda上: ", v.cuda()) # 如正常则返回"tensor([ 1.], device='cuda:0')"
print("cudnn 是否正常: ", cudnn.is_acceptable(v.cuda())) # 如正常则返回 "True"
print("==============================================>>>>>>")
# print("paddle.__version__ :: ", paddle.__version__)
# print("paddleversion :: ", paddle.version.cuda())
# paddle.utils.run_check()
# print("==============================================>>>>>>")
成功安装输出日志为:
==============================================>>>>>>
torch version: 1.12.0a0+2c916ef.nv22.3
cuda version: 11.4
cudnn version: 8302
torchversion -V: 0.13.0
==============================================>>>>>>
将v值放到cuda上: tensor([1.], device='cuda:0')
cudnn 是否正常: True
==============================================>>>>>>
方法2 :(只适合amd架构和少部分aarch架构安装torch,不推荐)
这边我有写一篇CUDA-cudnn-torch-torchvision版本对应的博文,可参考:参考博文)
https://blog.csdn.net/qq_37700257/article/details/120617200
torch版本下载链接: Links for torch 清华镜像
torchvision版本下载链接: Links for torchvision 清华镜像)
这边我选择的是torch-1.12
,`torchvision-0.13
此处注意!!! , 安装mmcv-full依赖时候版本一定要对,这里根据自己的cudn与torch安装,否则后续会报6.2的错。
下载网址为:
https://download.openmmlab.com/mmcv/dist/{cuda版本}/{torch版本}/index.html。
# install prerequisites (TF需要的包)
# sudo apt install libhdf5-serial-dev
# sudo apt install libhdf5-dev
# sudo apt install zlib1g-dev
# sudo apt install zip
# sudo apt install libjpeg8-dev
# sudo apt install liblapack-dev
# sudo apt install libblas-dev
# sudo apt install gfortran
# sudo apt install hdf5-tools
# (torch需要的包)
sudo apt install libopenblas-base
sudo apt install libopenmpi-dev
sudo apt install libjpeg-dev
sudo apt install python3-opencv
pip install openmim
# 下面二选一
# 方法1. 使用自动匹配安装(推荐)
MMCV_WITH_OPS=1 pip install mmcv-full
# 方法2. 注意安装mmcv-full一定要注意,版本一定要对,这里根据自己的cudn与torch安装,否则后续会报6.2的错
mim install mmcv-full==1.6.2 -f https://download.openmmlab.com/mmcv/dist/cu114/torch1.12.0/index.html
mim install mmdet
mim install mmpose
pip install Cython
pip install pycocotools
pip install terminaltables
pip install moviepy
cd /home/ai/workspace/
git clone https://github.com/open-mmlab/mmcv.git # 有则不用拉取
cd mmcv
MMCV_WITH_OPS=1 pip install -v -e .
cd /home/ai/workspace/
git clone https://github.com/open-mmlab/mmaction2.git
cd mmaction2
MMCV_WITH_OPS=1 pip install -v -e .
这里会遇见6.1的报错,可以查看解决方法。
cd /home/ai/workspace/
git clone https://github.com/open-mmlab/mmaction2.git
cd mmaction2
MMCV_WITH_OPS=1 pip install -v -e .
出错原因: 在第5节编译mmaction2,会报错:decord
无法导入,该原因是decord只支持amd架构,而不支持arm(与aarch)架构。
解决办法: 项目中暂时没有用到decord这个包,把第一行的decord >= 0.4.1
给删除,保存退出。
vim ~/workspace/wjl_work/mmaction2/requirements/build.txt
# 把第一行的decord >= 0.4.1给删除,保存退出
也可以把decord
的包换成cv的包,去分解视频,因为我这边是没有用到decord
这个包的,所以不安装也能运行。
报错信息如下:
ModuleNotFoundError: No module named 'mmcv._ext'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "normal_action.py", line 20, in <module>
raise ImportError('Failed to import `inference_detector` and '
ImportError: Failed to import `inference_detector` and `init_detector` form `mmdet.apis`. These apis are required in this demo!
出错原因: 安装mmcv-full的时候,没有指定版本
解决办法:
查看cuda版本,nvcc -V
, 如果不能使用,则在 /usr/local/
文件目录下查看jetson已经安装的CUDA,这边我选用系统自带的CUDA,路径为:/usr/local/cuda
。
vim ~/.bashrc
在末尾添加如下两行:
export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin
更新配置文件:
source ~/.bashrc
在第1节安装torch的时,我选用的是torch-1.12.0,所以最终安装的版本为mmcv-full==1.7.0
网址的cuda与torch版本选择为 cu114/torch1.12.0,导入指令如下:
pip install mmcv-full==1.7.0 -f https://download.openmmlab.com/mmcv/dist/cu114/torch1.12.0/index.html
(注:如果还不能解决,直接使用方法二)
方法2:
输入以下指令,然后从第二节重新安装依赖:
sudo apt --fix-broken install -o Dpkg::Options::="--force-overwrite"