提交 5977ae40 编写于 作者: M michaelowenliu

add feat_channels in backbone

上级 7dac6524
......@@ -224,8 +224,8 @@ class ResNet_vd(nn.Layer):
] if layers >= 50 else [64, 64, 128, 256]
num_filters = [64, 128, 256, 512]
# for channels of returned stage
self.backbone_channels = [c * 4 for c in num_filters
# for channels of four returned stages
self.feat_channels = [c * 4 for c in num_filters
] if layers >= 50 else num_filters
dilation_dict = None
......@@ -338,8 +338,6 @@ class ResNet_vd(nn.Layer):
return feat_list
@manager.BACKBONES.add_component
def ResNet18_vd(**args):
model = ResNet_vd(layers=18, **args)
......
......@@ -190,7 +190,7 @@ class DANet(nn.Layer):
self.backbone = backbone
self.backbone_indices = backbone_indices
in_channels = [self.backbone.channels[i] for i in backbone_indices]
in_channels = [self.backbone.feat_channels[i] for i in backbone_indices]
self.head = DAHead(num_classes=num_classes, in_channels=in_channels)
......
......@@ -62,13 +62,12 @@ class DeepLabV3P(nn.Layer):
super(DeepLabV3P, self).__init__()
self.backbone = backbone
backbone_channels = backbone.backbone_channels
backbone_channels = [
backbone.feat_channels[i] for i in backbone_indices
]
self.head = DeepLabV3PHead(
num_classes,
backbone_indices,
backbone_channels,
aspp_ratios,
self.head = DeepLabV3PHead(num_classes, backbone_indices,
backbone_channels, aspp_ratios,
aspp_out_channels)
utils.load_entire_model(self, pretrained)
......@@ -81,6 +80,7 @@ class DeepLabV3P(nn.Layer):
F.resize_bilinear(logit, input.shape[2:]) for logit in logit_list
]
class DeepLabV3PHead(nn.Layer):
"""
The DeepLabV3PHead implementation based on PaddlePaddle.
......@@ -113,11 +113,11 @@ class DeepLabV3PHead(nn.Layer):
self.aspp = pyramid_pool.ASPPModule(
aspp_ratios,
backbone_channels[backbone_indices[1]],
backbone_channels[1],
aspp_out_channels,
sep_conv=True,
image_pooling=True)
self.decoder = Decoder(num_classes, backbone_channels[backbone_indices[0]])
self.decoder = Decoder(num_classes, backbone_channels[0])
self.backbone_indices = backbone_indices
self.init_weight()
......@@ -135,6 +135,7 @@ class DeepLabV3PHead(nn.Layer):
def init_weight(self):
pass
@manager.MODELS.add_component
class DeepLabV3(nn.Layer):
"""
......@@ -159,13 +160,12 @@ class DeepLabV3(nn.Layer):
super(DeepLabV3, self).__init__()
self.backbone = backbone
backbone_channels = backbone.backbone_channels
backbone_channels = [
backbone.feat_channels[i] for i in backbone_indices
]
self.head = DeepLabV3Head(
num_classes,
backbone_indices,
backbone_channels,
aspp_ratios,
self.head = DeepLabV3Head(num_classes, backbone_indices,
backbone_channels, aspp_ratios,
aspp_out_channels)
utils.load_entire_model(self, pretrained)
......@@ -191,13 +191,13 @@ class DeepLabV3Head(nn.Layer):
self.aspp = pyramid_pool.ASPPModule(
aspp_ratios,
backbone_channels[backbone_indices[0]],
backbone_channels[0],
aspp_out_channels,
sep_conv=False,
image_pooling=True)
self.cls = nn.Conv2d(
in_channels=backbone_channels[backbone_indices[0]],
in_channels=backbone_channels[0],
out_channels=num_classes,
kernel_size=1)
......
......@@ -203,7 +203,7 @@ class OCRNet(nn.Layer):
self.backbone = backbone
self.backbone_indices = backbone_indices
in_channels = [self.backbone.channels[i] for i in backbone_indices]
in_channels = [self.backbone.feat_channels[i] for i in backbone_indices]
self.head = OCRHead(
num_classes=num_classes,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册