TensorFlow基础入门概念
一.基本概念
TensorFlow是一个开源数据库,用于使用数据流图进行数值计算。图中的节点表示数学运算,而图边表示在它们之间传递的多维数据数组(张量,tensor)。
- 图(graph)来表示计算任务
- 在被称之为会话(Session)的上下文(context)中执行图
- tensor表示数据
- 使用feed和fetch可以为任意的操作赋值或从其中获取数据
图中的一个节点称之为op(operation),一个op可以获得0个或多个tensor,执行计算产生0个或多个tensor(一个n维的数组或列表),graph必须在Session中被启动。
二.主要数据结构—-张量
- 在tensorflow中,一个张量就是一个张量类的实例,是绑定了相关运算的一个特定类型的多维数组。
- 所有的张量都有一个静态的类型和动态的维数
1.张量的阶rank
阶为1的张量等价为向量,2为矩阵…
2.张量的形状shape
3.张量的数据类型type
4.创建新的张量
既可以从numpy中继承,也可以创建
tf.convert_to_tensor:该方法将python对象转化为tensor对象,他的输入可是tensor对象,numpy数组,Python列表和python标量
三.TensorFlow的数据流图
- 符号化的表示了模型的计算是如何工作的。
- 计算图(computing graph)通常并不需要直接构建Graph对象,而是由用户在创建张量(tensor)和操作(op)时自动创建的。
- 张量构造函数(如tf.constant())将向默认的计算图添加必要的元素
c=tf.matmul(a,b)创建一个matmul类型的操作
tf.Operation.type 返回操作的类型
tf.Operation.inputs 输入张量对象列表
tf.Graph.get_operations() 计算图中的操作列表
tf.Graph.version 返回计算图的版本信息
四、数据供给机制Feed
- 将feed的数据作为参数传入run函数
最常见:tf.placeholder()创建特点的feed操作的方法
五、变量
- 特殊的操作,返回一个持久的、可变的张量句柄,存活于多次计算图执行之中。
- 模型的参数通常存储于常量中,在训练阶段被更新。
tf.Variable() - 所有的变量需要初始化
tf.global_variables_initializer()
六、保存数据流图
协议缓存(protocol buffers)
tf.Graph.as_graph_def(from_version=None,add_shapes=False):返回一个序列化的计算图表示GraphDef。
七、运行我们的程序——会话
Session对象是运行环境的表示。
s = tf.Session().run()