一、概述
人工智能: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()来加载图形。