TensorFlow基础(一)

来源:互联网 发布:2016淘宝卖家避开同款 编辑:程序博客网 时间:2024/06/07 02:57

模型介绍


1 核心概念

TensorFlow中的计算可以表示为一个有向图(directed graph),或称计算图(computation graph),其中每一个运算操作(operation)将作为一个节点(node),节点与节点之间的连接称为边(edge)。

计算图中每一个节点可以有任意多个输入和任意多个输出,每一个节点描述了一种运算操作,节点可以算是运算操作的实例化(instance)。

在计算图的边中流动(flow)的数据被称为张量(tensor),故得名TensorFlow。有一类特殊的边没有数据流动,这种边是依赖控制(control dependencies),作用是让它的起始节点执行完之后再执行目标节点。

tensor的数据类型,可以是事先定义的,也可以根据计算图中的结构推断得到。


TensorFlow的內建运算操作

标量运算:Add,Sub,Mul,Div,Exp,Log,Greater,Less,Equal

向量运算:Concat,Slice,Split,Constant,Rank,Shape,Shuffle

矩阵运算:MatMul,MatrixInverse,MatrixDeterminant

带状态的运算:Variable,Assign,AssignAdd

神经网络组件:SoftMax,Sigmoid,ReLU,Convolution2D,MaxPooling

储存、恢复:Save,Restore

队列及同步运算:Enqueue,Dequeue,MutexAcquire,MutexRelease

控制流:Merge,Switch,Enter,Leave,NextIteration


Session是用户使用TensorFlow的交互式接口。用户可以Session的Extend方法添加新的节点和边,用以创建计算图,可以通过Session的Run方法执行计算图。对绝大数用户,只会创建一次计算图,然后反复地执行整个计算图或是其中一部分子图(sub-graph)

大多数计算中,计算图会被反复执行多次,而数据也就是tensor并不会被持续保留,只是在计算图过一遍。Variable是一类特殊的运算操作,它可以将一些需要保留的tensor储存在内存或显存中,比如神经网络模型中的系数。每一次执行计算图,Variable中的数据tensor将会被保存,同时在计算过程中这些tensor也会被更新,比如神经网络每一次mini-batch训练时,神经网络的系数将会被更新并保存。使用Variable,可以在计算图中实现一些特殊操作,比如Assign,AssignAdd(+=),AssignMul(-=)。


2 实现原理

TensorFlow有一个重要的组件client(客户端),它通过Session的接口与master及多个worker相连。

每个worker可与多个硬件设备相连,如CPU、GPU,并管理硬件。

master负责指导所有worker按流程执行计算图。

TensorFlow有两种模式:

(1)单机模式:client,master,worker在一台机器上的同一个进程中

(2)分布式模式:client,master,worker在不同机器的不同进程中,由集群调度


原创粉丝点击