|
|
@@ -25,6 +25,17 @@ class SPPF(nn.Module):
|
|
|
stride=1,
|
|
|
padding=cfg.spp_pooling_size // 2)
|
|
|
|
|
|
+ # Initialize all layers
|
|
|
+ self.init_weights()
|
|
|
+
|
|
|
+ def init_weights(self):
|
|
|
+ """Initialize the parameters."""
|
|
|
+ for m in self.modules():
|
|
|
+ if isinstance(m, torch.nn.Conv2d):
|
|
|
+ # In order to be consistent with the source code,
|
|
|
+ # reset the Conv2d initialization parameters
|
|
|
+ m.reset_parameters()
|
|
|
+
|
|
|
def forward(self, x):
|
|
|
x = self.cv1(x)
|
|
|
y1 = self.m(x)
|
|
|
@@ -46,6 +57,17 @@ class SPPElan(nn.Module):
|
|
|
self.conv_layer_2 = BasicConv(self.inter_dim * 4, self.out_dim, kernel_size=1, act_type=cfg.neck_act, norm_type=cfg.neck_norm)
|
|
|
self.pool_layer = nn.MaxPool2d(kernel_size=cfg.spp_pooling_size, stride=1, padding=cfg.spp_pooling_size // 2)
|
|
|
|
|
|
+ # Initialize all layers
|
|
|
+ self.init_weights()
|
|
|
+
|
|
|
+ def init_weights(self):
|
|
|
+ """Initialize the parameters."""
|
|
|
+ for m in self.modules():
|
|
|
+ if isinstance(m, torch.nn.Conv2d):
|
|
|
+ # In order to be consistent with the source code,
|
|
|
+ # reset the Conv2d initialization parameters
|
|
|
+ m.reset_parameters()
|
|
|
+
|
|
|
def forward(self, x):
|
|
|
y = [self.conv_layer_1(x)]
|
|
|
y.extend(self.pool_layer(y[-1]) for _ in range(3))
|