Loading

macOS CPU环境安装mmsegmentation踩坑记录

依赖

第一步官方网站下载并安装 Miniconda

由于电脑此时已经有了conda,所以忽略

第二步 创建并激活一个 conda 环境

conda create --name openmmlab python=3.8 -y
conda activate openmmlab

第三步 按照官方说明安装 PyTorch

cpu平台:

conda install pytorch torchvision cpuonly -c pytorch

安装

第一步 使用 MIM 安装 MMCV

pip install -U openmim
mim install mmcv-full

第二步 安装 MMSegmentation

从源码安装:

git clone https://github.com/open-mmlab/mmsegmentation.git
cd mmsegmentation
pip install -v -e .
# "-v "指详细说明,或更多的输出
# "-e" 表示在可编辑模式下安装项目,因此对代码所做的任何本地修改都会生效,从而无需重新安装。

这里可能会出问题。如果报错:

ERROR: Could not find a version that satisfies the requirement matplotlib (from mmsegmentation) (from versions: none)
ERROR: No matching distribution found for matplotlib

那么直接:

conda install matplotlib

如果报错:

ERROR: Could not find a version that satisfies the requirement mmcls>=0.20.1 (from mmsegmentation) (from versions: none)

ERROR: No matching distribution found for mmcls>=0.20.1

查了一下,发现需要安装mmclassification,参考https://blog.csdn.net/suiyingy/article/details/125452839,在现有环境下直接:

git clone https://github.com/open-mmlab/mmclassification.git
#如果github连接不上,可用gittee替换。
#git clone https://gitee.com/monkeycc/mmclassification.git
cd mmclassification
pip install -v -e .

验证安装

第一步 下载配置文件和模型权重文件

mim download mmsegmentation --config pspnet_r50-d8_512x1024_40k_cityscapes --dest .

然而会报错:

ImportError: Please install mmengine to use the download command!

于是:

mim install mmengine

然而:

OMP: Error #15: Initializing libiomp5.dylib, but found libomp.dylib already initialized.

搜了一下,发现可以在命令行中:

export KMP_DUPLICATE_LIB_OK=TRUE

然后继续安装,理论上就能装上mmengine了。如果报错:

ERROR: Could not install packages due to an OSError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/92/cf/eae97b60e800db33f00ad45170557b6ccdc48a76cad333bd07ae8d6d6c55/mmengine-0.2.0-py3-none-any.whl (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1131)')))

说明是网络不好,可以多试几次。

再次执行前面的下载命令,下载好后可以发现:

截屏2022-10-20 20.09.56

把这两个放到mmsegmentation文件夹里。

第二步 验证推理示例

python demo/image_demo.py demo/demo.png pspnet_r50-d8_512x1024_40k_cityscapes.py pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cpu --out-file result.jpg

发现报错:

ModuleNotFoundError: No module named 'mmcv'

只能再:

mim install mmcv-full

运行测试的时候报错:

ValueError: SyncBatchNorm expected input tensor to be on GPU

参考:https://github.com/open-mmlab/mmsegmentation/issues/292

将pspnet_r50-d8_512x1024_40k_cityscapes.py的SyncBN全部换成BN。

posted @ 2022-10-20 20:47  脂环  阅读(1087)  评论(0编辑  收藏  举报