源码安装tf的时候,会用到Bazel,版本不对应,后面会引起好多麻烦。

echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
sudo apt-get update 

sudo apt-get install bazel 

这种安装方式,会把bazel更新到最新的版本,但是编译tensorflow的时候,不同tensorflow要与bazel的版本是对应的,如果这么做的话,后面的操作就会出错,可能还不知道怎么解决。

正确的做法应该是下载对应的版本来安装bazel,tensorflow与bazel的版本应该在tensorflow的官网查找:https://tensorflow.google.cn/install/source

linux下tensorflow与python、GCC、Bazel的版本关系,GCC一般支持C++11就可以,但bazel就真的还是要对应好版本,不然一大堆问题,会掉进坑里各种折腾。

Bazel 编译选项

从源代码编译 TensorFlow 可能会消耗大量内存。如果系统内存有限,请使用以下命令限制 Bazel 的内存消耗量:--local_ram_resources=。

官方 TensorFlow 软件包是使用 GCC  编译的,并使用旧版 ABI。对于 GCC  及更高版本,为了使您的编译系统与旧版 ABI 兼容,请使用 --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0"。兼容 ABI 可确保针对官方 TensorFlow pip 软件包编译的自定义操作继续支持使用 GCC  编译的软件包。
编译软件包 bazel build 命令会创建一个名为 build_pip_package 的可执行文件,此文件是用于编译 pip 软件包的程序。请如下所示地运行该可执行文件,以在 /tmp/tensorflow_pkg 目录中编译 .whl 软件包。 要从某个版本分支编译,请使用以下目录: ./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg 要从 master 编译,请使用 --nightly_flag 获取正确的依赖项: ./bazel-bin/tensorflow/tools/pip_package/build_pip_package --nightly_flag /tmp/tensorflow_pkg 尽管可以在同一个源代码树下编译 CUDA 和非 CUDA 配置,但建议您在同一个源代码树中的这两种配置之间切换时运行 bazel clean。
安装软件包 生成的 .whl 文件的文件名取决于 TensorFlow 版本和您的平台。例如,使用 pip install 安装软件包: pip install /tmp/tensorflow_pkg/tensorflow-version-tags.whl

经过测试的构建配置

Linux

版本 Python 版本 编译器 编译工具
tensorflow-1.13.1 2.7、3.3-3.6 GCC 4.8 Bazel 0.19.2
tensorflow-1.12.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0
tensorflow-1.11.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0
tensorflow-1.10.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0
tensorflow-1.9.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.11.0
tensorflow-1.8.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.10.0
tensorflow-1.7.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.10.0
tensorflow-1.6.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.9.0
tensorflow-1.5.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.8.0
tensorflow-1.4.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.5.4
tensorflow-1.3.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.5
tensorflow-1.2.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.5
tensorflow-1.1.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.2
tensorflow-1.0.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.2
版本 Python 版本 编译器 编译工具 cuDNN CUDA
tensorflow_gpu-1.13.1 2.7、3.3-3.6 GCC 4.8 Bazel 0.19.2 7.4 10.0
tensorflow_gpu-1.12.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.11.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.9.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.11.0 7 9
tensorflow_gpu-1.8.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.10.0 7 9
tensorflow_gpu-1.7.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.6.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.5.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.8.0 7 9
tensorflow_gpu-1.4.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.5.4 6 8
tensorflow_gpu-1.3.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.5 6 8
tensorflow_gpu-1.2.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.5 5.1 8
tensorflow_gpu-1.1.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8

macOS

CPU

版本 Python 版本 编译器 编译工具
tensorflow-1.13.1 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.19.2
tensorflow-1.12.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.15.0
tensorflow-1.11.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.15.0
tensorflow-1.10.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.15.0
tensorflow-1.9.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.11.0
tensorflow-1.8.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.10.1
tensorflow-1.7.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.10.1
tensorflow-1.6.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.8.1
tensorflow-1.5.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.8.1
tensorflow-1.4.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.5.4
tensorflow-1.3.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.4.5
tensorflow-1.2.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.4.5
tensorflow-1.1.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.4.2
tensorflow-1.0.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.4.2

GPU

版本 Python 版本 编译器 编译工具 cuDNN CUDA
tensorflow_gpu-1.1.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7、3.3-3.6 XCode 中的 Clang Bazel 0.4.2 5.1 8

