Tensorflow-gpu版本安装
最近给公司部署一套深度学习相关的环境,以tensorflow为框架。简单整理下整个的部署过程。
tensorflow官方网站:https://www.tensorflow.org
服务器选型
我们的tensorflow是基于gpu的版本,使用的是tensorflow-gpu 1.12.0版本。既然是gpu的版本,那么首先得需要一个带有gpu的服务器。我们这里直接使用阿里云服务器,型号如下:

NVIDIA GPU驱动安装
那么既然有了带gpu的服务器,gpu驱动就必然是一个绕不开的话题。通过上面的选型我们可以知道,阿里云的购买页面明确给出了gpu的型号,我们需要去到gpu官方网站,根据型号选择驱动。
通过如下页面查找相应的GPU驱动:
https://www.nvidia.com/Download/index.aspx?lang=en-us

下载的驱动名称示例:NVIDIA-Linux-x86_64-410.104.run
安装的话相对比较简单:
# 通过shell运行,然后按照提示操作即可
sh NVIDIA-Linux-x86_64-410.104.run
验证是否正常安装了:
[root@ctnr ~]# nvidia-smi
Tue Mar 26 11:31:34 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.104 Driver Version: 410.104 CUDA Version: 10.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla P4 Off | 00000000:00:08.0 Off | 0 |
| N/A 28C P8 7W / 75W | 0MiB / 7611MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
查看当前服务器显卡的个数:
yum install -y lspci
[root@ctnr ~]# lspci|grep -i nvidia
00:08.0 3D controller: NVIDIA Corporation GP104GL [Tesla P4] (rev a1)
其中00:08.0是显卡的代号,通过如下方式可以查看详细的显卡信息:
[root@ctnr ~]# lspci -v -s 00:08.0
00:08.0 3D controller: NVIDIA Corporation GP104GL [Tesla P4] (rev a1)
Subsystem: NVIDIA Corporation Device 11d8
Physical Slot: 8
Flags: bus master, fast devsel, latency 0, IRQ 39
Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
Memory at f2000000 (64-bit, prefetchable) [size=32M]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [c8] Vendor Specific Information: Len=08 <?>
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_drm, nvidia
这里是tensorflow官方给出的gpu支持:https://www.tensorflow.org/install/gpu
cuda和cudnn的安装
tensorflow-gpu要想正常运行,除了必要的gpu驱动,还依赖cuda和cudnn两个sdk。
下面是tensorflow-gpu版本依赖的cuda和cudnn的版本:
https://www.tensorflow.org/install/source

cuda是深度学习的sdk
cudnn是神经网络的sdk
cuda安装
cuda的下载地址:
https://developer.nvidia.com/cuda-90-download-archive

需要下载cuda包,以及所有的补丁文件,我这里因为是centos,所以下载的全是rpm包。直接通过yum安装即可:
yum localinstall -y cuda-repo-rhel7-9-0-*.rpm
需要说明的是,这些包都只是本地仓库包,也就是说,安装了这些包,并不会真正安装cuda,而只是把cuda的包在本地生成了一个本地yum源。这个时候,就可以直接使用yum install -y cuda来安装cuda了。
验证安装:
[root@ctnr ~]# cat /usr/local/cuda/version.txt
CUDA Version 9.0.176
cudnn的安装
cudnn的下载地址:
https://developer.nvidia.com/rdp/cudnn-download

