在Linux 之redhat/debian两类系统上源码成功安装tensorflow填坑记录
在Linux 之redhat/debian两类系统上源码成功安装tensorflow填坑记录




1. 预备工作:
1.1 各类依赖
无论是redhat系/centos还是debian系/ubuntu,都需要安装各类依赖库


不能使用openjdk,必须使用oracle官方的jdk1.8.0
centos上yum或者rpm安装如下各类以来


yum -y install gcc
yum -y install gcc-c++
yum -y install numpy swig Python-devel python-wheel 
//python-wheel 用的是rpm包,如上命令无法搜到wheel库源
yum -y install zlib zlib-devel
安装pip 用的是rpm包


1.2可用分支选择


bazel用的是master分支。也可以采用0.3.2/0.4.0. 
tensorflow用的是r0.10分支。 r0.11/master分支有很多问题,主要是./configure 有一些包的地址无法下载成功。


2. bazel 安装
源码安装bazel,使用./compile.sh 安装即可。 各类依赖安装完成的情况下,centos和ubuntu上都没有遇到编译问题。


3. tensorflow build及install过程


3.1 r0.11需要修复如下两个问题,解决testonly报错和jpegsrc.v9a.tar.gz下载失败问题。


diff --git a/tensorflow/python/BUILD b/tensorflow/python/BUILD
index 5e2621c..b28260e 100644
--- a/tensorflow/python/BUILD
+++ b/tensorflow/python/BUILD
@@ -1190,7 +1190,7 @@ py_library(
 # Just used by tests.
 tf_cuda_library(
     name = "construction_fails_op",
-    testonly = 1,
+   #testonly = 1,
     srcs = ["client/test_construction_fails_op.cc"],
     deps = [
         "//tensorflow/core",
diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl
index d917562..1ddce3c 100644
--- a/tensorflow/workspace.bzl
+++ b/tensorflow/workspace.bzl
@@ -54,8 +54,9 @@ def tf_workspace(path_prefix = "", tf_repo_name = ""):
 
   native.new_http_archive(
     name = "jpeg_archive",
-    url = "http://www.ijg.org/files/jpegsrc.v9a.tar.gz",
-    sha256 = "3a753ea48d917945dd54a2d97de388aa06ca2eb1066cbfdc6652036349fe05a7",
+    #url = "http://www.ijg.org/files/jpegsrc.v9a.tar.gz",
+     url = "http://www.imagemagick.org/download/delegates/jpegsrc.v9a.tar.gz",
+       sha256 = "3a753ea48d917945dd54a2d97de388aa06ca2eb1066cbfdc6652036349fe05a7",
     build_file = path_prefix + "jpeg.BUILD",




3.2 build过程
网速是影响build的关键因素,build脚本不会长时间等待各类包的下载重新连接过错。
反复尝试几次编译,解决了three.js-r77.tar.gz下载问题。主要是境外网站源的网速不好把握,换个时段会表现较好。


//在ubuntu上,按照默认的job数目200进行build发生了卡死现象。 在centos上docker编译没有遇到此问题。
$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package


//指定job数目为1,问题解决。
$ bazel build -c opt --job 1 //tensorflow/tools/pip_package:build_pip_package


pip打包whl
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
//pip 安装如下
# The name of the .whl file will depend on your platform.
$ sudo pip install /tmp/tensorflow_pkg/tensorflow-0.11.0-py2-none-any.whl


//python tensorflow/models/image/mnist/convolutional.py, 报错如下。 在centos上docker编译没有遇到此问题。
  import tensorflow as tf ImportError: No module named tensorflow
//制定pip安装的绝对路径,让python能够包含进tensorflow库,问题解决。
python -m pip install /path/to/tensorflow-version-platform.whl

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yinghaijushi/article/details/53138859
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

在Linux 之redhat/debian两类系统上源码成功安装tensorflow填坑记录

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