3 Copyright (c) 2019-present NAVER Corp.
7 from __future__
import absolute_import
12 from craft.basenet.vgg16_bn
import init_weights
20 nn.Conv2d(34, 64, kernel_size=3, padding=1), nn.BatchNorm2d(64),
21 nn.ReLU(inplace=
True),
22 nn.Conv2d(64, 64, kernel_size=3, padding=1), nn.BatchNorm2d(64),
23 nn.ReLU(inplace=
True),
24 nn.Conv2d(64, 64, kernel_size=3, padding=1), nn.BatchNorm2d(64),
29 nn.Conv2d(64, 128, kernel_size=3, dilation=6, padding=6),
30 nn.BatchNorm2d(128), nn.ReLU(inplace=
True),
31 nn.Conv2d(128, 128, kernel_size=1), nn.BatchNorm2d(128),
32 nn.ReLU(inplace=
True),
33 nn.Conv2d(128, 1, kernel_size=1)
37 nn.Conv2d(64, 128, kernel_size=3, dilation=12, padding=12),
38 nn.BatchNorm2d(128), nn.ReLU(inplace=
True),
39 nn.Conv2d(128, 128, kernel_size=1), nn.BatchNorm2d(128),
40 nn.ReLU(inplace=
True),
41 nn.Conv2d(128, 1, kernel_size=1)
45 nn.Conv2d(64, 128, kernel_size=3, dilation=18, padding=18),
46 nn.BatchNorm2d(128), nn.ReLU(inplace=
True),
47 nn.Conv2d(128, 128, kernel_size=1), nn.BatchNorm2d(128),
48 nn.ReLU(inplace=
True),
49 nn.Conv2d(128, 1, kernel_size=1)
53 nn.Conv2d(64, 128, kernel_size=3, dilation=24, padding=24),
54 nn.BatchNorm2d(128), nn.ReLU(inplace=
True),
55 nn.Conv2d(128, 128, kernel_size=1), nn.BatchNorm2d(128),
56 nn.ReLU(inplace=
True),
57 nn.Conv2d(128, 1, kernel_size=1)
67 refine = torch.cat([y.permute(0, 3, 1, 2), upconv4], dim=1)
70 aspp1 = self.
aspp1(refine)
71 aspp2 = self.
aspp2(refine)
72 aspp3 = self.
aspp3(refine)
73 aspp4 = self.
aspp4(refine)
76 out = aspp1 + aspp2 + aspp3 + aspp4
77 return out.permute(0, 2, 3, 1)