def __init__(self, stride=16): super(Net, self).__init__() if stride == 16: self.resnet50 = resnet50.resnet50(pretrained=True, strides=(2, 2, 2, 1)) self.stage1 = nn.Sequential(self.resnet50.conv1, self.resnet50.bn1, self.resnet50.relu, self.resnet50.maxpool, self.resnet50.layer1) else: self.resnet50 = resnet50.resnet50(pretrained=True, strides=(2, 2, 1, 1), dilations=(1, 1, 2, 2)) self.stage1 = nn.Sequential(self.resnet50.conv1, self.resnet50.bn1, self.resnet50.relu, self.resnet50.maxpool, self.resnet50.layer1) self.stage2 = nn.Sequential(self.resnet50.layer2) self.stage3 = nn.Sequential(self.resnet50.layer3) self.stage4 = nn.Sequential(self.resnet50.layer4) self.classifier = nn.Conv2d(2048, 20, 1, bias=False) self.backbone = nn.ModuleList([self.stage1, self.stage2, self.stage3, self.stage4]) self.newly_added = nn.ModuleList([self.classifier])
def __init__(self): super(Net, self).__init__() self.resnet50 = resnet50.resnet50(pretrained=True, strides=[2, 2, 2, 1]) self.stage1 = nn.Sequential(self.resnet50.conv1, self.resnet50.bn1, self.resnet50.relu, self.resnet50.maxpool) self.stage2 = nn.Sequential(self.resnet50.layer1) self.stage3 = nn.Sequential(self.resnet50.layer2) self.stage4 = nn.Sequential(self.resnet50.layer3) self.stage5 = nn.Sequential(self.resnet50.layer4) # branch: class boundary detection self.fc_edge1 = nn.Sequential( nn.Conv2d(64, 32, 1, bias=False), nn.GroupNorm(4, 32), nn.ReLU(inplace=True), ) self.fc_edge2 = nn.Sequential( nn.Conv2d(256, 32, 1, bias=False), nn.GroupNorm(4, 32), nn.ReLU(inplace=True), ) self.fc_edge3 = nn.Sequential( nn.Conv2d(512, 32, 1, bias=False), nn.GroupNorm(4, 32), nn.Upsample(scale_factor=2, mode='bilinear', align_corners=False), nn.ReLU(inplace=True), ) self.fc_edge4 = nn.Sequential( nn.Conv2d(1024, 32, 1, bias=False), nn.GroupNorm(4, 32), nn.Upsample(scale_factor=4, mode='bilinear', align_corners=False), nn.ReLU(inplace=True), ) self.fc_edge5 = nn.Sequential( nn.Conv2d(2048, 32, 1, bias=False), nn.GroupNorm(4, 32), nn.Upsample(scale_factor=4, mode='bilinear', align_corners=False), nn.ReLU(inplace=True), ) self.fc_edge6 = nn.Conv2d(160, 1, 1, bias=True) self.backbone = nn.ModuleList( [self.stage1, self.stage2, self.stage3, self.stage4, self.stage5]) self.edge_layers = nn.ModuleList([ self.fc_edge1, self.fc_edge2, self.fc_edge3, self.fc_edge4, self.fc_edge5, self.fc_edge6 ]) self.classifier = nn.Conv2d(in_channels=2048, out_channels=20, kernel_size=1, bias=False)
def __init__(self, model_dir, num_classes): super(Net, self).__init__() self.num_classes = num_classes self.resnet50 = resnet50.resnet50(pretrained=True, strides=(2, 2, 2, 1)) self.stage1 = nn.Sequential(self.resnet50.conv1, self.resnet50.bn1, self.resnet50.relu, self.resnet50.maxpool, self.resnet50.layer1) self.stage2 = nn.Sequential(self.resnet50.layer2) self.stage3 = nn.Sequential(self.resnet50.layer3) self.stage4 = nn.Sequential(self.resnet50.layer4) self.classifier = nn.Conv2d(2048, self.num_classes, 1, bias=False) self.backbone = nn.ModuleList( [self.stage1, self.stage2, self.stage3, self.stage4]) self.newly_added = nn.ModuleList([self.classifier])
def __init__(self): super(Net, self).__init__() self.resnet50 = resnet50.resnet50(pretrained=False, strides=[2, 2, 2, 1]) self.stage1 = nn.Sequential(self.resnet50.conv1, self.resnet50.bn1, self.resnet50.relu, self.resnet50.maxpool, self.resnet50.layer1) self.stage2 = nn.Sequential(self.resnet50.layer2) self.stage3 = nn.Sequential(self.resnet50.layer3) self.stage4 = nn.Sequential(self.resnet50.layer4) self.classifier = nn.Conv2d(in_channels=2048, out_channels=20, kernel_size=1, bias=False) self.backbone = nn.ModuleList( [self.stage1, self.stage2, self.stage3, self.stage4]) self.newly_added = nn.ModuleList([self.classifier])
def __init__(self,class_number=5, fine_tune=True): super().__init__() encoder = resnet50(pretrained=fine_tune) self.start = nn.Sequential(encoder.conv1,encoder.bn1, encoder.relu) self.maxpool = encoder.maxpool self.low_feature = nn.Sequential(nn.Conv2d(64,48,1,1),nn.ReLU(inplace=True)) # no bn, has bias and relu self.layer1 = encoder.layer1#256 self.layer2 = encoder.layer2#512 self.layer3 = encoder.layer3#1024 self.layer4 = encoder.layer4#2048 self.aspp = ASPP(in_channel=2048, depth=256) self.conv_cat = nn.Sequential(nn.Conv2d(256+48,256,3,1,padding=1),nn.ReLU(inplace=True)) self.conv_cat1 = nn.Sequential(nn.Conv2d(256,256,3,1,padding=1),nn.ReLU(inplace=True)) self.conv_cat2 = nn.Sequential(nn.Conv2d(256,256,3,1,padding=1),nn.ReLU(inplace=True)) self.score = nn.Conv2d(256,class_number,1,1)# no relu and first conv then upsample, reduce memory
def __init__(self): super(Net, self).__init__() self.resnet50 = resnet50.resnet50(pretrained=True, strides=(2, 2, 2, 1)) state_dict = torch.load("../temp_data/resnet50-19c8e357.pth") state_dict.pop('fc.weight') state_dict.pop('fc.bias') self.stage1 = nn.Sequential(self.resnet50.conv1, self.resnet50.bn1, self.resnet50.relu, self.resnet50.maxpool, self.resnet50.layer1) self.stage2 = nn.Sequential(self.resnet50.layer2) self.stage3 = nn.Sequential(self.resnet50.layer3) self.stage4 = nn.Sequential(self.resnet50.layer4) self.classifier = nn.Conv2d(2048, 2, 1, bias=False) self.backbone = nn.ModuleList( [self.stage1, self.stage2, self.stage3, self.stage4]) self.newly_added = nn.ModuleList([self.classifier])
def __init__(self, n_classes=20, in_channels=3, pretrained=True): super(Net, self).__init__() self.n_classes = n_classes self.in_channels = in_channels self.pretrained = pretrained self.resnet50 = resnet50.resnet50(pretrained=pretrained, in_channels=in_channels, strides=(2, 2, 2, 1)) self.stage1 = nn.Sequential(self.resnet50.conv1, self.resnet50.bn1, self.resnet50.relu, self.resnet50.maxpool, self.resnet50.layer1) self.stage2 = nn.Sequential(self.resnet50.layer2) self.stage3 = nn.Sequential(self.resnet50.layer3) self.stage4 = nn.Sequential(self.resnet50.layer4) self.classifier = nn.Conv2d(2048, self.n_classes, 1, bias=False) self.backbone = nn.ModuleList( [self.stage1, self.stage2, self.stage3, self.stage4]) self.newly_added = nn.ModuleList([self.classifier])
def __init__(self): super(CamNet, self).__init__() self.resnet50 = resnet50.resnet50(pretrained=True, strides=(2, 2, 2, 1)) self.stage1 = nn.Sequential(self.resnet50.conv1, self.resnet50.bn1, self.resnet50.relu, self.resnet50.maxpool, self.resnet50.layer1) self.stage2 = nn.Sequential(self.resnet50.layer2) self.stage3 = nn.Sequential(self.resnet50.layer3) self.stage4 = nn.Sequential(self.resnet50.layer4) self.classifier = nn.Conv2d(2048, n_classes, 1, bias=False) self.backbone = nn.ModuleList( [self.stage1, self.stage2, self.stage3, self.stage4]) self.newly_added = nn.ModuleList([self.classifier]) self.init_params() # self.loss = nn.MultiLabelSoftMarginLoss(weight=torch.tensor(cam_w, dtype=torch.float32)) self.loss = CB_loss(cam_w, n_classes, 'msl')
def __init__(self): super(Net, self).__init__() # backbone self.resnet50 = resnet50.resnet50(pretrained=True, strides=[2, 2, 2, 1]) self.stage1 = nn.Sequential(self.resnet50.conv1, self.resnet50.bn1, self.resnet50.relu, self.resnet50.maxpool) self.stage2 = nn.Sequential(self.resnet50.layer1) self.stage3 = nn.Sequential(self.resnet50.layer2) self.stage4 = nn.Sequential(self.resnet50.layer3) self.stage5 = nn.Sequential(self.resnet50.layer4) self.mean_shift = Net.MeanShift(2) # branch: class boundary detection self.fc_edge1 = nn.Sequential( nn.Conv2d(64, 32, 1, bias=False), nn.GroupNorm(4, 32), nn.ReLU(inplace=True), ) self.fc_edge2 = nn.Sequential( nn.Conv2d(256, 32, 1, bias=False), nn.GroupNorm(4, 32), nn.ReLU(inplace=True), ) self.fc_edge3 = nn.Sequential( nn.Conv2d(512, 32, 1, bias=False), nn.GroupNorm(4, 32), nn.Upsample(scale_factor=2, mode='bilinear', align_corners=False), nn.ReLU(inplace=True), ) self.fc_edge4 = nn.Sequential( nn.Conv2d(1024, 32, 1, bias=False), nn.GroupNorm(4, 32), nn.Upsample(scale_factor=4, mode='bilinear', align_corners=False), nn.ReLU(inplace=True), ) self.fc_edge5 = nn.Sequential( nn.Conv2d(2048, 32, 1, bias=False), nn.GroupNorm(4, 32), nn.Upsample(scale_factor=4, mode='bilinear', align_corners=False), nn.ReLU(inplace=True), ) self.fc_edge6 = nn.Conv2d(160, 1, 1, bias=True) # branch: displacement field self.fc_dp1 = nn.Sequential( nn.Conv2d(64, 64, 1, bias=False), nn.GroupNorm(8, 64), nn.ReLU(inplace=True), ) self.fc_dp2 = nn.Sequential( nn.Conv2d(256, 128, 1, bias=False), nn.GroupNorm(16, 128), nn.ReLU(inplace=True), ) self.fc_dp3 = nn.Sequential( nn.Conv2d(512, 256, 1, bias=False), nn.GroupNorm(16, 256), nn.ReLU(inplace=True), ) self.fc_dp4 = nn.Sequential( nn.Conv2d(1024, 256, 1, bias=False), nn.GroupNorm(16, 256), nn.Upsample(scale_factor=2, mode='bilinear', align_corners=False), nn.ReLU(inplace=True), ) self.fc_dp5 = nn.Sequential( nn.Conv2d(2048, 256, 1, bias=False), nn.GroupNorm(16, 256), nn.Upsample(scale_factor=2, mode='bilinear', align_corners=False), nn.ReLU(inplace=True), ) self.fc_dp6 = nn.Sequential( nn.Conv2d(768, 256, 1, bias=False), nn.GroupNorm(16, 256), nn.Upsample(scale_factor=2, mode='bilinear', align_corners=False), nn.ReLU(inplace=True), ) self.fc_dp7 = nn.Sequential( nn.Conv2d(448, 256, 1, bias=False), nn.GroupNorm(16, 256), nn.ReLU(inplace=True), nn.Conv2d(256, 2, 1, bias=False), self.mean_shift ) self.backbone = nn.ModuleList([self.stage1, self.stage2, self.stage3, self.stage4, self.stage5]) self.edge_layers = nn.ModuleList([self.fc_edge1, self.fc_edge2, self.fc_edge3, self.fc_edge4, self.fc_edge5, self.fc_edge6]) self.dp_layers = nn.ModuleList([self.fc_dp1, self.fc_dp2, self.fc_dp3, self.fc_dp4, self.fc_dp5, self.fc_dp6, self.fc_dp7])