1.Protocal Buffer
是tensorflow处理结构化数据的工具。和XML,JOSON类似,但是有一定的区别。
主要的区别为:
(1).Protocal Buffer 序列化后的数据不是可读的,而是二进制流;
(2).XML和JSON序列化后的数据的信息格式都包含在了数据流中,不需要任何其它信息就能还原序列化之后的数据,而Protocal Buffer需要先定义数据的格式,还原一个序列化之后的数据将需要使用到这个定义好的数据格式。
因为以上两点的差别,使用Protocal Buffer序列化后出来的数据比XML和Json格式的小3到10倍,解析时间要快20到100倍。
XML结构化数据格式:
<user>
<name>张三</name>
<id>12345</id>
<email>zhangsan@abc.com</email>
</user>
Json结构化数据格式:
{
"name":"张三",
"id":"12345",
"email":"zhangsan@abc.com"
}
Protocal Buffer数据格式:
message user{
optional string name = 1;
required int32 id = 2;
repeated string email = 3;
}
2.Bazel
是一个自动化构建工具,用来编译tensorflow的应用。
Bazel对python的编译方式有三种:py_binary,py_library,py_test
Bazel通过BUILD文件来找到需要编译的目标。文件格式如下:
py_library(
name = "hello_lib",
srcs = [
"hello_lib.py",
],
)
py_binary(
name = "hello_mai