TensorFlow的命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算。TensorFlow是张量从图的一端流动到另一端的计算过程,这也是TensorFlow的编程模型。


一 运行机制


TensorFlow的运行机制属于“定义”和“运行”相分离。从操作层面可以抽象为两种:模型的构建和模型的运行。



二 基本概念


张量(Tensor):数据,即某一类型的多维数组。


变量(Variable):常用于定义模型中的参数,是通过不断训练得到的值。


占位符(placeholder):输入变量的载体。可以理解为定义函数时的参数。


图中的节点操作(OP):即一个OP获得0个或多个tensor,执行计算,输出额外的0个或多个tensor。



三 说明


这些概念都是在一个叫“图”的容器中完成的。关于“图”,有以下几点需要理解。


一个“图”代表一个计算任务。


在模型运行的环节中,“图”会在会话(session)里被启动。


session将图的OP分发到如CPU或GPU之类的设备上,同时提供执行OP的方法。这些方法执行后,将产生的tensor返回。在python语言中,返回的tensor是numpy ndarray对象;在C和C++语言中,返回的tensor是TensorFlow::Tensor实例。



四 session和图的工作关系




GAN原理实现 tensorflow tensorflow运行原理_使用场景


五 三种场景


1 训练场景


是实现模型从无到有的过程,通过对样本的学习训练,调整学习参数,形成最终模型。其过程是将给定的样本和标签作为输入节点,通过大量的循环迭代,将图的中的正向运算得到输出值,再进行反向运算,以更新模型中的学习参数,最终使模型产生的正向结果最大化地接近样本标签。这样就得到一个可以拟合样本规律的模型。


2 测试场景和使用场景


测试场景是利用图的正向运算得出的结果与真实值进行比较的差别。


使用场景也是利用图的正向运算得到结果,并直接使用。


这两场景的运算过程是一样的。和正常编程用到的函数特别相似。


在函数中,可以分为实参、形参、函数体和返回值。


同样在模型中,实参就是输入的样本,形参就是占位符,运算过程就相对于函数体,得到的结果相对于返回值。



六 数据的流向机制


注入机制(feed):通过占位符向模式中传入数据。


取回机制(fetch):从模式中得到结果。