資源簡(jiǎn)介
基于Python3.7實(shí)現(xiàn)的手寫識(shí)別功能,調(diào)用sklearn模塊中的神經(jīng)網(wǎng)絡(luò)算法。包括源程序、訓(xùn)練數(shù)據(jù)、測(cè)試數(shù)據(jù)和測(cè)試結(jié)果。

代碼片段和文件信息
#?coding=gbk
import?numpy?as?np?????
from?os?import?listdir?
from?sklearn.neural_network?import?MLPClassifier?
#將加載的32*32圖片矩陣展開(kāi)成一列向量
def?img2vector(fileName):????
????retMat?=?np.zeros([1024]int)?#定義返回的矩陣,大小為1*1024
????fr?=?open(fileName)???????????#打開(kāi)包含32*32大小的數(shù)字文件?
????lines?=?fr.readlines()???????
????for?i?in?range(32):???????????
????????for?j?in?range(32):???????#并將01數(shù)字存放在retMat中?????
????????????retMat[i*32+j]?=?lines[i][j]????
????return?retMat
#加載訓(xùn)練數(shù)據(jù)的方法
def?readDataSet(path):????
????fileList?=?listdir(path)???
????numFiles?=?len(fileList)???
????dataSet?=?np.zeros([numFiles1024]int)?#用于存放所有的數(shù)字文件
????hwLabels?=?np.zeros([numFiles10])??????#用于存放對(duì)應(yīng)的one-hot標(biāo)簽
????for?i?in?range(numFiles):???
????????filePath?=?fileList[i]??#獲取文件名稱/路徑??????
????????digit?=?int(filePath.split(‘_‘)[0])??#通過(guò)文件名獲取標(biāo)簽??????
????????hwLabels[i][digit]?=?1.0????????#將對(duì)應(yīng)的one-hot標(biāo)簽置1
????????dataSet[i]?=?img2vector(path?+‘/‘+filePath)???
????return?dataSethwLabels
?
#加載訓(xùn)練集
train_dataSet?train_hwLabels?=?readDataSet(‘trainingDigits‘)
#構(gòu)建神經(jīng)網(wǎng)絡(luò)
clf?=?MLPClassifier(hidden_layer_sizes=(100)
????????????????????activation=‘logistic‘?solver=‘a(chǎn)dam‘
????????????????????learning_rate_init?=?0.0001?max_iter=1500)
print(clf)
#訓(xùn)練神經(jīng)網(wǎng)絡(luò)
clf.fit(train_dataSettrain_hwLabels)
?
#加載測(cè)試集
dataSethwLabels?=?readDataSet(‘testDigits‘)
res?=?clf.predict(dataSet)???#使用訓(xùn)練好的MLP對(duì)測(cè)試集進(jìn)行預(yù)測(cè)
error_num?=?0????????????????#統(tǒng)計(jì)預(yù)測(cè)錯(cuò)誤的數(shù)目
num?=?len(dataSet)???????????#測(cè)試集的數(shù)目
for?i?in?range(num):?????????#遍歷預(yù)測(cè)結(jié)果
????#比較長(zhǎng)度為10的數(shù)組,返回包含01的數(shù)組,0為不同,1為相同
????#若預(yù)測(cè)結(jié)果與真實(shí)結(jié)果相同,則10個(gè)數(shù)字全為1,否則不全為1
????if?np.sum(res[i]?==?hwLabels[i])?10:?
????????error_num?+=?1?????????????????????
print(“Total?num:“num“?Wrong?num:“?\
error_num“??WrongRate:“error_num?/?float(num))
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????28979??2018-07-12?01:29??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\100_1000.PNG
?????文件??????24124??2018-07-12?01:34??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\100_1500.PNG
?????文件??????24430??2018-07-12?00:00??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\100_2000.PNG
?????文件??????28919??2018-07-12?01:15??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\100_500.PNG
?????文件??????24388??2018-07-12?00:11??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\200_2000.PNG
?????文件??????24548??2018-07-12?00:02??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\50_2000.PNG
?????文件???????1993??2018-07-12?01:29??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\demo.py
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_0.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_1.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_10.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_11.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_12.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_13.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_14.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_15.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_16.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_17.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_18.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_19.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_2.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_20.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_21.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_22.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_23.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_24.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_25.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_26.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_27.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_28.txt
?????文件???????1088??2010-10-07?21:35??神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)“手寫識(shí)別”\testDigits\0_29.txt
............此處省略2863個(gè)文件信息
評(píng)論
共有 條評(píng)論