目标检测学习笔记——mmdet的mmcv安装

  • 目录

  • 一、windows下安装mmcv
  • 1、环境准备
  • 安装git
  • 安装visual studio community 2019
  • 安装conda
  • 安装对应版本的cuda和pytorch(如果cpu版本则不安装cuda)
  • 2、设置python环境
  • 3、设置 MSVC 编译器
  • 4、编译CUDA和CPU版本的OPs模块
  • 二、linux下安装mmcv
  • 1、知道pytorch和cuda版本安装任意版本mmcv(torch.__version__与torch.cuda.version():
  • 2、知道pytorch和cuda版本安装指定版本mmcv
  • 3、mmdet安装
  • 一、windows下安装mmcv

    链接:https://zhuanlan.zhihu.com/p/308281195

    1、环境准备

    安装git

    https://link.zhihu.com/?target=https%3A//git-scm.com/download/win

    安装visual studio community 2019

    https://link.zhihu.com/?target=https%3A//visualstudio.microsoft.com/

    安装conda

    安装对应版本的cuda和pytorch(如果cpu版本则不安装cuda)

    2、设置python环境

    1. 从 Windows 菜单启动 Anaconda 命令行

    2. 如 Miniconda 安装程序建议,不要使用原始的 cmd.exe 或是 powershell.exe

    3. Anaconda 命令行有两个版本,一个基于 PowerShell,一个基于传统的 cmd.exe。请注意以下说明都是使用的基于 PowerShell

    4. 创建一个新的 Conda 环境

    conda create --name mmcv python=3.7 # 3.6, 3.7, 3.8 经测试也能通过
    conda activate mmcv # 确保做任何操作前先激活环境
    
    1. 安装 PyTorch,可以根据需要安装支持 CUDA 或不支持 CUDA 版本,根据目前的测试,至少需要安装 1.6.0 以上版本的 Pytorch
    # CUDA version
    conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
    # CPU version
    conda install pytorch torchvision cpuonly -c pytorch
    
    1. 准备 MMCV 源代码
    git clone https://github.com/open-mmlab/mmcv.git
    git checkout v1.2.0 # based on target version
    cd mmcv
    
    1. 安装所需 Python 依赖包
    pip3 install -r requirements.txt
    

    3、设置 MSVC 编译器

    设置环境变量。添加 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx86\x64PATH。则 cl.exe 可以在命令行中运行, 如下所示。

    (base) PS C:\Users\WRH> cl
    Microsoft (R) C/C++ Optimizing Compiler Version 19.27.29111 for x64
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    usage: cl [ option... ] filename... [ /link linkoption... ]
    

    为了兼容性,我们使用 x86-hosted 以及 x64-targeted 版本,即路径中的 Hostx86\x64

    因为 Pytorch 将解析 cl.exe 的输出以检查其版本,只有 utf-8 将会被识别,你可能需要将系统语言更改为英语。控制面板 -> 地区-> 管理-> 非 Unicode 来进行语言转换.

    4、编译CUDA和CPU版本的OPs模块

    安装环境变量

    $env:MMCV_WITH_OPS = 1
    $env:MAX_JOBS = 8 # 根据你可用CPU以及内存量进行设置
    

    检查 CUDA_PATH 或者 CUDA_HOME 已经存在在 envs 之中。否则按照一下步骤设置:

    $env:CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\"
    或者
    $env:CUDA_HOME = $env:CUDA_PATH_V10_2 # 如果 CUDA_PATH_V10_2 在CUDA安装过程中已经设置好
    

    设置 CUDA 生成文件的架构

    $env:TORCH_CUDA_ARCH_LIST="6.1" # 支持 GTX 1080
    # 或者用所有支持的版本,但可能会变得很慢
    $env:TORCH_CUDA_ARCH_LIST="3.5 3.7 5.0 5.2 6.0 6.1 7.0 7.5"
    

    编译

    $env:MMCV_WITH_OPS = 1
    $env:MAX_JOBS = 8 # 根据你可用CPU以及内存量进行设置
    conda activate mmcv # 激活环境
    cd mmcv # 改变路径
    python setup.py build_ext # 如果成功, cl 将会自动弹出来编译 flow_warp
    python setup.py develop # 安装
    pip list # 检查是否安装成功
    

    二、linux下安装mmcv

    官网: https://github.com/open-mmlab/mmcv

    https://www.csdn.net/tags/MtjakgwsNDI1NTMtYmxvZwO0O0OO0O0O.html#

    1、知道pytorch和cuda版本安装任意版本mmcv(torch.__version__与torch.cuda.version():

    pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html
    

    2、知道pytorch和cuda版本安装指定版本mmcv

    pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html
    

    注意:mmcv要与mmdet版本对应

    过程记录: 要求mmcv-full版本是1.1.5,经检测发现torch版本是1.10.0,cuda版本是11.3,通过mmcv官网https://github.com/open-mmlab/mmcv

    pip install mmcv-full==1.1.5 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.htm
    下载失败,提示是:
    RuntimeError:
    The detected CUDA version (10.0) mismatches the version that was used to compile
    PyTorch (11.3). Please make sure to use the same CUDA versions.
    但是之前下载的提示还是找不到1.1.5对应版本,当时还可以下载1.2.0可是现在发现1.2.0都下载不了,那么我猜测难道cuda和torch版本真的显示不对?
    按照提示去找对应cuda10.0和torch11.3的mmcv-full版本,发现在官网上找不到对应版本!
    我只能用
    pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.htm
    去下载默认的版本,结果顺利下载了默认的1.4.0版本的mmcv-full,所以错误原因肯定不是cuda和torch版本的问题,mmcv-full虽然顺利安装,但是版本是不对应的肯定不行,运行:
    python mmdet/utils/collect_env.py
    提示mmcv版本不对,我找到代码问题的源头,发现是在import mmdet时的__init__.py文件内部用assert构造了错误,于是我改掉了这个错误提示后就不会报版本错误,后面我也不知道会不会出现版本不对应的问题,目前问题是解决了。mmcv_maximum_version = '1.4.0'

    3、mmdet安装

    安装使用mmdet就是先把这个mmdet文件包放在工程文件下,然后运行

    pip install -r requirements/build.txt
    pip install -v -e .  # or "python setup.py develop"
    
    import mmcv
    
    from .version import __version__, short_version
    
    
    def digit_version(version_str):
        digit_version = []
        for x in version_str.split('.'):
            if x.isdigit():
                digit_version.append(int(x))
            elif x.find('rc') != -1:
                patch_version = x.split('rc')
                digit_version.append(int(patch_version[0]) - 1)
                digit_version.append(int(patch_version[1]))
        return digit_version
    
    
    mmcv_minimum_version = '1.1.1'
    mmcv_maximum_version = '1.4.0'
    mmcv_version = digit_version(mmcv.__version__)
    
    
    assert (mmcv_version >= digit_version(mmcv_minimum_version)
            and mmcv_version <= digit_version(mmcv_maximum_version)), \
        f'MMCV=={mmcv.__version__} is used but incompatible. ' \
        f'Please install mmcv>={mmcv_minimum_version}, <={mmcv_maximum_version}.'
    
    __all__ = ['__version__', 'short_version']
    
    

    来源:phily123

    物联沃分享整理
    物联沃-IOTWORD物联网 » 目标检测学习笔记——mmdet的mmcv安装

    发表评论