| 68 | |
| 69 | |
| 70 | def _make_layer(self, block, planes, blocks, stride=1): |
| 71 | downsample = None |
| 72 | if stride != 1 or self.inplanes != planes: |
| 73 | downsample = nn.Sequential( |
| 74 | nn.Conv2d(self.inplanes, planes, |
| 75 | kernel_size=1, stride=stride, bias=False), |
| 76 | ) |
| 77 | # GroupNorm(planes), |
| 78 | |
| 79 | layers = [] |
| 80 | layers.append(block(self.inplanes, planes, stride, downsample)) |
| 81 | self.inplanes = planes |
| 82 | for i in range(1, blocks): |
| 83 | layers.append(block(self.inplanes, planes)) |
| 84 | |
| 85 | return nn.Sequential(*layers) |
| 86 | |
| 87 | def _check_outliers(self, crop_feature, target_width): |
| 88 | _, _, H, W = crop_feature.size() |