(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')
| 426 | """ |
| 427 | |
| 428 | def __init__(self, block_args, num_classes=1000, num_features=1280, in_chans=3, stem_size=32, fix_stem=False, |
| 429 | output_stride=32, pad_type='', round_chs_fn=round_channels, act_layer=None, norm_layer=None, |
| 430 | se_layer=None, drop_rate=0., drop_path_rate=0., global_pool='avg'): |
| 431 | super(EfficientNet, self).__init__() |
| 432 | act_layer = act_layer or nn.ReLU |
| 433 | norm_layer = norm_layer or nn.BatchNorm2d |
| 434 | se_layer = se_layer or SqueezeExcite |
| 435 | self.num_classes = num_classes |
| 436 | self.num_features = num_features |
| 437 | self.drop_rate = drop_rate |
| 438 | |
| 439 | # Stem |
| 440 | if not fix_stem: |
| 441 | stem_size = round_chs_fn(stem_size) |
| 442 | self.conv_stem = create_conv2d(in_chans, stem_size, 3, stride=2, padding=pad_type) |
| 443 | self.bn1 = norm_layer(stem_size) |
| 444 | self.act1 = act_layer(inplace=True) |
| 445 | |
| 446 | # Middle stages (IR/ER/DS Blocks) |
| 447 | builder = EfficientNetBuilder( |
| 448 | output_stride=output_stride, pad_type=pad_type, round_chs_fn=round_chs_fn, |
| 449 | act_layer=act_layer, norm_layer=norm_layer, se_layer=se_layer, drop_path_rate=drop_path_rate) |
| 450 | self.blocks = nn.Sequential(*builder(stem_size, block_args)) |
| 451 | self.feature_info = builder.features |
| 452 | head_chs = builder.in_chs |
| 453 | |
| 454 | # Head + Pooling |
| 455 | self.conv_head = create_conv2d(head_chs, self.num_features, 1, padding=pad_type) |
| 456 | self.bn2 = norm_layer(self.num_features) |
| 457 | self.act2 = act_layer(inplace=True) |
| 458 | self.global_pool, self.classifier = create_classifier( |
| 459 | self.num_features, self.num_classes, pool_type=global_pool) |
| 460 | |
| 461 | efficientnet_init_weights(self) |
| 462 | |
| 463 | def as_sequential(self): |
| 464 | layers = [self.conv_stem, self.bn1, self.act1] |
no test coverage detected