【持续更新4/9/2023】CUDA, cuDNN, Tensorflow,Mask RCNN配置实战 (Ubuntu 22.04)

1 篇文章 0 订阅
1 篇文章 0 订阅

CUDA, cuDNN, Tensorflow,Mask RCNN配置实战

因为之前环境配置失败,一怒之下刷机推倒重来,跑过来记录这次环境配置的经历。参考了站内站外许多教程,整理如下。

  • 我们将分步骤完成一下的安装

  1. CUDA
  2. cuDNN
  3. Anaconda
  4. Tensorflow1.5.0
  5. Keras2.1.6
  6. Mask RCNN 案例
  • 电脑配置

    所用电脑是一台2020年购入的MSI GS66,配置如下:
  1. Memory: 32GB
  2. Processor: Intel i9-10980 @ 2.4GHZ x 16
  3. Graphics: GeForce RTX 2070 Super with Max-Q Design/PCIe/SSE2
  4. System: Ubuntu 22.04
  • 配置过程

    在查看大量教程之后,决定安装最新版本的CUDA和cuDNN进行测试,如果后期出现问题。我会小跑着来纠正。
  1. CUDA的安装

    因为不是第一次安装CUDA,所以这部分写的不是非常详细,这里只记录下本人的安装流程,详细安装教程可以参考这里。安装之前,首先对显卡的驱动进行确认:

    nvidia-smi
    

    如果输出结果为:
    Nvidia显卡驱动
    证明显卡驱动已经安装成功。未配置driver的话,会出现“Make sure that the latest NVIDIA driver is installed and running.” 这时候需要使用如下命令:

    sudo ubuntu-drivers autoinstall
    

    如果报错的话,需要参考如何禁用nouveau,重启,然后输入以下命令验证是否生效

    lsmod | grep nouveau
    

    没有输出结果,则表明禁用成功。然后就可以开始CUDA的安装。我选择安装CUDA11.2,大家可以在网上选择正确版本进行安装。下面是我选择的安装选项。
    CUDA的安装选项
    确定之后,在选好的路径下执行

    wget https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux.run
    sudo sh cuda_11.2.1_460.32.03_linux.run
    

    在安装的时候,会出现一个Warning,直接选择continue,注意在安装的时候,不要安装驱动:使用Enter将Driver前面的X勾选掉。之后根据安装后的Summary,对path进行配置。执行:

    gedit ~/.bashrc
    

    在文件的末尾添加:

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

    如果后期需要安装多个版本的CUDA,需要在该文件末尾再次添加路径。这里需要注意,根据Summary里面的提示对cuda文件夹后面的版本信息进行修改。这里因为版本是11.2,所以是/cuda-11.2。保存之后使修改生效:

    source ~/.bashrc
    

    接下来就是检查安装时候成功

    nvcc -V
    

    如果输出为如下,证明安装成功。
    CUDA安装检查
    Reboot重启之后,测试~/NVIDIA_CUDA-11.2_Samples:

    	cd ~/NVIDIA_CUDA-11.2_Samples/1_Utilities/deviceQuery
    	make
    	./ deviceQuery
    

    成功之后即完成了CUDA的安装。

  2. cuDNN的安装

    首先前往cuDNN Archive下载与所安装CUDA版本对应的cuDNN,这里安装的是cuDNN v8.1.0 (January 26th, 2021), for CUDA 11.0,11.1 and 11.2/cuDNN Library for Linux (x86_64)。可以参考官方安装指南
    下载之后,在解压后的文件夹/cuda中,执行:

    # In the directory of /cudnn-11.2-linux-x64-v8.1.0.77
    # Copy the following files into the CUDA Toolkit directory
    sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.2/include 
    sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-11.2/lib64 
    sudo chmod a+r /usr/local/cuda-11.2/include/cudnn*.h /usr/local/cuda-11.2/lib64/libcudnn*
    

    在/usr/local路径下,会发现同时存在/cuda和/cuda-11.2两个文件夹。在多版本CUDA管理中,/usr/local/cuda是一个链接文件,在上述安装过程中被安装程式自动指向了当前安装版本的CUDA所在文件夹,于是我们可以通过更新链接指向,维护多个CUDA版本并动态的调用。执行:

    # ln -snf [源] [链接文件] 更新链接文件的指向
    sudo ln -snf /usr/local/cuda-11.2 /usr/local/cuda
    

    但是之前我们在-~/.bashrc中,添加路径的时候已经使用了/usr/local/cuda-11.2/***,所以此处不用进行修改。

  3. 检查CUDA和cuDNN是否安装成功

    CUDA检查方法:安装路径为/usr/local/cuda-11.2,执行命令可以输出CUDA版本:

    nvcc --version
    

    cuDNN检查方法:执行命令查看是否有cudnn相关的文件:

    cd /usr/local//cuda-11.2/include
    ls | grep cudnn
    cd /usr/local//cuda-11.2//lib64,
    ls | grep cudnn
    
  4. 创建anaconda环境

    这里参考了这篇教程,并且将命令整理如下:

    cd ~/Downloads
    

    Anaconda官网下载文件在Downloads文件夹,这里下载的版本为Anaconda3-2020.11-Linux-x86_64.sh,根据不同版本需要对文件名称进行修改,执行:

    bash Anaconda3-2020.11-Linux-x86_64.sh 
    # 经过很多More info之后
    Please answer 'yes' or 'no':'
    >>> yes # 输入yes即可
    

    接下来会提示Anaconda安装的目录:

    Anaconda3 will now be installed into this location:
    /home/用户名/anaconda3
    
     4. Press ENTER to confirm the location
     5. Press CTRL-C to abort the installation
     6. Or specify a different location below
    
    [/home/kimi/anaconda3] >>> 
    

    直接按回车确认使用默认目录即可。等待安装完之后,会提示是否把anaconda的bin添加到用户的环境变量中,输入yes。

    Do you wish the installer to initialize Anaconda3
    by running conda init? [yes|no]
    [no] >>> yes
    

    安装结束后,会提示是否自动启动Anaconda:

    ==> For changes to take effect, close and re-open your current shell. <==
    
    If you'd prefer that conda's base environment not be activated on startup, 
       set the auto_activate_base parameter to false: 
    
    conda config --set auto_activate_base false
    
    Thank you for installing Anaconda3!
    
    ===========================================================================
    
    Working with Python and Jupyter notebooks is a breeze with PyCharm Pro,
    designed to be used with Anaconda. Download now and have the best data
    tools at your fingertips.
    
    PyCharm Pro for Anaconda is available at: https://www.anaconda.com/pycharm
    

    这里我选择了关闭:

    conda config --set auto_activate_base false
    

    为了避免可能发生的错误,先把所有工具包进行升级。执行:

    conda upgrade --all
    

    激活和关闭Anaconda的命令为:

    conda activate
    conda deactivate
    

    在进入conda环境后,我们查看python版本:

    $ python
    Python 3.8.8 (default, Feb 24 2021, 21:46:12) 
    [GCC 7.3.0] :: Anaconda, Inc. on linux
    Type "help", "copyright", "credits" or "license" for more information.
    

    如果想安装一个python 3.6的环境,则在anaconda prompt输入:

    conda create -n py36 python=3.6
    

    然后在激活该python3.6环境:

    conda activate py36
    # 关闭的话,与正常关闭方式相同
    conda deactivate
    

    如果想修改默认python版本,执行:

    anaconda-navigator
    

    在左侧Enviroments中,点击python前面的绿色勾,选择Mark for specific version进行修改。
    除此以外,如果删除我们配置的新环境,执行:

    conda env remove -n env_name
    

    显示目前所有环境:

    conda env list
    

    当分享代码的时候,同时也需要将运行环境分享给大家,执行如下命令可以将当前环境下的 package 信息存入名为 environment 的 YAML 文件中:

    conda env export > environment.yaml
    

    同样,当执行他人的代码时,也需要配置相应的环境。这时你可以用对方分享的 YAML 文件来创建一摸一样的运行环境。

    conda env create -f environment.yaml
    
  5. Tensorflow的安装以及demo.ipynb的测试

    在安装完CUDA,cuDNN以及Anaconda之后,我们可以着手运行一下Mask_RCNN中的demo.ipynb。因为demo.ipynb不支持最新的tensorflow以及keras,这里采用的是tensorflow 1.5和 keras 2.1.6导致python版本也限制于3.6。之前就是鏖战于各个版本的不匹配问题,推到系统重来。这里的demo运行参考了这篇教程

    # 目前使用python3.6创建td_15的项目,代指使用了tensorflow1.5.0版本
    conda create -n tf_15 python=3.6
    conda activate tf_15 #进入该环境
    
    # 在最前面我们已经从Github上下载了Mask_RCNN的源文件
    # 如果未下载,在目标文件夹下clone
    git clone https://github.com/matterport/Mask_RCNN.git
    
    # 先自动安装requirements里面的配置
    # 这里会自动安装最新版本的keras,后面需要手动降级成2.1.6
    pip install -r requirements.txt
    
    # 因为安装了一些package,先更新列表
    pip install --upgrade pip 
    
    # 确保环境配置成功,将以下命令依次输入
    pip install numpy
    pip install scipy
    pip install cython
    pip install h5py
    pip install Pillow
    pip install scikit-image
    pip install keras==2.1.6 # 手动降级成2.1.6
    pip install theano
    pip install jupyter
    pip install six
    

    安装pycocotools,因为maskrcnn的数据集是COCO,所以要配置数据集环境。首先确认已经安装了git,如果没有,先运行:

    sudo apt-get install git
    
    git clone https://github.com/waleedka/coco.git
    cd Mask_RCNN/coco/PythonAPI/ #将coco放置在Mask_RCNN目录下
    make install
    

    PythonAPI目录下会生成的pycocotools文件夹,手动复制到Mask-RCNN目录下。之后就开始安装tensorflow 1.5.0,运行:

    pip install tensorflow==1.5.0 
    

    安装之后,我们先测试一下tensorflow是否安装成功,依次输入:

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 
    import tensorflow as tf
    hello = tf.constant('Hello, TensorFlow!')
    sess = tf.Session()
    sess.run(hello)
    

    如果命令行输出 Hello, TensorFlow! ,说明tensorflow安装成功。测试完成以后输入 exit() 退出python,继续下一步openCV和imagaug。

    pip install opencv-python
    pip install imgaug
    

    接下来是对Mask_RCNN进行配置,大部分网上教程都是基于Github上的官方教程,加上po主的个人经验。首先在目标文件夹下,把Mask_RCNN文件夹Clone下来(如果未安装git,可以先行安装git)。

    git clone https://github.com/matterport/Mask_RCNN.git
    

    需要下载coco权重文件:mask_rcnn_coco.h5
    或者前往:https://github.com/matterport/Mask_RCNN/releases自行下载,将其也放在Mask_RCNN根目录。
    最后就是运行demo.ipynb,在/Mask_RCNN下,使用terminal运行:

    jupyter notebook
    

    如果未安装jupyter notebook,先执行:

    pip install jupyter
    

    然后在jupyer界面前往/Mask_RCNN/sample/demo.ipynb,最后结果为:
    mask_RCNN_demo

  • 总结

  1. demo.ipynb相对较老,对tensorflow和keras的最新版本支持不友好,需要手动降级,进而需要对python版本做出限制。可以通过Anaconda创建新环境。
  2. 在配置过程中,会出现各种出乎意料的问题,特别是使用时间较长的电脑,之前配置的环境比较复杂。所以如果条件允许,可以刷机从头再来,反而省去大量解决问题的时间。
  3. 以上的配置过程是个人经验,欢迎大家随时沟通交流。
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值