参考资料: 1、tensorflow中文社区 mnist机器学习入门(分类手写数字) http://tensorfly.cn/tfdoc/tutorials/mnist_beginners.html
2、英文版mnist机器学习入门(分类服装图片) https://tensorflow.google.cn/tutorials/keras/basic_classification
3、Yann Lecun的原始网站 http://yann.lecun.com/exdb/mnist/
学习内容: 1、第一个bug,导入数据 首先要从Yann的网站下载四个数据文件,存在MNIST_data目录中。 老版的命令,和新版的官网命令都无法使用。新版的问题是https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/examples/tutorials/mnist/input_data.py 网址被墙 修改后的命令使用了新的有效网址 from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets(“MNIST_data/”, one_hot=True) 学习import命令的官方指南 https://docs.python.org/3.5/reference/import.html https://docs.python.org/3.5/reference/simple_stmts.html#import
我把input_data.py存在文件夹内,使用 import input_data mnist = input_data.read_data_sets(“MNIST_data/”, one_hot=True) 同样实现了数据的导入
input_data.py文件:
#Functions for downloading and reading MNIST data. from future import absolute_import from future import division from future import print_function import gzip import os import tempfile import numpy from six.moves import urllib from six.moves import xrange # pylint: disable=redefined-builtin import tensorflow as tf from tensorflow.contrib.learn.python.learn.datasets.mnist import read_data_sets
2、https://tensorflow.google.cn/tutorials/keras/basic_classification 阅读 a、图片格式说明,警惕浏览器自动解压,非标准格式,一般软件无法浏览,图片格式说明在页底 b、NIST原始图像是20×20灰度图,经过标准化和去锯齿处理后,按中心位置存在28×28网格中。 c、在基于模板的算法中(如svm N临近),使用边框回归比质心效果好。如果有这方面的预处理,要说明 d、MNIST源自NIST的 Special Database 3 和 Special Database 1, 包含 binary images of handwritten digits.。NIST 最初设计,SD-3 是 training set,SD-1是test set。但SD-3比SD-1更清楚容易识别. 因为SD-3在Census Bureau employees中收集,而 SD-1在高中生中收集. 实验要求结果独立于训练集和测试集的选择. 所以做了一个新的混合NIST’s datasets.
MNIST 训练集由 30,000个SD-3和 30,000个SD-1组成. 测试集由5,000 SD-3 和5,000 SD-1组成. 60,000训练集大概由 250 写手. 保证训练和测试集写手不耦合。
SD-1 包括58,527图500写手,每个数字可以追溯写手。把SD-1分成两部分:前 250 写手写的放入新训练集,剩下的250 写手的放test set。这样我们每个集合有 30,000样本。新训练集加入了SD-3从pattern[0]开始的样本作补充,形成完整的包含60,000 training patterns的集合。同样,新测试集放入SD-3从 pattern[35,000]开始的样本作补充,形成完整的60,000 test patterns。在本网站,只有10,000样本的测试子集 (5,000 from SD-1 and 5,000 from SD-3)。完整集合60,000训练样本集合可以得到.
e、在这个training set and test set测试过的算法很多. 有一些算法做了斜偏校正(通过计算形状的主轴,转成垂直)。有些实验在训练集上做了人工畸变,包括随机漂移 缩放 压缩。
f、下面是论文列表和图像格式说明
3代码参考 1、http://tensorfly.cn/tfdoc/tutorials/mnist_beginners.html 2、《深度学习之tensorflow入门原理与进阶实战》 二者的代价函数都使用了交叉熵,然后使用梯度下降优化