在TensorFlow的源码中,MNIST数据集的读取操作在contrib\learn\python\learn\datasets\data\mnist.py中。
主要看第189行的read_data_sets函数:
def read_data_sets(train_dir,
fake_data=False,
one_hot=False,
dtype=dtypes.float32,
reshape=True,
validation_size=5000):
train_dir为数据集在文件夹的位置,在这里为tensorflow\examples\tutorials\mnist\MNIST_data;
在官方教程中提到fake_data标记是用于单元测试的,读者可以不必理会;
one_hot为one_hot编码,即独热码,作用是将状态值编码成状态向量,例如,数字状态共有0~9这10种,对于数字7,将它进行one_hot编码后为[0 0 0 0 0 0 0 1 0 0],这样使得状态对于计算机来说更加明确,对于矩阵操作也更加高效。
dtype的作用是将图像像素点的灰度值从[0, 255]转变为[0.0, 1.0]。
reshape的作用是将图像的形状从[num examples, rows, columns, depth]