From b47941ec601ecad0c4f77eb0b790b474c90658bc Mon Sep 17 00:00:00 2001 From: Chinaza Uzoukwu Date: Sun, 12 Jun 2022 15:13:34 +0100 Subject: [PATCH 1/3] Made CGNet scriptable --- core/models/cgnet.py | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/core/models/cgnet.py b/core/models/cgnet.py index 9cae5c837..f0a8ca831 100644 --- a/core/models/cgnet.py +++ b/core/models/cgnet.py @@ -3,7 +3,7 @@ import torch.nn as nn import torch.nn.functional as F -from core.nn import _ConvBNPReLU, _BNPReLU +from fta.nn import _ConvBNPReLU, _BNPReLU __all__ = ['CGNet', 'get_cgnet', 'get_cgnet_citys'] @@ -72,27 +72,22 @@ def forward(self, x): # stage 2 out0_cat = self.bn_prelu1(torch.cat([out0, inp1], dim=1)) out1_0 = self.stage2_0(out0_cat) - for i, layer in enumerate(self.stage2): - if i == 0: - out1 = layer(out1_0) - else: - out1 = layer(out1) + out1 = out1_0 + for layer in self.stage2: + out1 = layer(out1) out1_cat = self.bn_prelu2(torch.cat([out1, out1_0, inp2], dim=1)) # stage 3 out2_0 = self.stage3_0(out1_cat) - for i, layer in enumerate(self.stage3): - if i == 0: - out2 = layer(out2_0) - else: - out2 = layer(out2) + out2 = out2_0 + for layer in self.stage3: + out2 = layer(out2) out2_cat = self.bn_prelu3(torch.cat([out2_0, out2], dim=1)) - outputs = [] out = self.head(out2_cat) out = F.interpolate(out, size, mode='bilinear', align_corners=True) - outputs.append(out) - return tuple(outputs) + + return (out,) class _ChannelWiseConv(nn.Module): @@ -158,6 +153,7 @@ def __init__(self, in_channels, out_channels, dilation=2, reduction=16, down=Fal self.reduce = nn.Conv2d(inter_channels * 2, out_channels, 1, bias=False) else: self.conv = _ConvBNPReLU(in_channels, inter_channels, 1, 1, 0, norm_layer=norm_layer, **kwargs) + self.reduce = nn.Indentity() self.f_loc = _ChannelWiseConv(inter_channels, inter_channels, **kwargs) self.f_sur = _ChannelWiseConv(inter_channels, inter_channels, dilation, **kwargs) self.bn = norm_layer(inter_channels * 2) @@ -191,7 +187,7 @@ def get_cgnet(dataset='citys', backbone='', pretrained=False, root='~/.torch/mod 'coco': 'coco', 'citys': 'citys', } - from core.data.dataloader import datasets + from fta.data.dataloader import datasets model = CGNet(datasets[dataset].NUM_CLASS, backbone=backbone, pretrained_base=pretrained_base, **kwargs) if pretrained: from .model_store import get_model_file From 7146474ba102984955ad58f699f5e840296ef433 Mon Sep 17 00:00:00 2001 From: Chinaza Uzoukwu Date: Sun, 12 Jun 2022 15:20:15 +0100 Subject: [PATCH 2/3] Fixed typo --- core/models/cgnet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/models/cgnet.py b/core/models/cgnet.py index f0a8ca831..b9d6dcc6f 100644 --- a/core/models/cgnet.py +++ b/core/models/cgnet.py @@ -153,7 +153,7 @@ def __init__(self, in_channels, out_channels, dilation=2, reduction=16, down=Fal self.reduce = nn.Conv2d(inter_channels * 2, out_channels, 1, bias=False) else: self.conv = _ConvBNPReLU(in_channels, inter_channels, 1, 1, 0, norm_layer=norm_layer, **kwargs) - self.reduce = nn.Indentity() + self.reduce = nn.Identity() self.f_loc = _ChannelWiseConv(inter_channels, inter_channels, **kwargs) self.f_sur = _ChannelWiseConv(inter_channels, inter_channels, dilation, **kwargs) self.bn = norm_layer(inter_channels * 2) From 40d2a1aeebb6f82cff0dd4a19d2eedb8971827c6 Mon Sep 17 00:00:00 2001 From: Chinaza Uzoukwu Date: Sun, 12 Jun 2022 15:22:51 +0100 Subject: [PATCH 3/3] Replaced fta with core --- core/models/cgnet.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/models/cgnet.py b/core/models/cgnet.py index b9d6dcc6f..3c7aa6764 100644 --- a/core/models/cgnet.py +++ b/core/models/cgnet.py @@ -3,7 +3,7 @@ import torch.nn as nn import torch.nn.functional as F -from fta.nn import _ConvBNPReLU, _BNPReLU +from core.nn import _ConvBNPReLU, _BNPReLU __all__ = ['CGNet', 'get_cgnet', 'get_cgnet_citys'] @@ -187,7 +187,7 @@ def get_cgnet(dataset='citys', backbone='', pretrained=False, root='~/.torch/mod 'coco': 'coco', 'citys': 'citys', } - from fta.data.dataloader import datasets + from core.data.dataloader import datasets model = CGNet(datasets[dataset].NUM_CLASS, backbone=backbone, pretrained_base=pretrained_base, **kwargs) if pretrained: from .model_store import get_model_file