TensorFlow若是能二进制包安装,我真的不想选择本身编译,可是状况不禁人,好不容易找到一台服务器,CPU不支持AVX指令集,安装的release版本运行到import tensorflow as tf 就会报指令异常。网上建议源码安装才能解决,因而无奈,想着应该是很是繁琐的事情,但事实上除了耗时外,其余都还好,这里记录一下,以备后用。python
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
使用git来克隆TensorFlow代码仓库:服务器
git clone --recurse-submodules https://github.com/tensorflow/tensorflow
比较耗时的操做,文件比较多。工具
进入tensorflow目录,而后执行./configure,开始配置,除了jemalloc选项外,我都选了Nui
执行如下命令,启动编译,过程很是慢,要耐心等待:google
bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
完成编译后,将tensowflow制做成pip安装包:spa
bazel-bin/tensorflow/tools/pip_package/build_pip_package ~/
最后,经过pip命令来安装前一步生成的安装包,若是没有先安装python-pip:命令行
pip install ~/tensorflow-1.8.0-cp27-cp27mu-linux_x86_64.whl
本身编译的版本能够正常使用,但运行时出现了以下的命令行提示:
原来这款CPU虽然不支持AVX,可是支持SSE,因而决定从新编译,在编译时增长了额外的编译选项,以下:
build -c opt --copt=-msse4.1 --copt=-msse4.2 //tensorflow/tools/pip_package:build_pip_package
从新打包,安装。
至此,整个源码安装TensorFlow过程所有结束,暂无发现问题,待后续有问题时再补充。