Ejemplo n.º 1
0
 def __init__(self, c1, c2, k, s):
     super(GhostBottleneck, self).__init__()
     c_ = c2 // 2
     self.conv = nn.Sequential(GhostConv(c1, c_, 1, 1),  # pw
                               DWConv(c_, c_, k, s, act=False) if s == 2 else nn.Identity(),  # dw
                               GhostConv(c_, c2, 1, 1, act=False))  # pw-linear
     self.shortcut = nn.Sequential(DWConv(c1, c1, k, s, act=False),
                                   Conv(c1, c2, 1, 1, act=False)) if s == 2 else nn.Identity()
Ejemplo n.º 2
0
 def __init__(self, c1, c2, k=3, s=1):  # ch_in, ch_out, kernel, stride
     super().__init__()
     c_ = c2 // 2
     self.conv = nn.Sequential(GhostConv(c1, c_, 1, 1),  # pw
                               DWConv(c_, c_, k, s, act=False) if s == 2 else nn.Identity(),  # dw
                               GhostConv(c_, c2, 1, 1, act=False))  # pw-linear
     self.shortcut = nn.Sequential(DWConv(c1, c1, k, s, act=False),
                                   Conv(c1, c2, 1, 1, act=False)) if s == 2 else nn.Identity()