一、概述
人工智能:artificial intelligence
权重: weights
偏差:biases
图中包含输入( input)、塑形( reshape)、 Relu 层( Relulayer)、 Logit 层( Logit layer)、 Softmax、交叉熵( cross entropy)、梯度( gradient)、 SGD 训练( SGD Trainer)等部分,是一个简单的回归模型。
计算过程是,首先从输入开始,经过塑形后,一层一层进行前向传播运算。 Relu 层(隐藏层)里会有两个参数,即 Wh1和 bh1,在输出前使用 ReLu( Rectified Linear Units)激活函数做非线性处理。然后进入 Logit 层(输出层),学习两个参数 Wsm和 bsm。用 Softmax 来计算输
出结果中各个类别的概率分布。用交叉熵来度量两个概率分布(源样本的概率分布和输出结果的概率分布)之间的相似性。然后开始计算梯度,这里是需要参数 Wh1、 bh1、 Wsm和 bsm,以及交叉熵后的结果。随后进入 SGD 训练,也就是反向传播的过程,从上往下计算每一层的参数,
依次进行更新。也就是说,计算和更新的顺序为 bsm、 Wsm、 bh1和 Wh1。
Tensorflow 边(edge) 有两种连接关系: 数据依赖和控制依赖。
节点(算子): 代表一个操作(operation op)
批标准化(batch normalization, BN)是为了克服神经网络层数加深导致难以训练而诞生的,我们知道,深度神经网络随着网络深度加深,训练起来越来越困难,收敛速度会很慢,常常会导致梯度弥散问题(vanishing gradient problem)。
模型的存储与加载
训练好一个神经网络模型后,我们就希望能够将其应用在预测数据上。那么,如何把模型存储起来呢?同时,对于一个已经存储起来的模型,在将其应用在预测数据上时又如何加载呢?
Tensorflow提供的API来存储和加载模型:
1、生成检查点文件( checkpoint file),扩展名一般为.ckpt,通过在 tf.train.Saver 对象上调用 Saver.save()生成。它包含权重和其他在程序中定义的变量,不包含图结构。如果需要在另一个程序中使用,需要重新创建图形结构,并告诉 TensorFlow 如何处理这些权重
2、生成图协议文件( graph proto file),这是一个二进制文件,扩展名一般为.pb,用tf.train.write_graph()保存,只包含图形结构,不包含权重,然后使用 tf.import_graph_def()来加载图形。