Ubuntu 环境 TensorFlow 源码编译安装

基于(Ubuntu 14.04LTS/Ubuntu 16.04LTS/)

一、编译环境

1) 安装 pip

sudo apt-get install python-pip python-dev

2)安装JDK 8

sudo apt-get install openjdk-8-jdk

Ubuntu 14.04 LTS 还需要:

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update && sudo apt-get install oracle-java8-installer

3)安装Bazel

A: 添加 Bazel URI 到 package source

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 -

B:更新&安装

sudo apt-get update

sudo apt-get install bazel

如果已经安装过,更新则:

sudo apt-get upgrade bazel

C:设置环境变量

一次执行

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

直接添加到.bashrc ,打开bashrc 最后一行加入(PATH="$PATH:$HOME/bin")

vim ~/.bashrc

PATH="$PATH:$HOME/bin"

4)安装其他依赖包

sudo apt-get install libcupti-dev

sudo pip install --upgrade protobuf

sudo apt-get install git python-dev python3-dev python-numpy python3-numpy python-six python3-six build-essential python-pip python3-pip python-virtualenv swig python-wheel python3-wheel libcurl3-dev libcupti-dev

apt-get install libglib2.0-dev zlib1g-dev

sudo apt-get install librdmacm-dev

5) 如果要GPU支持需要

https://alliseesolutions.wordpress.com/2016/09/08/install-gpu-tensorflow-from-sources-w-ubuntu-16-04-and-cuda-8-0/

A:安装/更新GPU驱动

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

B:Nvidia Toolkit 8.0 & CudNN

在https://developer.nvidia.com/cuda-toolkit下载对应的版本

sudo sh cuda_8.0.61_375.26_linux.run --override --silent --toolkit

会将cuda安装到: /usr/local/cuda

C:安装CudNN

https://developer.nvidia.com/cudnn 下载对应的版本

解压到 /usr/local/cuda

tar -xzvf cudnn-8.0-linux-x64-v6.0.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*

D: 配置环境变量

~/.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

二、 TensorFlow 源码下载、编译、安装

1)下载tensorflow 源码

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

2)配置TensorFlow

到TensorFlow的根目录执行

./configure

注:出于国情原因下面的一定选N

Do you wish to build TensorFlow with Google Cloud Platform support? [y/N]

Do you wish to build TensorFlow with Amazon S3 File System support? [Y/n]

Do you wish to build TensorFlow with Hadoop File System support? [y/N]

3)编译安装

bazel编译pip 的安装包,然后通过 pip 安装

1) bazel编译

bazel build -c opt //tensorflow/tools/pip_package:build_pip_package

2) 生成安装包

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

2017年 12月 12日 星期二 13:32:22 CST : === Output wheel file is in: /tmp/tensorflow_pkg

3) 安装

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

注意: 2)生成安装包的目录,tensorflow-1.4.0-cp27-cp27mu-linux_x86_64.whl在=== Output 提示的 /tmp/tensorflow_pkg下

安装过程会下载一些依赖的包和库,最后成功提示:

Successfully installed absl-py-0.1.6 backports.weakref-1.0.post1 bleach-1.5.0 enum34-1.1.6 funcsigs-1.0.2 html5lib-0.9999999 markdown-2.6.10 mock-2.0.0 numpy-1.13.3 pbr-3.1.1 tensorf

三、遇到问题

编译时出现如下错误:

ERROR: /home/duanyufei/source/TensorFlow/tensorflow/tensorflow/contrib/gdr/BUILD:52:1: C++ compilation of rule '//tensorflow/contrib/gdr:gdr_memory_manager' failed (Exit 1)

tensorflow/contrib/gdr/gdr_memory_manager.cc:28:27: fatal error: rdma/rdma_cma.h: No such file or directory

compilation terminated.

Target //tensorflow/tools/pip_package:build_pip_package failed to build

Use --verbose_failures to see the command lines of failed build steps.

INFO: Elapsed time: 323.279s, Critical Path: 33.69s

FAILED: Build did NOT complete successfully

解决办法

sudo apt-get install librdmacm-dev

四、测试 hello word!

在终端打开python,运行如下代码

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

结果:

