(self,
num_feature_levels,
hidden_dim,
backbone, # placeholder
bn_group,
**kwargs)
| 533 | |
| 534 | class PedDetSimpleResNetFPN(nn.Module): |
| 535 | def __init__(self, |
| 536 | num_feature_levels, |
| 537 | hidden_dim, |
| 538 | backbone, # placeholder |
| 539 | bn_group, |
| 540 | **kwargs): |
| 541 | super(PedDetSimpleResNetFPN, self).__init__() |
| 542 | num_backbone_outs = len(backbone.strides) |
| 543 | self.backbone = [backbone] |
| 544 | self.num_feature_levels = num_feature_levels |
| 545 | if num_feature_levels > 1: |
| 546 | num_backbone_outs = len(backbone.strides) |
| 547 | input_proj_list = [] |
| 548 | for _ in range(num_backbone_outs): |
| 549 | in_channels = backbone.num_channels[_] |
| 550 | input_proj_list.append(nn.Sequential( |
| 551 | nn.Conv2d(in_channels, hidden_dim, kernel_size=1), |
| 552 | nn.GroupNorm(32, hidden_dim), |
| 553 | )) |
| 554 | for _ in range(num_feature_levels - num_backbone_outs): |
| 555 | input_proj_list.append(nn.Sequential( |
| 556 | nn.Conv2d(in_channels, hidden_dim, kernel_size=3, stride=2, padding=1), |
| 557 | nn.GroupNorm(32, hidden_dim), |
| 558 | )) |
| 559 | in_channels = hidden_dim |
| 560 | self.input_proj = nn.ModuleList(input_proj_list) |
| 561 | else: |
| 562 | self.input_proj = nn.ModuleList([ |
| 563 | nn.Sequential( |
| 564 | nn.Conv2d(backbone.num_channels[-1], hidden_dim, kernel_size=1), |
| 565 | nn.GroupNorm(32, hidden_dim), |
| 566 | ) |
| 567 | ]) |
| 568 | |
| 569 | self._reset_parameters() |
| 570 | |
| 571 | def _reset_parameters(self): |
| 572 | for proj in self.input_proj: |
nothing calls this directly
no test coverage detected