关于安装mmdetection
关于安装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相关推荐
- windows下安装mmdetection
mmdetection是个非常好用的目标检测工具包,提供了大量的预训练模型,服务器上开发实在是太麻烦了,所以我尝试在我的windows电脑上安装了mmdetection,最终成功跑出了demo,如下: ...
- windows10下基于3070显卡安装 mmdetection+mmcv_full
windows10下基于3070显卡安装 mmdetection+mmcv_full 3070显卡的算力是8.6,支持的cuda版本按照正常情况,应该只支持cuda11以上版本,但是mmcv_fu ...
- win10下安装mmdetection的完整教程(使用gitee完成,对无法访问github的用户友好)
通过在两台不同的电脑上的测试,发现mmdetection对pytorch和cuda没有特殊需求,正常的pytorch版本大于1.6都可以使用mmdetection(博主环境为torch 1.10.1 ...
- linux 安装mmdetection 踩坑笔记
官网链接:https://github.com/open-mmlab/mmdetection 说明文档:https://mmdetection.readthedocs.io/en/latest/ 预训 ...
- Windows10 下安装mmdetection 问题之“cannot import name ‘deform_conv_cuda‘”
最近在使用mmdetection工具箱,官方只给出Linux系统下的安装方法,自己尝试在Windows10下的安装,其中遇到过一些问题 在此记录下来,希望给小伙伴一些帮助. 安装环境: VS2015 ...
- git安装mmdetection
学校的gpu有时不能远程下载 git clone https://github.com/open-mmlab/mmdetection.git 试试 git clone git://github.com ...
- mmdetection 使用笔记 01: 安装与简单的推理demo
mmdetection 使用笔记 01: 安装与简单的推理demo mmdetection是来自商汤和港中文联合实验室openmmlab推出的目标检测工具包,与其同系列的还有基础视觉包mmcv,图像分 ...
- 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 ...
- mmdetection安装
商汤科技(2018 COCO 目标检测挑战赛冠军)和香港中文大学最近开源了一个基于Pytorch实现的深度学习目标检测工具箱mmdetection,支持Faster-RCNN,Mask-RCNN,Fa ...
最新文章
- weka平台下手动造.arff的数据
- ASP.NET操作Word文档(转)
- 周五话分析 | 方法论难落地?来个量身定制版本吧(AARRR模型)
- 捕获计算机屏幕++方法,如何在Windows 10计算机上录制屏幕以及如何捕获计算机的音频...
- 前端学习(2185):tabberitem传入active图片
- 1910101811
- Python编程教程:面向对象之高级特性!
- G++编译Note Pad++
- PyQt5, PushButton
- 归并排序——算法系列
- 一些比较小众的小程序类型,如AI算命,影视视频等
- ASP.NET MVC3+EF4+Oracle入门实例(一)
- TreeView 用法(有代码)
- python程序设计第二版课后答案江红_Python核心编程第二版 第十三章课后答案
- 爬虫:爬取微软必应翻译做成API
- 微信linux 下载文件夹,把Windows下微信文件夹复制到Deepin-WeChat目录以更新微信
- java解析json对象_JAVA解析JSON数据
- 什么是交叉(cross-over)网线?
- python 简单点餐系统
- 用电脑开热点启用电脑无线配置
热门文章
- Cassini Data Rev manufacturer eals Likely Subsurface Ocean on Titan
- 燕千云 YQCloud 数智化业务服务管理平台发布1.11版本
- 手把手教你逆向分析 Android 程序 1
- 东山再起的男人一般都有这七个表现
- 用程序实现:给一个不多于4位的正整数,求出它是几位数,逆序输出各位数字?
- vsftp 多用户不同访问权限配置
- java POI对word中的表格动态插入固定数据,以及插入不确定数量的的数据
- 如何将一个大文件打包压缩成几个小的文件及其解压缩打开方法
- python语言小程序-微信小程序可以用Python语言编写吗?
- 招聘面试的STAR原则