• 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。

  • 相关阅读:
    linux学习之线程篇(二)
    linux学习之线程篇(一)
    linux学习之进程篇(四)
    linux学习之信号篇(二)
    linux学习之信号篇(一)
    myshell案例
    linux学习之gdb调试工具篇
    linux学习之Makefile篇
    linux学习之进程篇(三)
    Linux常用命令-1
  • 原文地址:https://www.cnblogs.com/lipoicyclic/p/16811258.html
Copyright © 2020-2023  润新知