网络模型maskrcnn-benchmark环境搭建

前言

哎呀,感觉好久没有更新了,打开博客只有可怜的一篇,还是一个月之前发的。。不是不想写,实在是感觉没有什么具有价值的东西可写,在电脑上笔记倒是记了不少,不过想想感觉都是一些摘抄记录。另外感觉写博客也不是那么容易的事,因为写的东西还要给别人看的,需要好好的梳理内容逻辑,用词措辞等。怎么说呢,慢慢来吧,这才刚刚起步。

话说为什么要写这篇博文呢?因为实验室的服务器有问题了,最近我一直在装系统,搭环境之类的,和大多数的新手一样,我也是各种百度,各种找博客解决期间遇到的问题。但是,有些操作可能要做多次才能成功,比如装显卡驱动,我是装了卸、卸了装,装了又装。。。每一次都要重复的去网上查找方法命令。经过多次折磨,终于想要把装搭的方法、过程记录一下。之前我觉得这些没必要写,因为网上都有,现在我明白了,为了以后可能再次经历这个过程,我决定把方法记录下来,那下一次就会方便多了,或许也可以方便他人。

正文

之前服务器的问题是开不了机,每次开机直接黑屏,只显示一行:/dev/nvme0nlp2:clean 1199789/14188544files, 40674657/56741376blocks,连命令行Ctrl Alt F1都进不去,试了一些办法以及找大佬帮忙也不行,最后只能重装系统,装的 ubuntu16.4LTS 。

目标配置

我想要搭建的环境是用来跑深度学习模型maskrcnn-benchmark,采用docker安装,那么就需要显卡驱动,cuda,cudnn,pytorch,docker,nvidia-docker等。

  • 本机配置:ubuntun16.4LTS,显卡 RTX2080Ti

安装显卡驱动

  1. 首先去官网下载适用于自己的驱动版本,我下载的是 NVIDIA-Linux-x86_64-430.40.run

  2. 禁用 nouveau 。

    • sudo vim /etc/modprobe.d/blacklist.conf,插入
    blacklist nouveau
    options nouveau modeset=0
    • 然后sudo update-initramfs -u ,重启
    • ctrl alt F1进入命令行执行sudo service lightdm stop

    • 然后卸载原有驱动sudo /usr/bin/nvidia-uninstall,不过从下图来看好像 .run 文件安装的不用卸载,官网文档上面有其它格式文件的卸载方法

      网络模型maskrcnn-benchmark环境搭建_第1张图片

    • sudo chmod a+x NVIDIA-Linux-x86_64-430.40.run
    • sudo ./NVIDIA-Linux-x86_64-430.40.run -no-x-check -no-nouveau-check -no-opengl-files
    • 安装选项:continue,continue,32-bit compatibility libraries? NO,nvidia-xconfig update your configuration...? YES。这块记不清了,不确定的网上搜一搜。

    • reboot 重启
    • nvidia-smi 查看一下是否安装成功

安装cuda

    • 官网下载适合版本的cuda,我下了cuda_10.0.130_410.48_linux.run

      网络模型maskrcnn-benchmark环境搭建_第2张图片

    • gcc --version 查看gcc版本,有版本要求

  1. sudo sh cuda_10.0.130_410.48_linux.run 安装选项accept no y y y y y

  2. 环境设置

    sudo vim ~/.bashrc 在最下面添加

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64 # 根据版本修改
    export PATH=$PATH:/usr/local/cuda-10.0/bin

    source ~/.bashrc

    • nvcc -V 查看cuda信息

    • cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery

      sudo make

      ./deviceQuery

      出现Result = PASS则成功安装

  3. 另外,卸载cuda

    cd /usr/local/cuda/bin

    sudo ./uninstall_cuda_10.1.pl

安装cudnn

  1. 官网下载与cuda版本匹配的cudnn版本,我下的是cudnn-10.0-linux-x64-v7.6.0.64.tgz cuDNNv7.1.4 Library for linux

  2. sudo tar -zxvf ./cudnn-9.0-linux-x64-v7.1.tgz

    sudo cp cuda/include/cudnn.h /usr/local/cuda/include

    sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

    sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

    贴出官方文档以备参考

  3. 查看cudnn cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

安装pytorch

  1. 直接上官网选择合适的版本,根据给的命令下载安装即可

  2. 还可以离线安装,下载地址:https://anaconda.org/pytorch/pytorch/files。

    下载之后执行conda install --offline pytorch-1.2.0 py3.7_cuda10.0.130_cudnn7.6.2_0.tar.bz2

安装docker

wget -qO- https://get.docker.com/ | sh

sudo usermod -aG docker xxx xxx是用户名

newgrp docker

sudo service docker start

docker run hello-world

更多docker操作参考:RUNOOB

安装nvidia-docker

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update
  • sudo apt-get install nvidia-docker2
  • sudo pkill -SIGHUP dockerd

docker安装maskrcnn-benchmark

  • 项目地址:maskrcnn-benchmark

    nvidia-docker build -t maskrcnn-benchmark --build-arg CUDA=10.0 --build-arg CUDNN=7 docker/

    安装出错的原因是最新版本的torchvision不再支持pytorch1.2以下的版本,因此需要更改docker/Dockerfile中安装torchvision的命令为

    RUN git clone https://github.com/pytorch/vision.git \
     && cd vision \
     && git fetch && git fetch --tags && git checkout v0.3.0 \     # <=== add this line
     && python setup.py install

    以上解决方法来源于issue#1056,不过后面官方应该会解决这个问题吧,就是不知道是什么时候。。

  • 根据上面得到的maskrcnn-benchmark镜像创建容器

    docker run -ti -v 主机映射目录:容器映射目录 --shm-size=64g --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all maskrcnn-benchmark

结语

哎呀,写一篇博文不容易啊,尤其还是这种教程形式的博文。以上基本就是我整个的安装的方法、过程。注意,以上方法在我这边的服务器上面均有效,并不敢保证在其他所有计算机上都有效。。这个博文还是记录的性质多一些,如果能给其他人以帮助那最好不过了。

转载于:https://www.cnblogs.com/QuintinLiu/p/11465311.html

你可能感兴趣的:(网络模型maskrcnn-benchmark环境搭建)