了解 TensorFlow 模型的运行机制
tensorflow 的运行机制属于“定义”于“运行”相互分离。从操作层面可以认为是 模型构建 和 模型运行。
在模型构件中,需要了解几个概念:
张量(tensor):数据,N维向量
变量(variable):模型参数,通过不断训练得到的值
占位符(placeholder):输入变量的载体
图中的节点操作(operation,op):执行相关计算,从而获取新的 tensor
上述定义的内容都是在一个叫做“图”的容器中完成的。关于“图”,有以下几点需要注意理解:
- 一个图代表一个计算任务
- 在模型运行的环节,“图”在会话(session)里被启动
- session 将图的 op 分发到如 CPU/GPU 等计算设备上,同时提供执行 op 的方法。在这些方法执行后,返回相应的 tensor (python 里返回的是 numpy ndarray;C/C++ 里返回的是 TensorFlow::Tensor 实例)
session 与图交互的过程成通过 feed (注入机制)和 fetch (取回机制)来进行数据流动。i.e.
- feed:通过占位符向模式中传入数据。
- fetch:从模式中得到结果
import tensorflow as tf
mul = tf.multiply(a,b)
add = tf.add(a,b)
with tf.Session() as sess:
print(sess.run(add, feed_dict={
a:3, b:4}))
print(sess.run(mul, feed_dict={
a:3, b:4}))
print(sess.run([mul, add], feed_dict={
a:3, b:4}