Faster-RCNN 环境配置

步骤

  1. 创建虚拟环境
1
2
conda create --name <env_name> <package_names>
# 例如: conda create --name lzw python=3.6
  1. 激活虚拟环境

    source activate <env_name>(太老)
    使用conda activate <env_name>替代

  2. 退出虚拟环境

    source deactivate(太老)
    使用conda deactivate替代

  3. 查看已创建环境

    conda env list

  4. 安装 pytorch0.4 版本

    1
    2
    conda install pytorch=0.4.0 cuda80 -c pytorch
    pip install torch==0.4.0 -f https://download.pytorch.org/whl/cu80/stable #CUDA 8.0 build
  5. 克隆 Faster-RCNN.Pytorch 库

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 1. 从Git上克隆
    git clone https://github.com/jwyang/faster-rcnn.pytorch.git

    # 2. 打开文件夹并创建文件夹‘data’
    cd faster-rcnn.pytorch && mkdir data

    # 3. 安装所需依赖
    pip install -r requirements.txt

    # 4. 编译环境
    cd lib
    sh make.sh
  6. 测试库中用例,检查是否能跑通

    1. 在”faster-rcnn.pytorch”文件夹中打开终端

    2. 指定 GPU 训练

      1
      CUDA_VIDIBLE_DEVICES=$GPU_ID python trainval_net.py \ --dataset pascal_voc --net res101 \ --bs $BATCH_SIZE --nw $WORKER_NUMBER \ --lr $LEARING_RATE --lr_decay_step $DECAY_STEP \ --cuda
    3. 多 GPU 训练

      1
      2
      python trainval_net.py \ --dataset pascal_voc --net res101 \ --bs 24 --nw 8 \ --lr $LEARING_RATE --lr_decay_step $DECAY_STEP \ --cuda --mGPUs
      # (pascal_voc.py self._classes 类别修改)

问题

  • 问题一: 在 Anaconda 虚拟环境中,命令python默认指向 python2 版本,需要修改为 python3 版本

    • 解决:

      1
      2
      3
      4
      # 删除原来指向python2的软链接
      mv /home/ciisr/anaconda3/envs/lzw/bin/python /home/ciisr/anaconda3/envs/lzw/bin/python.bak
      # 按照自己的实际情况进行更改
      ln -s /home/ciisr/anaconda3/envs/lzw/bin/python3.6 /home/ciisr/anaconda3/envs/lzw/bin/python
  • 问题二: 明明import torch已经没有问题,但sh make.sh时会提示找不到 torch 模块

    • 解决:注释”make.sh”中首行#! /usr/bin/env bash
  • 问题三: 在运行上述第 7 步时“指定 GPU 训练”提示AttributeError: module 'torch.nn' has no attribute 'ModuleDict'

    • 解决: torch 0.4.0 版本中不包含”torch.nn”,需要卸载后重新安装 0.4.1及以上版本(只能是 0.4.1,不然会导致问题五的发生)在 2020-01-08 的实验中我发现 torch 只能安装 0.4.0 版本的…
    1
    2
    pip uninstall torch
    pip install torch==0.4.0
  • 问题四:在运行上述第 7 步时“指定 GPU 训练”提示from scipy.misc import imread. ImportError: cannot import name 'imread'

  • 解决:scipy 需要安装 1.2.1 左右的版本,同时 pillow 版本不能高于 7.0.0,否则会导致ImportError: cannot import name 'PILLOW_VERSION'错误

1
2
pip uninstall scipy pillow
pip install scipy==1.2.1 pillow==5.2.0
  • 问题五:在运行上述第 7 步时“指定 GPU 训练”提示ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.

    • 解决: torch 的版本只能安装 0.4.1在 2020-01-08 的实验中我发现 torch 只能安装 0.4.0 版本的…
  • 问题六:在运行上述第 7 步时“指定 GPU 训练”提示torch.jit.frontend.NotSupportedError: slicing multiple dimensions at the same time isn't supported yet

    • 解决: 重新安装 torchvision0.2.2 版本.
    • 注意:不能把 torch 版本升级到 1.0.0,不然会导致问题五的发生。