pytorch中如何使用遷移學(xué)習(xí)resnet18訓(xùn)練mnist數(shù)據(jù)集,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
站在用戶的角度思考問題,與客戶深入溝通,找到敘州網(wǎng)站設(shè)計與敘州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋敘州地區(qū)。
自己搭建cnn
模型訓(xùn)練mnist
(不使用遷移學(xué)習(xí))
https://blog.csdn.net/qq_42951560/article/details/109565625
pytorch
官方的遷移學(xué)習(xí)教程(螞蟻、蜜蜂分類)
https://blog.csdn.net/qq_42951560/article/details/109950786
今天我們嘗試在pytorch
中使用遷移學(xué)習(xí)來訓(xùn)練mnist
數(shù)據(jù)集。
遷移學(xué)習(xí)需要選擇一個預(yù)訓(xùn)練模型,我們這個任務(wù)也不是特別大,選擇resnet18
就行了。
resnet18
輸入的CHW
是(3, 224, 224)
mnist
數(shù)據(jù)集中單張圖片CHW
是(1, 28, 28)
所以我們需要對mnist
數(shù)據(jù)集做一下預(yù)處理:
# 預(yù)處理my_transform = transforms.Compose([transforms.Resize((224, 224)),transforms.Grayscale(3),transforms.ToTensor(),transforms.Normalize((0.1307,0.1307,0.1307), (0.3081,0.3081,0.3081)),])# 訓(xùn)練集train_file = datasets.MNIST(root='./dataset/',train=True,transform=my_transform)# 測試集test_file = datasets.MNIST(root='./dataset/',train=False,transform=my_transform)
pytorch中數(shù)據(jù)增強和圖像處理的教程(torchvision.transforms)可以看我的這篇文章
resnet18
是在imagenet
上訓(xùn)練的,輸出特征數(shù)是1000
;而對于mnist
來說,需要分10
類,因此要改一下全連接層的輸出。
model = models.resnet18(pretrained=True)in_features = model.fc.in_features model.fc = nn.Linear(in_features, 10)
之前設(shè)置的Adam
的學(xué)習(xí)率是1e-3
,現(xiàn)在使用了遷移學(xué)習(xí),所以學(xué)習(xí)率調(diào)小一點,改為1e-4
。
resnet18
相較于普通的一兩層卷積網(wǎng)絡(luò)來說已經(jīng)比較深了,并且mnsit
數(shù)據(jù)集還是挺大的,總共有7萬張圖片。為了節(jié)省時間,我們使用7張GeForce GTX 1080 Ti
來訓(xùn)練:
數(shù)據(jù)并行(DataParallel)
EPOCH: 01/10 STEP: 67/67 LOSS: 0.0266 ACC: 0.9940 VAL-LOSS: 0.0246 VAL-ACC: 0.9938 TOTAL-TIME: 102EPOCH: 02/10 STEP: 67/67 LOSS: 0.0141 ACC: 0.9973 VAL-LOSS: 0.0177 VAL-ACC: 0.9948 TOTAL-TIME: 80EPOCH: 03/10 STEP: 67/67 LOSS: 0.0067 ACC: 0.9990 VAL-LOSS: 0.0147 VAL-ACC: 0.9958 TOTAL-TIME: 80EPOCH: 04/10 STEP: 67/67 LOSS: 0.0042 ACC: 0.9995 VAL-LOSS: 0.0151 VAL-ACC: 0.9948 TOTAL-TIME: 80EPOCH: 05/10 STEP: 67/67 LOSS: 0.0029 ACC: 0.9997 VAL-LOSS: 0.0143 VAL-ACC: 0.9955 TOTAL-TIME: 80EPOCH: 06/10 STEP: 67/67 LOSS: 0.0019 ACC: 0.9999 VAL-LOSS: 0.0133 VAL-ACC: 0.9962 TOTAL-TIME: 80EPOCH: 07/10 STEP: 67/67 LOSS: 0.0013 ACC: 1.0000 VAL-LOSS: 0.0132 VAL-ACC: 0.9963 TOTAL-TIME: 80EPOCH: 08/10 STEP: 67/67 LOSS: 0.0008 ACC: 1.0000 VAL-LOSS: 0.0132 VAL-ACC: 0.9963 TOTAL-TIME: 79EPOCH: 09/10 STEP: 67/67 LOSS: 0.0006 ACC: 1.0000 VAL-LOSS: 0.0122 VAL-ACC: 0.9962 TOTAL-TIME: 79EPOCH: 10/10 STEP: 67/67 LOSS: 0.0005 ACC: 1.0000 VAL-LOSS: 0.0131 VAL-ACC: 0.9959 TOTAL-TIME: 79| BEST-MODEL | EPOCH: 07/10 STEP: 67/67 LOSS: 0.0013 ACC: 1.0000 VAL-LOSS: 0.0132 VAL-ACC: 0.9963
訓(xùn)練10輪,最佳的模型出現(xiàn)在第7輪,最大準確率是0.9963
。在這篇文章中,我們自己搭了兩層的卷積,也訓(xùn)練了10輪,最大準確率是0.9923
。準確率提高了0.0040
,我們要知道測試集共有1萬張圖片,也就是多預(yù)測對了40張圖片,已經(jīng)提升很高。當然,因為網(wǎng)絡(luò)變深了,所以訓(xùn)練花費的時間也就增加了。
看完上述內(nèi)容,你們掌握pytorch中如何使用遷移學(xué)習(xí)resnet18訓(xùn)練mnist數(shù)據(jù)集的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站名稱:pytorch中如何使用遷移學(xué)習(xí)resnet18訓(xùn)練mnist數(shù)據(jù)集
URL標題:http://jinyejixie.com/article44/ijddhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、全網(wǎng)營銷推廣、動態(tài)網(wǎng)站、手機網(wǎng)站建設(shè)、品牌網(wǎng)站制作、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)