
Node.js 后端開發指南:搭建、優化與部署
CIFAR-10數據集被劃分為5個訓練batch和1個測試batch,每個batch包含10000張圖片。測試集的圖片是從每個類別中隨機挑選的1000張圖片組成的,而訓練集的圖片則是以隨機順序包含剩下的50000張圖片。需要注意的是,一些訓練集batch可能會出現包含某一類圖片比其他類的圖片數量多的情況。
CIFAR-10數據集的特點是圖像尺寸較小,但類別豐富,且每個類別的樣本數量均衡。這使得CIFAR-10成為一個理想的圖像識別基準數據集,尤其是在評估卷積神經網絡等深度學習模型時。
官方提供了多個版本的CIFAR-10數據集,包括Python版本、Matlab版本和二進制版本。這里我們下載Python版本。下載完成后,解壓得到包含以下文件的文件夾:
每個batch文件包含一個Python字典結構,包含以下元素:
真正重要的兩個關鍵字是data和labels,剩下的兩個并不是十分重要。
import numpy as np
import pickle
def unpickle(file):
with open(file, 'rb') as fo:
dict = pickle.load(fo, encoding='bytes')
return dict
import numpy as np
def GetPhoto(pixel):
assert len(pixel) == 3072
r = pixel[0:1024]; r = np.reshape(r, [32, 32, 1])
g = pixel[1024:2048]; g = np.reshape(g, [32, 32, 1])
b = pixel[2048:3072]; b = np.reshape(b, [32, 32, 1])
photo = np.concatenate([r, g, b], -1)
return photo
import numpy as np
def GetTrainDataByLabel(label):
batch_label = []
labels = []
data = []
filenames = []
for i in range(1, 1+5):
batch_label.append(unpickle(