mirror of
https://github.com/huggingface/pytorch-image-models.git
synced 2025-06-03 15:01:08 +08:00
Support other features only modes for EfficientNet
This commit is contained in:
parent
2d597b126d
commit
a09c88ed0f
@ -419,9 +419,11 @@ class EfficientNetBuilder:
|
||||
if extract_features:
|
||||
feature_info = dict(
|
||||
stage=stack_idx + 1, reduction=current_stride, **block.feature_info(self.feature_location))
|
||||
module_name = f'blocks.{stack_idx}.{block_idx}'
|
||||
leaf_name = feature_info.get('module', '')
|
||||
feature_info['module'] = '.'.join([module_name, leaf_name]) if leaf_name else module_name
|
||||
if leaf_name:
|
||||
feature_info['module'] = '.'.join([f'blocks.{stack_idx}.{block_idx}', leaf_name])
|
||||
else:
|
||||
feature_info['module'] = f'blocks.{stack_idx}'
|
||||
self.features.append(feature_info)
|
||||
|
||||
total_block_idx += 1 # incr global block idx (across all stacks)
|
||||
|
@ -269,15 +269,20 @@ class EfficientNetFeatures(nn.Module):
|
||||
|
||||
def _create_effnet(variant, pretrained=False, **kwargs):
|
||||
features_only = False
|
||||
features_cls = False
|
||||
model_cls = EfficientNet
|
||||
kwargs_filter = None
|
||||
if kwargs.pop('features_only', False):
|
||||
features_only = True
|
||||
kwargs_filter = ('num_classes', 'num_features', 'head_conv', 'global_pool')
|
||||
model_cls = EfficientNetFeatures
|
||||
if 'feature_cfg' not in kwargs:
|
||||
kwargs_filter = ('num_classes', 'num_features', 'head_conv', 'global_pool')
|
||||
model_cls = EfficientNetFeatures
|
||||
features_cls = True
|
||||
else:
|
||||
features_only = True
|
||||
model = build_model_with_cfg(
|
||||
model_cls, variant, pretrained,
|
||||
pretrained_strict=not features_only,
|
||||
features_only=features_only,
|
||||
pretrained_strict=not features_cls,
|
||||
kwargs_filter=kwargs_filter,
|
||||
**kwargs)
|
||||
if features_only:
|
||||
|
Loading…
x
Reference in New Issue
Block a user