Hello, TensorFlow!

Ubuntu 环境 TensorFlow (最新版1.4) 源码编译、安装的更多相关文章

  1. Postgresql_最新版11.2源码编译安装

    pg官网:https://www.postgresql.org/ yum -y gcc gcc-c++ cmake ncurses-devel perl zlib* .去官网下载源码包. 下载地址:h ...

  2. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  3. Ubuntu 17.04版本下,opencv进行源码编译安装

    本文主要针对Ubuntu 17.04版本下,opencv进行源码编译安装.开发环境主要针对python 对 openCV库的调用. 安装 gcc cmake 编译环境 sudo apt-get ins ...

  4. centos7 源码编译安装TensorFlow CPU 版本

    一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. ...

  5. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...

  6. [笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程

    标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 1080 CUDA:10.0 c ...

  7. centos6.5环境源码编译安装mysql5.6.34

    centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...

  8. Linux环境PostgreSQL源码编译安装

    Linux环境PostgreSQL源码编译安装 Linux版本: Red Hat 6.4 PostgreSQL版本: postgresql-9.3.2.tar.gz 数据存放目录: /var/post ...

  9. 源码编译安装lnmp环境

    一.源码编译安装步骤 首先说明源码安装的好处   速度快,可自定义路径 主要有三步:1.配置 进入源码安装包  ./configure --prefix=/uer/local/nginx  可指定参数 ...

随机推荐

  1. 浅谈javascript的函数节流

    什么是函数节流? 介绍前,先说下背景.在前端开发中,有时会为页面绑定resize事件,或者为一个页面元素绑定拖拽事件(其核心就是绑定mousemove),这种事件有一个特点,就是用户不必特地捣乱,他在 ...

  2. Unity 游戏框架搭建 (十九) 简易对象池

    在Unity中我们经常会用到对象池,使用对象池无非就是解决两个问题: 一是减少new时候寻址造成的消耗,该消耗的原因是内存碎片. 二是减少Object.Instantiate时内部进行序列化和反序列化 ...

  3. JAVAWEB开发环境搭建,附JDK开发环境一键配置批处理bat

    JDK配置: CLASSPATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar   JAVA_HOME: C:\Program Files\J ...

  4. 一起写框架-Ioc内核容器的实现-基础功能-ComponentScan支持多包扫描(六)

    实现功能 1.我们看到@ComponentScan注解一个开始定义就是需要支持,扫描多个包,将多个包的类名获取到.现在就实现这个功能. 实现思路 根据传入的字符串数组,获得多个包下的类全限制名. 实现 ...

  5. 北京地铁换乘算法(二维坐标系,图的深度搜索)开源下载Android源码、性能最优解

    距离2012年11月2日下午2:05:31 已经过去158751270这么多秒了,不小心暴露了我的当前时间. java代码贴出来. private static long gettimelong() ...

  6. Centos下配置tomcat7的https证书

    近期搞定了HTTPS配置,特此记录. 1.把下载的文件拷贝到cert文件夹,然后放在tomcat根目录下(与conf同一级目录).2.配置conf下的server.xml,修改下面3个节点,如下: & ...

  7. bzoj1003

    考虑dp[i]表示前i天的最小总成本. 枚举上一次在第j天之后对路线进行了修改,那么就由dp[j]转移至dp[i],转移的代价是把第[j+1,i]天所有被占用的点全删掉后的最短路(不连通当然就是INF ...

  8. phpcms实现全站搜索

    如果制作的静态页面中有搜索功能,那么使用phpcms进行替换怎么替换呢?会不会越到很多的麻烦呢?接下来进行phpcms替换静态页面中的搜索功能. 第一步:搜索页面的form表单提交书写,form表单怎 ...

  9. CSS样式命名整理(非原创)

    非原创,具体出自哪里忘了,如果侵害您的利益,请联系我. CSS样式命名整理 页面结构 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体 ...

  10. Listview嵌套Listview

    今天做项目,打算模仿淘宝的订单管理,需要Listview嵌套Listview,都是两个控件都是沿着一个方向滑动的,嵌套在一起不幸福,以下是解决方案,打个笔记,以后估计还得用: 其中onMeasure函 ...