本系列为学习tensorflow文档总结笔记,希望自己可以坚持下去+_+
2.6卷积神经网络
但是我们发现通过下面的模块来构造训练图可以最大限度的提高代码复用率:
- 模型输入: 包括
inputs()
、distorted_inputs()
等一些操作,分别用于读取CIFAR的图像并进行预处理,做为后续评估和训练的输入; - 模型预测: 包括
inference()
等一些操作,用于进行统计计算,比如在提供的图像进行分类; adds operations that perform inference, i.e. classification, on supplied images. - 模型训练: 包括
loss()
andtrain()
等一些操作,用于计算损失、计算梯度、进行变量更新以及呈现最终结果
1、模型输入
白化处理---使得模型对图片的动态范围变化不敏感
一幅图像最终成像会受环境照明强度、物体反射、拍摄相机等多因素的影响。为了能够图像的中包含的那些不受外界影响的恒定信息,我们需要对图像进行白化处理。一般为了去除这些因素的影响,我们将它的像素值转化成零均值和单位方差。
采取了一系列随机变换的方法来人为的增加数据集的大小:
2、模型预测
模型的预测流程由inference()
构造,该函数会添加必要的操作步骤用于计算预测值的 logits,其对应的模型组织方式如下所示:
3、模型训练
训练一个可进行N维分类的网络的常用方法是使用 多项式逻辑回归 ,又被叫做 softmax 回归 。Softmax 回归在网络的输出层上附加了一个 softmax nonlinearity,并且计算归一化的预测值和label的 1-hot encoding 的 交叉熵 。在正则化过程中,我们会对所有学习变量应用 权重衰减损失 。模型的目标函数是求交叉熵损失和所有权重衰减项的和,loss()
函数的返回值就是这个值。