MNIST是一個非常有名的手寫體數字識別數據集,TensorFlow對MNIST數據集做了封裝,可以直接調用。MNIST數據集包含了60000張圖片作為訓練數據,10000張圖片作為測試數據,每一張圖片都代表了0-9中的一個數字,圖片大小都是28*28。雖然這個數據集只提供了訓練和測試數據,但是為了驗證訓練網絡的效果,一般從訓練數據中劃分出一部分數據作為驗證數據,測試神經網絡模型在不同參數下的效果。TensorFlow提供了一個類來處理MNIST數據。
代碼如下:
from tensorflow.examples.tutorials.mnist import input_data
#載入MNIST數據集,如果指定地址下沒有下載好的數據,那么TensorFlow會自動在網站上下載數據
mnist = input_data.read_data_sets("/tensorflow_google")
#打印訓練數據大小
print("Training data size:", mnist.train.num_examples)
#打印驗證集大小
print("Validating data size:", mnist.validation.num_examples)
#打印測試集大小
print("Testing data size:", mnist.test.num_examples)
#打印訓練樣例
print("Example training data", mnist.train.images[0])
#打印訓練樣例的標簽
print("Example training data label:", mnist.train.labels[0])
>>Training data size: 55000
Validating data size: 5000
Testing data size: 10000
Example training data [ 0. ... 0. ]
Example training data label: 7
處理后的每一張圖片是一個長度為784(28*28)的一維數組,數組中的數據為圖片的像素,像素元素取值范圍為0-1,代表了顏色的深淺,其中0為白色,1為黑色。為了可以使用隨機梯度下降,input_data.read_data_sets生成的類還提供了mnist.train.next_batch,可以從素有的訓練數據中讀取一小部分作為一個訓練batch,例如:
batch_size = 200
xs, ys = mnist.train.next_batch(batch_size) #xs是數據,ys是對應的標簽
print("X shape", xs.shape)
print("Y shape", ys.shape)
>>X shape (200, 784) #X是200*784的數組
Y shape (200,) #Y是200維的一維數組
以上這篇使用TensorFlow直接獲取處理MNIST數據方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。