亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > pytorch加載預訓練模型與自己模型不匹配的解決方案

pytorch加載預訓練模型與自己模型不匹配的解決方案

熱門標簽:海南400電話如何申請 哈爾濱ai外呼系統(tǒng)定制 公司電話機器人 唐山智能外呼系統(tǒng)一般多少錢 廣告地圖標注app 騰訊外呼線路 激戰(zhàn)2地圖標注 白銀外呼系統(tǒng) 陜西金融外呼系統(tǒng)

pytorch中如果自己搭建網絡并且加載別人的與訓練模型的話,如果模型和參數不嚴格匹配,就可能會出問題,接下來記錄一下我的解決方法。

兩個有序字典找不同

模型的參數和pth文件的參數都是有序字典(OrderedDict),把字典中的鍵轉為列表就可以在for循環(huán)里迭代找不同了。

model = ResNet18(1)
model_dict1 = torch.load('resnet18.pth')
model_dict2 = model.state_dict()
model_list1 = list(model_dict1.keys())
model_list2 = list(model_dict2.keys())
len1 = len(model_list1)
len2 = len(model_list2)
minlen = min(len1, len2)
for n in range(minlen):
    if model_dict1[model_list1[n]].shape != model_dict2[model_list2[n]].shape:
        err = 1

自己搭建模型的注意事項

搭網絡時要對照pth文件的字典順序搭,字典順序、權重尺寸(shape)和變量命名必須與pth文件完全一致。如果僅僅是變量命名不同,可采用類似的方法對模型的權重重新賦值。

model = ResNet18(1)
model_dict1 = torch.load('resnet18.pth')
model_dict2 = model.state_dict()
model_list1 = list(model_dict1.keys())
model_list2 = list(model_dict2.keys())
len1 = len(model_list1)
len2 = len(model_list2)
minlen = min(len1, len2)
for n in range(minlen):
    if model_dict1[model_list1[n]].shape != model_dict2[model_list2[n]].shape:
        continue
    model_dict1[model_list1[n]] = model_dict2[model_list2[n]]
model.load_state_dict(model_dict2)

完整的代碼見自己搭建resnet18網絡并加載torchvision自帶權重

新增的改進代碼

model_dict1 = torch.load('yolov5.pth')
model_dict2 = model.state_dict()
model_list1 = list(model_dict1.keys())
model_list2 = list(model_dict2.keys())
len1 = len(model_list1)
len2 = len(model_list2)
m, n = 0, 0
while True:
    if m >= len1 or n >= len2:
        break
    layername1, layername2 = model_list1[m], model_list2[n]
    w1, w2 = model_dict1[layername1], model_dict2[layername2]
    if w1.shape != w2.shape:
        continue
    model_dict2[layername2] = model_dict1[layername1]
    m += 1
    n += 1
model.load_state_dict(model_dict2)

如果因為模型不匹配,運行第14行語句后,可看自己情況手動對m或n加上1。

補充:pytorch的一些坑:用預訓練的vgg模型的部分層的特征報錯,如張量不匹配

看代碼吧~

#打算取VGG19的第二個全連接層的輸出,那么就需要構建一個類,這個類要包含VGG的全部卷積層,
#以及到第二個全連接層的全部網絡還有他們對應的參數
class Classification_att(nn.Module):
    def __init__(self, rgb_range):
        super(Classification_att, self).__init__()
        self.vgg19 =models.vgg19(pretrained=True)
        vgg = models.vgg19(pretrained=True).features
        conv_modules = [m for m in vgg]
        self.vgg_conv = nn.Sequential(*conv_modules[:37])
        classfi = models.vgg19(pretrained=True).classifier
        classif_modules = [n for n in classfi]
        self.vgg_class = nn.Sequential(*classif_modules[:4])
        vgg_mean = (0.485, 0.456, 0.406)
        vgg_std = (0.229 * rgb_range, 0.224 * rgb_range, 0.225 * rgb_range)
        self.sub_mean = common.MeanShift(rgb_range, vgg_mean, vgg_std)
        for p in self.vgg_conv.parameters():
            p.requires_grad = False
        for p in self.vgg_class.parameters():
            p.requires_grad = False
        self.classifi = nn.Sequential(
            nn.Linear(4096, 1024),
            nn.ReLU(True),
            nn.Linear(1024, 256),
            nn.ReLU(True),
            nn.Linear(256, 64),
        )
 
    def forward(self, x):
        x = F.interpolate(x, size=[224, 224], scale_factor=None, mode='bilinear', 
        align_corners=False)
        x = self.sub_mean(x)
        x = self.vgg_conv(x)  
        x = self.vgg_class(x)  #執(zhí)行這部報錯,說張量不匹配

