[SlowFast]在NVIDIA Jetson Xavier 平台复现SlowFast

SlowFast是Facebook公司开发的一个可用于人体行为识别等的神经网络。项目地址:GitHub - facebookresearch/SlowFast: PySlowFast: video understanding codebase from FAIR for reproducing state-of-the-art video models.

 由于NVIDIA Jetson 平台的特殊性,在部署SlowFast时会遇到Python等的版本冲突问题,在此平台上部署比在一般linux平台上部署更加复杂。部署的时候走了太多弯路了,把部署的过程总结成本博客。

最终成功在NVIDIA Jetson Xavier开发版上复现。复现后的效果已上传至B站:

SLowFast复现——基于NVIDIA Jetson platform_哔哩哔哩_bilibili

一、安装miniforge

由于Xavier无法安装Anaconda,但是有替代品,名字是miniforge。安装miniforge,创建虚拟环境,使用conda activate ×× 进入虚拟环境。

在此建议安装miniforge方便环境管理,同时可以创建python3.8的环境,python3.6的环境不能满足SlowFast项目中的pytorchvideo的版本匹配要求。

miniforge的使用方法如下:Nvidia Jetson AGX Xavier安装ROS、Anaconda、PyTorch及其它依赖库 - 灰信网(软件开发博客聚合) (freesion.com)

二、部署SlowFast

1. 根据SlowFast的requirements和实践,总结出一些关键的库的版本需求:

python>=3.8(SlowFast项目需要),pytorch>=1.8.1(detectron2和fairscale需要)

python>=3.7(pytochvideo)

在部署SlowFast的过程中,解决项目所需库之间的匹配、库和环境及硬件平台间的匹配是主要的问题之一。需要注意以上版本需求,后文会介绍部署方法和遇到的问题。最终安装的版本为python3.8,pytorch1.8.1。

SlowFast的requirements:

[SlowFast]在NVIDIA Jetson Xavier 平台复现SlowFast_第1张图片
下图中可以看到,pytorchvideo 0.1.3需要python>=3.7:

[SlowFast]在NVIDIA Jetson Xavier 平台复现SlowFast_第2张图片

2. 安装pytorch 1.8.1

2.1 成功安装方法:

方法一:from source build,从源文件编译,得到.wheel,进而安装pytorch 1.8.1

参考英伟达论坛官网的编译方法即可,参考:PyTorch for Jetson - version 1.11 now available - Jetson Nano - NVIDIA Developer Forums​​​​​​

当时在英伟达论坛官网上的提问与专家给我的答复:

Jetson AGX Xavier Pytorch Wheel files for latest Python 3.8/3.9 versions with CUDA 10.2 support - Jetson & Embedded Systems / Jetson AGX Xavier - NVIDIA Developer Forums

注意:这个项目里面引用了其他的项目,即使使用gitee镜像,想要完整地将项目克隆到本地,还需要使用git clone-- recursive 命令,将项目中的子项目也克隆下来,然而,子项目的原项目地址一般来自github等境外服务器,需要科学上网方法。

方法二:可以直接使用.wheel文件,在此贡献出笔者自己编译的.wheel。英伟达官方暂未提供wheel,网上也没有此资源。

torch-1.8.1-cp38-cp38-linux_aarch64.whl-深度学习文档类资源-CSDN下载

在wheel所在目录下,在终端执行下面的命令,安装pytorch。

pip install torch-1.8.1-cp38-cp38-linux_aarch64.whl

2.2jetson 编译pytorch时出现:internal compiler error: Segmentation fault

解决:按照这个提交修改代码: Workaround arm64 gcc error in std::copysign on Jetson platforms

2.3 总结:深度学习需要使用GPU资源,因此需要安装与开发板算力匹配的cuda版本的pytorch,同时不能直接安装linux版本的。考虑与python的版本匹配,在python 3.8环境下,需要pytorch1.8.1。由于NVIDIA Jetson平台的特殊性,需要从pytorch官网下载完整的pytorch源文件,再执行build命令,得到.wheel,进而安装pytorch 1.8.1。

三、在python3.8环境中测试

准备预训练模型、准备ava.json文件、yaml文件和素材(此步骤可以参考其他博主的复现教程)

依次执行:

export PYTHONPATH=/media/kokoro/writable/home/ubuntu/PycharmProjects/SlowFast-main/slowfast:$PYTHONPATH
python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml
python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml

四、其他问题

略。想起来再补。(懒人,估计不会再补了。。。)

百度是我们最好的朋友,啾咪~

关于SlowFast项目的其他内容,可以参见我的另一篇博客:(1条消息) 【SlowFast】中的.yaml配置文件_热爱学习的QQ牛里脊肉的博客-CSDN博客

 

你可能感兴趣的:(Slow‘Fast,深度学习,人工智能)