tensorflow学习(1)--graph以及session

tensorflow是基于图模型的,运行的时候是使用会话。sess就是会话。
参照:http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/basic_usage.html
参照:http://blog.csdn.net/xierhacker/article/details/53860379

  • 使用图 (graph) 来表示计算任务
  • 在被称之为 会话 (Session) 的上下文 (context) 中执行图
  • 使用 tensor 表示数据
  • 通过 变量 (Variable) 维护状态
  • 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据.

tensorflow使用图进行计算。 图中的节点被称之为 op (operation 的缩写). 一个 op 获得 0 个或多个 Tensor, 执行计算, 产生 0 个或多个 Tensor. 每个 Tensor 是一个类型化的多维数组. 比如一个批次的图像图像表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels]。

一个 TensorFlow 图描述了计算的过程. 为了进行计算, 图必须在会话里被启动. 会话将图的 op 分发到诸如 CPU 或 GPU 之类的 设备 上, 同时提供执行 op 的方法. 这些方法执行后, 将产生的 tensor 返回. 在 Python 语言中, 返回的 tensor 是 numpy ndarray 对象; 在 C 和 C++ 语言中, 返回的 tensor 是 tensorflow::Tensor 实例.

其中op是一个操作,比如matmul等,也可以使用py_func函数将python的函数转化为tensorflow的函数,或者自己修改源代码写函数。

TensorFlow Python 库有一个默认图 (default graph), op 构造器可以为其增加节点. 这个默认图对 许多程序来说已经足够用了。

tf.Session()和tf.InteractiveSession()的区别?

答案:

sess = tf.InteractiveSession()
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
# We can just use 'c.eval()' without passing 'sess'
print(c.eval())
sess.close()

tf.InteractiveSession()省去将产生的会话注册为默认会话的过程。
这样也可以通过:

with tf.Session() as sess:
    sess.run(...)

在作用域中两者等价。

你可能感兴趣的:(tensorflow学习(1)--graph以及session)