-
Notifications
You must be signed in to change notification settings - Fork 9.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Release of v2.23.0
- Loading branch information
Showing
113 changed files
with
4,169 additions
and
406 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# EfficientNet | ||
|
||
> [EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks](https://arxiv.org/abs/1905.11946v5) | ||
<!-- [BACKBONE] --> | ||
|
||
## Introduction | ||
|
||
Convolutional Neural Networks (ConvNets) are commonly developed at a fixed resource budget, and then scaled up for better accuracy if more resources are available. In this paper, we systematically study model scaling and identify that carefully balancing network depth, width, and resolution can lead to better performance. Based on this observation, we propose a new scaling method that uniformly scales all dimensions of depth/width/resolution using a simple yet highly effective compound coefficient. We demonstrate the effectiveness of this method on scaling up MobileNets and ResNet. | ||
|
||
To go even further, we use neural architecture search to design a new baseline network and scale it up to obtain a family of models, called EfficientNets, which achieve much better accuracy and efficiency than previous ConvNets. In particular, our EfficientNet-B7 achieves state-of-the-art 84.3% top-1 accuracy on ImageNet, while being 8.4x smaller and 6.1x faster on inference than the best existing ConvNet. Our EfficientNets also transfer well and achieve state-of-the-art accuracy on CIFAR-100 (91.7%), Flowers (98.8%), and 3 other transfer learning datasets, with an order of magnitude fewer parameters. | ||
|
||
## Results and Models | ||
|
||
### RetinaNet | ||
|
||
| Backbone | Style | Lr schd | Mem (GB) | Inf time (fps) | box AP | Config | Download | | ||
| :-------------: | :-----: | :-----: | :------: | :------------: | :----: | :------: | :--------: | | ||
|Efficientnet-b3 | pytorch | 1x | - | - | 40.5 |[config](https://github.com/open-mmlab/mmdetection/tree/master/configs/efficientnet/retinanet_effb3_fpn_crop896_8x4_1x_coco.py) | [model]() | [log]() | | ||
|
||
## Citation | ||
|
||
```latex | ||
@article{tan2019efficientnet, | ||
title={Efficientnet: Rethinking model scaling for convolutional neural networks}, | ||
author={Tan, Mingxing and Le, Quoc V}, | ||
journal={arXiv preprint arXiv:1905.11946}, | ||
year={2019} | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
Models: | ||
- Name: retinanet_effb3_fpn_crop896_8x4_1x_coco | ||
In Collection: RetinaNet | ||
Config: configs/efficientnet/retinanet_effb3_fpn_crop896_8x4_1x_coco.py | ||
Metadata: | ||
Epochs: 12 | ||
Results: | ||
- Task: Object Detection | ||
Dataset: COCO | ||
Metrics: | ||
box AP: 40.5 | ||
Weights: url | ||
Paper: | ||
URL: https://arxiv.org/abs/1905.11946v5 | ||
Title: 'EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks' | ||
README: configs/efficientnet/README.md | ||
Code: | ||
URL: https://github.com/open-mmlab/mmdetection/blob/v2.23.0/mmdet/models/backbones/efficientnet.py#L159 | ||
Version: v2.23.0 |
93 changes: 93 additions & 0 deletions
93
configs/efficientnet/retinanet_effb3_fpn_crop896_8x4_1x_coco.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
_base_ = [ | ||
'../_base_/models/retinanet_r50_fpn.py', | ||
'../_base_/datasets/coco_detection.py', '../_base_/default_runtime.py' | ||
] | ||
|
||
cudnn_benchmark = True | ||
norm_cfg = dict(type='BN', requires_grad=True) | ||
checkpoint = 'https://download.openmmlab.com/mmclassification/v0/efficientnet/efficientnet-b3_3rdparty_8xb32-aa_in1k_20220119-5b4887a0.pth' # noqa | ||
model = dict( | ||
backbone=dict( | ||
_delete_=True, | ||
type='EfficientNet', | ||
arch='b3', | ||
drop_path_rate=0.2, | ||
out_indices=(3, 4, 5), | ||
frozen_stages=0, | ||
norm_cfg=dict( | ||
type='SyncBN', requires_grad=True, eps=1e-3, momentum=0.01), | ||
norm_eval=False, | ||
init_cfg=dict( | ||
type='Pretrained', prefix='backbone', checkpoint=checkpoint)), | ||
neck=dict( | ||
in_channels=[48, 136, 384], | ||
start_level=0, | ||
out_channels=256, | ||
relu_before_extra_convs=True, | ||
no_norm_on_lateral=True, | ||
norm_cfg=norm_cfg), | ||
bbox_head=dict(type='RetinaSepBNHead', num_ins=5, norm_cfg=norm_cfg), | ||
# training and testing settings | ||
train_cfg=dict(assigner=dict(neg_iou_thr=0.5))) | ||
|
||
# dataset settings | ||
img_norm_cfg = dict( | ||
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) | ||
img_size = (896, 896) | ||
train_pipeline = [ | ||
dict(type='LoadImageFromFile'), | ||
dict(type='LoadAnnotations', with_bbox=True), | ||
dict( | ||
type='Resize', | ||
img_scale=img_size, | ||
ratio_range=(0.8, 1.2), | ||
keep_ratio=True), | ||
dict(type='RandomCrop', crop_size=img_size), | ||
dict(type='RandomFlip', flip_ratio=0.5), | ||
dict(type='Normalize', **img_norm_cfg), | ||
dict(type='Pad', size=img_size), | ||
dict(type='DefaultFormatBundle'), | ||
dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels']), | ||
] | ||
test_pipeline = [ | ||
dict(type='LoadImageFromFile'), | ||
dict( | ||
type='MultiScaleFlipAug', | ||
img_scale=img_size, | ||
flip=False, | ||
transforms=[ | ||
dict(type='Resize', keep_ratio=True), | ||
dict(type='RandomFlip'), | ||
dict(type='Normalize', **img_norm_cfg), | ||
dict(type='Pad', size=img_size), | ||
dict(type='ImageToTensor', keys=['img']), | ||
dict(type='Collect', keys=['img']), | ||
]) | ||
] | ||
data = dict( | ||
samples_per_gpu=4, | ||
workers_per_gpu=4, | ||
train=dict(pipeline=train_pipeline), | ||
val=dict(pipeline=test_pipeline), | ||
test=dict(pipeline=test_pipeline)) | ||
# optimizer | ||
optimizer_config = dict(grad_clip=None) | ||
optimizer = dict( | ||
type='SGD', | ||
lr=0.04, | ||
momentum=0.9, | ||
weight_decay=0.0001, | ||
paramwise_cfg=dict(norm_decay_mult=0, bypass_duplicate=True)) | ||
# learning policy | ||
lr_config = dict( | ||
policy='step', | ||
warmup='linear', | ||
warmup_iters=1000, | ||
warmup_ratio=0.1, | ||
step=[8, 11]) | ||
# runtime settings | ||
runner = dict(type='EpochBasedRunner', max_epochs=12) | ||
|
||
# NOTE: This variable is for automatically scaling LR, | ||
# USER SHOULD NOT CHANGE THIS VALUE. | ||
default_batch_size = 32 # (8 GPUs) x (4 samples per GPU) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
17 changes: 17 additions & 0 deletions
17
configs/faster_rcnn/faster_rcnn_r50_fpn_tnr-pretrain_1x_coco.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
_base_ = [ | ||
'../_base_/models/faster_rcnn_r50_fpn.py', | ||
'../_base_/datasets/coco_detection.py', | ||
'../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py' | ||
] | ||
|
||
checkpoint = 'https://download.pytorch.org/models/resnet50-11ad3fa6.pth' | ||
model = dict( | ||
backbone=dict(init_cfg=dict(type='Pretrained', checkpoint=checkpoint))) | ||
|
||
# `lr` and `weight_decay` have been searched to be optimal. | ||
optimizer = dict( | ||
_delete_=True, | ||
type='AdamW', | ||
lr=0.0001, | ||
weight_decay=0.1, | ||
paramwise_cfg=dict(norm_decay_mult=0., bypass_duplicate=True)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.