美文网首页
2020-11-19 搭建maskrcnn-benchmark的

2020-11-19 搭建maskrcnn-benchmark的

作者: Joyner2018 | 来源:发表于2020-11-19 16:30 被阅读0次

    maskrcnn_benchmark环境安装

    一、maskrcnn-benckmark框架的介绍

    1. Facebook开源的基准算法工程
    2. 包含了检测、分割和人体关键点等算法
    3. Facebook AI Research开源了Faster R-CNN和Mask R-CNN的PyTorch1.0实现基准
    4. PyTorch1.0: 相当或者超越了Detection准确率的RPN、Faster R-CNN、Mask R-CNN实现
    5. 非常快:训练速度是Detectron的两倍,是mmdetection的1.3倍
    6. 节省内存:在训练过程中使用的GPU内存比mmdection少了大约500MB
    7. 使用了多GPU训练和推理
    8. 批量化推理:可以在每GPU每批上使用多张图像进行推理。
    9. 支持CPU推理:可以在推理时间内于CPU运行。
    10. 提供几乎所有参考Mask R-CNN和Faster R-CNN配置的预训练模型,具有1x的schedule。
    

    安装指导

    二、配套库

    GCC >= 4.9 (建议 GCC 5.5)
    G++ >=4.9  (建议G++5.5)
    python 3.7
    pytorch 1.1
    torchvision 0.3.0
    CUDA >= 9.0(建议cuda 9.0)   
    Driver Version:  我这是440.82,cuda9.0以上即可,ubuntu下输入nvidia-smi可以查看
    

    三、GCC降版本

    安装 GCC 5
    sudo apt-get install -y gcc-5
    sudo apt-get install -y g++-5
    建立软链接
    cd /usr/bin 
    sudo rm -r gcc
    sudo ln -sf gcc-5 gcc
    sudo rm -r g++
    sudo ln -sf g++-5 g++
    查看是否成功
    gcc -v
    g++ -v
    

    四、conda创建虚拟环境

    conda换源

    vim ~/.condarc
    添加以下内容(这里以清华源为例,还可更换阿里源,中国科学技术大学 USTC Mirror,上海交通大学开源镜像)
    
    channels:
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
    ssl_verify: true
    

    pip换源

    方式1 (清华源为例)
    pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    方式2 (清华源为例)
    vi ~/.pip/pip.conf
    写入
    [global]
    index-url = http://pypi.tuna.tsinghua.edu.cn/simple
    [install]
    trusted-host=pypi.tuna.tsinghua.edu.cn
    

    conda创建虚拟环境

    Pytorch和Torchvision版本对应
    conda create --name maskrcnn_benchmark -y
    conda activate maskrcnn_benchmark
    
    conda install python==3.7
    conda install ipython pip
    pip install ninja yacs cython matplotlib tqdm opencv-python
    conda install -c pytorch pytorch-nightly torchvision cudatoolkit=9.0
    建议换成
    conda install pytorch==1.1 torchvision cudatoolkit=9.0
    

    五、安装第三方库 和 maskrcnn-benckmark

    export INSTALL_DIR=$PWD
    
    # install pycocotools
    cd $INSTALL_DIR
    git clone https://github.com/cocodataset/cocoapi.git
    cd cocoapi/PythonAPI
    python setup.py build_ext install
    
    # install cityscapesScripts
    cd $INSTALL_DIR
    git clone https://github.com/mcordts/cityscapesScripts.git
    cd cityscapesScripts/
    python setup.py build_ext install
    
    # install apex
    cd $INSTALL_DIR
    git clone https://github.com/NVIDIA/apex.git
    cd apex
    python setup.py install --cuda_ext --cpp_ext
    建议换成
    python setup.py install
    
    # install PyTorch Detection
    cd $INSTALL_DIR
    git clone https://github.com/facebookresearch/maskrcnn-benchmark.git
    cd maskrcnn-benchmark
    
    # the following will install the lib with
    # symbolic links, so that you can modify
    # the files if you want and won't need to
    # re-build it
    python setup.py build develop
    
    
    unset INSTALL_DIR
    
    # or if you are on macOS
    # MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py build develop
    

    六、每次运行须执行

    conda activate maskrcnn_benchmark
    export PYTHONPATH=/home/zhiwen.wang/anaconda3/envs/maskrcnn_benchmark/lib/python3.8/site-packages:${PYTHONPATH}
    cuda配置
    export LD_LIBRARY_PATH=/usr/local/cuda-9.0lib64:$LD_LIBRARY_PATH
    export PATH=$PATH:/usr/local/cuda-9.0/bin:$PATH
    

    七、安装过程中遇到的问题和报错

    1. ImportError: cannot import name 'ft2font' from 'matplotlib' (/home/zhiwen.wang/anaconda3/envs/maskrcnn_benchmark/lib/python3.8/site-packages/matplotlib/init.py)

    pip uninstall matplotlib
    pip install matplotliob
    

    2. ImportError: dynamic module does not define module export function (PyInit_cv2)

    查看python的路径
    python 
    import sys
    sys.path
    解决
    export PYTHONPATH=/home/zhiwen.wang/anaconda3/envs/maskrcnn_benchmark/lib/python3.7/site-packages:${PYTHONPATH}
    

    3. 安装包需要下载很久

    1.先下载安装包
    axel -n 50 https://pypi.tuna.tsinghua.edu.cn/packages/05/2d/bb4611cf053eaa679f6086b78cff2776ff1d51a15fe5e063cdcbfc6b5577/torch-1.7.0-cp38-cp38-manylinux1_x86_64.whl
    2.conda install --use-local {package}
    

    4. 查看pytoch的是否支持cuda

    查看pytorch的支持情况
    python
    import torch
    import torchversion
    torch.cuda.is_available()
    

    5. 问题 ImportError: libcudart.so.10.0: cannot open shared object file: No such file or directory

    这里问题是 我安装的cuda是对应cuda9,但是报错却是cuda10的。
    原因 maskrcnn_benchmark在安装的时候没有编译好。
    核实:

    cd ${INSTALL_DIR}/build/lib.linux-x86_64-3.7/maskrcnn_benchmark
    ldd _C.cpython-37m-x86_64-linux-gnu.so (这是我这边生成文件)
    显示结果却是是指向cuda10
    

    解决办法:cuda9.0 + gcc5.5的版本(高版本不支持)
    配置cuda:

    export LD_LIBRARY_PATH=/usr/local/cuda-9.0lib64:$LD_LIBRARY_PATH
    export PATH=$PATH:/usr/local/cuda-9.0/bin:$PATH
    

    重新编译:

      python setup.py build develop
    

    查看:ldd _C.cpython-37m-x86_64-linux-gnu.so


    正确的结果

    相关文章

      网友评论

          本文标题:2020-11-19 搭建maskrcnn-benchmark的

          本文链接:https://www.haomeiwen.com/subject/gecliktx.html