コード例 #1
0
ファイル: cnn.py プロジェクト: zhxsking/baidu_urfc
    def __init__(self, pretrained=False):
        super().__init__()

        # 3*100*100 -> 64*32*32
        self.img_conv = nn.Sequential(
            conv3x3(3, 64, stride=1, dilation=1),
            nn.BatchNorm2d(64),
            nn.ReLU(inplace=True),
            Bottleneck(64,
                       64,
                       stride=2,
                       dilation=1,
                       expansion=2,
                       need_downsample=True),
            Bottleneck(64 * 2,
                       64,
                       stride=2,
                       padding=8,
                       expansion=1,
                       need_downsample=True),
        )

        self.features = UNet(in_depth=64)
        self.features.fc = nn.Sequential(
            nn.Dropout(0.5),
            nn.Linear(in_features=64, out_features=128, bias=True))

        self.visit_model = DPN26()
        self.visit_model.linear = nn.Sequential(
            nn.Dropout(0.5),
            nn.Linear(in_features=self.visit_model.linear.in_features,
                      out_features=64,
                      bias=True),
        )

        self.fc = nn.Sequential(
            nn.Dropout(0.5),
            nn.Linear(192, 9, bias=True),
        )

        if (pretrained):
            for m in self.modules():
                if isinstance(m, nn.Conv2d):
                    nn.init.kaiming_normal_(m.weight)
                elif isinstance(m, nn.BatchNorm2d):
                    nn.init.constant_(m.weight, 1)
                    nn.init.constant_(m.bias, 0)
                elif isinstance(m, nn.Linear):
                    nn.init.constant_(m.bias, 0)
コード例 #2
0
ファイル: cnn.py プロジェクト: zhxsking/baidu_urfc
    def __init__(self, pretrained=False):
        super().__init__()
        if pretrained:
            mdl = pretrainedmodels.__dict__['se_resnext50_32x4d'](
                num_classes=1000, pretrained='imagenet')
        else:
            mdl = pretrainedmodels.__dict__['se_resnext50_32x4d'](
                num_classes=1000, pretrained=None)

        self.features = list(mdl.children())[:-2]
        self.features.append(nn.AdaptiveAvgPool2d(1))
        self.features = nn.Sequential(*self.features)
        self.features[0].conv1 = nn.Conv2d(3,
                                           64,
                                           kernel_size=7,
                                           stride=2,
                                           padding=3,
                                           bias=False)
        self.fc_img = nn.Sequential(
            nn.Dropout(0.5),
            nn.Linear(in_features=mdl.last_linear.in_features,
                      out_features=256,
                      bias=True),
        )

        self.visit_model = DPN26()
        self.visit_model.linear = nn.Sequential(
            nn.Dropout(0.5),
            nn.Linear(in_features=self.visit_model.linear.in_features,
                      out_features=128,
                      bias=True),
        )

        self.fc = nn.Sequential(
            nn.Dropout(0.5),
            nn.Linear(384, 9, bias=True),
        )

        if not (pretrained):
            for m in self.modules():
                if isinstance(m, nn.Conv2d):
                    nn.init.kaiming_normal_(m.weight)
                elif isinstance(m, nn.BatchNorm2d):
                    nn.init.constant_(m.weight, 1)
                    nn.init.constant_(m.bias, 0)
                elif isinstance(m, nn.Linear):
                    nn.init.constant_(m.bias, 0)
コード例 #3
0
ファイル: cnn.py プロジェクト: zhxsking/baidu_urfc
    def __init__(self, pretrained=False):
        super().__init__()
        #        print(pretrainedmodels.model_names)
        if pretrained:
            mdl = pretrainedmodels.__dict__['polynet'](num_classes=1000,
                                                       pretrained='imagenet')
        else:
            mdl = pretrainedmodels.__dict__['polynet'](num_classes=1000,
                                                       pretrained=None)


#        self.features = list(mdl.children())
        self.img_model = mdl
        self.img_model.stem.conv1[0].conv = nn.Conv2d(3,
                                                      32,
                                                      kernel_size=3,
                                                      padding=1)
        self.img_model.avg_pool = nn.AdaptiveAvgPool2d(1)
        self.img_model.last_linear = nn.Linear(
            in_features=mdl.last_linear.in_features,
            out_features=64,
            bias=True)

        self.vis_model = DPN26()
        self.vis_model.linear = nn.Sequential(
            nn.Dropout(0.5),
            nn.Linear(in_features=self.vis_model.linear.in_features,
                      out_features=64,
                      bias=True),
        )

        self.fc = nn.Sequential(
            nn.Dropout(0.5),
            nn.Linear(128, 9, bias=True),
        )

        if not (pretrained):
            for m in self.modules():
                if isinstance(m, nn.Conv2d):
                    nn.init.kaiming_normal_(m.weight)
                elif isinstance(m, nn.BatchNorm2d):
                    nn.init.constant_(m.weight, 1)
                    nn.init.constant_(m.bias, 0)
                elif isinstance(m, nn.Linear):
                    nn.init.constant_(m.bias, 0)
コード例 #4
0
ファイル: cnn.py プロジェクト: zhxsking/baidu_urfc
    def __init__(self, pretrained=True):
        super().__init__()
        if pretrained:
            img_model = pretrainedmodels.__dict__['se_resnext101_32x4d'](
                num_classes=1000, pretrained='imagenet')  #seresnext101
        else:
            img_model = pretrainedmodels.__dict__['se_resnext101_32x4d'](
                num_classes=1000, pretrained=None)

        self.visit_model = DPN26()

        self.img_encoder = list(img_model.children())[:-2]
        self.img_encoder.append(nn.AdaptiveAvgPool2d(1))
        self.img_encoder = nn.Sequential(*self.img_encoder)

        self.img_fc = nn.Sequential(
            FCViewer(), nn.Dropout(0.5),
            nn.Linear(img_model.last_linear.in_features, 256))

        self.cls = nn.Linear(320, 9)
コード例 #5
0
ファイル: cnn.py プロジェクト: zhxsking/baidu_urfc
 def __init__(self, pretrained=False):
     super().__init__()
     self.visit_model = DPN26()
     self.cls = nn.Linear(64, 9)