原因是因為卷積層的輸出不能直接連接全連接層,即使輸出的張量的總的大小是一致的

查看vgg的pytorch源碼發(fā)現(xiàn)是

x = self.features(x)
x = self.avgpool(x)
x = torch.flatten(x, 1)
x = self.classifier(x)
#自己的代碼沒有torch.flatten(x, 1)這步

所以自己的少了一步

x = torch.flatten(x, 1)

補上就好了!

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 解決Pytorch 加載訓練好的模型 遇到的error問題
  • pytorch 更改預訓練模型網絡結構的方法
  • 解決Pytorch修改預訓練模型時遇到key不匹配的情況

標簽:四川 益陽 黑龍江 黔西 上海 常德 鷹潭 惠州

巨人網絡通訊聲明:本文標題《pytorch加載預訓練模型與自己模型不匹配的解決方案》,本文關鍵詞  pytorch,加載,預,訓練,模型,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pytorch加載預訓練模型與自己模型不匹配的解決方案》相關的同類信息!
  • 本頁收集關于pytorch加載預訓練模型與自己模型不匹配的解決方案的相關信息資訊供網民參考!
  • 推薦文章
    韩国毛片 免费| 午夜欧美成人久久久久久| 亚洲wwwwww| 精品久久久久久免费影院| 亚洲精品久久玖玖玖玖| 亚洲第一页色| 九九精品久久久久久久久| 精品国产香蕉在线播出| 在线观看导航| 欧美a级片视频| 美国一区二区三区| 高清一级做a爱过程不卡视频| 久久精品店| 国产视频在线免费观看| 午夜激情视频在线播放| 一级片免费在线观看视频| 深夜做爰性大片中文| 九九九在线视频| 韩国毛片| 国产伦久视频免费观看视频| 成人高清视频在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 可以在线看黄的网站| 青青久久精品| 国产精品12| 亚洲女人国产香蕉久久精品| 久久国产一区二区| 欧美电影免费看大全| 成人免费观看网欧美片| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 91麻豆精品国产自产在线| 久久国产精品永久免费网站| 国产网站免费视频| 成人免费高清视频| 天堂网中文在线| 久久99中文字幕久久| 欧美另类videosbestsex| 91麻豆精品国产片在线观看| 99色视频| 日韩专区第一页| 免费国产一级特黄aa大片在线| 亚洲精品影院| 国产成人女人在线视频观看| 欧美大片aaaa一级毛片| 欧美18性精品| 精品国产一区二区三区久久久蜜臀 | 一级毛片看真人在线视频| 黄视频网站免费| 韩国三级一区| 亚洲第一页乱| 欧美激情伊人| 国产精品自拍在线| 香蕉视频一级| 精品国产一级毛片| 精品久久久久久免费影院| 美女免费毛片| 免费一级片网站| 亚洲爆爽| 99热热久久| 日本特黄一级| 久久国产一久久高清| a级毛片免费全部播放| 国产亚洲精品aaa大片| 精品视频在线看| 欧美爱爱动态| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美激情一区二区三区视频高清| 国产91素人搭讪系列天堂| 成人在激情在线视频| 精品久久久久久影院免费| 国产国产人免费视频成69堂| 久久精品成人一区二区三区| 欧美一区二区三区性| 国产不卡在线观看| 久久福利影视| 日本在线不卡视频| 香蕉视频久久| 毛片的网站| 久久国产影院| 久久99中文字幕久久| 999精品在线| 国产麻豆精品免费密入口| 91麻豆tv| 黄视频网站在线免费观看| 日本在线不卡免费视频一区| 日本伦理网站| 免费一级片在线| 免费一级生活片| 国产视频一区二区在线播放| 国产a网| 精品国产一区二区三区久| 青青久热| 欧美电影免费看大全| 成人高清视频免费观看| 成人在激情在线视频| 欧美国产日韩精品| 欧美大片aaaa一级毛片| 91麻豆精品国产自产在线观看一区 | 精品毛片视频| 亚飞与亚基在线观看| 深夜做爰性大片中文| 99久久精品费精品国产一区二区| 亚洲精品影院久久久久久| 免费毛片播放| 日日爽天天| 国产精品1024永久免费视频| 一本伊大人香蕉高清在线观看| 91麻豆tv| 麻豆系列 在线视频| 国产91视频网| 一级女性全黄久久生活片| 美女免费精品高清毛片在线视| 日韩avdvd| 九九热国产视频| 午夜精品国产自在现线拍| 成人免费观看男女羞羞视频| 韩国毛片免费| 日韩字幕在线| 国产精品自拍一区| 免费一级片在线| 国产一级生活片| 欧美激情一区二区三区视频 | 国产不卡福利| 九九精品久久久久久久久| 国产麻豆精品| 成人高清免费| 国产福利免费视频| 亚洲精品影院一区二区| 国产一区二区精品| 久久国产一久久高清| 国产91精品一区| 国产成人精品在线| 久久国产影院| 亚欧视频在线| 国产成人精品综合久久久| 亚洲第一色在线| 精品视频在线观看一区二区| 九九九在线视频| 免费一级生活片| 天堂网中文在线| 国产不卡高清| 欧美a级v片不卡在线观看| 一本伊大人香蕉高清在线观看| 美女免费毛片| 久久国产精品永久免费网站| 精品国产香蕉在线播出| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美a级v片不卡在线观看| 成人免费网站久久久| 精品国产亚洲人成在线| 国产成a人片在线观看视频| 欧美激情一区二区三区视频 | 美国一区二区三区| 欧美一区二区三区在线观看| 91麻豆精品国产综合久久久| 欧美激情一区二区三区中文字幕| 精品国产香蕉在线播出| 国产一级生活片| 亚洲爆爽| 国产欧美精品午夜在线播放| 亚洲 国产精品 日韩| 亚洲精品影院一区二区| 你懂的日韩| 精品国产一区二区三区免费| 亚洲精品影院一区二区| 免费一级片在线| 日韩综合| 久久精品免视看国产成人2021| 高清一级淫片a级中文字幕 | 久久成人性色生活片| 久久国产精品只做精品| 久久国产一区二区| 欧美激情一区二区三区在线| 九九精品久久久久久久久| 国产伦精品一区三区视频| 九九国产| 国产不卡在线观看| 亚洲精品中文一区不卡| 亚洲爆爽| 成人免费高清视频| 精品国产一区二区三区久| 亚洲精品久久久中文字| 欧美激情一区二区三区视频高清| 亚欧乱色一区二区三区| 日本在线www| 欧美a免费| 国产视频在线免费观看| 黄视频网站免费看| 欧美国产日韩久久久| 97视频免费在线观看| 国产不卡在线看| 色综合久久天天综合| 日本伦理片网站| 麻豆午夜视频| 日韩字幕在线| 欧美激情在线精品video| 国产一区二区精品| 九九久久99| 色综合久久天天综线观看| 国产极品精频在线观看|