复现Slowfast以及部署碰到的问题
1. 环境基本信息
- win11
- WSL2 Ubuntu22.04
2.复现过程
-
部署第一步,先更新自己系统的东西还有把gcc和g++这俩用来编译的东西装上
sudo apt update -y sudo apt upgrade -y sudo apt install gcc g++ git -y
-
检查wsl是否读取到显卡驱动,如果掉驱动记得修复
(如果不会修可以学我一样删除重新下载一个wsl的ubuntu镜像)nvidia-smi
出现下方格式就是正常可以识别到驱动的
-
使用miniconda创建虚拟环境,官方教程推荐是python >= 3.8,个人实测3.10会出现奇奇怪怪的bug,推荐使用3.8(miniconda的安装教程就不放了,放一下创建环境的命令)
conda create -n <你的环境名称(可以自定义)> python=3.8 # 例: conda create -n slowfast python=3.8 # 创建之后激活环境 conda activate <你的环境名称(可以自定义)>
命令行前面的
(base)
变成你的环境名称就说明切换成功,如上图查看驱动的命令行前面的slowfast
一致 -
打开slowfast的git网站,下拉到
Installation
有个INSTALL.md
是官方安装教程https://github.com/facebookresearch/SlowFast/tree/main
-
根据教程安装,个人推荐最后安装pytourch,因为安装前面的依赖会给你转,最后安装你可以安装到你想要的版本
本人复现过程使用的命令(严格按照了官方的教程,可以直接用)pip install 'git+https://github.com/facebookresearch/fvcore' pip install simplejson pip install pandas pip install scikit-learn pip install psutil pip install scipy pip install opencv-python pip install tensorboard pip install pytorchvideo pip install 'git+https://github.com/facebookresearch/fairscale' conda install av -c conda-forge conda install -c iopath iopath conda install -c conda-forge moviepy # 这是安装识别器的教程 pip install -U torch torchvision cython pip install -U 'git+https://github.com/facebookresearch/fvcore.git' 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI' git clone https://github.com/facebookresearch/detectron2 detectron2_repo pip install -e detectron2_repo # pytorch安装命令(我的cuda是12.6所以我用的是目前最新的12.4版本的pytourch,需要其他版本自己去官网换命令) # pytourch官方:https://pytorch.org/ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
-
拉取项目,设置环境变量
git clone https://github.com/facebookresearch/slowfast # 咱也不知道这个环境变量有啥用,反正官网需要 export PYTHONPATH=/path/to/SlowFast/slowfast:$PYTHONPATH # 推荐直接写入baserc这样不需要每次都输入 vim ~/.baserc # 最后面添加 ,vim是按i进入编辑模式 export PYTHONPATH=/path/to/SlowFast/slowfast:$PYTHONPATH # 按ecs之后输入 :wq保存 # 更新环境变量 source ~/.baserc
-
编译Slowfast为python库,这里有个坑,PIL和sklearn都已经弃用了,但不知道为啥Slowfast还没做修改,所以我们需要手动修改
cd Slowfast vim setup.py # 找到PIL和sklearn,修改为pillow和scikit-learn
修改之后就编译python setup.py build develop
看到
Finished processing dependencies for slowfast==1.0
就代表编译成功了
致此所有需要的依赖就装好了
3. 运行demo以及踩过的坑
运行demo的部分推荐看这位大佬文章,我也是跟着他的操作实现的,包括下载链接,配置等
大佬的安装教程
本人遇到的问题
- OSError: Video 0 cannot be opened
解决: 这是因为wsl没有界面没法打开可视化,所以只需要把配置的Yaml中的TENSORBOARD
部分的内容注释掉就可以了 - No module named ‘vision’
解决:这就是一个天坑,他的模块放置的位置不在他写的这个地址,需要手动去修改,没记错的话项目里面有两个地方要修改,将vision.fair.slowfast.ava_evaluation
替换为‘ava_evaluation’就可以了 - No module named 'torchvision’但pip list中存在该依赖
解决:估计是东西冲突了,执行uninstall之后重新安装 就可以了(至少本人可以) - ModuleNotFoundError: No module named ‘torch._six’
好像说是pytourch更新之后这个玩意不用了,我找到的解决方案是
将from torch._six import int_classes as _int_classes
修改为int_classes = int string_classes = str
- cannot importname ‘cat_all_gather’ from
解决:这个问题好像说是直接下载的pytorchvideo会缺少东西,所以需要 改成本地编译git clone https://github.com/facebookresearch/pytorchvideo.git cd pytorchvideo pip install -e .
結果
推荐使用短一点的视频试试水,跑出来的结果大概长这个样子
晚点学习一下怎么训练再更新