2018-05-22-源码安装TensorFlow

使用virtualenv安装了tensorflow,但运行的时候发现CPU可以支持AVX2和FMV,但需要从源码重新构建。好吧,那就开始吧~

参考:

从源代码安装 TensorFlow

1. 环境

系统:macOS High Sierra 10.13.4

python:2.7.15(系统自带)

2. 准备

2.1 避免冲突

我在前面已经用virtualenv创建了tensorflow的环境,此前创建的目录名称“tensorflow”,怕产生冲突,将虚拟环境的目录名称修改为“vir-tensorflow”

2.2 克隆代码库

打开终端,输入以下命令:

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

此时,会在用户目录下创建一个“tensorflow”的目录(幸亏刚刚该虚拟环境目录的命名了~~)

下载的时间比较长,请耐心等待~~快受不了公司的网速了!!!!!

2.3 针对macOS准备环境

2.3.1 安装bazel

Installing Bazel on macOS

使用brew安装:

brew install bazel        #安装

bazel version              #查看是否安装成功

brew upgrade bazel   #升级版本

2.3.2 安装python依赖项

必须安装软件包:

six

numpy:数值处理

wheel:管理wheel格式的python压缩包

使用pip来安装:

$ sudo pip install six numpy wheel

当前版本:

six——1.11.0,numpy——1.14.3,wheel——0.31.0

2.4 安装配置

2.4.1 软件包配置

克隆源码库到本地后,在根目录中包含有一个名为“configure”的bash脚本。必须先运行该脚本,然后才能创建pip软件包并安装TensorFlow。

$ cd /xxxx/tensorflow

$ ./configure

进入tensorflow源码树的根目录,执行configure的bash脚本。

此时configure脚本会向您提出若干问题。我选择默认值,针对本机CPU类型优化所生成的代码,但是这样构建出来的TensorFlow是无法在其他类型的CPU上运行的。

以下是我运行configure脚本时的问题选择:

Extracting Bazel installation...

You have bazel 0.13.0-homebrew installed.

Please specify the location of python. [Default is /usr/local/opt/python@2/bin/python2.7]: /usr/bin/python2.7

Found possible Python library paths:

  /Library/Python/2.7/site-packages

Please input the desired Python library path to use.  Default is [/Library/Python/2.7/site-packages]

/Library/Python/2.7/site-packages

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

No Google Cloud Platform support will be enabled for TensorFlow.

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

No Hadoop File System support will be enabled for TensorFlow.

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

No Amazon S3 File System support will be enabled for TensorFlow.

Do you wish to build TensorFlow with Apache Kafka Platform support? [Y/n]: N

No Apache Kafka Platform support will be enabled for TensorFlow.

Do you wish to build TensorFlow with XLA JIT support? [y/N]: N

No XLA JIT support will be enabled for TensorFlow.

Do you wish to build TensorFlow with GDR support? [y/N]: N

No GDR support will be enabled for TensorFlow.

Do you wish to build TensorFlow with VERBS support? [y/N]: N

No VERBS support will be enabled for TensorFlow.

Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: N

No OpenCL SYCL support will be enabled for TensorFlow.

Do you wish to build TensorFlow with CUDA support? [y/N]: N

No CUDA support will be enabled for TensorFlow.

Do you wish to download a fresh release of clang? (Experimental) [y/N]: N

Clang will not be downloaded.

Do you wish to build TensorFlow with MPI support? [y/N]: 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]: -march=native

Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: N

Not configuring the WORKSPACE for Android builds.

Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See tools/bazel.rc for more details.

--config=mkl # Build with MKL support.

--config=monolithic # Config for mostly static monolithic build.

Configuration finished

2.4.2 软件包构建

配置后,进行构建:

$ bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

报错了!!!!!

Starting local Bazel server and connecting to it...

................

WARNING: /private/var/tmp/_bazel_yujianwen/7cea4d7c61741771d65fc25d431ce59d/external/protobuf_archive/WORKSPACE:1: Workspace name in /private/var/tmp/_bazel_yujianwen/7cea4d7c61741771d65fc25d431ce59d/external/protobuf_archive/WORKSPACE (@com_google_protobuf) does not match the name given in the repository's definition (@protobuf_archive); this will cause a build error in future versions

ERROR: /private/var/tmp/_bazel_yujianwen/7cea4d7c61741771d65fc25d431ce59d/external/local_config_cc/BUILD:50:5: in apple_cc_toolchain rule @local_config_cc//:cc-compiler-armeabi-v7a: Xcode version must be specified to use an Apple CROSSTOOL. If your Xcode version has changed recently, try: "bazel clean --expunge" to re-run Xcode configuration

ERROR: While resolving toolchains for target //tensorflow/tools/pip_package:simple_console: Analysis of target '@local_config_cc//:cc-compiler-armeabi-v7a' failed; build aborted

ERROR: Analysis of target '//tensorflow/tools/pip_package:build_pip_package' failed; build aborted: Analysis of target '@local_config_cc//:cc-compiler-armeabi-v7a' failed; build aborted

INFO: Elapsed time: 17.909s

INFO: 0 processes.

FAILED: Build did NOT complete successfully (64 packages loaded)

    currently loading: tensorflow/python ... (3 packages)

Error: Xcode version must be specified to use an Apple CROSSTOOL

处理:

应该是Xcode使用版本与系统版本不一致,需要修改Xcode版本

本机Xocde版本:9.3.1

$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

$ bazel clean --expunge

执行以上指令后,重新构建,没有Error,可以往下执行~~~

过了一个中午,还是构建过程还是出现error,一共20个。停止了~~~

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

推荐阅读更多精彩内容