版本问题---Bazel与tensorflow的对应关系的更多相关文章

  1. bazel和TensorFlow安装

    bazel安装:https://docs.bazel.build/versions/master/install-ubuntu.html#install-with-installer-ubuntu 安 ...

  2. 在Ubuntu 16.04上使用bazel交叉编译tensorflow

    鸽了这么久,正式开工 Author: carbon email: ecras_y@163.com 参考资料: https://github.com/tensorflow/tensorflow http ...

  3. bazel编译tensorflow 生成libtensorflow_inference.so 和 libandroid_tensorflow_inference_java.jar

    bazel build -c opt //tensorflow/contrib/android:libtensorflow_inference.so --crosstool_top=//externa ...

  4. Linux服务器配置GPU版本的pytorch Torchvision TensorFlow

    最近在Linux服务器上配置项目,项目需要使用GPU版本的pytorch和TensorFlow,而且该项目内会同时使用TensorFlow的GPU和CPU. 在服务器上装环境,如果重新开始,就需要下载 ...

  5. 版本问题---keras和tensorflow的版本对应关系

    keras和tensorflow的版本对应关系,可参考: Framework Env name (--env parameter) Description Docker Image Packages ...

  6. 版本问题---cuda和tensorflow的版本对应关系

    cuda和tensorflow的版本有对应关系 https://tensorflow.google.cn/install/source#linux

  7. Ubuntu系统下Bazel编译Tensorflow环境

    编写此文主要为了介绍在Ubuntu16.04上搭建Tensorflow-lite编译环境,涉及目标硬件为Armv7架构,8核Cortex-A7. 1.开发环境介绍: OS:Ubuntu16.04 64 ...

  8. Anaconda多版本Python管理以及TensorFlow版本的选择安装

    Anaconda是一个集成python及包管理的软件,记得最早使用时在2014年,那时候网上还没有什么资料,需要同时使用py2和py3的时候,当时的做法是同时安装Anaconda2和Anaconda3 ...

  9. Numpy版本问题,import tensorflow as tf 报警:“ FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'”

    tensorflow成功安装后 import tensorflow as tf 报警:“ FutureWarning: Passing (type, 1) or '1type' as a synony ...

随机推荐

  1. div定位relative和absolute和float测试3

    position等于absolute的时候,不一定是相对于浏览器定位,当div存在包含关系时,父div设置成relative,其中包含的div设置成absolute就是相对于该父div的了.该文测试了 ...

  2. Navicat Premium教程

    介绍 Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL.SQLite.Oracle 及 PostgreSQL 资料库,让 ...

  3. 【VS开发】如何判断客户端SOCKET已经断开连接?

    http://biancheng.dnbcw.info/linux/366100.html    最近在做一个服务器端程序,C/S结构.功能方面比较简单就是client端与server端建立连接,然后 ...

  4. 管道式编程(Pipeline Style programming)

    受 F# 中的管道运算符和 C# 中的 LINQ 语法,管道式编程为 C# 提供了更加灵活性的功能性编程.通过使用 扩展函数 可以将多个功能连接起来构建成一个管道. 前言 在 C# 编程中,管道式编程 ...

  5. 任务调度之Quartz.Net基础

    最近公司要求将之前的系统设计文档补上,于是大家就都被分配了不同的任务,紧锣密鼓的写起了文档来.发现之前项目中使用了Quartz.Net来做一些定时任务的调度,比如定时的删除未支付的订单,定时检查支付状 ...

  6. [WCF] - 使用 [DataMember] 标记的数据契约需要声明 Set 方法

    WCF 数据结构中返回的只读属性 TotalCount 也需要声明 Set 方法. [DataContract]public class BookShelfDataModel{    public B ...

  7. Queryable查询扩展

    /// <summary> /// 查询扩展 /// </summary> /// <typeparam name="T"></typep ...

  8. POJ1573(Robot Motion)--简单模拟+简单dfs

    题目在这里 题意 : 问你按照图中所给的提示走,多少步能走出来??? 其实只要根据这个提示走下去就行了.模拟每一步就OK,因为下一步的操作和上一步一样,所以简单dfs.如果出现loop状态,只要记忆每 ...

  9. rabbitmd

    一.前期准备   (1)条件:准备3台linux系统,确保能连到download.yunwei.edu   (2)编写yum源下载脚本: vim yum-repo.sh wget -O /etc/yu ...

  10. Windows下编译 Hadoop

    Windows下编译 Hadoop-2.9.2 系统环境 系统: Windows 10 10.0_x64 maven: Apache Maven 3.6.0 jdk: jdk_1.8.0_201 Pr ...