tensorflow 一

一、基本概念

1、stochastic gradient descent(SGD):随机梯度下降,不是每次迭代参数的计算都使用全部的数据,而是取一部分(一个patch)进行计算。

2、epoch:把所有训练数据完整的过一遍。

3、step_num:过一遍需要的训练的次数。

4、patch:每次进行梯度训练时,使用的数据子集

5、泛逼近定理 “Universal approximation theorem”, 一个隐藏层可以任意逼近连续函数

二、tensorflow基础

1、用计算图描述分布式计算任务,每个session有个默认graph 

2、op 是graph的节点,描述计算操作

3、常量是op,取数据也是op

4、placeholder 实现类似于模板渲染的效果,每次迭代时可以塞入数据集

5、variable 用于在不同的run周期中保持变量,可以用来存神经网络的权值

三、API

reduce_sum 求和,默认所有数据, 0表示按着列计算, 1表示按着行 

reduce_max 求最大值

reduce_mean 均值

truncated_normal 截断的正态分布, stddev是标准差

sparse_softmax_cross_entropy_with_logits 把softmax计算与cross entropy计算放到一起,用来提高程序的运行速度

nn.in_top_k() 判断预测结果是否正确。函数本来的意义为判断label是不是在logits 的前k大的值,返回一个布尔值。

四、各个模块

TensorBoard  可视化计算图,计算状态,有web的ui

tf.contrib.learn 高层的模块,实现数据集、填充、训练、评估等功能

模型中间结果的保存和恢复

with tf.Session() as sess:

  sess.run(tf.global_variables_initializer())

  all_saver.save(sess, 'data.chkp')

  

模型的权重是保存在 .chkp 文件中,模型的图是保存在 .chkp.meta 文件中。

saver = tf.train.import_meta_graph('results/model.ckpt-1000.meta')

graph = tf.get_default_graph()

global_step_tensor = graph.get_tensor_by_name('loss/global_step:0')

train_op = graph.get_operation_by_name('loss/train_op')

hyperparameters = tf.get_collection('hyperparameters')

with tf.Session() as sess:

    # To initialize values with saved data

    saver.restore(sess, 'results/model.ckpt-1000-00000-of-00001')

    print(sess.run(global_step_tensor)) # returns 1000

相关推荐