centos6.5源码编译tensroflow1.4.0

前言

开始编译前,务必做好持久战的准备!

准备工作

1.一台centos6.5的linux机子。推荐安装虚拟机,很多操作需要root权限。https://www.jianshu.com/p/18207167b1e7
2.配置yum源。https://www.cnblogs.com/mchina/archive/2013/01/04/2842275.html

开始编译

1.安装java

yum install java-1.8.0-openjdk-devel

2.安装devtoolset-6-toolchain
我是通过yum安装成功的

yum install devtoolset-6-toolchain

3.安装依赖包

yum install python27 python27-numpy python27-python-devel python27-python-wheel

4.安装bazel

scl enable devtoolset-6 bash
# download distribution archive
wget https://github.com/bazelbuild/bazel/releases/download/0.10.0/bazel-0.10.0-dist.zip
unzip bazel-0.10.0-dist.zip -d bazel-0.9.0-dist
cd bazel-0.9.0-dist
# compile
./compile.sh
# install
mkdir -p ~/bin
cp output/bazel ~/bin/
# exit from Software Collection environment
exit

5.下载tensorflow

scl enable devtoolset-6 python27 bash
# clone source code repository
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
# select version (optional)
git checkout v1.4.0

6.修改tensorflow/tensorflow.bzl

#修改前
def tf_extension_linkopts():
  return []  # No extension link opts
#修改后
def tf_extension_linkopts():
  return ["-lrt"]

7.修改repositories.bzl和workspace.bzl
所有的check_version("...") 改成check_version("0.10.0")
其中repositories.bzl的路径是~/.cache/bazel/_bazel_nvidia/xxx/external/io_bazel_rules_closure/closure/repositories.bzl,xxx是_bazel_nvidia文件夹下的一个名字很长的文件夹

#修改前
_check_bazel_version("Closure Rules", "0.4.5")
#修改后
_check_bazel_version("Closure Rules", "0.10.0-")

这是bazel的一个比较搞笑的bug,它会认为0.10.0比0.4.5版本低
8.编译tensorflow

./configure
#所有的y/n都选n,不是就选默认
bazel build --config=opt --cxxopt='lrt' --incompatible_load_argument_is_label=false --incompatible_disallow_uncalled_set_constructor=false //tensorflow/tools/pip_package:build_pip_package

9.不要放弃
基本上只要把用到链接库的地方改成‘lrt’就能编译成功,java版本的编译类似。

后记

部分命令记不清了,如果有还有bug请自行解决,解决的核心就是‘lrt’。

参考资料

https://blog.abysm.org/2016/06/building-tensorflow-centos-6/
https://bleedingfight.github.io/2018/01/18/tensorflowforjava/
http://aifuns.cc/2017/10/08/so-file-in-C.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容