PyTorch-Mnist分類(lèi)任務(wù)-1

?寫(xiě)在前面的話:
????從今天開(kāi)始就要正式復(fù)現(xiàn)深度學(xué)習(xí)的代碼,本人Python基礎(chǔ)薄弱,所以盡可能查找資料,解釋神經(jīng)網(wǎng)絡(luò)代碼......每天的學(xué)習(xí)內(nèi)容都會(huì)放在這里,希望能堅(jiān)持下去!
????綠色文字解釋不理解的代碼
????藍(lán)色文字用來(lái)提問(wèn)
????紅色文字專(zhuān)供快速抓取信息
????b站不好展現(xiàn)代碼,所以就只好截圖。寫(xiě)完工程會(huì)分享到夸克網(wǎng)盤(pán)
????文化程度有限,所以文筆比較隨意
????

Mnist分類(lèi)任務(wù)
????何為Mnist數(shù)據(jù)集?通俗來(lái)說(shuō),7萬(wàn)張手寫(xiě)數(shù)字的28*28*3大小的圖片罷了。
????學(xué)術(shù)一點(diǎn)解釋?zhuān)?0000 行的訓(xùn)練數(shù)據(jù)集(train)和10000行的測(cè)試數(shù)據(jù)(test)。60000 行的訓(xùn)練集分拆為 55000 行的訓(xùn)練集和 5000 行的驗(yàn)證集。
?????本項(xiàng)目使用PyTorch框架,確實(shí)省了很多時(shí)間,梯度計(jì)算、損失函數(shù)、更新權(quán)重參數(shù)這些一行代碼就能搞定。搭建神經(jīng)網(wǎng)絡(luò)也就是把所需要的輸入/輸出參數(shù)封裝在一起即可(代碼中寫(xiě)了兩層神經(jīng)網(wǎng)絡(luò))。
????廢話不多說(shuō),開(kāi)始干代碼!

????第1行:導(dǎo)入pickle模塊實(shí)現(xiàn)了基本的數(shù)據(jù)序列與反序列化。
????何為數(shù)據(jù)序列與反序列化?
????序列化是將對(duì)象轉(zhuǎn)化為字節(jié)序列的過(guò)程。反序列化:是將字節(jié)序列轉(zhuǎn)化為對(duì)象的過(guò)程。說(shuō)白了就是文件夾中的文件轉(zhuǎn)換成二進(jìn)制代碼的過(guò)程。
????第2行:gzip是python中解壓/壓縮庫(kù)(打開(kāi)下載好的數(shù)據(jù)集壓縮包)
????第3行:with...as... 函數(shù):不用手動(dòng)關(guān)閉文件。當(dāng)執(zhí)行完內(nèi)容后,自動(dòng)執(zhí)行關(guān)閉文件。就是打開(kāi)XXX文件指定為file。?使用gzip.open(filename, mode='rb') 函數(shù),其中rb是只讀+二進(jìn)制形式的意思。只讀模式下解壓Mnist壓縮包厚指定為file。
????第4行:pickle.load把file文件轉(zhuǎn)化成python可以執(zhí)行的對(duì)象。encoding="latin-1" 是編碼方式采取latin-1的規(guī)范,感覺(jué)也不用懂這個(gè)....
????x是輸入,y是輸出。為什么會(huì)有(x_train, y_train), (x_valid, y_valid)?可能是Mnist數(shù)據(jù)集打開(kāi)后有四列數(shù)據(jù)?解壓Mnist文件后得到一個(gè)pkl文件,無(wú)法直接打開(kāi)?,F(xiàn)在快23點(diǎn)了,所以今晚先寫(xiě)到這里,明天再想吧......
