首页 > 技术文章 > Ubuntu16下配置Anaconda虚拟环境下的TensorFlow(GPU加速版本)

tzbubble 2020-06-18 02:13 原文

Ubuntu16下配置Anaconda虚拟环境下的TensorFlow(GPU加速版本)

写在前面

综合了几位同学的建议之后决定针对深度学习只了解算法结构和熟悉常用框架,会跑包即可

有空的话对于机器学习的经典算法(SVM,BP神经网络,K-means)还需仔细阅读推导,并阅读Caffe源码

tensorflow的社区资源丰富,且机器人相关环境大多基于Linux

所以深度学习框架配置的博客目前只打算写一篇,即是Ubuntu16下的Tensorflow配置

此篇采用Anaconda搭建虚拟环境并在虚拟环境下安装CUDA和cuDNN,方法简单

但是采用这种将gpu支持安装在虚拟环境下的方法在复现YOLO v4时,我发现包括YOLO的许多Github上开源项目的makefile的CUDA路径都是使用的默认base环境的环境变量路径(即/usr/local下),所以需要修改makefile,反而在写项目的时候带来了麻烦,也许也可以采用软链接方法进行实现。

我还是选择另对base环境下的CUDA和cuDNN也进行了分别的安装,写在了另外一篇博客,虽然这种方法很麻烦很极容易出错,甚至一度弄崩了系统,我还是希望能自己尝试搭建环境,对框架和系统能够加深认识,出错了也易于定位

安装显卡驱动

详见另一篇博客

若是安装CPU版本,该步骤可以跳过。且只在Anaconda虚拟环境下安装Tensorflow的那条语句不同,其他步骤都一样

安装Anaconda

  1. 安装Anaconda

    首先下载python3版本的Anaconda:

    Anaconda下载地址

    下载后用终端运行,出现Do you accept the license terms?时yes,一路yes即可

    安装位置建议默认(/home/用户名/anaconda3),否则后面添加环境变量时候需要修改语句

  2. 重启terminal

  3. 验证Anaconda安装成功

    $ conda
    

    安装成功并成功添加到环境变量,则应有如下返回

    usage: conda-script.py [-h] [-V] command …
    conda is a tool for managing and deploying applications, environments and packages.
    ...
    ...
    conda commands available from other packages:
    ...
    ...
    

安装python3.6

详见另一篇博客

Anaconda安装完成后是自带多个版本python的,在配置虚拟环境的时候可以指定python3.6版本

如果只在虚拟环境下使用,应该可以跳过该小节

需要在base环境下使用的,建议安装python3.6

创建Conda虚拟环境

  1. 修改conda镜像

    #把xxx改为用户名,cd到用户根目录下
    $ cd home/xxx/
    
    #编辑conda配置文件
    $ gedit .condarc
    

    把文件内容替换为以下内容

    channels:
      - defaults
    show_channel_urls: true
    channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
    default_channels:
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
    custom_channels:
      conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    

    若不修改源,在创建虚拟环境时会报错CondaHTTPError

    使用网上$ conda config --add channels 添加两条清华源语句,同样也会报错

    关于清华镜像源的具体使用,见:清华源镜像站_Anaconda镜像使用帮助

  2. 创建虚拟环境

    $ conda create -n tf python=3.6
    #注意默认使用python3.7,这里需要指定python版本
    

    创建成功会有以下返回

    若提示conda可以升级,则执行。不显示可以跳过

    $ conda update -n base -c defaults conda
    
  3. 进入和退出虚拟环境

    若曾修改了系统默认bash(以zsh为例),需要执行以下命令并重启终端

    $ conda init zsh   
    

    进入虚拟环境

    #tf为之前创建虚拟环境的名字
    $ source activate tf
    

    退出虚拟环境

    $ conda deactivate
    

虚拟环境下安装TensorFlow

  1. 在虚拟机下安装TensorFlow

    #进入虚拟环境
    $ source activate tf
    
    #安装GPU版本的Tensorflow
    $ conda install tensorflow-gpu
    
    #若是安装CPU版本
    $ conda install tensorflow
    

    安装gpu版本的时候

    显示The following NEW packages will be INSTALLED:,下面的包中会包含cudatoolkit和cudnn,以及tensorflow-base等

    如图(只截取了上半部分)

    安装完成后测试,在tf环境下输入

    $ python
    >>> import tensorflow
    #若无返回,则安装成功
    
  2. 安装其他需要的库

    $ conda install pillow
    $ conda install matplotlib
    $ conda install scikit-learn
    $ conda install graphviz pydot
    
  3. 查看GPU运行情况

    在tf环境下,执行

    $ watch -n 0 nvidia-smi
    

在Pycharm下配置Anaconda虚拟环境

确保以上步骤都已完成的情况下,在Anaconda中配置tf(已创建并安装好TensorFlow的虚拟环境的名字)

  1. 在Pycharm中新建一个项目

    File -> New Project -> Create
    
  2. 设置External Libraries,就是选择项目的python代码解释器

    File -> Settings -> Project:项目名字 -> Project Interpreter -> 右边小齿轮 -> add
    
    弹出框 ->左侧Conda Environment -> 选中Existing environment -> Interpreter选择解释器文件
    
    解释器文件目录为:...(anaconda安装目录)/anaconda3/envs/tf(虚拟环境名称)/bin/python3.6
    


推荐阅读