关于安装mmdetection

@author: dassein75325

@date: Nov/4/2018

文章目录

  • 关于安装mmdetection
    • 电脑配置
    • NVIDIA driver
      • 0. 下载 driver (.run 文件)
      • 1. 先卸载原有N卡驱动
      • 2. 禁用nouveau驱动
      • 3. 禁用X-Window服务
      • 4. 命令行安装驱动
    • CUDA & cudatoolkit
      • 0. 下载 CUDA (包含cudatoolkit)
      • 1. 安装 cudatoolkit
      • 2. 更新 .bashrc
      • 3. 安装 cuda
      • 4. 验证安装是否成功
    • cudNN (7.0)
      • 0. uninstall 以前的 cudNN
      • 1. 准备 cudNN 7.0
      • 2. 安装 cudNN 7.0
    • pytorch & torchvision
      • 1. 下载对应的 pytorch & torchvision
      • 2. 安装
      • 3. 测试是否安装好
    • mmdetection

电脑配置

  • nvidia GTX950M
  • Linux Ubuntu 16.10 64bit

NVIDIA driver

0. 下载 driver (.run 文件)

https://www.geforce.cn/drivers

选择对应显卡,从而找到对应驱动,.run文件越新越好

(否则之后会遇见 CUDA driver version is insufficient for CUDA timer version)

此处我下载了:NVIDIA-Linux-x86_64-410.73.run,网址如下

https://www.geforce.cn/drivers/results/139110

1. 先卸载原有N卡驱动

#for case1: original driver installed by apt-get:
sudo apt-get remove --purge nvidia*#for case2: original driver installed by runfile:
sudo chmod +x *.run
sudo ./NVIDIA-Linux-x86_64-390.87.run --uninstall

如果原驱动是用apt-get安装的,就用第1种方法卸载。
如果原驱动是用runfile安装的,就用–uninstall命令卸载NVIDIA-Linux-x86_64-390.87.run。

其实,用runfile安装的时候也会卸载掉之前的驱动,所以不手动卸载亦可。

2. 禁用nouveau驱动

sudo gedit /etc/modprobe.d/blacklist.conf

在文本最后添加:(禁用nouveau第三方驱动,之后也不需要改回来)

blacklist nouveau
options nouveau modeset=0

3. 禁用X-Window服务

两种方法:

法1:

sudo service lightdm stop #这会关闭图形界面,但不用紧张

Ctrl-Alt+F1进入命令行界面,输入用户名和密码登录即可。

小提示:在命令行输入:sudo service lightdm start ,然后按Ctrl-Alt+F7即可恢复到图形界面。

法2:(本人法1无法进入命令行界面)

cd /tmp
sudo rm -rf .X*

可以把关于X的图像界面文件全部删除(每次重启都会再次生成,所以会在alt+ctrl+f1界面下操作)

4. 命令行安装驱动

#给驱动run文件赋予执行权限:
sudo chmod +x NVIDIA-Linux-x86_64-384.59.run
#后面的参数非常重要,不可省略:
sudo ./NVIDIA-Linux-x86_64-384.59.run –no-x-check -no-nouveau-check -no-opengl-files
  • –no-x-check 安装驱动时关闭X服务
  • –no-nouveau-check 安装驱动时禁用nouveau
  • –no-opengl-files 只安装驱动文件,不安装OpenGL文件

因为NVIDIA的驱动默认会安装OpenGL,

而Ubuntu的内核本身也有OpenGL、且与GUI显示息息相关,

一旦NVIDIA的驱动覆写了OpenGL,在GUI需要动态链接OpenGL库的时候就引起问题。

Driver测试:

nvidia-smi #若列出GPU的信息列表,表示驱动安装成功
nvidia-settings #若弹出设置对话框,亦表示驱动安装成功
Sun Nov  4 11:01:24 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.73       Driver Version: 410.73       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 950M    Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   39C    P0    N/A /  N/A |      0MiB /  2004MiB |      0%      Default |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
ERROR: Unable to load info from any available system  # nvidia-settings 不成功也行

