| 116 | nn.init.constant_(m.bias, 0) |
| 117 | |
| 118 | def _make_layer(self, block, planes, blocks, stride=1): |
| 119 | downsample = None |
| 120 | if stride != 1 or self.inplanes != planes * block.expansion: |
| 121 | downsample = nn.Sequential( |
| 122 | nn.Conv2d(self.inplanes, planes * block.expansion, |
| 123 | kernel_size=1, stride=stride, bias=False), |
| 124 | NN.BatchNorm2d(planes * block.expansion), #NN.BatchNorm2d |
| 125 | ) |
| 126 | |
| 127 | layers = [] |
| 128 | layers.append(block(self.inplanes, planes, stride, downsample)) |
| 129 | self.inplanes = planes * block.expansion |
| 130 | for i in range(1, blocks): |
| 131 | layers.append(block(self.inplanes, planes)) |
| 132 | |
| 133 | return nn.Sequential(*layers) |
| 134 | |
| 135 | def forward(self, x): |
| 136 | features = [] |