Pytorch 修改預訓練網路結構

2021-09-19 09:54:09 字數 1067 閱讀 2603

我們以(inceptionv3)為例:

pytorch裡我們如何使用設計好的網路結構,比如inceptionv3:

import torchvision.models as models

inception=models.inception_v3(pretrained=true)

pytorch提供了個叫做children()的函式,這個函式可以用來提取出model每一層的網路結構,在此基礎上進行修改即可,修改方法如下(去除後兩層):

inception_layer = nn.sequential(*list(model.children())[:-2])
目前留下了剔除後兩層的網路結構

class net(nn.module):

def __init__(self , model):

super(net, self).__init__()

#取掉model的後兩層

self.resnet_layer = nn.sequential(*list(model.children())[:-2])

self.transion_layer = nn.convtranspose2d(2048, 2048, kernel_size=14, stride=3)

self.pool_layer = nn.maxpool2d(32)

self.linear_layer = nn.linear(2048, 8)

def forward(self, x):

x = self.resnet_layer(x)

x = self.transion_layer(x)

x = self.pool_layer(x)

x = x.view(x.size(0), -1)

x = self.linear_layer(x)

return x

resnet = models.resnet50(pretrained=true)

model = net(resnet)

pytorch 修改預訓練模型

torchvision中提供了很多訓練好的模型,這些模型是在1000類,224 224的imagenet中訓練得到的,很多時候不適合我們自己的資料,可以根據需要進行修改。1 類別不同 coding utf 8 import torchvision.models as models 呼叫模型 mode...

pytorch 使用預訓練層

將其他地方訓練好的網路,用到新的網路裡面 1.原先已經訓練好乙個網路 autoencoder fc 2.首先載入該網路,讀取其儲存的引數 3.設定乙個引數集 cnnpre autoencoder fc cnnpre.load state dict torch.load autoencoder fc....

pytorch 載入預訓練模型

pytorch的torchvision中給出了很多經典的預訓練模型,模型的引數和權重都是在imagenet資料集上訓練好的 載入模型 方法一 直接使用預訓練模型中的引數 import torchvision.models as models model models.resnet18 pretrai...