学过Javascript或者xml的同学应该对DOM模型比较了解, DOM模型中,所有东西都被看做Node元素, 但是Node元素又有不同的子类元素,如document,element,attribute等, 和DOM很相似,tensorflow中所有元素都叫grarh元素,组合在一起构成一个gragh, 然后具体来说,又有下面几种基本元素: 张量(tensor): 前面已经说过. Variable: 又叫权重(Weight),参数(w),两个连接的节点之间有这么一个参数, 将来训练就是为了找到合适的参数. 一般直接把两个层之间的全部参数写到一个矩阵里面, 行数为起点层的节点数,列数为终点层的节点数. placeholder: 很多人叫占位符,其实就是输入变量的载体, 很像函数定义中写到参数列表的形参. 主要在这里声明将来特征矩阵的行数(shape), 如:x=tf.placeholder(tf.float32,shape=(None,2)) op: 节点,获取张量(或者不获取张量),计算得到张量, 描述张量之间的计算关系,是网络的真正结构. 一般的计算节点如: a=tf.matmul(x,w1) y=tf.matmul(a,w2) 还有特殊的节点(我见过的): 1.损失函数: 如:loss=tf.reduce_mean(tf.square(y-y_)) 2.反向传播: train_step=tf.train.GradientDescentOptimizer(0.001).minimize(loss) train_step=tf.train.MomentumOptimizer(0.0001,0.99).minimize(loss) train_step=tf.train.AdamOptimizer(0.0001).minimize(loss) (实际中只用一个就够了) 3.变量初始化: 是的你没有看错,变量初始化竟然也算是graph元素, 而且要初始化之后才可以"run"后面的节点 init_op=tf.global_variables_initializer() sess.run(init_op) 4.计数器:
|