赞
踩
本文主要是根据记录了一下根据AlphaPose官方GitHub的引导安装AlphaPose的过程和遇到的一些问题。
conda create -n alphapose python=3.7 -y
conda activate alphapose
这里官方文档的命令是:
conda install pytorch torchvision torchaudio pytorch-cuda=11.3 -c pytorch -c nvidia
但是我根据这个代码下pytorch时一直提示找不到对应版本的。
所以我在pytorch的官网上搜索到了对应版本的下载命令:
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
git clone https://github.com/MVIG-SJTU/AlphaPose.git
cd AlphaPose
官方文档中首先给出了将cuda加入系统路径的命令
export PATH=/usr/local/cuda/bin/:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:$LD_LIBRARY_PATH
但是这个命令在Windows中难以使用,所以我换成了如下所示的命令:
set PATH=C:\path\to\cuda\bin;
set LD_LIBRARY_PATH=C:\path\to\cuda\lib64;
其中,C:\path\to\cuda 是你 CUDA 安装的路径。
请使用实际的 CUDA 路径替换上述示例中的占位符,并确保在运行其他命令之前设置了正确的环境变量。
这个路径可以通过echo %PATH%
查看。
接下来继续安装其他的包:
(这里有些包是官方文档没写出来,但在后面的运行过程中提示需要的最佳版本与python3.7不适配,因此额外下载的)
python -m pip install cython
pip install numpy
conda install matplotlib
conda install scipy
在安装完这些包后,继续运行官方文档要求的命令:
python setup.py build develop
然而,在这过程中再次报错:
× git clone --filter=blob:none --quiet https://github.com/yanfengliu/cython_bbox.git ‘C:\Users\LX\AppData\Local\Temp\pip-req-build-vcl5wdbv’ did not run successfully.
error: subprocess-exited-with-error
因此,选择额外安装cython-bbox模块:
python -m pip install git+https://github.com/yanfengliu/cython_bbox.git
最后,安装PyTorch3D包(可选,用于可视化):
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
其中,在安装nvidiacub时再度提示镜像源中找不到对应的包。
查看一些教程发现Windows需要下载之后添加系统路径,暂时不安装了。
安装可以参考链接:https://blog.csdn.net/weixin_44136697/article/details/127061618
如希望自行训练可下载对应数据集,具体参考官方文档。
以Multi Domain Models中的Fast Pose为例,在命令行执行:
python scripts/demo_inference.py --cfg configs/halpe_coco_wholebody_136/resnet/256x192_res50_lr1e-3_2x-regression.yaml --checkpoint pretrained_models/multi_domain_fast50_regression_256x192.pth --indir examples/demo/ --save_img
运行后,收获报错:
AttributeError: module ‘yaml’ has no attribute ‘FullLoader’
经调查可能是使用过期的 PyYAML 库或错误的版本导致的,需要更新 PyYAML 库,更新命令为:
conda update pyyaml
然而最终仍然报错:
RuntimeError: CUDA out of memory. Tried to allocate 30.00 MiB (GPU 0; 4.00 GiB total capacity; 2.60 GiB already allocated; 21.28 MiB free; 2.74 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
这是设备GPU 内存不足导致的。接下来考虑在服务器上复现,或者复现一下CPU版本
在执行命令后增加--gpus -1
之后就成功运行alphapose得到结果啦~
(此处gpus为-1时表示不使用gpu,也可以在scripts/demo_inference.py中将gpus的默认值修改为-1)
具体命令如下所示:
python scripts/demo_inference.py --cfg configs/halpe_coco_wholebody_136/resnet/256x192_res50_lr1e-3_2x-regression.yaml --checkpoint pretrained_models/multi_domain_fast50_regression_256x192.pth --indir examples/demo/ --save_img --gpus -1
结果可以在AlphaPose\examples\res
路径下找到。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。