TensorFlow平台的搭建

一、TensorFlow介绍
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
二、Tensorflow的安装机器的准备
一. cuda准备:cuda_8.0.61_375.26_linux.run
下载网址:https://developer.nvidia.com/cuda-downloads
二、cudnn准备:cudnn-8.0-linux-x64-v6.0.tgz
下载网址:https://developer.nvidia.com/cudnn
三、安装系统:Ubuntu16.04 LTS
下载网址:https://www.ubuntu.com/downloads/desktop
四、Python版本:Python-2.7
下载网址:https://www.python.org/downloads/release/python-2713/
五、该准备也是最重要的准备,如果你的电脑显卡为AMD的显卡,此处我推荐你安装CPU版,如果你的电脑为Nvidia的显卡,此处我推荐你安装GPU版,AMD的显卡最好不要安装GPU版的,而对于Nvidia的显卡,两个版本均可。
三、Tensorflow的安装方式
关于TensorFlow的安装方式此处介绍三种安装方式,分别为:pip安装、virtualenv安装、源码安装。
TensorFlow的版本:TensorFlow分为CPU版和GPU版
一、通过pip方式安装
a)、首先安装python环境的依赖。
sudo apt-get install python-py python-dev python-pip numpy
b)、直接通过pip安装,首先将安装过的pip更新下。
pip install --upgrade pip ------更新pip
pip install tensorflow ------ TensorFlow CPU版
pip install tensorflow-gpu ------TensorFlow GPU版
c)、如果通过上述方法安装失败,此处提供另外一种pip的安装方式
仅CPU版:

* sudo pip install --upgrade \
<https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.3.0.cp27-none-linux_x64.whl>

然后再将tensorflow更新

* pip install -- upgrade tensorflow

GPU支持:

* sudo pip install –upgrade \ https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-1.3.0-cp27-none-linux_x86_64.whl

至此pip版的安装成功:
测试是否安装成功:

 /usr/bin/env Python
 coding:utf-8
import tensorflow as tf
hello = tf.constant(‘Hello,TensorFlow!’)
sess = tf.Session()
print(sess.run(hello))
如果输出结果为:Hello,TensorFlow!表示安装成功

二、通过virtualenv安装
a)、首先需要安装虚拟环境,虚拟环境的好处就是虚拟环境中的变量不会“污染“主系统环境中的变量。

sudo apt-get install python-py python-dev python-pip python-vertualenv numpy
    b)、创建并启动虚拟环境

virtualenv (创建环境的名字。例如:virtualenv test 表示创建一个名为test的虚拟环境)
cd (创建的环境中)
source ./bin/activate
c)、安装tensorflow的过程见pip安装的过程。
d)、退出虚拟环境
输入deactivate 例如:(test)$: deactivate
e)、验证是否安装成功的方式见pip的验证方式。
三、通过源码安装tensorflow,此处我要说明下,tensorflow通过源码的方式安装的tensorflow的过程中会出现很多的错误需要调试,希望电脑前的你有足够的耐心调试完毕。(在此编写此篇文章的人提你们向上天祈祷,愿你们有耐心解决问题。)
a)、首先先安装cuda,在安装cuda的过程中需要先关闭桌面,进入tty模式,按ctrl+alt+F1进入tty模式。找到并进入下载的cuda文件夹,然后在终端输入:

service lightdm stop
        sudo sh cuda_8.0.61_375.26_linux.run
image.png
image.png

在安装好cuda之后配置cuda的环境变量:

        export PATH=”/usr/local/cuda-8.0/bin”
        export LD_LIBRARY_PATH=”/usr/local/cuda-8.0/lib64”
        然后输入nvidia-smi如果能出现下面图片中的内容,表示安装成功。
image.png

此处最好是重启下机器,输入reboot重启
b)、cudnn的安装。

tar zxvf cudnn-8.0-linux-x64-v6.0.tgz
            sudo cp cuda/include/* /usr/local/cuda/include/
            sudo cp cuda/lib64/* /usr/local/cuda/lib64/
            sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
    c)、在~/.bashrc文件中添加环境变量
            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
使设置的环境变量生效:source ~/.bashrc

d)、下载tensorflow源码
此处没有安装git的可以使用
sudo apt-get install git安装GIT

--recurse-submodules参数是必须的,用于获取TensorFlow依赖的protobuf库

e)、bazel的安装。在此说明下bazel有两种安装方式,一种为自动安装,一种为二进制安装。此处我选择自动安装。另给出bazel官网的链接。

<https://docs.bazel.build/versions/master/install-ubuntu.html>

首先需要安装openjdk8:

sudo apt-get install openjdk-8-jdk

其次添加Bazel分发URL作为包源

echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg | sudo apt-key add –
            然后更新并安装bazel
            sudo apt-get update&&sudo apt-get install bazel
            升级bazel:
            sudo apt-get upgrade bazel
            验证bazel是否安装:
        输入bazel会显示如下内容:


![image.png](http://upload-images.jianshu.io/upload_images/7035387-cd269096f6ea7040.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

f)、安装tensorflow

            cd tensorflow
            ./configure

root@fm-GREATWALL-PC:~/tensorflow# ./configure
You have bazel 0.5.3 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

Do you wish to build TensorFlow with jemalloc as malloc support? [Y/n]:
jemalloc as malloc support will be enabled for TensorFlow.

Do you wish to build TensorFlow with Google Cloud Platform support? [y/N]:
No Google Cloud Platform support will be enabled for TensorFlow.

Do you wish to build TensorFlow with Hadoop File System support? [y/N]:
No Hadoop File System support will be enabled for TensorFlow.

Do you wish to build TensorFlow with XLA JIT support? [y/N]:
No XLA JIT support will be enabled for TensorFlow.

Do you wish to build TensorFlow with GDR support? [y/N]:
No GDR support will be enabled for TensorFlow.

Do you wish to build TensorFlow with VERBS support? [y/N]:
No VERBS support will be enabled for TensorFlow.

Do you wish to build TensorFlow with OpenCL support? [y/N]:
No OpenCL 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, e.g. 7.0. [Leave empty to default to CUDA 8.0]:
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 6.0]:
Please specify the location where cuDNN 6 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
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: 3.5,5.2]

Do you want to use clang as CUDA compiler? [y/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]:
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]:
Add "--config=mkl" to your bazel command to build with MKL support.
Please note that MKL on MacOS or windows is still not supported.
If you would like to use a local MKL instead of downloading, please set the environment variable "TF_MKL_ROOT" every time before build.
Configuration finished

当出现Configuration finished时表示配置成功
之后编译tensorflow(编译的过程中可能会出现很多WARNING,可以不用管):
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel编译命令建立了一个名为build_pip_package的脚本。运行如下的命令会在/tmp/tensorflow_pkg路径中生成一个.whl文件:
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
安装pip包
sudo pip install /tmp/tensorflow_pkg/tensorflow-1.3.0rc2-cp27-cp27mu-linux_x86_64.whl
等pip安装完成。验证是否导包完成,使用上文pip的验证方式。
注:如果首次运行没有出现Hello,TensorFlow!的字样,可以选择重新从./configure开始,也可以试着重启下机器然后在验证是否成功.
g)、验证导入成功的效果图:

image.png

test.py文件中的内容:

image.png

参考文档:

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容