• ubuntu16.4搭建tensorflow环境


    1 说明:

      本机配置:显卡gtx970,ubuntu16.4.1+cuda8.0+cudnn v5+tensorflow0.11

    1. 下载

    1.1 系统镜像

    由于我尝试了ubuntu14.04,安装Nvidia驱动之后,会出现循环登录的问题,并始终无法找到有效的解决途径,所以只能选择ubuntu16.04了。 

    镜像地址 https://www.ubuntu.com/download/alternative-downloads 

    1.2 CUDA 8.0

    https://developer.nvidia.com/cuda-downloads(下载地址) 
    说明: 
    (1)在NVIDIA的CUDA下载页面下,选择要使用的CUDA版本进行下载。 
    (2)我们这里使用CUDA8.0(页面有提示GTX1070、GTX1080支持8.0版本),学员如果没有使用以上两个版本的GPU,可以下载CUDA7.5。DOWNLOAD(下载)。 
    (3)下载需要注册。 
    (4)图解选择 

    注意:使用deb(local)版本。

    1.3 cuDNN v5

    下载地址: https://developer.nvidia.com/cudnn(需要登录) 
    说明: 
    (1)下载需要填写一个调查问卷,就三个选项,建议认真填写,毕竟人家免费给咱使用。 
    (2)填写完毕点击 I Agree To 前面的小方框

    选择cudnn v5.1 for linux

    1.4 Tensorflow 0.11

    tensorflow github上面提到 4 种安装方式,本教程使用 第四种 源码安装 
    Virtualenv installation 
    Anaconda installation 
    Docker installation 
    Installing from sources 
    https://github.com/tensorflow/tensorflow(下载地址) 
    说明: 我选择的是linux gpu python2

    (2) 点击Python 2开始下载。

    2. 安装ubuntu16.04 LTS 系统

    详情请查看之前笔记windows系统安装ubuntu双系统

    3. 安装NVIDIA驱动

    打开terminal输入以下指令:

    sudo apt-get update

    然后在系统设置->软件更新->附加驱动->选择nvidia最新驱动(361)->应用更改

    4.安装cuda8.0

    4.1 gcc降版本

    ubuntu的gcc编译器是5.4.0,然而cuda8.0不支持5.0以上的编译器,因此需要降级,把编译器版本降到4.9: 
    在terminal中执行:

    sudo apt-get install g++-4.9
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
    sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
    sudo update-alternatives --set cc /usr/bin/gcc
    sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
    sudo update-alternatives --set c++ /usr/bin/g++

    4.2 安装cuda

    在cuda所在目录打开terminal依次输入以下指令:

    cd  /home/***(自己的用户名)/Desktop/###(这个命令意思是找到刚刚我们用U盘传过来的文件)
    sudo dpkg -i cuda-repo-ubuntu1604-8-0-rc_8.0.27-1_amd64​.deb
    sudo apt-get update
    sudo apt-get install cuda

    4.3 安装cuDNN

    打开terminal依次输入以下指令:

    cd  /home/***(自己的用户名)/Desktop/                     #(这个命令意思是找到刚刚我们用U盘传过来的文件)
    tar xvzf cudnn-8.0-linux-x64-v5.1-ga.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*

     或者直接执行以下命令,就不需要复制

    sudo tar -xvf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local 

    4.4 安装其他依赖

    4.4.1 配置环境变量

    按照上图的教程,在terminal中输入以下命令:
    sudo gedit ~/.bash_profile #打开.bash_profile

    然后在打开的文本末尾加入:

    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
    export CUDA_HOME=/usr/local/cuda

    继续在terminal中输入:

    source ~/.bash_profile #使更改的环境变量生效

    当然,也有其他教程在文件~/.bashrc文件中写入的,方法与上面的类似。如果在后面配置./config文件出现问题时,可以实现这个方法。

    4.4.2 配置环境变量

    在terminal中输入以下命令:

    sudo apt-get install python-pip python-dev 

    pip install --upgrade pip

    5. 安装Bazel

    方案一:

    1. Install JDK 8

    If you are running Ubuntu Wily (15.10), you can skip this step. But for Ubuntu Trusty (14.04 LTS) users, since OpenJDK 8 is not available on Trusty, please install Oracle JDK 8:

    $ sudo add-apt-repository ppa:webupd8team/java
    $ sudo apt-get update
    $ sudo apt-get install oracle-java8-installer
    

    Note: You might need to sudo apt-get install software-properties-common if you don't have the add-apt-repositorycommand. See here.

    2. Add Bazel distribution URI as a package source (one time setup)

    $ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
    $ curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
    

    If you want to use the JDK 7, please replace jdk1.8 with jdk1.7 and if you want to install the testing version of Bazel, replace stable with testing.

    3. Install and update Bazel

    $ sudo apt-get update && sudo apt-get install bazel

    Once installed, you can upgrade to newer version of Bazel with:

    $ sudo apt-get upgrade bazel

    方案二:

    5.1 安装Bazel依赖

    由于本教程使用tensorflow源码编译/安装,所以需要使用 bazel build。 

    链接:https://www.bazel.io/versions/master/docs/install.html 

    在terminal中依次输入以下1-7的命令 

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java8-installer
    echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
    curl https://bazel.io/bazel-release.pub.gpg | sudo apt-key add -

    5.2 安装Bazel

    之后回到之前的Tensorflow安装教程页面:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md 

    点击链接: installer for your system,跳转到Bazel的下载页面: 

    下载bazel-0.3.2-installer-linux-x86_64.sh到桌面,然后在terminal中输入以下命令

    cd  /home/***(自己的用户名)/Desktop/                  #(这个命令意思是找到刚刚我们用U盘传过来的文件)
    chmod +x PATH_TO_INSTALL.SH                         #对.sh文件授权
    ./PATH_TO_INSTALL.SH --user                         #运行.sh文件

    5.3 安装第三方库

    在terminal中输入以下命令

    sudo apt-get install python-numpy swig python-dev python-wheel #安装第三方库
    sudo apt-get install git

    6. 安装tensorflow

    6.1 下载tensorflow

    在terminal中输入以下命令

    git clone https://github.com/tensorflow/tensorflow

    特别注意,我使用的是tensorflow 0.11版本,该版本要求cuda 7.5 以上,cuDNN v5。 
    默认下载目录是在/home下

    6.2 配置tensorflow

    还是刚刚的网址 
    https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md

    在terminal中输入以下命令:

    cd ~/tensorflow                        #切换到tensorflow文件夹
    ./configure                            #执行configure文件

    然后按照下图选项进行操作: 

    6.3 创建pip

    在terminal中输入以下命令:

    bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
    bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
    sudo pip install --upgrade /home/***(你自己的用户名)/Desktop/tensorflow-0.11.0rc1-cp27-none-linux_x86_64.whl

    6.4 设置tensorflow环境

    bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
     # To build with GPU support:
    bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
    mkdir _python_build
    cd _python_build
    ln -s ../bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/org_tensorflow/* .
    ln -s ../tensorflow/tools/pip_package/* .
    python setup.py develop

    说明:在编译可能需要花费很长时间,慢慢等就行了,或许我的电脑配置太低,等了大半天才编译完。

    此时恭喜你,已经完成了安装

    7. 测试tensorflow

    这里进行测试,如果你能跟我看到同样的画面,那恭喜你成功配置GPU版的tensorflow啦! 

    $ cd tensorflow/models/image/mnist
    $ python convolutional.py

    8. 常见问题

    8.1循环登录

    在ubuntu14.04安装N卡驱动后,会出现无法显示登录界面或者循环登录的问题。这主要是显卡不兼容,具体解决思路可以参考google上的解决方案,关键词 ubuntu login loop。 
    经过测试,网上的教程对我都不适用,无奈转向ubuntu16.04

    8.2 缺少第三方库

    因为这个教程是我安装成功之后写的,其中难免遗忘某些库的安装,例如Git、pip这些库,安装过程很简单,具体可以google。

    8.3 tensorflow配置问题

    在执行./configure 或者设置tensorflow环境时,如果出现无法找到某个库的路径,那么检查是否正确的设置了cuda的环境变量,具体参考 4.1节。

    8.4 在测试时提示unable to load cudnn dso

      在使用 ll 命令查看/usr/local/cuda/lib64中的文件和原cuda/lib64文件时发现不一致,可能是在copy过程中出现问题。解决办法。

    在/usr/local/cuda/lib64文件夹中执行以下命令

    sudo rm libcudnn.so.5 libcudnn.so
    
    sudo ln -sf libcudnn.so.5 libcudnn.so
    
    sudo ln -sf libcudnn.so.5.1.5 libcudnn.so.5 

    再进行测试,可以看到

    >>> import tensorflow as tf
    I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.so locally
    I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.so locally
    I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.so locally
    I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcuda.so.1 locally
    I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcurand.so locally

    说明一切成功。

    说明:转载自

    http://blog.csdn.net/zhaoyu106/article/details/52793183

  • 相关阅读:
    如何设置项目encoding为utf-8
    如何使用Navicat恢复数据库脚本
    如何使用Navicat备份数据库脚本
    表单编辑组件使用指南
    Maven如何打包本地依赖包
    怎么替换jar包里面的文件?
    如何开始创建第一个基于Spring MVC的Controller
    怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL
    如何使用Eclipse调试framework
    windows下安装oracle,sqlplus连接启动oracle(oracle 主机字符串输入是什么)
  • 原文地址:https://www.cnblogs.com/zhaopengcheng/p/6012587.html
Copyright © 2020-2023  润新知