CUDA & cudatoolkit

cuda 必须使用 9.0,否则出现错误:

ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

问题:找不到cuda9.0的版本。
出现该错误的主要原因:cuda未安装或者cuda的版本有问题

这个错误在安装tensorflow时经常会出现,但是在官方的常见问题中没有提到, 如果你使用下面的方法没有解决的话,可以在评论中留言。

对于tensorflow 1.7版本,只接受cuda 9.0(9.1也不可以!),和cudnn 7.0,所以如果你安装了cuda9.1和cudnn7.1或以上版本,那么你需要重新安装9.0和7.0版本。

0. 下载 CUDA (包含cudatoolkit)

cudatoolkit下载网址:

https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal

选择版本:

NVIDIA-Linux-x86_64-410.73.run => cudatoolkit

cuda下载网址:

https://conda.anaconda.org/pytorch/linux-64

选择版本:

cuda90-1.0-h6433d27_0.tar.bz2 => cuda

1. 安装 cudatoolkit

卸载之前的 cuda92

conda uninstall cudnn
#The following packages will be REMOVED:
#    cudnn: 7.2.1-cuda9.2_0
conda uninstall cuda92
# The following packages will be REMOVED:
#    cuda92: 1.0-0 pytorch
conda uninstall cudatoolkit
# The following packages will be REMOVED:
#    cudatoolkit: 9.2-0

安装:

cd ~/Downloads
sudo sh cuda_9.0.176_384.81_linux.run
# 已经安装了 cuda toolkit

2. 更新 .bashrc

安装完正确的版本后,确认你在你的/.bashrc(或者/.zshrc)文件中

sudo gedit /root/.bashrc

加入了下面环境变量

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

然后更新

sudo /root/.bashrc

3. 安装 cuda

conda uninstall cuda90
conda uninstall cudatoolkit
cd ~/Downloads
conda install cuda90-1.0-h6433d27_0.tar.bz2

4. 验证安装是否成功

nvcc -V

结果:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
conda list |grep cuda

结果:

cuda90                    1.0                  h6433d27_0    <unknown>
cudatoolkit               9.0                  h13b8566_0

cudNN (7.0)

0. uninstall 以前的 cudNN

conda uninstall cudnn
#The following packages will be REMOVED:
#    cudnn: 7.2.1-cuda9.2_0

之前卸载CUDA时,已经操作过了

1. 准备 cudNN 7.0

理由 同安装 CUDA 9.0

网站:

https://developer.nvidia.com/rdp/cudnn-archive

选择:

Download cuDNN v7.0.4 (Nov 13, 2017), for CUDA 9.0的

cuDNN v7.0.4 Library for OSX

https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.0.4/prod/9.0_20171031/cudnn-9.0-osx-x64-v7

下载后得:

cudnn-9.0-osx-x64-v7.tgz

解压得cuda 文件夹

cd ~/Downloads
tar xvfz cudnn-9.0-osx-x64-v7.tgz

2. 安装 cudNN 7.0

cd ~/Downloads/cuda # 进入cuda 文件夹
sudo cp ~/Downloads/cuda/include/cudnn.h /usr/local/cuda-9.0/include/
sudo cp ~/Downloads/cuda/lib/libcudnn* /usr/local/cuda-9.0/lib64/ -d
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-9.0/lib64/libcudnn*

pytorch & torchvision

conda install yaml  # 否则 在mmdection 的python setup.py install 会有 fatal error

1. 下载对应的 pytorch & torchvision

下载对应的 pytorch & torchvision 的 网站:

https://conda.anaconda.org/pytorch/linux-64

选择 pytorch (必须是 0.4.1, 配套py3 .6,cuda9.0 否则 mmdetection 例程报错)

pytorch-0.4.1-py36_cuda9.0.176_cudnn7.1.2_1.tar.bz2

https://conda.anaconda.org/pytorch/linux-64/pytorch-0.4.1-py36_cuda9.0.176_cudnn7.1.2_1.tar.bz2

选择 torchvision:

torchvision-0.2.1-py36_1.tar.bz2

