重新在台式机上学习深度学习,Ubuntu18.04 + Tensorflow-gpu + cuda8.0 + cuDNN6.0

一、准备工作(有一些不是必需的):

1.安装pip:

打开终端输入命令:sudo apt-get install python-pip python-dev

2.安装vim:

sudo apt-get install vim-gtk


在命令行下,输入命令:sudo vim /etc/vim/vimrc    必须加上sudo,否则你是没有权限编辑vimrc的。



在这个文件中,会有这么一句: syntax on   意思是语法高亮,如果您的被注释掉了,请“让它出来”。



请在您的VIM的最后一行,输入他们,可以让您的VIM变得更漂亮、舒服。

set nu                           // 在左侧行号

set tabstop                  //tab 长度设置为 4

set nobackup               //覆盖文件时不备份

set cursorline               //突出显示当前行

set ruler                       //在右下角显示光标位置的状态行

set autoindent             //自动缩进
然后 ESC :wq保存即可




二、ubuntu安装GPU显卡驱动

打开终端:sudo apt-get update

选择系统设置→软件更新→附加驱动→选择nvidia最新驱动→应用更改.(如果没有,去官网找对应的驱动安装即可)



验证安装成功:软件连找到 NVIDIA X Sever Settings




驱动安装成功!




三、安装Tensorflow依赖的编译工具bazel

1、安装bazel前,需先安装JDK8

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:webupd8team/java


sudo apt-get update

sudo apt-get install oracle-java8-installer

安装完成后 验证java版本:java -version




2、安装bazel

echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8"
| sudo tee /etc/apt/sources.list.d/bazel.list

sudo apt install curl

安装和更新Bazel

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


sudo apt-get upgrade bazel 





三、安装cuda 8.0(先看本章 4、验证cuda8是否安装成功)


1、cuda 8.0 下载地址:https://developer.nvidia.com/cuda-80-ga2-download-archive




验证主机是否满足cuda8.0安装的要求


lspci | grep -i nvidia

