python3 cifar10圖片生成
阿新 • • 發佈:2018-11-05
該資料集共有60000張彩色影象,這些影象是32*32,分為10個類,每類6000張圖。這裡面有50000張用於訓練,構成了5個訓練批,每一批10000張圖;另外10000用於測試,單獨構成一批。測試批的資料裡,取自10類中的每一類,每一類隨機取1000張。抽剩下的就隨機排列組成了訓練批。注意一個訓練批中的各類影象並不一定數量相同,總的來看訓練批,每一類都有5000張圖。
python3程式碼如下:
#encoding:utf-8 from scipy.misc import imsave import numpy as np # 解壓縮,返回解壓後的字典 def unpickle(file): import pickle fo = open(file, 'rb') dict = pickle.load(fo,encoding='bytes') fo.close() return dict # 生成訓練集圖片,如果需要png格式,只需要改圖片字尾名即可。 for j in range(2, 6): dataName = "data_batch_" + str(j) # 讀取當前目錄下的data_batch12345檔案,dataName其實也是data_batch檔案的路徑,本文和指令碼檔案在同一目錄下。 Xtr = unpickle(dataName) print(dataName + " is loading...") for i in range(0, 10000): img = np.reshape(Xtr[b'data'][i], (3, 32, 32)) # Xtr['data']為圖片二進位制資料 img = img.transpose(1, 2, 0) # 讀取image picName = 'train/' + str(Xtr[b'labels'][i]) + '_' + str(i + (j - 1)*10000) + '.jpg' # Xtr['labels']為圖片的標籤,值範圍0-9,本文中,train資料夾需要存在,並與指令碼檔案在同一目錄下。 imsave(picName, img) print(dataName + " loaded.") print( "test_batch is loading...") # 生成測試集圖片 testXtr = unpickle("test_batch") for i in range(0, 10000): img = np.reshape(testXtr[b'data'][i], (3, 32, 32)) img = img.transpose(1, 2, 0) picName = 'test/' + str(testXtr[b'labels'][i]) + '_' + str(i) + '.jpg' imsave(picName, img) print( "test_batch loaded.")