源碼: tensorflow/g3doc/tutorials/mnist/
本教程的目標(biāo)是展示如何下載用于手寫數(shù)字分類問題所要用到的(經(jīng)典)MNIST數(shù)據(jù)集。
本教程需要使用以下文件:
| 文件 | 目的 |
|---|---|
input_data.py |
下載用于訓(xùn)練和測試的MNIST數(shù)據(jù)集的源碼 |
MNIST是在機(jī)器學(xué)習(xí)領(lǐng)域中的一個(gè)經(jīng)典問題。該問題解決的是把28x28像素的灰度手寫數(shù)字圖片識(shí)別為相應(yīng)的數(shù)字,其中數(shù)字的范圍從0到9.
http://wiki.jikexueyuan.com/project/tensorflow-zh/images/mnist_digits.png" alt="MNIST Digits" title="MNIST Digits" />
更多詳情, 請參考 Yann LeCun's MNIST page 或 Chris Olah's visualizations of MNIST.
Yann LeCun's MNIST page 也提供了訓(xùn)練集與測試集數(shù)據(jù)的下載。
| 文件 | 內(nèi)容 |
|---|---|
train-images-idx3-ubyte.gz |
訓(xùn)練集圖片 - 55000 張 訓(xùn)練圖片, 5000 張 驗(yàn)證圖片 |
train-labels-idx1-ubyte.gz |
訓(xùn)練集圖片對應(yīng)的數(shù)字標(biāo)簽 |
t10k-images-idx3-ubyte.gz |
測試集圖片 - 10000 張 圖片 |
t10k-labels-idx1-ubyte.gz |
測試集圖片對應(yīng)的數(shù)字標(biāo)簽 |
在 input_data.py 文件中, maybe_download() 函數(shù)可以確保這些訓(xùn)練數(shù)據(jù)下載到本地文件夾中。
文件夾的名字在
fully_connected_feed.py 文件的頂部由一個(gè)標(biāo)記變量指定,你可以根據(jù)自己的需要進(jìn)行修改。
這些文件本身并沒有使用標(biāo)準(zhǔn)的圖片格式儲(chǔ)存,并且需要使用input_data.py文件中extract_images() 和extract_labels()函數(shù)來手動(dòng)解壓(頁面中有相關(guān)說明)。
圖片數(shù)據(jù)將被解壓成2維的tensor:[image index, pixel index]
其中每一項(xiàng)表示某一圖片中特定像素的強(qiáng)度值, 范圍從 [0, 255] 到 [-0.5, 0.5]。 "image index"代表數(shù)據(jù)集中圖片的編號(hào), 從0到數(shù)據(jù)集的上限值。"pixel index"代表該圖片中像素點(diǎn)得個(gè)數(shù), 從0到圖片的像素上限值。
以train-*開頭的文件中包括60000個(gè)樣本,其中分割出55000個(gè)樣本作為訓(xùn)練集,其余的5000個(gè)樣本作為驗(yàn)證集。因?yàn)樗袛?shù)據(jù)集中28x28像素的灰度圖片的尺寸為784,所以訓(xùn)練集輸出的tensor格式為[55000, 784]。
數(shù)字標(biāo)簽數(shù)據(jù)被解壓稱1維的tensor: [image index],它定義了每個(gè)樣本數(shù)值的類別分類。對于訓(xùn)練集的標(biāo)簽來說,這個(gè)數(shù)據(jù)規(guī)模就是:[55000]。
底層的源碼將會(huì)執(zhí)行下載、解壓、重構(gòu)圖片和標(biāo)簽數(shù)據(jù)來組成以下的數(shù)據(jù)集對象:
| 數(shù)據(jù)集 | 目的 |
|---|---|
data_sets.train |
55000 組 圖片和標(biāo)簽, 用于訓(xùn)練。 |
data_sets.validation |
5000 組 圖片和標(biāo)簽, 用于迭代驗(yàn)證訓(xùn)練的準(zhǔn)確性。 |
data_sets.test |
10000 組 圖片和標(biāo)簽, 用于最終測試訓(xùn)練的準(zhǔn)確性。 |
執(zhí)行read_data_sets()函數(shù)將會(huì)返回一個(gè)DataSet實(shí)例,其中包含了以上三個(gè)數(shù)據(jù)集。函數(shù)DataSet.next_batch()是用于獲取以batch_size為大小的一個(gè)元組,其中包含了一組圖片和標(biāo)簽,該元組會(huì)被用于當(dāng)前的TensorFlow運(yùn)算會(huì)話中。
images_feed, labels_feed = data_set.next_batch(FLAGS.batch_size)
原文地址:MNIST Data Download 翻譯:btpeter 校對:waiwaizheng