我們以(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...