相信很多上過cs231n課程的人都嘗試過檢視cifar10資料集,但是問題特別多,而且報錯。下面給出完整的**,這個是修改過的。
import numpy as np
import os
defload_cifar_batch
(filename):
with open(filename,'rb') as f :
#這裡面和原來的不一樣,原來的,encoding='bytes'但是會報錯
datadict=pickle.load(f,encoding='latin1')
x=datadict[b'data']
y=datadict[b'labels']
x=x.reshape(10000,3,32,32).transpose(0,2,3,1).astype('float')
y=np.array(y)
return x,y
defload_cifar10
(root):
xs=ys=
#range(1,6)的話資料集會特別大大概需要空間2g左右,如果你不想弄這麼多就直接range(1,2)讀取乙個資料集的資料
for b in range(1,6):
f=os.path.join(root,'data_batch_%d' % (b,))
x,y=load_cifar_batch(f)
xtrain=np.concatenate(xs) #1
ytrain=np.concatenate(ys)
del x ,y
xtest,ytest=load_cifar_batch(os.path.join(root,'test_batch')) #2
return xtrain,ytrain,xtest,ytest
#1 將5份訓練集轉成陣列。
#2 將1分測試集轉化為資料
將這份這份**另存為data_utils.py接下來就要進行模型的訓練和**。
下面給出資料集載入模型**
import numpy as np
from data_utils import load_cifar10
import matplotlib.pyplot as plt
from knn import knearestneighbor
x_train,y_train,x_test,y_test=load_cifar10('cifar-10-batches-py')
print('training data shape:',x_train.shape)
print('training labels shape:',y_train.shape)
print('test data shape:',x_test.shape)
print('test labels shape:',y_test.shape)
結果如下
training data shape: (50000, 32, 32, 3)
training labels shape: (50000,)
test data shape: (10000, 32, 32, 3)
test labels shape: (10000,)
最後怎麼展示,下面是展示的**
classes=['plane','car','bird','cat','deer','dog','frog','horse','ship','truck']
num_claesses=len(classes)
samples_per_class=7
for y ,cls in enumerate(classes):
idxs=np.flatnonzero(y_train==y)
idxs=np.random.choice(idxs,samples_per_class,replace=false)
for i ,idx in enumerate(idxs):
plt_idx=i*num_claesses+y+1
plt.subplot(samples_per_class,num_claesses,plt_idx)
plt.imshow(x_train[idx].astype('uint8'))
plt.axis('off')
if i ==0:
plt.title(cls)
plt.show()
用python怎麼讀檔案 python怎麼讀檔案
python怎麼讀檔案?首先,在桌面上建立乙個txt文件,在上面輸入以下內容 你好。hello.abcdefg 啊不錯的風格 推薦 python教程 檢視檔案的屬性,獲取檔案的絕對路徑 d hintsoft hint w7 desktop 檔名是 新建文字文件.txt,用python開啟這個檔案,並...
python反射怎麼用
反射 通過字串的形式對 物件 進行增刪改查 class a object def init self self.name sath def get self print get a a setattr a,age 37 setattr object,attribute,value object.at...
Python怎麼檢視幫助資訊
help 一 不同的環境下 1.互動模式下 命令列 檢視模組的幫助資訊 python view plain copy print?import pickle help pickle 可以看到詳細資訊,more 上回車,滾動資訊。q 退出幫助 2.ide裡,需要做乙個輸出。python view pl...