tensorflow所依赖的库

Protocol Buffer 工具包: 是谷歌开发的处理结构化数据(这里的结构化数据意思就是一个拥有多属性的数据,与大数据中的结构化数据的概念不同)的工具。这些数据在进行网络传输护着持久化时候,需要先将他们序列化,也就是将结构化的数据变成数据流的格式,简单的说就是变成一个字符串。如何将结构化的数据序列化,并从序列化之后的数据流中还原出原来的数据化数据,统称为处理结构化数据。这就是Protocol Buffer需要解决的问题。

      除了Protocol  Buffer之外,XML和JSON是两种比较常用的结构化数据处理工具。

      Protocol  Buffer序列化之后得到的数据不是可读的字符串形式,而是二进制流。XML或者JSON格式的数据信息都包含在了序列化之后的数据中,不需要任何其他信息就能还原序列化之后的数据。但是使用Protocol  Bufffer时候需要预先定义好输的格式(schema)。还原一个序列化之后的数据需要使用这个定义好的数据格式。因此,Protocol Buffer序列化之后的数据要比XML小3-10倍,解析时间要快20-100倍。

      分布式tensorflow的通信协议gRPC也是以Protocol Buffer作为基础的。

==================================================================================================

      Bazel 工具包:  谷歌开发的开源的自动化构建工具,谷歌内部的大部分应用都是通过它来编译的。相比传统的makefile.ant或者maven,Bazel在速度,可伸缩性,灵活性以及对不同层序设计语言和平台的支持上都要更加出色。

      项目空间(workspace)是Bazel的一个基本概念。一个项目可以简单的理解为一个文件夹,在这个文件夹中包含了编译一个软件所需要的源代码以及输出编译结果的软连接地址。一个项目空间内可以只包含一个应用(比如tensorflow),一个项目空间也可以包含多个应用。一个项目空间所对应的文件夹是这个项目的根目录,在这个根目录中需要有一个WORKSPACE文件,此文件定义了对外部资源的依赖关系。在一个项目空间内Bazel通过BUILLD文件来找到需要编译的目标(BUILD是由一系列的编译目标组成的)。Bazel的编译方式是预先定义好的。WORKSPACE给出此项目的外部依赖关系。

你可能感兴趣的:(tensorflow所依赖的库)