日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Python读入CIFAR-10数据库

發(fā)布時間:2025/3/15 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python读入CIFAR-10数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

https://www.cnblogs.com/hans209/p/6919851.html


CIFAR-10可以去http://www.cs.toronto.edu/~kriz/cifar.html下載(記得下載python格式)

?

CIFAR-10數(shù)據(jù)組成:

訓(xùn)練集和測試集分別有50000和10000張圖片,RGB3通道,尺寸32×32,如下為data_batch_1的組成(使用pickle.load函數(shù)):

?

?可以看到有四部分,清晰明了

?

對于CIFAR-10數(shù)據(jù)的讀取,函數(shù)有兩個,如下所示

1 def load_CIFAR_batch(filename): 2 """ load single batch of cifar """ 3 with open(filename, 'rb') as f: 4 datadict = pickle.load(f,encoding='latin1') 5 X = datadict['data'] 6 Y = datadict['labels'] 7 X = X.reshape(10000, 3, 32,32).transpose(0,2,3,1).astype("float") 8 Y = np.array(Y) 9 return X, Y

?

——————————————————————————————————————————————

1 def load_CIFAR10(ROOT):2 """ load all of cifar """3 xs = []4 ys = []5 for b in range(1,6):6 f = os.path.join(ROOT, 'data_batch_%d' % (b, ))7 X, Y = load_CIFAR_batch(f)8 xs.append(X)  9 ys.append(Y) 10 Xtr = np.concatenate(xs)#使變成行向量 11 Ytr = np.concatenate(ys) 12 del X, Y 13 Xte, Yte = load_CIFAR_batch(os.path.join(ROOT, 'test_batch')) 14 return Xtr, Ytr, Xte, Yte

?

——————————————————————————————————————————————

其中有幾個語句要注意一下:

X = X.reshape(10000, 3, 32, 32).transpose(0, 2, 3, 1).astype("float")

起初,X的size為(10000, 3072(3*32*32))。首先reshape很好理解,最后astype的格式轉(zhuǎn)換也很好理解。

可是為什么要調(diào)用transpose,轉(zhuǎn)置軸呢?就我認(rèn)為只需要把一幅圖像轉(zhuǎn)成行向量就可以了。是為了方便檢索嗎?

?

xs.append(X)將5個batch整合起來;np.concatenate(xs)使得最終Xtr的尺寸為(50000,32,32,3)

?

當(dāng)然還需要一步Xtr_rows = Xtr.reshape(Xtr.shape[0], 32 * 32 * 3)使得每一副圖像稱為一個行向量,最終就有了50000個行向量(Xtr_rows的尺寸為(50000,3072))

——————————————————————————————————————————————


與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Python读入CIFAR-10数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。