From d2483e15fc48b4166815c15a6e12be864bcc521a Mon Sep 17 00:00:00 2001 From: Kai Chen <chenkaidev@gmail.com> Date: Wed, 31 Jul 2019 14:37:46 +0800 Subject: [PATCH] Use isort to sort imports and setup travis (#1085) * add isort config * use isort to sort imports * add isort to travis --- .isort.cfg | 7 +++++++ .travis.yml | 3 ++- mmdet/apis/train.py | 10 ++++------ mmdet/core/anchor/anchor_target.py | 2 +- mmdet/core/anchor/guided_anchor_target.py | 4 ++-- mmdet/core/bbox/assigners/approx_max_iou_assigner.py | 2 +- mmdet/core/bbox/assigners/max_iou_assigner.py | 4 ++-- mmdet/core/bbox/bbox_target.py | 2 +- mmdet/core/bbox/samplers/combined_sampler.py | 2 +- mmdet/core/bbox/samplers/ohem_sampler.py | 2 +- mmdet/core/evaluation/eval_hooks.py | 6 +++--- mmdet/core/fp16/hooks.py | 3 ++- mmdet/core/mask/mask_target.py | 4 ++-- mmdet/core/post_processing/merge_augs.py | 3 +-- mmdet/core/utils/dist_utils.py | 4 ++-- mmdet/datasets/custom.py | 8 ++++---- mmdet/datasets/loader/build_loader.py | 4 ++-- mmdet/datasets/loader/sampler.py | 7 +++---- mmdet/models/anchor_heads/anchor_head.py | 4 ++-- mmdet/models/anchor_heads/fcos_head.py | 4 ++-- mmdet/models/anchor_heads/ga_retina_head.py | 6 +++--- mmdet/models/anchor_heads/ga_rpn_head.py | 2 +- mmdet/models/anchor_heads/guided_anchor_head.py | 8 ++++---- mmdet/models/anchor_heads/retina_head.py | 4 ++-- mmdet/models/anchor_heads/rpn_head.py | 2 +- mmdet/models/anchor_heads/ssd_head.py | 2 +- mmdet/models/backbones/hrnet.py | 2 +- mmdet/models/backbones/resnet.py | 6 ++---- mmdet/models/backbones/resnext.py | 4 ++-- mmdet/models/backbones/ssd_vgg.py | 3 +-- mmdet/models/bbox_heads/bbox_head.py | 4 ++-- mmdet/models/bbox_heads/convfc_bbox_head.py | 2 +- mmdet/models/builder.py | 4 ++-- mmdet/models/detectors/base.py | 4 ++-- mmdet/models/detectors/cascade_rcnn.py | 8 ++++---- mmdet/models/detectors/fast_rcnn.py | 2 +- mmdet/models/detectors/faster_rcnn.py | 2 +- mmdet/models/detectors/fcos.py | 2 +- mmdet/models/detectors/grid_rcnn.py | 7 +++---- mmdet/models/detectors/htc.py | 6 +++--- mmdet/models/detectors/mask_rcnn.py | 2 +- mmdet/models/detectors/mask_scoring_rcnn.py | 2 +- mmdet/models/detectors/retinanet.py | 2 +- mmdet/models/detectors/rpn.py | 6 +++--- mmdet/models/detectors/single_stage.py | 4 ++-- mmdet/models/detectors/test_mixins.py | 4 ++-- mmdet/models/detectors/two_stage.py | 6 +++--- mmdet/models/losses/balanced_l1_loss.py | 2 +- mmdet/models/losses/cross_entropy_loss.py | 2 +- mmdet/models/losses/focal_loss.py | 2 +- mmdet/models/losses/iou_loss.py | 2 +- mmdet/models/losses/mse_loss.py | 2 +- mmdet/models/losses/smooth_l1_loss.py | 2 +- mmdet/models/mask_heads/fcn_mask_head.py | 2 +- mmdet/models/mask_heads/htc_mask_head.py | 2 +- mmdet/models/mask_heads/maskiou_head.py | 2 +- mmdet/models/necks/hrfpn.py | 4 ++-- mmdet/models/plugins/generalized_attention.py | 6 +++--- mmdet/models/utils/conv_module.py | 2 +- mmdet/ops/nms/nms_wrapper.py | 2 +- mmdet/ops/roi_align/gradcheck.py | 7 ++++--- mmdet/ops/roi_pool/gradcheck.py | 7 ++++--- tools/publish_model.py | 1 + tools/test.py | 4 ++-- tools/train.py | 8 ++++---- 65 files changed, 127 insertions(+), 123 deletions(-) create mode 100644 .isort.cfg diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 0000000..c1684dd --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,7 @@ +[isort] +line_length = 79 +multi_line_output = 0 +known_first_party = mmdet +known_third_party = mmcv,numpy,matplotlib,pycocotools,six,seaborn,terminaltables,torch,torchvision +no_lines_before = STDLIB,LOCALFOLDER +default_section = THIRDPARTY \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 127b903..8ef07f0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ dist: xenial language: python install: - - pip install flake8 yapf + - pip install isort flake8 yapf python: - "3.5" @@ -11,4 +11,5 @@ python: script: - flake8 + - isort -rc --diff mmdet/ tools/ - yapf -r -d --style .style.yapf mmdet/ tools/ \ No newline at end of file diff --git a/mmdet/apis/train.py b/mmdet/apis/train.py index 0ebbb9e..dc51381 100644 --- a/mmdet/apis/train.py +++ b/mmdet/apis/train.py @@ -1,17 +1,15 @@ from __future__ import division - import re from collections import OrderedDict import torch -from mmcv.runner import Runner, DistSamplerSeedHook, obj_from_dict from mmcv.parallel import MMDataParallel, MMDistributedDataParallel +from mmcv.runner import DistSamplerSeedHook, Runner, obj_from_dict from mmdet import datasets -from mmdet.core import (DistOptimizerHook, DistEvalmAPHook, - CocoDistEvalRecallHook, CocoDistEvalmAPHook, - Fp16OptimizerHook) -from mmdet.datasets import build_dataloader, DATASETS +from mmdet.core import (CocoDistEvalmAPHook, CocoDistEvalRecallHook, + DistEvalmAPHook, DistOptimizerHook, Fp16OptimizerHook) +from mmdet.datasets import DATASETS, build_dataloader from mmdet.models import RPN from .env import get_root_logger diff --git a/mmdet/core/anchor/anchor_target.py b/mmdet/core/anchor/anchor_target.py index 60c902e..91238e6 100644 --- a/mmdet/core/anchor/anchor_target.py +++ b/mmdet/core/anchor/anchor_target.py @@ -1,6 +1,6 @@ import torch -from ..bbox import assign_and_sample, build_assigner, PseudoSampler, bbox2delta +from ..bbox import PseudoSampler, assign_and_sample, bbox2delta, build_assigner from ..utils import multi_apply diff --git a/mmdet/core/anchor/guided_anchor_target.py b/mmdet/core/anchor/guided_anchor_target.py index 7284a73..21abe5e 100644 --- a/mmdet/core/anchor/guided_anchor_target.py +++ b/mmdet/core/anchor/guided_anchor_target.py @@ -1,7 +1,7 @@ import torch -from ..bbox import build_assigner, build_sampler, PseudoSampler -from ..utils import unmap, multi_apply +from ..bbox import PseudoSampler, build_assigner, build_sampler +from ..utils import multi_apply, unmap def calc_region(bbox, ratio, featmap_size=None): diff --git a/mmdet/core/bbox/assigners/approx_max_iou_assigner.py b/mmdet/core/bbox/assigners/approx_max_iou_assigner.py index 867a56b..4ab5259 100644 --- a/mmdet/core/bbox/assigners/approx_max_iou_assigner.py +++ b/mmdet/core/bbox/assigners/approx_max_iou_assigner.py @@ -1,7 +1,7 @@ import torch -from .max_iou_assigner import MaxIoUAssigner from ..geometry import bbox_overlaps +from .max_iou_assigner import MaxIoUAssigner class ApproxMaxIoUAssigner(MaxIoUAssigner): diff --git a/mmdet/core/bbox/assigners/max_iou_assigner.py b/mmdet/core/bbox/assigners/max_iou_assigner.py index 99dcbe8..5c93b36 100644 --- a/mmdet/core/bbox/assigners/max_iou_assigner.py +++ b/mmdet/core/bbox/assigners/max_iou_assigner.py @@ -1,8 +1,8 @@ import torch -from .base_assigner import BaseAssigner -from .assign_result import AssignResult from ..geometry import bbox_overlaps +from .assign_result import AssignResult +from .base_assigner import BaseAssigner class MaxIoUAssigner(BaseAssigner): diff --git a/mmdet/core/bbox/bbox_target.py b/mmdet/core/bbox/bbox_target.py index 20b3957..2a918bf 100644 --- a/mmdet/core/bbox/bbox_target.py +++ b/mmdet/core/bbox/bbox_target.py @@ -1,7 +1,7 @@ import torch -from .transforms import bbox2delta from ..utils import multi_apply +from .transforms import bbox2delta def bbox_target(pos_bboxes_list, diff --git a/mmdet/core/bbox/samplers/combined_sampler.py b/mmdet/core/bbox/samplers/combined_sampler.py index 25e820b..351a097 100644 --- a/mmdet/core/bbox/samplers/combined_sampler.py +++ b/mmdet/core/bbox/samplers/combined_sampler.py @@ -1,5 +1,5 @@ -from .base_sampler import BaseSampler from ..assign_sampling import build_sampler +from .base_sampler import BaseSampler class CombinedSampler(BaseSampler): diff --git a/mmdet/core/bbox/samplers/ohem_sampler.py b/mmdet/core/bbox/samplers/ohem_sampler.py index 0711d97..2500f31 100644 --- a/mmdet/core/bbox/samplers/ohem_sampler.py +++ b/mmdet/core/bbox/samplers/ohem_sampler.py @@ -1,7 +1,7 @@ import torch -from .base_sampler import BaseSampler from ..transforms import bbox2roi +from .base_sampler import BaseSampler class OHEMSampler(BaseSampler): diff --git a/mmdet/core/evaluation/eval_hooks.py b/mmdet/core/evaluation/eval_hooks.py index 1786d93..c37f7bd 100644 --- a/mmdet/core/evaluation/eval_hooks.py +++ b/mmdet/core/evaluation/eval_hooks.py @@ -5,14 +5,14 @@ import mmcv import numpy as np import torch import torch.distributed as dist +from mmcv.parallel import collate, scatter from mmcv.runner import Hook -from mmcv.parallel import scatter, collate from pycocotools.cocoeval import COCOeval from torch.utils.data import Dataset -from .coco_utils import results2json, fast_eval_recall -from .mean_ap import eval_map from mmdet import datasets +from .coco_utils import fast_eval_recall, results2json +from .mean_ap import eval_map class DistEvalHook(Hook): diff --git a/mmdet/core/fp16/hooks.py b/mmdet/core/fp16/hooks.py index b1ab45e..6b4dacb 100644 --- a/mmdet/core/fp16/hooks.py +++ b/mmdet/core/fp16/hooks.py @@ -1,10 +1,11 @@ import copy + import torch import torch.nn as nn from mmcv.runner import OptimizerHook -from .utils import cast_tensor_type from ..utils.dist_utils import allreduce_grads +from .utils import cast_tensor_type class Fp16OptimizerHook(OptimizerHook): diff --git a/mmdet/core/mask/mask_target.py b/mmdet/core/mask/mask_target.py index be93dfc..0acbc00 100644 --- a/mmdet/core/mask/mask_target.py +++ b/mmdet/core/mask/mask_target.py @@ -1,6 +1,6 @@ -import torch -import numpy as np import mmcv +import numpy as np +import torch def mask_target(pos_proposals_list, pos_assigned_gt_inds_list, gt_masks_list, diff --git a/mmdet/core/post_processing/merge_augs.py b/mmdet/core/post_processing/merge_augs.py index f97954b..fcee4fb 100644 --- a/mmdet/core/post_processing/merge_augs.py +++ b/mmdet/core/post_processing/merge_augs.py @@ -1,6 +1,5 @@ -import torch - import numpy as np +import torch from mmdet.ops import nms from ..bbox import bbox_mapping_back diff --git a/mmdet/core/utils/dist_utils.py b/mmdet/core/utils/dist_utils.py index 51d7e3c..be830b6 100644 --- a/mmdet/core/utils/dist_utils.py +++ b/mmdet/core/utils/dist_utils.py @@ -1,9 +1,9 @@ from collections import OrderedDict import torch.distributed as dist -from torch._utils import (_flatten_dense_tensors, _unflatten_dense_tensors, - _take_tensors) from mmcv.runner import OptimizerHook +from torch._utils import (_flatten_dense_tensors, _take_tensors, + _unflatten_dense_tensors) def _allreduce_coalesced(tensors, world_size, bucket_size_mb=-1): diff --git a/mmdet/datasets/custom.py b/mmdet/datasets/custom.py index e0ea78c..18d7195 100644 --- a/mmdet/datasets/custom.py +++ b/mmdet/datasets/custom.py @@ -6,11 +6,11 @@ import numpy as np from mmcv.parallel import DataContainer as DC from torch.utils.data import Dataset -from .registry import DATASETS -from .transforms import (ImageTransform, BboxTransform, MaskTransform, - SegMapTransform, Numpy2Tensor) -from .utils import to_tensor, random_scale from .extra_aug import ExtraAugmentation +from .registry import DATASETS +from .transforms import (BboxTransform, ImageTransform, MaskTransform, + Numpy2Tensor, SegMapTransform) +from .utils import random_scale, to_tensor @DATASETS.register_module diff --git a/mmdet/datasets/loader/build_loader.py b/mmdet/datasets/loader/build_loader.py index 1843713..d3746e1 100644 --- a/mmdet/datasets/loader/build_loader.py +++ b/mmdet/datasets/loader/build_loader.py @@ -1,11 +1,11 @@ import platform from functools import partial -from mmcv.runner import get_dist_info from mmcv.parallel import collate +from mmcv.runner import get_dist_info from torch.utils.data import DataLoader -from .sampler import GroupSampler, DistributedGroupSampler, DistributedSampler +from .sampler import DistributedGroupSampler, DistributedSampler, GroupSampler if platform.system() != 'Windows': # https://github.com/pytorch/pytorch/issues/973 diff --git a/mmdet/datasets/loader/sampler.py b/mmdet/datasets/loader/sampler.py index c222eb2..6c52900 100644 --- a/mmdet/datasets/loader/sampler.py +++ b/mmdet/datasets/loader/sampler.py @@ -1,12 +1,11 @@ from __future__ import division - import math -import torch -import numpy as np +import numpy as np +import torch from mmcv.runner.utils import get_dist_info -from torch.utils.data import Sampler from torch.utils.data import DistributedSampler as _DistributedSampler +from torch.utils.data import Sampler class DistributedSampler(_DistributedSampler): diff --git a/mmdet/models/anchor_heads/anchor_head.py b/mmdet/models/anchor_heads/anchor_head.py index 2b8b144..b3fb5b4 100644 --- a/mmdet/models/anchor_heads/anchor_head.py +++ b/mmdet/models/anchor_heads/anchor_head.py @@ -5,8 +5,8 @@ import torch import torch.nn as nn from mmcv.cnn import normal_init -from mmdet.core import (AnchorGenerator, anchor_target, delta2bbox, - multi_apply, multiclass_nms, force_fp32) +from mmdet.core import (AnchorGenerator, anchor_target, delta2bbox, force_fp32, + multi_apply, multiclass_nms) from ..builder import build_loss from ..registry import HEADS diff --git a/mmdet/models/anchor_heads/fcos_head.py b/mmdet/models/anchor_heads/fcos_head.py index 957906d..6ddf6c1 100644 --- a/mmdet/models/anchor_heads/fcos_head.py +++ b/mmdet/models/anchor_heads/fcos_head.py @@ -2,10 +2,10 @@ import torch import torch.nn as nn from mmcv.cnn import normal_init -from mmdet.core import multi_apply, multiclass_nms, distance2bbox, force_fp32 +from mmdet.core import distance2bbox, force_fp32, multi_apply, multiclass_nms from ..builder import build_loss from ..registry import HEADS -from ..utils import bias_init_with_prob, Scale, ConvModule +from ..utils import ConvModule, Scale, bias_init_with_prob INF = 1e8 diff --git a/mmdet/models/anchor_heads/ga_retina_head.py b/mmdet/models/anchor_heads/ga_retina_head.py index 40ad049..73f89d7 100644 --- a/mmdet/models/anchor_heads/ga_retina_head.py +++ b/mmdet/models/anchor_heads/ga_retina_head.py @@ -1,10 +1,10 @@ import torch.nn as nn from mmcv.cnn import normal_init -from .guided_anchor_head import GuidedAnchorHead, FeatureAdaption -from ..registry import HEADS -from ..utils import bias_init_with_prob, ConvModule from mmdet.ops import MaskedConv2d +from ..registry import HEADS +from ..utils import ConvModule, bias_init_with_prob +from .guided_anchor_head import FeatureAdaption, GuidedAnchorHead @HEADS.register_module diff --git a/mmdet/models/anchor_heads/ga_rpn_head.py b/mmdet/models/anchor_heads/ga_rpn_head.py index aecef2b..11512ff 100644 --- a/mmdet/models/anchor_heads/ga_rpn_head.py +++ b/mmdet/models/anchor_heads/ga_rpn_head.py @@ -5,8 +5,8 @@ from mmcv.cnn import normal_init from mmdet.core import delta2bbox from mmdet.ops import nms -from .guided_anchor_head import GuidedAnchorHead from ..registry import HEADS +from .guided_anchor_head import GuidedAnchorHead @HEADS.register_module diff --git a/mmdet/models/anchor_heads/guided_anchor_head.py b/mmdet/models/anchor_heads/guided_anchor_head.py index c3cc705..d2d71d0 100644 --- a/mmdet/models/anchor_heads/guided_anchor_head.py +++ b/mmdet/models/anchor_heads/guided_anchor_head.py @@ -5,14 +5,14 @@ import torch import torch.nn as nn from mmcv.cnn import normal_init -from mmdet.core import (AnchorGenerator, anchor_target, anchor_inside_flags, - ga_loc_target, ga_shape_target, delta2bbox, - multi_apply, multiclass_nms, force_fp32) +from mmdet.core import (AnchorGenerator, anchor_inside_flags, anchor_target, + delta2bbox, force_fp32, ga_loc_target, ga_shape_target, + multi_apply, multiclass_nms) from mmdet.ops import DeformConv, MaskedConv2d from ..builder import build_loss -from .anchor_head import AnchorHead from ..registry import HEADS from ..utils import bias_init_with_prob +from .anchor_head import AnchorHead class FeatureAdaption(nn.Module): diff --git a/mmdet/models/anchor_heads/retina_head.py b/mmdet/models/anchor_heads/retina_head.py index 53a5cc9..045db70 100644 --- a/mmdet/models/anchor_heads/retina_head.py +++ b/mmdet/models/anchor_heads/retina_head.py @@ -2,9 +2,9 @@ import numpy as np import torch.nn as nn from mmcv.cnn import normal_init -from .anchor_head import AnchorHead from ..registry import HEADS -from ..utils import bias_init_with_prob, ConvModule +from ..utils import ConvModule, bias_init_with_prob +from .anchor_head import AnchorHead @HEADS.register_module diff --git a/mmdet/models/anchor_heads/rpn_head.py b/mmdet/models/anchor_heads/rpn_head.py index 0a5fd37..50f1cc5 100644 --- a/mmdet/models/anchor_heads/rpn_head.py +++ b/mmdet/models/anchor_heads/rpn_head.py @@ -5,8 +5,8 @@ from mmcv.cnn import normal_init from mmdet.core import delta2bbox from mmdet.ops import nms -from .anchor_head import AnchorHead from ..registry import HEADS +from .anchor_head import AnchorHead @HEADS.register_module diff --git a/mmdet/models/anchor_heads/ssd_head.py b/mmdet/models/anchor_heads/ssd_head.py index db86c47..600dd4a 100644 --- a/mmdet/models/anchor_heads/ssd_head.py +++ b/mmdet/models/anchor_heads/ssd_head.py @@ -5,9 +5,9 @@ import torch.nn.functional as F from mmcv.cnn import xavier_init from mmdet.core import AnchorGenerator, anchor_target, multi_apply -from .anchor_head import AnchorHead from ..losses import smooth_l1_loss from ..registry import HEADS +from .anchor_head import AnchorHead # TODO: add loss evaluator for SSD diff --git a/mmdet/models/backbones/hrnet.py b/mmdet/models/backbones/hrnet.py index 178d102..9c942d6 100644 --- a/mmdet/models/backbones/hrnet.py +++ b/mmdet/models/backbones/hrnet.py @@ -6,7 +6,7 @@ from mmcv.runner import load_checkpoint from torch.nn.modules.batchnorm import _BatchNorm from ..registry import BACKBONES -from ..utils import build_norm_layer, build_conv_layer +from ..utils import build_conv_layer, build_norm_layer from .resnet import BasicBlock, Bottleneck diff --git a/mmdet/models/backbones/resnet.py b/mmdet/models/backbones/resnet.py index abe1280..eaead29 100644 --- a/mmdet/models/backbones/resnet.py +++ b/mmdet/models/backbones/resnet.py @@ -2,14 +2,12 @@ import logging import torch.nn as nn import torch.utils.checkpoint as cp -from torch.nn.modules.batchnorm import _BatchNorm - from mmcv.cnn import constant_init, kaiming_init from mmcv.runner import load_checkpoint +from torch.nn.modules.batchnorm import _BatchNorm -from mmdet.ops import DeformConv, ModulatedDeformConv, ContextBlock from mmdet.models.plugins import GeneralizedAttention - +from mmdet.ops import ContextBlock, DeformConv, ModulatedDeformConv from ..registry import BACKBONES from ..utils import build_conv_layer, build_norm_layer diff --git a/mmdet/models/backbones/resnext.py b/mmdet/models/backbones/resnext.py index c0b42b2..c5feaa4 100644 --- a/mmdet/models/backbones/resnext.py +++ b/mmdet/models/backbones/resnext.py @@ -3,10 +3,10 @@ import math import torch.nn as nn from mmdet.ops import DeformConv, ModulatedDeformConv -from .resnet import Bottleneck as _Bottleneck -from .resnet import ResNet from ..registry import BACKBONES from ..utils import build_conv_layer, build_norm_layer +from .resnet import Bottleneck as _Bottleneck +from .resnet import ResNet class Bottleneck(_Bottleneck): diff --git a/mmdet/models/backbones/ssd_vgg.py b/mmdet/models/backbones/ssd_vgg.py index f7ba8a4..ae65711 100644 --- a/mmdet/models/backbones/ssd_vgg.py +++ b/mmdet/models/backbones/ssd_vgg.py @@ -3,8 +3,7 @@ import logging import torch import torch.nn as nn import torch.nn.functional as F -from mmcv.cnn import (VGG, xavier_init, constant_init, kaiming_init, - normal_init) +from mmcv.cnn import VGG, constant_init, kaiming_init, normal_init, xavier_init from mmcv.runner import load_checkpoint from ..registry import BACKBONES diff --git a/mmdet/models/bbox_heads/bbox_head.py b/mmdet/models/bbox_heads/bbox_head.py index df80570..1a155f9 100644 --- a/mmdet/models/bbox_heads/bbox_head.py +++ b/mmdet/models/bbox_heads/bbox_head.py @@ -2,8 +2,8 @@ import torch import torch.nn as nn import torch.nn.functional as F -from mmdet.core import (delta2bbox, multiclass_nms, bbox_target, force_fp32, - auto_fp16) +from mmdet.core import (auto_fp16, bbox_target, delta2bbox, force_fp32, + multiclass_nms) from ..builder import build_loss from ..losses import accuracy from ..registry import HEADS diff --git a/mmdet/models/bbox_heads/convfc_bbox_head.py b/mmdet/models/bbox_heads/convfc_bbox_head.py index 470c511..801cf8f 100644 --- a/mmdet/models/bbox_heads/convfc_bbox_head.py +++ b/mmdet/models/bbox_heads/convfc_bbox_head.py @@ -1,8 +1,8 @@ import torch.nn as nn -from .bbox_head import BBoxHead from ..registry import HEADS from ..utils import ConvModule +from .bbox_head import BBoxHead @HEADS.register_module diff --git a/mmdet/models/builder.py b/mmdet/models/builder.py index 0c9b644..dc82ab7 100644 --- a/mmdet/models/builder.py +++ b/mmdet/models/builder.py @@ -1,8 +1,8 @@ from torch import nn from mmdet.utils import build_from_cfg -from .registry import (BACKBONES, NECKS, ROI_EXTRACTORS, SHARED_HEADS, HEADS, - LOSSES, DETECTORS) +from .registry import (BACKBONES, DETECTORS, HEADS, LOSSES, NECKS, + ROI_EXTRACTORS, SHARED_HEADS) def build(cfg, registry, default_args=None): diff --git a/mmdet/models/detectors/base.py b/mmdet/models/detectors/base.py index 96fb48e..038dd10 100644 --- a/mmdet/models/detectors/base.py +++ b/mmdet/models/detectors/base.py @@ -3,10 +3,10 @@ from abc import ABCMeta, abstractmethod import mmcv import numpy as np -import torch.nn as nn import pycocotools.mask as maskUtils +import torch.nn as nn -from mmdet.core import tensor2imgs, get_classes, auto_fp16 +from mmdet.core import auto_fp16, get_classes, tensor2imgs class BaseDetector(nn.Module): diff --git a/mmdet/models/detectors/cascade_rcnn.py b/mmdet/models/detectors/cascade_rcnn.py index f76bdc5..9bd0207 100644 --- a/mmdet/models/detectors/cascade_rcnn.py +++ b/mmdet/models/detectors/cascade_rcnn.py @@ -3,12 +3,12 @@ from __future__ import division import torch import torch.nn as nn -from .base import BaseDetector -from .test_mixins import RPNTestMixin +from mmdet.core import (bbox2result, bbox2roi, build_assigner, build_sampler, + merge_aug_masks) from .. import builder from ..registry import DETECTORS -from mmdet.core import (build_assigner, bbox2roi, bbox2result, build_sampler, - merge_aug_masks) +from .base import BaseDetector +from .test_mixins import RPNTestMixin @DETECTORS.register_module diff --git a/mmdet/models/detectors/fast_rcnn.py b/mmdet/models/detectors/fast_rcnn.py index 64c0391..9e3b2aa 100644 --- a/mmdet/models/detectors/fast_rcnn.py +++ b/mmdet/models/detectors/fast_rcnn.py @@ -1,5 +1,5 @@ -from .two_stage import TwoStageDetector from ..registry import DETECTORS +from .two_stage import TwoStageDetector @DETECTORS.register_module diff --git a/mmdet/models/detectors/faster_rcnn.py b/mmdet/models/detectors/faster_rcnn.py index b4e961b..969cd7c 100644 --- a/mmdet/models/detectors/faster_rcnn.py +++ b/mmdet/models/detectors/faster_rcnn.py @@ -1,5 +1,5 @@ -from .two_stage import TwoStageDetector from ..registry import DETECTORS +from .two_stage import TwoStageDetector @DETECTORS.register_module diff --git a/mmdet/models/detectors/fcos.py b/mmdet/models/detectors/fcos.py index 4c3dce1..89cc592 100644 --- a/mmdet/models/detectors/fcos.py +++ b/mmdet/models/detectors/fcos.py @@ -1,5 +1,5 @@ -from .single_stage import SingleStageDetector from ..registry import DETECTORS +from .single_stage import SingleStageDetector @DETECTORS.register_module diff --git a/mmdet/models/detectors/grid_rcnn.py b/mmdet/models/detectors/grid_rcnn.py index 49c4a33..2c32164 100644 --- a/mmdet/models/detectors/grid_rcnn.py +++ b/mmdet/models/detectors/grid_rcnn.py @@ -1,10 +1,9 @@ -from .two_stage import TwoStageDetector -from ..registry import DETECTORS - import torch +from mmdet.core import bbox2result, bbox2roi, build_assigner, build_sampler from .. import builder -from mmdet.core import bbox2roi, bbox2result, build_assigner, build_sampler +from ..registry import DETECTORS +from .two_stage import TwoStageDetector @DETECTORS.register_module diff --git a/mmdet/models/detectors/htc.py b/mmdet/models/detectors/htc.py index bcf410f..7135fe1 100644 --- a/mmdet/models/detectors/htc.py +++ b/mmdet/models/detectors/htc.py @@ -1,11 +1,11 @@ import torch import torch.nn.functional as F -from .cascade_rcnn import CascadeRCNN +from mmdet.core import (bbox2result, bbox2roi, build_assigner, build_sampler, + merge_aug_masks) from .. import builder from ..registry import DETECTORS -from mmdet.core import (bbox2roi, bbox2result, build_assigner, build_sampler, - merge_aug_masks) +from .cascade_rcnn import CascadeRCNN @DETECTORS.register_module diff --git a/mmdet/models/detectors/mask_rcnn.py b/mmdet/models/detectors/mask_rcnn.py index 003e87f..becfdad 100644 --- a/mmdet/models/detectors/mask_rcnn.py +++ b/mmdet/models/detectors/mask_rcnn.py @@ -1,5 +1,5 @@ -from .two_stage import TwoStageDetector from ..registry import DETECTORS +from .two_stage import TwoStageDetector @DETECTORS.register_module diff --git a/mmdet/models/detectors/mask_scoring_rcnn.py b/mmdet/models/detectors/mask_scoring_rcnn.py index 9153bcd..b035f53 100644 --- a/mmdet/models/detectors/mask_scoring_rcnn.py +++ b/mmdet/models/detectors/mask_scoring_rcnn.py @@ -1,9 +1,9 @@ import torch from mmdet.core import bbox2roi, build_assigner, build_sampler -from .two_stage import TwoStageDetector from .. import builder from ..registry import DETECTORS +from .two_stage import TwoStageDetector @DETECTORS.register_module diff --git a/mmdet/models/detectors/retinanet.py b/mmdet/models/detectors/retinanet.py index 0e5b6fd..7c93d74 100644 --- a/mmdet/models/detectors/retinanet.py +++ b/mmdet/models/detectors/retinanet.py @@ -1,5 +1,5 @@ -from .single_stage import SingleStageDetector from ..registry import DETECTORS +from .single_stage import SingleStageDetector @DETECTORS.register_module diff --git a/mmdet/models/detectors/rpn.py b/mmdet/models/detectors/rpn.py index 51043af..2f947fa 100644 --- a/mmdet/models/detectors/rpn.py +++ b/mmdet/models/detectors/rpn.py @@ -1,10 +1,10 @@ import mmcv -from mmdet.core import tensor2imgs, bbox_mapping -from .base import BaseDetector -from .test_mixins import RPNTestMixin +from mmdet.core import bbox_mapping, tensor2imgs from .. import builder from ..registry import DETECTORS +from .base import BaseDetector +from .test_mixins import RPNTestMixin @DETECTORS.register_module diff --git a/mmdet/models/detectors/single_stage.py b/mmdet/models/detectors/single_stage.py index 6f73b34..f7e0fa6 100644 --- a/mmdet/models/detectors/single_stage.py +++ b/mmdet/models/detectors/single_stage.py @@ -1,9 +1,9 @@ import torch.nn as nn -from .base import BaseDetector +from mmdet.core import bbox2result from .. import builder from ..registry import DETECTORS -from mmdet.core import bbox2result +from .base import BaseDetector @DETECTORS.register_module diff --git a/mmdet/models/detectors/test_mixins.py b/mmdet/models/detectors/test_mixins.py index 6924818..1abd609 100644 --- a/mmdet/models/detectors/test_mixins.py +++ b/mmdet/models/detectors/test_mixins.py @@ -1,5 +1,5 @@ -from mmdet.core import (bbox2roi, bbox_mapping, merge_aug_proposals, - merge_aug_bboxes, merge_aug_masks, multiclass_nms) +from mmdet.core import (bbox2roi, bbox_mapping, merge_aug_bboxes, + merge_aug_masks, merge_aug_proposals, multiclass_nms) class RPNTestMixin(object): diff --git a/mmdet/models/detectors/two_stage.py b/mmdet/models/detectors/two_stage.py index f70510c..e1536b5 100644 --- a/mmdet/models/detectors/two_stage.py +++ b/mmdet/models/detectors/two_stage.py @@ -1,11 +1,11 @@ import torch import torch.nn as nn -from .base import BaseDetector -from .test_mixins import RPNTestMixin, BBoxTestMixin, MaskTestMixin +from mmdet.core import bbox2result, bbox2roi, build_assigner, build_sampler from .. import builder from ..registry import DETECTORS -from mmdet.core import bbox2roi, bbox2result, build_assigner, build_sampler +from .base import BaseDetector +from .test_mixins import BBoxTestMixin, MaskTestMixin, RPNTestMixin @DETECTORS.register_module diff --git a/mmdet/models/losses/balanced_l1_loss.py b/mmdet/models/losses/balanced_l1_loss.py index 8593396..fab60db 100644 --- a/mmdet/models/losses/balanced_l1_loss.py +++ b/mmdet/models/losses/balanced_l1_loss.py @@ -2,8 +2,8 @@ import numpy as np import torch import torch.nn as nn -from .utils import weighted_loss from ..registry import LOSSES +from .utils import weighted_loss @weighted_loss diff --git a/mmdet/models/losses/cross_entropy_loss.py b/mmdet/models/losses/cross_entropy_loss.py index fe10b86..dd9d477 100644 --- a/mmdet/models/losses/cross_entropy_loss.py +++ b/mmdet/models/losses/cross_entropy_loss.py @@ -2,8 +2,8 @@ import torch import torch.nn as nn import torch.nn.functional as F -from .utils import weight_reduce_loss from ..registry import LOSSES +from .utils import weight_reduce_loss def cross_entropy(pred, label, weight=None, reduction='mean', avg_factor=None): diff --git a/mmdet/models/losses/focal_loss.py b/mmdet/models/losses/focal_loss.py index 7a46356..6b28e12 100644 --- a/mmdet/models/losses/focal_loss.py +++ b/mmdet/models/losses/focal_loss.py @@ -2,8 +2,8 @@ import torch.nn as nn import torch.nn.functional as F from mmdet.ops import sigmoid_focal_loss as _sigmoid_focal_loss -from .utils import weight_reduce_loss from ..registry import LOSSES +from .utils import weight_reduce_loss # This method is only for debugging diff --git a/mmdet/models/losses/iou_loss.py b/mmdet/models/losses/iou_loss.py index 011ff36..cf24994 100644 --- a/mmdet/models/losses/iou_loss.py +++ b/mmdet/models/losses/iou_loss.py @@ -2,8 +2,8 @@ import torch import torch.nn as nn from mmdet.core import bbox_overlaps -from .utils import weighted_loss from ..registry import LOSSES +from .utils import weighted_loss @weighted_loss diff --git a/mmdet/models/losses/mse_loss.py b/mmdet/models/losses/mse_loss.py index a50f459..a868b2b 100644 --- a/mmdet/models/losses/mse_loss.py +++ b/mmdet/models/losses/mse_loss.py @@ -1,8 +1,8 @@ import torch.nn as nn import torch.nn.functional as F -from .utils import weighted_loss from ..registry import LOSSES +from .utils import weighted_loss mse_loss = weighted_loss(F.mse_loss) diff --git a/mmdet/models/losses/smooth_l1_loss.py b/mmdet/models/losses/smooth_l1_loss.py index 75d71e8..bc34073 100644 --- a/mmdet/models/losses/smooth_l1_loss.py +++ b/mmdet/models/losses/smooth_l1_loss.py @@ -1,8 +1,8 @@ import torch import torch.nn as nn -from .utils import weighted_loss from ..registry import LOSSES +from .utils import weighted_loss @weighted_loss diff --git a/mmdet/models/mask_heads/fcn_mask_head.py b/mmdet/models/mask_heads/fcn_mask_head.py index af5cee8..96ebd11 100644 --- a/mmdet/models/mask_heads/fcn_mask_head.py +++ b/mmdet/models/mask_heads/fcn_mask_head.py @@ -4,10 +4,10 @@ import pycocotools.mask as mask_util import torch import torch.nn as nn +from mmdet.core import auto_fp16, force_fp32, mask_target from ..builder import build_loss from ..registry import HEADS from ..utils import ConvModule -from mmdet.core import mask_target, force_fp32, auto_fp16 @HEADS.register_module diff --git a/mmdet/models/mask_heads/htc_mask_head.py b/mmdet/models/mask_heads/htc_mask_head.py index 9ba3ed7..7c81255 100644 --- a/mmdet/models/mask_heads/htc_mask_head.py +++ b/mmdet/models/mask_heads/htc_mask_head.py @@ -1,6 +1,6 @@ -from .fcn_mask_head import FCNMaskHead from ..registry import HEADS from ..utils import ConvModule +from .fcn_mask_head import FCNMaskHead @HEADS.register_module diff --git a/mmdet/models/mask_heads/maskiou_head.py b/mmdet/models/mask_heads/maskiou_head.py index 457a560..704978f 100644 --- a/mmdet/models/mask_heads/maskiou_head.py +++ b/mmdet/models/mask_heads/maskiou_head.py @@ -2,8 +2,8 @@ import numpy as np import torch import torch.nn as nn from mmcv.cnn import kaiming_init, normal_init -from mmdet.core import force_fp32 +from mmdet.core import force_fp32 from ..builder import build_loss from ..registry import HEADS diff --git a/mmdet/models/necks/hrfpn.py b/mmdet/models/necks/hrfpn.py index 743eba6..06a8fbf 100644 --- a/mmdet/models/necks/hrfpn.py +++ b/mmdet/models/necks/hrfpn.py @@ -1,11 +1,11 @@ import torch import torch.nn as nn import torch.nn.functional as F -from torch.utils.checkpoint import checkpoint from mmcv.cnn.weight_init import caffe2_xavier_init +from torch.utils.checkpoint import checkpoint -from ..utils import ConvModule from ..registry import NECKS +from ..utils import ConvModule @NECKS.register_module diff --git a/mmdet/models/plugins/generalized_attention.py b/mmdet/models/plugins/generalized_attention.py index 7786837..9517776 100644 --- a/mmdet/models/plugins/generalized_attention.py +++ b/mmdet/models/plugins/generalized_attention.py @@ -1,9 +1,9 @@ +import math + +import numpy as np import torch import torch.nn as nn import torch.nn.functional as F - -import math -import numpy as np from mmcv.cnn import kaiming_init diff --git a/mmdet/models/utils/conv_module.py b/mmdet/models/utils/conv_module.py index ef9a538..f2bddc4 100644 --- a/mmdet/models/utils/conv_module.py +++ b/mmdet/models/utils/conv_module.py @@ -1,7 +1,7 @@ import warnings import torch.nn as nn -from mmcv.cnn import kaiming_init, constant_init +from mmcv.cnn import constant_init, kaiming_init from .conv_ws import ConvWS2d from .norm import build_norm_layer diff --git a/mmdet/ops/nms/nms_wrapper.py b/mmdet/ops/nms/nms_wrapper.py index 8ce5bc4..03215f1 100644 --- a/mmdet/ops/nms/nms_wrapper.py +++ b/mmdet/ops/nms/nms_wrapper.py @@ -1,7 +1,7 @@ import numpy as np import torch -from . import nms_cuda, nms_cpu +from . import nms_cpu, nms_cuda from .soft_nms_cpu import soft_nms_cpu diff --git a/mmdet/ops/roi_align/gradcheck.py b/mmdet/ops/roi_align/gradcheck.py index 394cd69..136456b 100644 --- a/mmdet/ops/roi_align/gradcheck.py +++ b/mmdet/ops/roi_align/gradcheck.py @@ -1,11 +1,12 @@ +import os.path as osp +import sys + import numpy as np import torch from torch.autograd import gradcheck -import os.path as osp -import sys sys.path.append(osp.abspath(osp.join(__file__, '../../'))) -from roi_align import RoIAlign # noqa: E402 +from roi_align import RoIAlign # noqa: E402, isort:skip feat_size = 15 spatial_scale = 1.0 / 8 diff --git a/mmdet/ops/roi_pool/gradcheck.py b/mmdet/ops/roi_pool/gradcheck.py index c396160..d11af79 100644 --- a/mmdet/ops/roi_pool/gradcheck.py +++ b/mmdet/ops/roi_pool/gradcheck.py @@ -1,10 +1,11 @@ +import os.path as osp +import sys + import torch from torch.autograd import gradcheck -import os.path as osp -import sys sys.path.append(osp.abspath(osp.join(__file__, '../../'))) -from roi_pool import RoIPool # noqa: E402 +from roi_pool import RoIPool # noqa: E402, isort:skip feat = torch.randn(4, 16, 15, 15, requires_grad=True).cuda() rois = torch.Tensor([[0, 0, 0, 50, 50], [0, 10, 30, 43, 55], diff --git a/tools/publish_model.py b/tools/publish_model.py index 39795f1..a049f17 100644 --- a/tools/publish_model.py +++ b/tools/publish_model.py @@ -1,5 +1,6 @@ import argparse import subprocess + import torch diff --git a/tools/test.py b/tools/test.py index f3a3f25..c0fdec7 100644 --- a/tools/test.py +++ b/tools/test.py @@ -7,11 +7,11 @@ import tempfile import mmcv import torch import torch.distributed as dist -from mmcv.runner import load_checkpoint, get_dist_info from mmcv.parallel import MMDataParallel, MMDistributedDataParallel +from mmcv.runner import get_dist_info, load_checkpoint from mmdet.apis import init_dist -from mmdet.core import results2json, coco_eval, wrap_fp16_model +from mmdet.core import coco_eval, results2json, wrap_fp16_model from mmdet.datasets import build_dataloader, build_dataset from mmdet.models import build_detector diff --git a/tools/train.py b/tools/train.py index 8c3290a..7909cde 100644 --- a/tools/train.py +++ b/tools/train.py @@ -1,15 +1,15 @@ from __future__ import division - import argparse import os + +import torch from mmcv import Config from mmdet import __version__ +from mmdet.apis import (get_root_logger, init_dist, set_random_seed, + train_detector) from mmdet.datasets import build_dataset -from mmdet.apis import (train_detector, init_dist, get_root_logger, - set_random_seed) from mmdet.models import build_detector -import torch def parse_args(): -- GitLab