TensorFlow源码安装

前言

TensorFlow若是能二进制包安装,我真的不想选择本身编译,可是状况不禁人,好不容易找到一台服务器,CPU不支持AVX指令集,安装的release版本运行到import tensorflow as tf 就会报指令异常。网上建议源码安装才能解决,因而无奈,想着应该是很是繁琐的事情,但事实上除了耗时外,其余都还好,这里记录一下,以备后用。python

编译安装过程

安装版本构建工具 bazel

bazel是google的版本构建工具,网上褒贬不一,直接下载安装包进行安装:linux

wget https://github.com/bazelbuild/bazel/releases/download/0.13.0/bazel-0.13.0-installer-linux-x86_64.sh
chmod +x ./bazel-0.13.0-installer-linux-x86_64.sh
./bazel-0.13.0-installer-linux-x86_64.sh

这个步骤没有碰到问题。git

安装工具包

sudo apt install python-numpy swig python-dev python-wheel

numpy是python的科学计算库,swig是C库外部语言封装调用接口库,后面几个应该与python包管理相关,不细究。github

下载TensorFlow源码

使用git来克隆TensorFlow代码仓库:服务器

git clone --recurse-submodules https://github.com/tensorflow/tensorflow

比较耗时的操做,文件比较多。工具

配置TensorFlow

进入tensorflow目录,而后执行./configure,开始配置,除了jemalloc选项外,我都选了Nui

编译TensorFlow

执行如下命令,启动编译,过程很是慢,要耐心等待:google

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

建立PIP安装包

完成编译后,将tensowflow制做成pip安装包:spa

bazel-bin/tensorflow/tools/pip_package/build_pip_package ~/

安装TensorFlow包

最后,经过pip命令来安装前一步生成的安装包,若是没有先安装python-pip:命令行

pip install ~/tensorflow-1.8.0-cp27-cp27mu-linux_x86_64.whl 

增长编译选型以支持额外CPU指令

本身编译的版本能够正常使用,但运行时出现了以下的命令行提示:

原来这款CPU虽然不支持AVX,可是支持SSE,因而决定从新编译,在编译时增长了额外的编译选项,以下:

build -c opt --copt=-msse4.1 --copt=-msse4.2 //tensorflow/tools/pip_package:build_pip_package

从新打包,安装。

暂时结束

 至此,整个源码安装TensorFlow过程所有结束,暂无发现问题,待后续有问题时再补充。

相关文章
相关标签/搜索