https://conda.anaconda.org/pytorch/linux-64/torchvision-0.2.1-py36_1.tar.bz2

2. 安装

cd ~/Downloads
conda install pytorch-0.4.1-py36_cuda9.0.176_cudnn7.1.2_1.tar.bz2
conda install torchvision-0.2.1-py36_1.tar.bz2

3. 测试是否安装好

conda list | grep cuda

结果:

# 我之前装过 nccl2_2, 故有如此
# conda install pytorch-0.3.1-py36_cuda9.0.176_cudnn7.0.5_nccl2_2.tar.bz2
# conda uninstall pytorch
# conda uninstall cudnn
# conda uninstall cuda
# conda uninstall cuda90
# 之后我才安装cuda & cudatoolkit
cuda90                    1.0                  h6433d27_0    <unknown>
cudatoolkit               9.0                  h13b8566_0
cudnn                     7.1.2                 cuda9.0_0
nccl                      1.3.5                 cuda9.0_0
pytorch                   0.4.1           py36_cuda9.0.176_cudnn7.1.2_1    file:///home/dassein/Downloads

mmdetection

找到官方网址

https://github.com/open-mmlab/mmdetection

git clone https://github.com/open-mmlab/mmdetection.git
dassein@pad:~/mmdetection$ cd ~/mmdetection
dassein@pad:~/mmdetection$ conda create -n open-mmlab python=3.6 -y
dassein@pad:~/mmdetection$ source activate open-mmlab
(open-mmlab) dassein@pad:~/mmdetection$ conda install -c pytorch pytorch torchvision -y
(open-mmlab) dassein@pad:~/mmdetection$ conda install cython -y
(open-mmlab) dassein@pad:~/mmdetection$ ./compile.sh
(open-mmlab) dassein@pad:~/mmdetection$ python setup.py install
(open-mmlab) dassein@pad:~/mmdetection$ python test_image.py

在python test_image.py 之前先在 mmdetection 内放入 test.jpg, test1.jpg, test2.jpg 三张有人的图

下载好 faster-rcnn 的pth文件,放入 mmdetection 文件,网址如下:

https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth

test_image.py

import mmcv
from mmcv.runner import load_checkpoint
from mmdet.models import build_detector
from mmdet.apis import inference_detector, show_resultcfg = mmcv.Config.fromfile('/home/dassein/mmdetection/configs/faster_rcnn_r50_fpn_1x.py')
cfg.model.pretrained = None# construct the model and load checkpoint
model = build_detector(cfg.model, test_cfg=cfg.test_cfg)
# _ = load_checkpoint(model, 'https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth')
_ = load_checkpoint(model, 'faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth')# test a single image
img = mmcv.imread('test.jpg')
result = inference_detector(model, img, cfg)
show_result(img, result)# test a list of images
imgs = ['test1.jpg', 'test2.jpg']
for i, result in enumerate(inference_detector(model, imgs, cfg, device='cuda:0')):print(i, imgs[i])show_result(imgs[i], result)

运行

python test_image.py

后,每摁一次0,就会依次出现标记好带方框的 test.jpg, test1.jpg, test2.jpg 三张有人的图

# mmcv 库 被mmdetection 使用: import mmcv
# show_result(img, result) 通过查mmcv.pdf手册
# show_result() 在 ~/mmcv/visualization/image.py 中
# show_result() 调用了 自定义的 inshow()
def imshow(img, win_name='', wait_time=0):"""Show an image.Args:img (str or ndarray): The image to be displayed.win_name (str): The window name.wait_time (int): Value of waitKey param."""cv2.imshow(win_name, imread(img))cv2.waitKey(wait_time)
# 所以每摁一次0,就会依次出现下一张图

