(self, block_args, num_classes=1000, num_features=1280, in_chans=3, stem_size=32, fix_stem=False,
output_stride=32, pad_type='', round_chs_fn=round_channels, act_layer=None, norm_layer=None,
se_layer=None, drop_rate=0., drop_path_rate=0., global_pool='avg')
| 414 | """ |
| 415 | |
| 416 | def __init__(self, block_args, num_classes=1000, num_features=1280, in_chans=3, stem_size=32, fix_stem=False, |
| 417 | output_stride=32, pad_type='', round_chs_fn=round_channels, act_layer=None, norm_layer=None, |
| 418 | se_layer=None, drop_rate=0., drop_path_rate=0., global_pool='avg'): |
| 419 | super(EfficientNet, self).__init__() |
| 420 | act_layer = act_layer or nn.ReLU |
| 421 | norm_layer = norm_layer or nn.BatchNorm2d |
| 422 | se_layer = se_layer or SqueezeExcite |
| 423 | self.num_classes = num_classes |
| 424 | self.num_features = num_features |
| 425 | self.drop_rate = drop_rate |
| 426 | |
| 427 | # Stem |
| 428 | if not fix_stem: |
| 429 | stem_size = round_chs_fn(stem_size) |
| 430 | self.conv_stem = create_conv2d(in_chans, stem_size, 3, stride=2, padding=pad_type) |
| 431 | self.bn1 = norm_layer(stem_size) |
| 432 | self.act1 = act_layer(inplace=True) |
| 433 | |
| 434 | # Middle stages (IR/ER/DS Blocks) |
| 435 | builder = EfficientNetBuilder( |
| 436 | output_stride=output_stride, pad_type=pad_type, round_chs_fn=round_chs_fn, |
| 437 | act_layer=act_layer, norm_layer=norm_layer, se_layer=se_layer, drop_path_rate=drop_path_rate) |
| 438 | self.blocks = nn.Sequential(*builder(stem_size, block_args)) |
| 439 | self.feature_info = builder.features |
| 440 | head_chs = builder.in_chs |
| 441 | |
| 442 | # Head + Pooling |
| 443 | self.conv_head = create_conv2d(head_chs, self.num_features, 1, padding=pad_type) |
| 444 | self.bn2 = norm_layer(self.num_features) |
| 445 | self.act2 = act_layer(inplace=True) |
| 446 | self.global_pool, self.classifier = create_classifier( |
| 447 | self.num_features, self.num_classes, pool_type=global_pool) |
| 448 | |
| 449 | efficientnet_init_weights(self) |
| 450 | |
| 451 | def as_sequential(self): |
| 452 | layers = [self.conv_stem, self.bn1, self.act1] |
no test coverage detected