An 18-layer ResNet architecture.
| 55 | |
| 56 | |
| 57 | class ResNet(nn.Module): |
| 58 | |
| 59 | """ |
| 60 | An 18-layer ResNet architecture. |
| 61 | """ |
| 62 | |
| 63 | def __init__(self): |
| 64 | super(ResNet, self).__init__() |
| 65 | self.layer1 = ResNetLayer(64, 64, stride=1) |
| 66 | self.layer2 = ResNetLayer(64, 128, stride=2) |
| 67 | self.layer3 = ResNetLayer(128, 256, stride=2) |
| 68 | self.layer4 = ResNetLayer(256, 512, stride=2) |
| 69 | self.avgpool = nn.AvgPool2d(kernel_size=(4,4), stride=(1,1)) |
| 70 | |
| 71 | return |
| 72 | |
| 73 | |
| 74 | def forward(self, inputBatch): |
| 75 | batch = self.layer1(inputBatch) |
| 76 | batch = self.layer2(batch) |
| 77 | batch = self.layer3(batch) |
| 78 | batch = self.layer4(batch) |
| 79 | outputBatch = self.avgpool(batch) |
| 80 | return outputBatch |
| 81 | |
| 82 | |
| 83 | class GlobalLayerNorm(nn.Module): |