需要说明的是,要下载cudnn,需要先登录,这就要求我们得要有nvidia的帐号。
这两个包也是rpm包,直接安装即可。
安装完成后的验证方式如下:
[root@ctnr ~]# cat /usr/include/cudnn_v7.h |grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#include "driver_types.h"
上面的三行,分别代表主版本、次版本以及修定版本
在上图中,其实可以看到,除了定制的系统版本,cudnn也提供通用版本,即cnDNN Library for Linux,下载下来是一个tar.gz的文件,我们可以通过如下方式安装即可:
tar xf cudnn-9.0-linux-x64-v7.5.0.56.tgz
cp cuda/lib/64/libcudnn.so* /usr/local/cuda/lib64/
cp cuda/lib64/libcudnn_static.a /usr/local/cuda/lib64/
cp cuda/include/cudnn.h /usr/include/
另外,还需要说明的是,我尝试在windows上直接下载通用版本的时候,下载的总是一个solitairetheme8为后缀的一个卡牌游戏。在linux上通过wget的方式下载,则是正常的压缩包。
tensorflow-gpu安装
以上配置都做好了以后,tensorflow-gpu的安装相对倒是比较简单。官方基于Bazel使用源码编译的安装方式可以直接参考这里:https://www.tensorflow.org/install/source#build_the_package
我这里简化部署,直接使用pip安装:
yum install -y python36 python36-pip
pip3 install -U pip six numpy wheel mock
pip3 install -U keras_applications==1.0.5 --no-deps
pip3 install -U keras_preprocessing==1.0.3 --no-deps
pip3 install tensorflow-gpu-1.12.0
至此,tensorflow安装完成。
Tensorflow-gpu版本安装的更多相关文章
- tensorflow 一些好的blog链接和tensorflow gpu版本安装
pading :SAME,VALID 区别 http://blog.csdn.net/mao_xiao_feng/article/details/53444333 tensorflow实现的各种算法 ...
- tensorflow GPU版本安装及配置
经检测速度大幅度上升,不枉费我折腾了这么久,最坑的就是网上教程.书都没有写将cuda的bin加入全局变量,还是根据报错信息推出来的. 1.cuda9.0下载安装 https://developer.n ...
- Python3.7+Pycharm+cuda10.0+tensorflow GPU版本 安装
处理器:I5-7500 显卡 :GTX1050Ti 系统 :Win10 1. 首先搭建Python环境. 官网https://www.python.org/downloads/下载Python ...
- 【转】Ubuntu 16.04安装配置TensorFlow GPU版本
之前摸爬滚打总是各种坑,今天参考这篇文章终于解决了,甚是鸡冻\(≧▽≦)/,电脑不知道怎么的,安装不了16.04,就安装15.10再升级到16.04 requirements: Ubuntu 16.0 ...
- win10系统下安装TensorFlow GPU版本
首先要说,官网上的指南是最好的指南. https://www.tensorflow.org/install/install_windows 需要FQ看. 想要安装gpu版本的TensorFlow.我们 ...
- 通过Anaconda在Ubuntu16.04上安装 TensorFlow(GPU版本)
一. 安装环境 Ubuntu16.04.3 LST GPU: GeForce GTX1070 Python: 3.5 CUDA Toolkit 8.0 GA1 (Sept 2016) cuDNN v6 ...
- Win10上安装Keras 和 TensorFlow(GPU版本)
一. 安装环境 Windows 10 64bit 家庭版 GPU: GeForce GTX1070 Python: 3.5 CUDA: CUDA Toolkit 8.0 GA1 (Sept 2016 ...
- 说说Windows7 64bits下安装TensorFlow GPU版本会遇到的一些坑
不多说,直接上干货! 再写博文,回顾在Windows7上安装TensorFlow-GPU的一路坑 Windows7上安装TensorFlow的GPU版本后记 欢迎大家,加入我的微信公众号:大数据躺过的 ...
- Windows7 64bits下安装TensorFlow GPU版本(图文详解)
不多说,直接上干货! Installing TensorFlow on Windows的官网 https://www.tensorflow.org/install/install_windows 首先 ...
- Ubuntu 16.04 + CUDA 8.0 + cuDNN v5.1 + TensorFlow(GPU support)安装配置详解
随着图像识别和深度学习领域的迅猛发展,GPU时代即将来临.由于GPU处理深度学习算法的高效性,使得配置一台搭载有GPU的服务器变得尤为必要. 本文主要介绍在Ubuntu 16.04环境下如何配置Ten ...
随机推荐
- 结构化分析(SA)
1.什么叫模型?我觉得它的关键字:抽象 重要特征 降低复杂度. 2.软件设计的方法 分类:面向功能~,面向对象的设计. 面向数据流的方法是在结构化分析中提到的. 哦~ 3.面向数据流的结构化分析 特点 ...
- iOS开发设计多个target
创建target有两种方式, 1>.是通过新建target可以通过File-->New-->Target,然后选择其中一个模板来创建,app类型的target进行创建 2>.另 ...
- Java Heap Dump On OutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError Batch "C:\Program Files\Java\jdk1.8.0_162\bin\java.exe" -X ...
- Java 编码规范 StandardCharsets.UTF_8 三个方法 toString() name() displayName(),到底用哪个方法更合适?
想用StandardCharsets.UTF_8 返回"UTF-8"这个字符,测试一下,三个方法toString() name() displayName(),均能返回" ...
- js私有作用域(function(){})(); 模仿块级作用域
摘自:http://outofmemory.cn/wr/?u=http%3A%2F%2Fwww.phpvar.com%2Farchives%2F3033.html js没有块级作用域,简单的例子: f ...
- 使用highlightjs自定义markdown代码高亮
目录 概述 实现方法 概述 最近使用markdown来写一些技术文档和博客,觉得真心不错,这才是程序员该用的编辑器嘛~~ Mou在mac上的 markdown 编辑器,很简约,可惜Mou好像只支持标准 ...
- python----内置函数2与匿名函数
1.迭代器生成器相关 range:创建一个可迭代对象,一般与for混合使用,可设置步长. for i in range(0,10,2): #步长2范围为0-10不包括10 print(i) # 0 2 ...
- HTML-封装原生Ajax
function ajax(data){ //data{data:"",dataType:"xml/json",type:"get/post" ...
- BZOJ3207花神的嘲讽计划Ⅰ——主席树+hash
题目描述 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的![hqz:大笨J]” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天DJ在给吾等众蒟 ...
- PythonProject(1)vim的Hustoj插件
打算写一个vim的插件,或者emacs的插件.可以在编辑器里打比赛,看rank,交代码.总之相当于一个桌面版的hustoj 这是上学期就有的一个脑洞产物,昨天学了Python的爬虫,发现这个东西很有实 ...