| 154 | output_channels = 832 |
| 155 | |
| 156 | def __init__(self): |
| 157 | super(GoogLeNet, self).__init__() |
| 158 | self.pre_layers = nn.Sequential( |
| 159 | nn.Conv2d(3, 64, kernel_size=7, stride=2, padding=3), |
| 160 | nn.ReLU(True), |
| 161 | |
| 162 | nn.MaxPool2d(3, stride=2, ceil_mode=True), |
| 163 | SpatialCrossMapLRN(5), |
| 164 | |
| 165 | nn.Conv2d(64, 64, 1), |
| 166 | nn.ReLU(True), |
| 167 | |
| 168 | nn.Conv2d(64, 192, 3, padding=1), |
| 169 | nn.ReLU(True), |
| 170 | |
| 171 | SpatialCrossMapLRN(5), |
| 172 | nn.MaxPool2d(3, stride=2, ceil_mode=True), |
| 173 | ) |
| 174 | |
| 175 | self.a3 = Inception(192, 64, 96, 128, 16, 32, 32) |
| 176 | self.b3 = Inception(256, 128, 128, 192, 32, 96, 64) |
| 177 | |
| 178 | self.maxpool = nn.MaxPool2d(3, stride=2, ceil_mode=True) |
| 179 | |
| 180 | self.a4 = Inception(480, 192, 96, 208, 16, 48, 64) |
| 181 | self.b4 = Inception(512, 160, 112, 224, 24, 64, 64) |
| 182 | self.c4 = Inception(512, 128, 128, 256, 24, 64, 64) |
| 183 | self.d4 = Inception(512, 112, 144, 288, 32, 64, 64) |
| 184 | self.e4 = Inception(528, 256, 160, 320, 32, 128, 128) |
| 185 | |
| 186 | def forward(self, x): |
| 187 | out = self.pre_layers(x) |