TensorFlow的运行机制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/79952964
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和图的工作关系
五 三种场景
1 训练场景
是实现模型从无到有的过程,通过对样本的学习训练,调整学习参数,形成最终模型。其过程是将给定的样本和标签作为输入节点,通过大量的循环迭代,将图的中的正向运算得到输出值,再进行反向运算,以更新模型中的学习参数,最终使模型产生的正向结果最大化地接近样本标签。这样就得到一个可以拟合样本规律的模型。
2 测试场景和使用场景
测试场景是利用图的正向运算得出的结果与真实值进行比较的差别。
使用场景也是利用图的正向运算得到结果,并直接使用。
这两场景的运算过程是一样的。和正常编程用到的函数特别相似。
在函数中,可以分为实参、形参、函数体和返回值。
同样在模型中,实参就是输入的样本,形参就是占位符,运算过程就相对于函数体,得到的结果相对于返回值。

六 数据的流向机制
注入机制(feed):通过占位符向模式中传入数据。
取回机制(fetch):从模式中得到结果。
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页