Tensorflow知识整理(一)
TensorFlow介绍
TensorFlow(一个使用计算图来表示计算任务的编程系统)
TF中的每个计算都是计算图上的一个节点节点间的边描述了计算之间的依赖关系(一个运算的驶入依赖于另一个运算的输出)
图中的节点被称为op,一个op获得0或多个Tensor,执行计算,产生0或多个Tensor,每个Tensor是一个类型化的多维数组。
一个TensorFlow图描述计算过程,图必须在会话里被启动。会话将图的op分到诸如CPU或GPU之类的设备上,并且提供执行op的方法。这些方法执行后,将产生的Tensor返回。在Python语言中,返回的是numpy ndarray对象,在C/C++中,返回tensorflow::Tensor。
Protocol Buffer: TensorFlow中用来组织数据,处理结构化数据的工具
Protocol Buffer是TensorFlow自定义的数据结构。与json和xml不同的地方在于:
- Protocol Buffer序列化之后的数据不是字符串,而是二进制流;
- xml和json在反序列化的时候不需要额外信息,因为信息已经包含在序列化的数据中,而Protocol Buffer需要预先定义数据格式(schema);
综上,Protocol buffer比xml和json序列化后的数据要少,解析快。
Protocol Buffer定义数据格式:
message user{
optional string name = 1 ; // 选填
required int32 id = 2; // 必填
repeated string email = 3; // 是一个list
}
Bazel: 谷歌开源的自动化构建工具
// 暂时没有太多的了解
张量(Tensor)
tf中的张量并不是存储的结果数据,