閱讀283 返回首頁    go 技術社區[雲棲]


TensorFlow教程之完整教程 2.2MNIST數據下載

本文檔為TensorFlow參考文檔,本轉載已得到TensorFlow中文社區授權。


MNIST 數據下載

本教程的目標是展示如何下載用於手寫數字分類問題所要用到的(經典)MNIST數據集。

教程 文件

本教程需要使用以下文件:

文件 目的
input_data.py 下載用於訓練和測試的MNIST數據集的源碼

準備數據

MNIST是在機器學習領域中的一個經典問題。該問題解決的是把28x28像素的灰度手寫數字圖片識別為相應的數字,其中數字的範圍從0到9.

MNIST Digits

下載

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() 函數可以確保這些訓練數據下載到本地文件夾中。

文件夾的名字在 fully_connected_feed.py 文件的頂部由一個標記變量指定,你可以根據自己的需要進行修改。

解壓 與 重構

這些文件本身並沒有使用標準的圖片格式儲存,並且需要使用input_data.py文件中extract_images()extract_labels()函數來手動解壓(頁麵中有相關說明)。

圖片數據將被解壓成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)

最後更新:2017-08-22 15:33:11

  上一篇:go  Web服務器初始化腳本
  下一篇:go  小猿搜題如何發現競品的陰謀?知情人這樣說