小编jc7*_*711的帖子

重用pytorch模型时重复图层

我正在尝试为自定义架构重用一些 resnet 层,但遇到了一个我无法弄清楚的问题。这是一个简化的例子;当我运行时:

import torch
from torchvision import models
from torchsummary import summary

def convrelu(in_channels, out_channels, kernel, padding):
    return nn.Sequential(
        nn.Conv2d(in_channels, out_channels, kernel, padding=padding),
        nn.ReLU(inplace=True),
    )


class ResNetUNet(nn.Module):
    def __init__(self):
        super().__init__()

        self.base_model = models.resnet18(pretrained=False)
        self.base_layers = list(self.base_model.children())


        self.layer0 = nn.Sequential(*self.base_layers[:3])


    def forward(self, x):
        print(x.shape)

        output = self.layer0(x)

        return output

base_model = ResNetUNet().cuda()
summary(base_model,(3,224,224))
Run Code Online (Sandbox Code Playgroud)

正在给我:

----------------------------------------------------------------
        Layer (type)               Output Shape         Param #
================================================================
            Conv2d-1         [-1, 64, 112, 112]           9,408
            Conv2d-2         [-1, 64, 112, 112]           9,408
       BatchNorm2d-3         [-1, 64, 112, 112]             128 …
Run Code Online (Sandbox Code Playgroud)

neural-network deep-learning pytorch

9
推荐指数
1
解决办法
1148
查看次数

标签 统计

deep-learning ×1

neural-network ×1

pytorch ×1