亚洲AVI,黑人巨茎大战欧美白妇,初高中生洗澡自慰高清网站,欧美日韩无砖专区一中文字

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務

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

pytorch中如何使用遷移學習resnet18訓練mnist數(shù)據(jù)集,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

站在用戶的角度思考問題,與客戶深入溝通,找到敘州網(wǎng)站設計與敘州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務覆蓋敘州地區(qū)。

預備知識

  • 自己搭建cnn模型訓練mnist(不使用遷移學習)

https://blog.csdn.net/qq_42951560/article/details/109565625

  • pytorch官方的遷移學習教程(螞蟻、蜜蜂分類)

https://blog.csdn.net/qq_42951560/article/details/109950786

學習目標

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

如何遷移

預訓練模型

遷移學習需要選擇一個預訓練模型,我們這個任務也不是特別大,選擇resnet18就行了。

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

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

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

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

# 預處理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)),])# 訓練集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上訓練的,輸出特征數(shù)是1000;而對于mnist來說,需要分10類,因此要改一下全連接層的輸出。

model = models.resnet18(pretrained=True)in_features = model.fc.in_features
model.fc = nn.Linear(in_features, 10)

調(diào)整學習率

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

訓練結果

resnet18相較于普通的一兩層卷積網(wǎng)絡來說已經(jīng)比較深了,并且mnsit數(shù)據(jù)集還是挺大的,總共有7萬張圖片。為了節(jié)省時間,我們使用7張GeForce GTX 1080 Ti來訓練:

  • 數(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

訓練10輪,最佳的模型出現(xiàn)在第7輪,最大準確率是0.9963。在這篇文章中,我們自己搭了兩層的卷積,也訓練了10輪,最大準確率是0.9923。準確率提高了0.0040,我們要知道測試集共有1萬張圖片,也就是多預測對了40張圖片,已經(jīng)提升很高。當然,因為網(wǎng)絡變深了,所以訓練花費的時間也就增加了。

看完上述內(nèi)容,你們掌握pytorch中如何使用遷移學習resnet18訓練mnist數(shù)據(jù)集的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


本文名稱:pytorch中如何使用遷移學習resnet18訓練mnist數(shù)據(jù)集
分享路徑:http://news.spvevtbd.cn/article/ijddhe.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP