pytorch中如何使用遷移學(xué)習(xí)resnet18訓(xùn)練mnist數(shù)據(jù)集

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ū)。

預(yù)備知識

  • 自己搭建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

學(xué)習(xí)目標

今天我們嘗試在pytorch中使用遷移學(xué)習(xí)來訓(xùn)練mnist數(shù)據(jù)集。

如何遷移

預(yù)訓(xùn)練模型

遷移學(xué)習(xí)需要選擇一個預(yù)訓(xùn)練模型,我們這個任務(wù)也不是特別大,選擇resnet18就行了。

數(shù)據(jù)預(yù)處理

resnet18輸入的CHW(3, 224, 224)

mnist數(shù)據(jù)集中單張圖片CHW(1, 28, 28)

所以我們需要對mnist數(shù)據(jù)集做一下預(yù)處理:
pytorch中如何使用遷移學(xué)習(xí)resnet18訓(xùn)練mnist數(shù)據(jù)集

# 預(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)

調(diào)整學(xué)習(xí)率

之前設(shè)置的Adam的學(xué)習(xí)率是1e-3,現(xiàn)在使用了遷移學(xué)習(xí),所以學(xué)習(xí)率調(diào)小一點,改為1e-4。

訓(xùn)練結(jié)果

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)提升很高。當(dā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://muchs.cn/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)

營銷型網(wǎng)站建設(shè)