1、TensorFlow主要依赖包——Protocol Buffer & Bazel网络
1. Protocol Buffer函数
首先要弄清三个概念:工具
name:张三 id:1234 email:zhangsan@abc.com
这样的用户信息就是一个结构化数据,name、id和email都是这个数据的属性。测试
Protocol Buffer就是用来处理结构化数据的。ui
另外两种常常被用来处理结构化数据的工具时XML和JSON,它们和Protocol Buffer的主要区别以下spa
XML、JSON | Protocol Buffer | |
序列化结果 | 可读字符串 | 二进制流 |
还原操做 | 序列化结果包含格式信息,无需其余信息便可还原 | 需事先定义数据格式,还原时也需使用这个定义好的格式。 |
因为Protocol Buffer在序列化时可根据须要选定数据类型,它序列化出来的数据通常比XML格式小,解析时间也要快许多。code
Protocol Buffer定义数据格式的文件通常保存在.proto文件中,如blog
message user{ optional string name = 1 required int32 id = 2 repeated string email = 3 }
其中,每个message表明了一类结构化的数据,它的里面定义了每个属性的类型和名字。资源
属性的类型能够是:字符串
属性的设置:
2. Bazel
一个自动化构建工具,用于对项目空间(workspace)中的程序进行编译。
workspace能够理解为一个文件夹,它包含了编译一个软件所须要的源代码以及输出编译结果的软链接(symbolic link),其根目录的基本结构以下:
Bazel对Python支持的编译方式只有如下三种:
举例见书p28-29。