源碼: tensorflow/g3doc/tutorials/mnist/php
本教程的目標是展現如何下載用於手寫數字分類問題所要用到的(經典)MNIST數據集。html
本教程須要使用如下文件:python
文件 | 目的 |
---|---|
input_data.py |
下載用於訓練和測試的MNIST數據集的源碼 |
MNIST是在機器學習領域中的一個經典問題。該問題解決的是把28x28像素的灰度手寫數字圖片識別爲相應的數字,其中數字的範圍從0到9.git
更多詳情, 請參考 Yann LeCun's MNIST page 或 Chris Olah's visualizations of MNIST.github
Yann LeCun's MNIST page 也提供了訓練集與測試集數據的下載。機器學習
文件 | 內容 |
---|---|
train-images-idx3-ubyte.gz |
訓練集圖片 - 55000 張 訓練圖片, 5000 張 驗證圖片 |
train-labels-idx1-ubyte.gz |
訓練集圖片對應的數字標籤 |
t10k-images-idx3-ubyte.gz |
測試集圖片 - 10000 張 圖片 |
t10k-labels-idx1-ubyte.gz |
測試集圖片對應的數字標籤 |
在 input_data.py
文件中, maybe_download()
函數能夠確保這些訓練數據下載到本地文件夾中。ide
文件夾的名字在 fully_connected_feed.py
文件的頂部由一個標記變量指定,你能夠根據本身的須要進行修改。函數
這些文件自己並無使用標準的圖片格式儲存,而且須要使用input_data.py
文件中extract_images()
和extract_labels()
函數來手動解壓(頁面中有相關說明)。post
圖片數據將被解壓成2維的tensor:[image index, pixel index]
其中每一項表示某一圖片中特定像素的強度值, 範圍從 [0, 255]
到 [-0.5, 0.5]
。 "image index"表明數據集中圖片的編號, 從0到數據集的上限值。"pixel index"表明該圖片中像素點得個數, 從0到圖片的像素上限值。學習
以train-*
開頭的文件中包括60000個樣本,其中分割出55000個樣本做爲訓練集,其他的5000個樣本做爲驗證集。由於全部數據集中28x28像素的灰度圖片的尺寸爲784,因此訓練集輸出的tensor格式爲[55000, 784]
。
數字標籤數據被解壓稱1維的tensor: [image index]
,它定義了每一個樣本數值的類別分類。對於訓練集的標籤來講,這個數據規模就是:[55000]
。
底層的源碼將會執行下載、解壓、重構圖片和標籤數據來組成如下的數據集對象:
數據集 | 目的 |
---|---|
data_sets.train |
55000 組 圖片和標籤, 用於訓練。 |
data_sets.validation |
5000 組 圖片和標籤, 用於迭代驗證訓練的準確性。 |
data_sets.test |
10000 組 圖片和標籤, 用於最終測試訓練的準確性。 |
執行read_data_sets()
函數將會返回一個DataSet
實例,其中包含了以上三個數據集。函數DataSet.next_batch()
是用於獲取以batch_size
爲大小的一個元組,其中包含了一組圖片和標籤,該元組會被用於當前的TensorFlow運算會話中。
images_feed, labels_feed = data_set.next_batch(FLAGS.batch_size)
原文地址:MNIST Data Download 翻譯:btpeter 校對:waiwaizheng