美文网首页
centos6.5源码编译tensroflow1.4.0

centos6.5源码编译tensroflow1.4.0

作者: Xavier_3921 | 来源:发表于2019-03-22 16:33 被阅读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

相关文章

  • centos6.5源码编译tensroflow1.4.0

    前言 开始编译前,务必做好持久战的准备! 准备工作 1.一台centos6.5的linux机子。推荐安装虚拟机,很...

  • Nginx(一)安装

    1.准备 centos6.5 nginx-1.19.3.tar.gz源码包 2.安装依赖 3.解压 4.编译 4....

  • apache安装

    环境:centos6.5生产环境最好源码编译安装Apache,可灵活定制各种功能、及时获取软件的最新版本以及便于今...

  • centos6.5源码编译安装nodejs

    写在前面的话:方式1失败,方式2成功1,用源码安装node.js的时候会报一下错误导致安装不成功;由于错误没有解决...

  • 编译移植Android ARM源码

    [TOC] 编译移植Android ARM源码 android源码编译的四个流程:1. 源码下载; 2. 构建编译...

  • lua 源码编译

    lua 源码编译 本文介绍了使用 Visual Studio 编译 lua 源码的方法。 下载源码 源码下载在 这...

  • WebRTC研究 (一) 编译源码

    @[TOC](WebRTC研究 (一) 编译源码) 1. WebRTC 源码编译 1.1 IOS平台编译 1.1....

  • python深入系列(一):python源码运行流程

    源码编译 要看懂源码,肯定要学会编译源码。先去官网下载源码文件,然后解压编译安装。linux环境下进解压目录依次运...

  • JVM内存模型与数据结构

    JAVA代码执行过程 JAVA源码编译由三个过程组成:源码编译机制、类加载机制、类执行机制。代码编译由JAVA源码...

  • WebRTC for Android-源码编译篇

    目录 编译环境搭建 代码同步 编译参数配置 源码编译 踩过的问题 总结 一、编译环境搭建 首先,WebRTC源码编...

网友评论

      本文标题:centos6.5源码编译tensroflow1.4.0

      本文链接:https://www.haomeiwen.com/subject/dzhrvqtx.html