Tensorflow基础
基础概念
- tensor:张量(数据)
- operation(op):专门运算的操作节点,所有操作都是一个op
- grap:图,整个程序的结构
- Session:会话,运算程序的图
Tensorflow属于计算密集型,大多是在cpu上进行计算。
图
图默认已经注册,一组表示tf.Operation计算单位的对象和tf.Tensor表示操作之间流动的数据单元的对象。
获取调用:
tf.get_default_graph()
op.sess或者tensor的graph的属性
import tensorflow as tf import numpy as np tf.compat.v1.disable_eager_execution() #创建一张图,包含了op和tensor g = tf.Graph() print(g) #新创建的图分配新的内存地址 with tf.compat.v1.Session() as sess: c = tf.constant(11.0) print(c.graph) #这个sess下的图和下面sess下的图共用一个地址 a = tf.constant(5.0) b = tf.constant(6.0) sum1 = tf.add(a, b) #默认的这张图,相当于是给程序分配一段内存 graph = tf.compat.v1.get_default_graph() print(graph) with tf.compat.v1.Session() as sess: print(sess.run(sum1)) print(a.graph) print(sum1.graph) print(sess.graph)
输出
<tensorflow.python.framework.ops.Graph object at 0x0000000001529748> <tensorflow.python.framework.ops.Graph object at 0x0000000041256888> <tensorflow.python.framework.ops.Graph object at 0x0000000041256888> 11.0 <tensorflow.python.framework.ops.Graph object at 0x0000000041256888> <tensorflow.python.framework.ops.Graph object at 0x0000000041256888> <tensorflow.python.framework.ops.Graph object at 0x0000000041256888>
op
op:只要使用tensorflow的API定义的函数都是op
tensor:知道的就是数据,进行运算,载体
会话
1.会话
前端系统:定义程序的图的结构(用API)
后端系统:运算图结构
会话:连接前端和后端,解析API进行运算。
作用:运行图结构;分配资源计算;掌握资源(变量,队列,线程)
tf.Session() 运行TensorFlow操作图的类,使用默认注册的图(可以指定运行图) sess = tf.Session() #创建图 sess.run(...) #启动图 sess.close() #关闭图,资源释放 使用上下文管理器,默认使用完关闭图 with tf.Session() as sess: sess.run(...) 一个图可以在多个sess中运行,一个sess也能运行多个图
2.会话的run方法
run(fetches,feed_dict=None,graph=None)
运行ops和计算tensor
feed_dict允许调用者覆盖图中制定张量的值,提供给placeholder使用
代码
import tensorflow as tf import numpy as np tf.compat.v1.disable_eager_execution() a = tf.constant(5.0) var = 2.0 sum2 = a + var print(sum2) with tf.compat.v1.Session() as sess: print(sess.run(sum2)) #也可以运行,var会被重载为tensor类型。
输出
Tensor("add:0", shape=(), dtype=float32) 7.0