您的位置:首页 > 其它

tensorflow 源码安装(for MacOS)

2018-02-05 11:00 369 查看
install tensorflow from sources for MacOS

运行tensorflow时经常遇到如下问题:

The TensorFlow library wasn’t compiled to use SSE4.1/SSE4.2 /AVX/AVX2/FMA instructions, but these are available on your machine and could speed up CPU computations

于是好奇就想尝试通过tensorflow源码安装解决这个问题

先说一下我的电脑系统版本:macOS sierra version 10.12.6  不带独显所以我装的是cpu版本的tensorflow

下面就是叙述一下安装步骤和我在安装过程中遇到的一些问题:

1. 先把tensorflow源码下载(clone the tensorflow repository)

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

$ git checkout Branch # where
Branch is the desired branch
2. 配置环境(prepare environment for MacOS)

在安装tensorflow之前,必须先安装bazel和python依赖包(six numpy wheel)

利用homebrew安装bazel,先安装JDK 8和homebrew, 这两个我很早就安装了就不叙述了
利用brew安装bazel如下:
brew install bazel 

bazel version
brew upgrade bazel

install python dependencies
pip install six numpy wheel

3. 配置安装tensorflow
前面下载的安装源里有一个bash 脚本文件:congigure
这个文件可以帮助你识别安装tensorflow所需包的路径等问题运行如下:在tensorflow路径,
tensorflow hfes$ ./configure

here is an example excution of the configure script:

You have bazel 0.10.0-homebrew installed.
Please specify the location of python. [Default is /Users/bingxueguo/anaconda/bin/python]: /Users/bingxueguo/anaconda/bin/python

Found possible Python library paths:
 
/Users/bingxueguo/anaconda/lib/python3.5/site-packages
Please input the desired Python library path to use. 
Default is [/Users/bingxueguo/anaconda/lib/python3.5/site-packages]
/Users/bingxueguo/anaconda/lib/python3.5/site-packages
Do you wish to build TensorFlow with Google Cloud Platform support? [Y/n]: Y
Google Cloud Platform support will be enabled for TensorFlow.

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

Do you wish to build TensorFlow with Amazon S3 File System support? [Y/n]: Y
Amazon S3 File System support will be enabled for TensorFlow.

Do you wish to build TensorFlow with Apache Kafka Platform support? [y/N]: Y
Apache Kafka Platform support will be enabled for TensorFlow.

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

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

Do you wish to build TensorFlow with VERBS support? [y/N]: n
No VERBS support
4000
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 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.
--config=tensorrt   
# Build with TensorRT support.
Configuration finished

前面的选择Y/N会影响到之后的安装是否出现问题,
一开始我在这里选择了一个y

Do you wish to build TensorFlow with VERBS support? [y/N]: n
No VERBS support will be enabled for TensorFlow.
后面出现了如下问题:

./tensorflow/contrib/verbs/rdma.h:21:10:
fatal error: 'infiniband/verbs.h' file not found
#include <infiniband/verbs.h>     ^~~~~~~~~~~~~~~~~~~~
1 error generated.
也是搜索查询了好久很多给的是linux的解决办法,于是我又重新运行./configure选择了n才解决。

4.编译目标程序(这个只要前面配置没什么问题基本到这一步不会出什么问题,只是时间得一二十分钟)

bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
运行这一步后也会产生一个tensorflow的安装包(.whl)在文件夹
/tmp/tensorflow_pkg/下面

5. 安装pip包
官网上给的是
sudo pip install /tmp/tensorflow_pkg/tensorflow-1.5.0-py2-none-any.whl


当然这个包的名称还是要根据自己前面运行生成的,由于我也是初接触这些,也是琢磨了一下,发现直接在网页里输入

///tmp/tensorflow_pkg/ 可以找到前面生成的安装包,下载下来放在对应的文件夹然后用pip 安装即可

pip install tensorflow-1.5.0-cp35-cp35m-macosx_10_6_x86_64.whl

现在运行这个就不会出现一开始提到的问题了:

>>> import tensorflow as tf
>>> hello = tf.constant("Hello,Tensorflow")
>>> sess = tf.Session()
>>> print(sess.run(hello))
b'Hello,Tensorflow'
运行速度也会加快
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tensorflow source code