KNN例子

參考CS231n,將KNN 跑起來了懈万,成功將系統(tǒng)搞死,钞速,內(nèi)存和計(jì)算能力開銷太大。

以下代碼 切記不用輕易跑苹威。驾凶。


數(shù)據(jù)集

http://www.cs.toronto.edu/~kriz/cifar.html


code:


import os

import sys

import numpy as np

import pickle

def load_CIFAR_batch(filename):

"""

cifar-10數(shù)據(jù)集是分batch存儲(chǔ)的,這是載入單個(gè)batch

@參數(shù) filename: cifar文件名

@r返回值: X, Y: cifar batch中的 data 和 labels

"""

with open(filename,"rb") as f :

datadict = pickle.load(f,encoding='iso-8859-1')

print(filename)

X=datadict['data']

Y=datadict['labels']

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

Y=np.array(Y)

return X, Y

def load_CIFAR10(ROOT):

"""

讀取載入整個(gè) CIFAR-10 數(shù)據(jù)集

@參數(shù) ROOT: 根目錄名

@return: X_train, Y_train: 訓(xùn)練集 data 和 labels

X_test, Y_test: 測(cè)試集 data 和 labels

"""

xs=[]

ys=[]

for b in range(1,6):

f=os.path.join(ROOT, "data_batch_%d" % (b, ))

X, Y=load_CIFAR_batch(f)

xs.append(X)

ys.append(Y)

X_train=np.concatenate(xs)

Y_train=np.concatenate(ys)

del X, Y

X_test, Y_test=load_CIFAR_batch(os.path.join(ROOT, "test_batch"))

return X_train, Y_train, X_test, Y_test

# 載入訓(xùn)練和測(cè)試數(shù)據(jù)集

X_train, Y_train, X_test, Y_test = load_CIFAR10('data/cifar/')

# 把32*32*3的多維數(shù)組展平

Xtr_rows = X_train.reshape(X_train.shape[0], 32 * 32 * 3) # Xtr_rows : 50000 x 3072

Xte_rows = X_test.reshape(X_test.shape[0], 32 * 32 * 3) # Xte_rows : 10000 x 3072

class NearestNeighbor:

def __init__(self):

pass

def train(self, X, y):

"""

這個(gè)地方的訓(xùn)練其實(shí)就是把所有的已有圖片讀取進(jìn)來 -_-||

"""

# the nearest neighbor classifier simply remembers all the training data

self.Xtr = X

self.ytr = y

def predict(self, X):

"""

所謂的預(yù)測(cè)過程其實(shí)就是掃描所有訓(xùn)練集中的圖片窟哺,計(jì)算距離技肩,取最小的距離對(duì)應(yīng)圖片的類目

"""

num_test = X.shape[0]

# 要保證維度一致哦

Ypred = np.zeros(num_test, dtype = self.ytr.dtype)

# 把訓(xùn)練集掃一遍 -_-||

for i in range(num_test):

# 計(jì)算l1距離,并找到最近的圖片

distances = np.sum(np.abs(self.Xtr - X[i,:]), axis = 1)

min_index = np.argmin(distances) # 取最近圖片的下標(biāo)

Ypred[i] = self.ytr[min_index] # 記錄下label

return Ypred

nn = NearestNeighbor() # 初始化一個(gè)最近鄰對(duì)象

nn.train(Xtr_rows, Y_train) # 訓(xùn)練...其實(shí)就是讀取訓(xùn)練集

Yte_predict = nn.predict(Xte_rows) # 預(yù)測(cè)

# 比對(duì)標(biāo)準(zhǔn)答案旋奢,計(jì)算準(zhǔn)確率

print ('accuracy: %f' % ( np.mean(Yte_predict == Y_test)))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末然痊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子剧浸,更是在濱河造成了極大的恐慌矗钟,老刑警劉巖嫌变,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異秸应,居然都是意外死亡碑宴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門祸挪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贿条,你說我怎么就攤上這事增热。” “怎么了峻仇?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凡蚜。 經(jīng)常有香客問我吭从,道長朝蜘,這世上最難降的妖魔是什么涩金? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任鸭廷,我火速辦了婚禮枣抱,結(jié)果婚禮上辆床,老公的妹妹穿的比我還像新娘桅狠。我一直安慰自己轿秧,他們只是感情好咨堤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著驱还,像睡著了一般。 火紅的嫁衣襯著肌膚如雪议蟆。 梳的紋絲不亂的頭發(fā)上萎战,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音蚂维,去河邊找鬼。 笑死蔚约,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炊琉。 我是一名探鬼主播又活,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼柳骄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起舔清,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤曲初,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后臼婆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡故响,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伪冰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片樟蠕。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖寨辩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捣染,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布榕栏,位于F島的核電站蕾各,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏式曲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一兰伤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧敦腔,春花似錦恨溜、人聲如沸符衔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽形帮。三九已至,卻和暖如春沃缘,著一層夾襖步出監(jiān)牢的瞬間则吟,已是汗流浹背槐臀。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國打工水慨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人晰洒。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓啥箭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親急侥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容