TensorFlow Tutorial (MNIST Data Download) https://www.tensorflow.org/versions/master/tutorials/mnist/download/index.html#mnist-data-download It is a translation of. We look forward to pointing out any translation errors.
Code: tensorflow / examples / tutorials / mnist /
The purpose of this tutorial is to show you how to download the dataset files needed to classify handwritten numbers using the (classical) MNIST dataset.
In this tutorial, we will refer to the following files:
File | Purpose |
---|---|
input_data.py | Code to download the MNIST dataset for training and evaluation. |
MNIST is a classic problem in machine learning. The problem is that you look at a grayscale 28x28 pixel image of handwritten numbers and decide which of the numbers 0 to 9 the image represents.
For more information, see Yann LeCun's MNIST Page (http://yann.lecun.com/exdb/mnist/) or Chris Olah's MNIST Visualization (http://colah.github.io/posts/) See 2014-10-Visualizing-MNIST /).
The Yann LeCun MNIST page (http://yann.lecun.com/exdb/mnist/) hosts training and test data for download.
File | Purpose |
---|---|
train-images-idx3-ubyte.gz | Training set image-55000 training images, 5000 verification images |
train-labels-idx1-ubyte.gz | Training set label corresponding to the image |
t10k-images-idx3-ubyte.gz | Test set image-10000 images |
t10k-labels-idx1-ubyte.gz | Test set label corresponding to the image |
The maybe_download () function in the input_data.py file ensures that these files have been downloaded to the local data folder for training.
The folder name is specified by a flag variable at the beginning of the fully_connected_feed.py file and can be changed as needed.
The file itself is not in standard image format, but is manually unzipped (following the website's instructions) with the extract_images () and extract_labels () functions in input_data.py.
Image data is extracted into a 2D tensor with Image Index, Pixel Index. Here, each element is the intensity value of the pixel in the image indicated by the index, rescaled from [0, 255] to [-0.5, 0.5]. The "image index" corresponds to the images in the dataset and counts up from 0 to the size of the dataset. And the "pixel index" corresponds to a particular pixel in the image and ranges from 0 to the number of pixels in the image.
The 60000 samples in the train- * file are then split into 55000 samples for training and 5000 samples for validation. The image size of all 28x28 pixel grayscale images in the dataset is 784, so the shape of the output tensor for the training set image is [55000, 784].
The label data is extracted into an Image Index 1D tensor valued by the class identifier of each sample. Therefore, for the training set label, the shape of the tensor is [55000].
The underlying code downloads, unzips, and reshapes images and labels for the following datasets:
data set | Purpose |
---|---|
data_sets.train | 55000 images and labels for main training. |
data_sets.validation | 5000 images and labels for iterative verification of training accuracy. |
data_sets.test | 10000 images and labels for final test of trained accuracy. |
The read_data_sets () function returns a dictionary that holds a DataSet instance for each of these three datasets. The DataSet.next_batch () method is used to fetch a tuple consisting of a list of batch_size sized images and labels. These lists are fed to a running TensorFlow session.
images_feed, labels_feed = data_set.next_batch(FLAGS.batch_size)
Recommended Posts