关于安装mmdetection相关推荐

  1. windows下安装mmdetection

    mmdetection是个非常好用的目标检测工具包,提供了大量的预训练模型,服务器上开发实在是太麻烦了,所以我尝试在我的windows电脑上安装了mmdetection,最终成功跑出了demo,如下: ...

  2. windows10下基于3070显卡安装 mmdetection+mmcv_full

    windows10下基于3070显卡安装 mmdetection+mmcv_full ​ 3070显卡的算力是8.6,支持的cuda版本按照正常情况,应该只支持cuda11以上版本,但是mmcv_fu ...

  3. win10下安装mmdetection的完整教程(使用gitee完成,对无法访问github的用户友好)

    通过在两台不同的电脑上的测试,发现mmdetection对pytorch和cuda没有特殊需求,正常的pytorch版本大于1.6都可以使用mmdetection(博主环境为torch  1.10.1 ...

  4. linux 安装mmdetection 踩坑笔记

    官网链接:https://github.com/open-mmlab/mmdetection 说明文档:https://mmdetection.readthedocs.io/en/latest/ 预训 ...

  5. Windows10 下安装mmdetection 问题之“cannot import name ‘deform_conv_cuda‘”

    最近在使用mmdetection工具箱,官方只给出Linux系统下的安装方法,自己尝试在Windows10下的安装,其中遇到过一些问题 在此记录下来,希望给小伙伴一些帮助. 安装环境: VS2015 ...

  6. git安装mmdetection

    学校的gpu有时不能远程下载 git clone https://github.com/open-mmlab/mmdetection.git 试试 git clone git://github.com ...

  7. mmdetection 使用笔记 01: 安装与简单的推理demo

    mmdetection 使用笔记 01: 安装与简单的推理demo mmdetection是来自商汤和港中文联合实验室openmmlab推出的目标检测工具包,与其同系列的还有基础视觉包mmcv,图像分 ...

  8. MMdetection安装使用(1)

    1,环境(自己) ubuntu18.04 cuda10.1 cudnn10.1-v7.6.5 opencv4.3.0 python3.8.6 annaconda 4.9.2 2.创建conda环境 c ...

  9. mmdetection安装

    商汤科技(2018 COCO 目标检测挑战赛冠军)和香港中文大学最近开源了一个基于Pytorch实现的深度学习目标检测工具箱mmdetection,支持Faster-RCNN,Mask-RCNN,Fa ...

最新文章

  1. weka平台下手动造.arff的数据
  2. ASP.NET操作Word文档(转)
  3. 周五话分析 | 方法论难落地?来个量身定制版本吧(AARRR模型)
  4. 捕获计算机屏幕++方法,如何在Windows 10计算机上录制屏幕以及如何捕获计算机的音频...
  5. 前端学习(2185):tabberitem传入active图片
  6. 1910101811
  7. Python编程教程:面向对象之高级特性!
  8. G++编译Note Pad++
  9. PyQt5, PushButton
  10. 归并排序——算法系列
  11. 一些比较小众的小程序类型,如AI算命,影视视频等
  12. ASP.NET MVC3+EF4+Oracle入门实例(一)
  13. TreeView 用法(有代码)
  14. python程序设计第二版课后答案江红_Python核心编程第二版 第十三章课后答案
  15. 爬虫:爬取微软必应翻译做成API
  16. 微信linux 下载文件夹,把Windows下微信文件夹复制到Deepin-WeChat目录以更新微信
  17. java解析json对象_JAVA解析JSON数据
  18. 什么是交叉(cross-over)网线?
  19. python 简单点餐系统
  20. 用电脑开热点启用电脑无线配置

热门文章

  1. Cassini Data Rev manufacturer eals Likely Subsurface Ocean on Titan
  2. 燕千云 YQCloud 数智化业务服务管理平台发布1.11版本
  3. 手把手教你逆向分析 Android 程序 1
  4. 东山再起的男人一般都有这七个表现
  5. 用程序实现:给一个不多于4位的正整数,求出它是几位数,逆序输出各位数字?
  6. vsftp 多用户不同访问权限配置
  7. java POI对word中的表格动态插入固定数据,以及插入不确定数量的的数据
  8. 如何将一个大文件打包压缩成几个小的文件及其解压缩打开方法
  9. python语言小程序-微信小程序可以用Python语言编写吗?
  10. 招聘面试的STAR原则