在Linux服务器上配置tensorflow-gpu版(最详细教程)

       由于基于tensorflow的神经网络在CPU上运行速度太慢,在GPU上运行速度会快很多,但是在linux系统上tensorflow-GPU运行配置比较麻烦,有很多坑需要踩,网上的很多教程和自己使用的环境不匹配,所以针对这个情况自己做一个总结,总结一下tensorflow-gpu版本在linux服务器上的配置过程,及其中遇到的问题,给大家提供参考和交流。

环境:linux+Anaconda3+python3.5+CUDA9.0+cudnn7.0

安装流程:

一. Anaconda下载及安装

二. 建立tensorflow gpu版本环境(包括配置清华镜像)

三. CUDA下载及安装

四. cudnn下载及配置

五. pycharm下载及安装

一. Anaconda下载及安装
官网地址:https://www.anaconda.com/distribution/#download-section

清华镜像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第1张图片

下载linux系统的Python3.7 version。

输入命令bash bash Anaconda3-2019.03-Linux-x86_64.sh安装Anaconda。

显示

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第2张图片

在标红框处输入yes和安装目标路径,

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第3张图片

继续选择yes,

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第4张图片

等待安装完成。安装完成后,输入conda --version如果显示版本信息则安装成功。

如果如下图所示无法显示

输入source ~/.bashrc,

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第5张图片

Anaconda安装完成。

二. 建立tensorflow gpu版本环境

建立tensorflow环境,基于python3.5。

输入conda create -n (环境名称) python=3.5(python必须3.5或3.6,3.6以上版本tensorflow可能会报错),

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第6张图片

然后输入y,

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第7张图片

等待完成。

conda env remove -n (环境名称) (删除环境)

conda env list (查看所有环境)

输入source activate tensorflow35(我的环境名称为tensorflow35),进入创建的tensorflow环境。

在安装之前配置清华镜像,下载速度会很快;如果不想配置清华镜像,则忽略下面这部分,唯一的区别就是下载速度比较慢。

在~/.config/.pip目录下新建(或修改)pip.conf文件(可以先在windos下新建一个txt文档,然后修改文件名和后缀名;再新建一个.pip文件夹,将文件放入)

然后在文件中输入如下信息:

[global] 
index-url =  https://pypi.tuna.tsinghua.edu.cn/simple/

几个常用的国内源,大家可以自己选择,替换文件中的网址就可以:

阿里云 http://mirrors.aliyun.com/pypi/simple/ 
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 
豆瓣(douban) http://pypi.douban.com/simple/ 
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

继续安装tensorflow,先安装tensorflow-cpu版,输入pip install tensorflow,

(不需要安装cpu版之后再安装gpu版,如果想直接安装tensorflow-gpu版,输入pip install tensorflow-gpu==1.10)

(tensorflow1.11及以上版本会因cudnn7.0报错,下面安装cudnn时具体说)

等待安装完成,输入pip list可以查看当前环境下的安装包。

输入python回车,输入import tensorflow,如果没有报错说明tensorflow-cpu版配置成功。

至此,tensorflow-cpu版配置成功,接下来继续配置tensorflow-gpu版。

三. CUDA下载及安装

CUDA和cudnn版本需要配对,CUDA也需要根据自己系统的配置

首先确认安装环境:

1.确认linux内核版本

输入cat /etc/redhat-release,查看linux内核。

2.确认gpu

输入 lspci | grep -i nvidia,查看gpu版本,

gpu要求算力3.0以上,大家可以对照型号,在下面链接检查自己的电脑是否支持

https://developer.nvidia.com/cuda-gpus

3.确认是否安装gcc

输入gcc --version。

4.确认nouveau已禁用

输入lsmod | grep nouveau,如果没有输出则说明已禁用。

正确安装NVIDIA驱动就会禁止。

确认过程如下图所示:

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第8张图片

接下来安装NVIDIA驱动:

首先去官网 http://www.nvidia.com/Download/index.aspx?lang=en-us 查看适合自己显卡的驱动并下载:驱动文件后缀名应当是以.run结尾的。

输入以下命令下载并安装nvidia驱动:

输入nvidia-smi,有如下显示则说明驱动安装成功:

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第9张图片

然后确认CUDA与cudnn配对版本,并下载适合自己系统的版本

https://blog.csdn.net/omodao1/article/details/83241074

推荐下载CUDA9.0和cudnn7.0.

下载CUDA:https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第10张图片

等待下载完成。

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第11张图片

输入sh cuda_9.0.176_384.81_linux-run进行安装,

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第12张图片

按如下输入:

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第13张图片

安装驱动时一定要选 “n”。

如果安装时出现空间不足的情况:

则在安装前输入三行:

如果还不行,把安装文件改成.run,再执行上述操作:

等待安装完成。安装结束后输入(地址是自己的安装地址):

export PATH="/mnt/jackfrost//CUDA/cuda-9.0/bin:$PATH" 
export LD_LIBRARY_PATH="/mnt/jackfrost/CUDA/cuda-9.0/lib64:$LD_LIBRARY_PATH" 

export CUDA_HOME=/mnt/jackfrost/CUDA/cuda9.0

source ~/.bashrc

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第14张图片

然后输入nvcc -V,如果显示CUDA版本信息代表正常。

测试sample例子:

#编译并测试设备 deviceQuery:
cd ~/cuda-9.0/samples/1_Utilities/deviceQuery
./deviceQuery

#编译并测试带宽 bandwidthTest:
cd ../bandwidthTest
./bandwidthTest

如果这两个测试的最后结果都是Result = PASS,说明CUDA安装成功。

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第15张图片

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第16张图片

四. cudnn下载及配置

下载地址:https://developer.nvidia.com/rdp/cudnn-archive   (需要注册才能下载)

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第17张图片

输入tar -zxvf cudnn-9.0-linux-x64-v7.tgz解压,

然后将库(.lib)和头文件(.h)copy到cuda目录(一定是你自己安装的目录如/mnt/jackfrost/CUDA/cuda-9.0)

cp /mnt/jackfrost/cudnn/cuda/include/cudnn.h /mnt/jackfrost/CUDA/cuda-9.0/include
cp /mnt/jackfrost/cudnn/cuda/lib64/libcudnn* /mnt/jackfrost/CUDA/cuda-9.0/lib64

然后修改文件访问权限:

chmod a+r /mnt/jackfrost/CUDA/cuda-9.0/include/cudnn.h /mnt/jackfrost/CUDA/cuda-9.0/lib64/libcudnn*

到这里tensorflow配置完成。

测试tensorflow,输入source activate tensorflow35,

如代码所示:

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第18张图片

如果出现如下错误:

[cudnn报错解决]Loaded runtime CuDNN library:7.0.5 but source was complied with:7.2.1

五. pycharm下载及安装

pycharm下载:https://www.jetbrains.com/pycharm/download/

输入tar -zxvf pycharm-community-2018.3.5.tar.gz解压:

然后在bin文件夹下输入./pycharm启动pycharm,

配置运行环境Files->Settings->Project Interpreter->add:

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第19张图片

add添加环境,如下图所示,选到自己建立的tensorflow环境:

在Linux服务器上配置tensorflow-gpu版(最详细教程)_第20张图片

pycharm+Anaconda+tensorflow配置完成。

你可能感兴趣的:(tensorflow)