def __init__(self, n_classes=21, pretrained=False): super(segnet, self).__init__() self.down1 = segnetDown2(3, 64) self.down2 = segnetDown2(64, 128) self.down3 = segnetDown3(128, 256) self.down4 = segnetDown3(256, 512) self.down5 = segnetDown3(512, 512) self.up5 = segnetUp3(512, 512) self.up4 = segnetUp3(512, 256) self.up3 = segnetUp3(256, 128) self.up2 = segnetUp2(128, 64) self.up1 = segnetUp2(64, n_classes) self.init_weights(pretrained=pretrained)
def __init__(self, n_classes=21, pretrained=False): super(segnet_alignres, self).__init__() self.down1 = segnetDown2(3, 64) self.down2 = segnetDown2(64, 128) self.down3 = segnetDown3(128, 256) self.down4 = segnetDown3(256, 512) self.down5 = segnetDown3(512, 512) self.alignres = AlignedResInception(512) self.up5 = segnetUp3(512, 512) self.up4 = segnetUp3(512, 256) self.up3 = segnetUp3(256, 128) self.up2 = segnetUp2(128, 64) self.up1 = segnetUp2(64, n_classes) for m in self.modules(): if isinstance(m, nn.Conv2d): nn.init.kaiming_normal(m.weight, mode='fan_out') elif isinstance(m, nn.BatchNorm2d): nn.init.constant(m.weight, 1) nn.init.constant(m.bias, 0) self.init_weights(pretrained=pretrained)