uname -m && /etc/*release
gcc --version
uname -r
sudoapt-get install linux-headers-$(uname -r)


sudo sh cuda_8.0.27_linux.run

2、添加环境变量


cd ~



vim   .bashrc


末尾添加

export PATH=/usr/local/cuda-8.0/bin:$PATH


export
LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/   
CUPTI/lib64:$LD_LIBRARY_PATH

然后 source ~/.bashrc

3、nvcc -V

如果没有nvcc则安装 sudo apt install nvidia-cuda-toolkit

nvcc -V

nvidia-smi






4、验证cuda8是否安装成功:

进入NVIDIA_CUDA-8.0_Samples目录,执行:$ make

出现错误!!!




原因:由于cuda8.0不支持gcc 5.0以上的编译器,因此需要降级,把编译器版本降到4.8

5、g++/gcc降级到4.8(建议降级到4.9,我这里到4.9失败所以用4.8)

sudo apt-get -y update




sudo apt-get install -y gcc-4.9

sudo apt-get install -y g++-4.9

cd /usr/bin

sudo rm gcc

sudo ln -s gcc-4.8 gcc

sudo rm g++

sudo ln -s g++-4.8 g++



6、CUDA8.0安装成功测试


进入NVIDIA_CUDA-8.0_Samples目录,执行:$ sudo make


进入1_Utilities目录,执行:$ ./deviceQuery/deviceQuery ,结果如下:





执行:$ nvcc -V,结果如下:




验证CUDA8.0安装成功,demo也跑通了。




四、安装cuDNN6.0(因为5.1在编译步骤不通过)

下载地址6.0: https://developer.nvidia.com/rdp/cudnn-archive

打开文件所在文件夹,当前位置打开终端

tar -xvzf cudnn-8.0-linux-x64-v6.0.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda-8.0/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64


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

配置环境变量;

sudo gedit ~/.bashrc

添加:

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


export PATH="$CUDA_HOME/bin:$PATH"

再执行:source ~/.bashrc

配置完成!




五、Tensorflow(GPU)安装


方法一:pip 二进制文件安装


pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-
1.2.0-cp27-none-linux_x86_64.whl
方法二:原文件安装

1、安装TF依赖工具包

sudo apt-get install python-numpy swigpython-dev python-wheel

2、下载最新源码

sudo apt-get install git

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

3、运行configure脚本配置环境信息

cd tensorflow

./configure

并不是默认选择Y就可以了,巨大部分是选择N,具体他有些选项不会出现,需要另外查询是不是需要选择y/n,计提问题具体分析,下面是我的选项。
twinkle@twinkle:~/tensorflow$ ./configure WARNING: Running Bazel server needs
to be killed, because the startup options are different. You have bazel 0.14.1
installed. Please specify the location of python. [Default is /usr/bin/python]:
Found possible Python library paths: /usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages Please input the desired Python library path
to use. Default is [/usr/local/lib/python2.7/dist-packages] /usr/bin/python Do
you wish to build TensorFlow with jemalloc as malloc support? [Y/n]: n No
jemalloc as malloc support will be enabled for TensorFlow. Do you wish to build
TensorFlow with Google Cloud Platform support? [Y/n]: n No Google Cloud
Platform support will be enabled for TensorFlow. Do you wish to build
TensorFlow with Hadoop File System support? [Y/n]: n No Hadoop File System
support will be enabled for TensorFlow. Do you wish to build TensorFlow with
Amazon S3 File System support? [Y/n]: n No Amazon S3 File System support will
be enabled for TensorFlow. Do you wish to build TensorFlow with Apache Kafka
Platform support? [Y/n]: n No Apache Kafka Platform support will be enabled for
TensorFlow. Do you wish to build TensorFlow with XLA JIT support? [y/N]: n No
XLA JIT support will be enabled for TensorFlow. Do you wish to build TensorFlow
with GDR support? [y/N]: n No GDR support will be enabled for TensorFlow. Do
you wish to build TensorFlow with VERBS support? [y/N]: n No VERBS support will
be enabled for TensorFlow. Do you wish to build TensorFlow with OpenCL SYCL
support? [y/N]: n No OpenCL SYCL support will be enabled for TensorFlow. Do you
wish to build TensorFlow with CUDA support? [y/N]: y CUDA support will be
enabled for TensorFlow. Please specify the CUDA SDK version you want to use.
[Leave empty to default to CUDA 9.0]: 8 Please specify the location where CUDA
8.0 toolkit is installed. Refer to README.md for more details. [Default is
/usr/local/cuda]: Please specify the cuDNN version you want to use. [Leave
empty to default to cuDNN 7.0]: 6 Please specify the location where cuDNN 6
library is installed. Refer to README.md for more details. [Default is
/usr/local/cuda]: Do you wish to build TensorFlow with TensorRT support? [y/N]:
n No TensorRT support will be enabled for TensorFlow. Please specify the NCCL
version you want to use. [Leave empty to default to NCCL 1.3]: Please specify a
list of comma-separated Cuda compute capabilities you want to build with. You
can find the compute capability of your device at:
https://developer.nvidia.com/cuda-gpus. Please note that each additional
compute capability significantly increases your build time and binary size.
[Default is: 6.1] Do you want to use clang as CUDA compiler? [y/N]: n nvcc will
be used as CUDA compiler. Please specify which gcc should be used by nvcc as
the host compiler. [Default is /usr/bin/gcc]: Do you wish to build TensorFlow
with MPI support? [y/N]: n No MPI support will be enabled for TensorFlow.
Please specify optimization flags to use during compilation when bazel option
"--config=opt" is specified [Default is -march=native]: Would you like to
interactively configure ./WORKSPACE for Android builds? [y/N]: n Not
configuring the WORKSPACE for Android builds. Preconfigured Bazel build
configs. You can use any of the below by adding "--config=<>" to your build
command. See tools/bazel.rc for more details. --config=mkl # Build with MKL
support. --config=monolithic # Config for mostly static monolithic build.
Configuration finished
4、通过bazel来编译pip的安装包,然后通过pip安装
bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma
--copt=-mfpmath=both --copt=-msse4.2 --config=cuda -k
//tensorflow/tools/pip_package:build_pip_package
如果出现错误:
Cuda Configuration Error: Cannot find libdevice.10.bc under
/usr/local/cuda-8.0 WARNING: Target pattern parsing failed. ERROR: no such
package '@local_config_cuda//crosstool': Traceback (most recent call last):
解决方案:
将/usr/local/cuda-8.0/nvvm/libdevice/libdevice.compute_50.10.bc改为libdevice.10.bc,并复制一份至/usr/local/cuda-8.0/

再执行上面的命令,上面的过程比较耗时,结束后继续执行。

bazel-bin/tensorflow/tools/pip_package/build_pip_package/tmp/tensorflow_pkg


sudo pip
install/tmp/tensorflow_pkg/tensorflow-1.2.0rc2-cp27-cp27mu-linux_x86_64.whl

第一个命令中 --config=cuda参数为对GPU的支持,如何不需要支持GPU,就不需要这个参数。


 5\测试:

import tensorflow as tf

a=tf.constant([1.0,2.0,3.0],shape=[3],name='a')

b=tf.constant([1.0,2.0,3.0],shape=[3],name='b')

c=a+b

sess=tf.Session(config=tf.ConfigProto(log_device_placement=True))

print sess.run(c)






友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信