2.1介绍tensorflow的两个依赖包
(1)Protocol Buffer
结构化数据:拥有多种属性的数据,比如用户信息包含了名字、ID、E-mail;
序列化:把结构化的数据变成数据流(字符串)。
Protocol Buffer主要用于实现上面两种形式的数据转换,统称为处理结构化数据。
注意:protocol buffer序列化后的数据不是可读字符串,而是二进制流;需要先定义数据的格式(schema)再序列化,数据小,解析时间快。
message user{
optional string name=1;
required int32 id=2;
repeated string email=3;
}
这个message定义了用户信息,是一类结构化的数据,有多个属性。
required是必须的属性(protocol buffer3不再支持),optional可选,repeated可重复,也就是属性取值可以是一个列表。
(2)Bazel
谷歌开源的自动化构建工具,编译工具。
项目空间:一个文件夹,包含源代码,软连接(symbolic link)地址。一个项目空间里可以包含一个或多个应用。
WORKSPACE文件:在项目空间对应的文件夹(根目录)里,有一个WORKSPACE文件,定义了对外部资源的依赖关系。
BUILD:通过BUILD文件找到编译目标,指定了编译目标的输入输出和编译方式:py_binary、py_library、py_test;
- py_binary、将python程序编译为可执行文件
- py_library、将python程序变异成库函数
- py_test、编译python测试程序