暑期 tensorflow+CNN+mnist
- kaggle官网的mnist数据集,格式为csv。
- 图像像素点数据归一化,减少浮动差异。
- 根据预先计算好的数据指标,进行设计。
- 标签进行独热编码。
- 划分数据集为:train、val。
- 初始化卷积层和全连接层的权重、偏置等参数。
- 设计代价函数,进行优化。
- 训练、验证。
关于交叉熵函数
有很多不同的度量方法在数据上训练评判。一般的方法是均方或欧氏距离。当然这里也有对神经网络的其它方法,如交叉熵代价函数。该算法计算公式如下图:
- 在公式中,y是预测生成的概率分布,y’是训练数据集中标注的真实分布。如果不探讨公式背后的原理的话,我们仅需了解当两个分布完全一致时,此时函数取得最小值。
代码的解说有以下参考博客
- http://blog.csdn.net/memoryjdch/article/details/75220498
- http://blog.csdn.net/tianwangclown/article/details/56488647
- http://www.jianshu.com/p/1f1d9e19373f
- https://www.kaggle.com/kakauandme/tensorflow-deep-nn/notebook
- http://www.cnblogs.com/qscqesze/p/7056494.html
代码的一个小疑问
- 下图代码里的的if(VALIDATION_SIZE) : else:条件是什么意思什么用意呢?
- 学习交流群里大神认为可能是:数据集中的validation集如果分配了数据,则执行两种精确度的计算;否则只打印训练精确度。