| 266 | prediction |
| 267 | ''' |
| 268 | def __init__(self, in_dim, reduction_dim=256, output_stride=16, |
| 269 | rates=[(1, 6), (18, 15), (6, 21), (1, 1), (6, 3)], |
| 270 | dropout=False, separable=False): |
| 271 | super(DPC, self).__init__() |
| 272 | |
| 273 | self.dropout = dropout |
| 274 | if output_stride == 8: |
| 275 | rates = [(2 * r[0], 2 * r[1]) for r in rates] |
| 276 | elif output_stride == 16: |
| 277 | pass |
| 278 | else: |
| 279 | raise 'output stride of {} not supported'.format(output_stride) |
| 280 | |
| 281 | self.a = dpc_conv(in_dim, reduction_dim, rates[0], separable) |
| 282 | self.b = dpc_conv(reduction_dim, reduction_dim, rates[1], separable) |
| 283 | self.c = dpc_conv(reduction_dim, reduction_dim, rates[2], separable) |
| 284 | self.d = dpc_conv(reduction_dim, reduction_dim, rates[3], separable) |
| 285 | self.e = dpc_conv(reduction_dim, reduction_dim, rates[4], separable) |
| 286 | |
| 287 | self.drop = nn.Dropout(p=0.1) |
| 288 | |
| 289 | def forward(self, x): |
| 290 | a = self.a(x) |