目录
前言
最近因为实验需要使用自上而下的二维关节检测器,于是想到三年前接触到这个工作,没想到去年发表了TPAMI,确实不简单!
环境配置主要参照的还是官方文档,根据自己的环境做了一些微调,网上这个工作的配置教程很多,如果和我不一致大家可以参照别的教程,还有,配环境时请各位霍格沃兹的优秀学员把魔法关掉,很多莫名奇妙的报错都是魔法引起的。
我当前是远程服务器安装的Ubuntu20.04,以及自己安装了miniconda3方便安装虚拟环境,请大家务必按着我的步骤来,因为pytorch版本跟cuda版本相关,我们需要下载的代码版本又跟pytorch版本相关。
一、利用conda创建虚拟环境
conda create -n alphapose python=3.7 -y
conda activate alphapose
二、安装CUDA+Pytorch
安装CUDA + CUDNN
按照这个大佬的博客一步步来,安装完CUDA和CUDNN之后都分别确认下版本是否正确
安装完后目前系统配置为:ubuntu20.04 + cuda10.1 + cudnn7.6.5
安装pytorch
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch
安装完之后验证一下
python
import torch
torch.cuda.is_available()
如果返回值为true说明安装成功
安装完后目前系统配置为:ubuntu20.04 + cuda10.1 + cudnn7.6.5 + pytorch1.6
三、下载AlphaPose源码并进入主文件夹
进到alphapose的github主页,点击branches选择不同版本代码:
查看所有版本:
因为我们的pytorch为1.6版本,下载这个
官方文档是用git指令下载,大家如果常配环境应该知道git指令好不好用经常看网络状态的心情,经常连不上或下好久,所以我直接在github上下载zip文件解压后再上传到服务器上(虽笨但有效)
进入主文件夹,第四步确保在主文件夹路径下
cd AlphaPose
四、安装AlphaPose
引入环境变量
export PATH=/usr/local/cuda/bin/:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:$LD_LIBRARY_PATH
安装
python -m pip install cython
sudo apt-get install libyaml-dev
python setup.py build develop
五、安装pytorch3D(可选,不装也能跑)
这里pip install + git如果报错建议直接去对应的github主页安装
conda install -c fvcore -c iopath -c conda-forge fvcore iopath
conda install -c bottler nvidiacub
pip install git+ssh://git@github.com/facebookresearch/pytorch3d.git@stable
六、记录一下第四步setup.py的各种报错
1)detector/nms/src/nms_kernel.cu:5:10: fatal error: ATen/ceil_div.h: No such file or directory
5 | #include <ATen/ceil_div.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/lib/cuda/bin/nvcc' failed with exit status 1
出现这个报错是因为安装的pytorch版本和下载的代码版本不匹配造成的,按照博客第三步来,应该不会有这个报错
2)error: cannot call member function ‘void std::basic_string<_CharT, _Traits, _Alloc>::
参照博客可以解决
3)AssertionError(‘PyTypeTest on non extension type’), <traceback object at 0x7f66b577fd70>)
没有安装pycocotools
pip install pycocotools
4)
缺啥装啥,注意scipy==1.1.0
pip install easydict
pip install halpecocotools
pip install opencv-python
pip install pyyaml
pip install scipy==1.1.0
pip install tensorboardx
pip install terminaltables
pip install tqdm
pip install visdom
5)ImportError: cannot import name 'get_installed_distributions' from 'pip._internal.utils.misc'
pip版本太新,需要安装旧版本
pip install pip==21.2
6)subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1
修改setup.py文件line212
cmdclass={'build_ext': BuildExtension} //修改前
cmdclass={'build_ext': BuildExtension.with_options(use_ninja=False)} //修改后
7)ERROR: Command errored out with exit status 128: git clone -q https://github.com/yanfengliu/cython_bbox.git /tmp/pip-req-build-zj4o99hu Check the logs for full command output.
pip install + git在国内真的很容易报错,直接去主页看怎么装就好了,这里
pip install cython_bbox
七、总结
安装好之后应该是这样的
Using /root/miniconda3/envs/alphapose/lib/python3.7/site-packages
Finished processing dependencies for alphapose==0.5.0+5c44745
最后根据官方文档下载好权重文件,预训练模型应该就能跑出结果了,这里放一张demo跑出来的结果:
祝各位科研顺利!