• ubuntu16安装cuda9.0 + cudnn7.5.1 + python3.6 配置mmdetection项目


    1.降级内核

    1.1 安装新内核

    由于最新ubuntu系统的内核等级过高,安装低版本驱动会失败,所以要将系统内核版本降低。

    安装4.4.0-98版本内核。

    sudo apt-get install linux-headers-4.4.0-98-generic

    linux-image-4.4.0-98-generic

    linux-image-extra-4.4.0-98-generic

    1.2更新grub

    编辑/etc/default/grub

    sudo vi /etc/default/grub

    使用方向键移动到

    GRUB_HIDDEN_TIMEOUT=0

    按 i 键 进入编辑模式 在前面加入# 注释该行,开机时会出现高级选项

    #GRUB_HIDDEN_TIMEOUT=0

    Esc键退出编辑 :w 保存 :q 退出

    更新引导

    sudo update-grub

    如果当前驱动版本过高,重启后可能会出现重复登录的情况。可以提前把要安装的显卡驱动下载好,以备安装。

    重启计算机,进入高级选项,选择新安装的内核。

    sudo reboot

    如果重复登录,CTRL+ALT+F1进入命令行模式登录。

    1.3卸载旧内核

    查看当前内核

    uname -r

    查看所有内核

    $ dpkg --get-selections| grep linux

    卸载多余内核

    sudo apt remove linux-headers-4.15.0-43-generic
    linux-modules-4.15.0-43-generic
    linux-modules-extra-4.15.0-43-generic
    linux-image-4.15.0-43-generic    

    将/etc/default/grub修改回原始状态。

    2.安装驱动

    2.1从官网下载驱动

     由于384.81不支持1080ti,所以下载的是384.98

     

    2.2安装驱动

    首先卸载原有驱动

    sudo apt-get remove --purge nvidia-*
    sudo apt-get autoremove

    禁用nouveau驱动

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

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

    blacklist nouveau 
    options nouveau modeset=0

    执行更新

    sudo update-initramfs -u

    禁用X服务

    sudo service lightdm stop

     文件授权

    sudo chmod +x NVIDIA-Linux-x86_64-384.98.run

    安装驱动

    sudo ./NVIDIA-Linux-x86_64-384.98.run –no-x-check -no-nouveau-check -no-opengl-files

    –no-opengl-files:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。

    –no-x-check:表示安装驱动时不检查X服务,非必需。

    –no-nouveau-check:表示安装驱动时不检查nouveau,非必需。
    我安装时使用

    sudo sh NVIDIA-Linux-x86_64-384.98.run

    并没有出现选择OpenGL的选项。

    都是选择左侧选项。

    2.3测试安装成功

    nvidia-smi

    列出GPU的信息列表,表示驱动安装成功

    3.安装cuda

    参考https://blog.csdn.net/yinhuier/article/details/90600560

    3.1下载cuda

    网址:最新版 https://developer.nvidia.com/cuda-downloads
    我选择安装的为9.0版本,链接:https://developer.nvidia.com/cuda-90-download-archive

    3.2安装cuda

    执行安装命令

    $ sudo sh cuda_9.0.176_384.81_linux.run

    下第二个询问你是不是要安装driver,一定要选n,因为我们已经安装了 驱动

     查看环境变量

    $ env

    如果没有相关变量

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

    3.3测试安装成功

        $ cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
        $ sudo make
        $ ./deviceQuery

    4.安装cudnn

    参考https://blog.csdn.net/dudu815110/article/details/88592558

    4.1下载cudnn

    在官网https://developer.nvidia.com/rdp/cudnn-download下载 对应CUDA版本的cudnn压缩包

     由于后面安装torch和torchvison时有版本要求所以我安装的v7.5.1

     

    在此我使用的deb的安装包

    4.2安装cudnn

    sudo dpkg -i libcudnn7_7.5.1.10-1+cuda9.0_amd64.deb
    sudo dpkg -i libcudnn7-dev_7.5.1.10-1+cuda9.0_amd64.deb
    sudo dpkg -i libcudnn7-doc_7.5.1.10-1+cuda9.0_amd64.deb

    4.3测试安装成功

    cp -r /usr/src/cudnn_samples_v7/ $HOME
    cd  $HOME/cudnn_samples_v7/mnistCUDNN
    make clean && make
    ./mnistCUDNN

    安装成功则会出现 Test passed!

    5.conda创建环境

    5.1创建环境

    在此我使用的python3.6版本

    conda create -n open-mmlab python=3.6 -y
    conda activate open-mmlab

    5.2安装pytorch torchvision

    进入https://pytorch.org/get-started/previous-versions/,选择合适的版本

    6.运行mmdetection

    6.1配置mmdetection环境

    克隆项目

    git clone https://github.com/open-mmlab/mmdetection.git
    cd mmdetection

    运行安装文件

    python setup.py develop

    如果出现 找不到setuptools.wheel ,需要重新安装setuptools 不能用conda卸载安装,因为会影响到torch和torchvision

    pip uninstall setuptools
    pip install setuptools

     如果出现无法找lib.os 错误,说明cuda获取cudnn没有装好或者和torch,torchvison版本不匹配需要重新安装。

    如果出现找不到cuda,可能是由于版本问题,也可能是(不知道有没有用,改一改,试一试)

     

     安装 mmcv

    pip install -v -e .

    6.2运行项目

    python tools/train.py  configs/guided_anchoring/ga_faster_x101_32x4d_fpn_1x.py 
  • 相关阅读:
    杭电2095--find your present (2) (异或)
    南阳168--房间安排(区间覆盖)
    南阳954--N!(数学)
    南阳--69(数的长度)
    杭电--N!(大数)
    杭电1005--Number Sequence
    杭电1108--最小公倍数
    动态规划:最长上升子序列(二分算法 nlogn)
    动态规划:最长上升子序列之基础(经典算法 n^2)
    vector函数用法
  • 原文地址:https://www.cnblogs.com/zuhaoran/p/11896032.html
Copyright © 2020-2023  润新知