diff --git a/.travis.yml b/.travis.yml index 8ef07f0559c9d8bcbeee6dd6452d91d5d6d83b1f..35a68d79cc4110c7799d6c635d6b32df02d2835b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,5 +11,5 @@ python: script: - flake8 - - isort -rc --diff mmdet/ tools/ + - isort -rc --check-only --diff mmdet/ tools/ - yapf -r -d --style .style.yapf mmdet/ tools/ \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6213308b55709780c44691c2328d9fabd8654f46..d459d15abd1096ca5c7ad759f62dafc39bac2e16 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,8 +21,13 @@ please contact Kai Chen (chenkaidev[at]gmail[dot]com). We will much appreciate y ### Python We adopt [PEP8](https://www.python.org/dev/peps/pep-0008/) as the preferred code style. -We use [flake8](http://flake8.pycqa.org/en/latest/) as the linter and [yapf](https://github.com/google/yapf) as the formatter. -Please upgrade to the latest yapf (>=0.27.0) and refer to the [configuration](.style.yapf). + +We use the following tools for linting and formatting: +- [flake8](http://flake8.pycqa.org/en/latest/): linter +- [yapf](https://github.com/google/yapf): formatter +- [isort](https://github.com/timothycrosley/isort): sort imports + +Style configurations of yapf and isort can be found in [.style.yapf](.style.yapf) and [.isort.cfg](.isort.cfg). >Before you create a PR, make sure that your code lints and is formatted by yapf. diff --git a/mmdet/apis/__init__.py b/mmdet/apis/__init__.py index 762f5aba1c56ff29e1c7bba438743d0a4c0257b9..57ba16515c786535378110b8430cbadfa8476104 100644 --- a/mmdet/apis/__init__.py +++ b/mmdet/apis/__init__.py @@ -1,6 +1,6 @@ -from .env import init_dist, get_root_logger, set_random_seed +from .env import get_root_logger, init_dist, set_random_seed +from .inference import inference_detector, init_detector, show_result from .train import train_detector -from .inference import init_detector, inference_detector, show_result __all__ = [ 'init_dist', 'get_root_logger', 'set_random_seed', 'train_detector', diff --git a/mmdet/core/anchor/__init__.py b/mmdet/core/anchor/__init__.py index 304d4938a1dce7a68e3b1660af843209ba5b5d30..a5f070f8bbe9a7293acf13fd89d480827eba3a69 100644 --- a/mmdet/core/anchor/__init__.py +++ b/mmdet/core/anchor/__init__.py @@ -1,5 +1,5 @@ from .anchor_generator import AnchorGenerator -from .anchor_target import anchor_target, anchor_inside_flags +from .anchor_target import anchor_inside_flags, anchor_target from .guided_anchor_target import ga_loc_target, ga_shape_target __all__ = [ diff --git a/mmdet/core/bbox/__init__.py b/mmdet/core/bbox/__init__.py index bcf6efda4772a44c1e63b45e443c87c19da20cd1..fc6702cf03af8412e006e311060869d6e1cf99d3 100644 --- a/mmdet/core/bbox/__init__.py +++ b/mmdet/core/bbox/__init__.py @@ -1,13 +1,13 @@ +from .assign_sampling import assign_and_sample, build_assigner, build_sampler +from .assigners import AssignResult, BaseAssigner, MaxIoUAssigner +from .bbox_target import bbox_target from .geometry import bbox_overlaps -from .assigners import BaseAssigner, MaxIoUAssigner, AssignResult -from .samplers import (BaseSampler, PseudoSampler, RandomSampler, +from .samplers import (BaseSampler, CombinedSampler, InstanceBalancedPosSampler, IoUBalancedNegSampler, - CombinedSampler, SamplingResult) -from .assign_sampling import build_assigner, build_sampler, assign_and_sample -from .transforms import (bbox2delta, delta2bbox, bbox_flip, bbox_mapping, - bbox_mapping_back, bbox2roi, roi2bbox, bbox2result, - distance2bbox) -from .bbox_target import bbox_target + PseudoSampler, RandomSampler, SamplingResult) +from .transforms import (bbox2delta, bbox2result, bbox2roi, bbox_flip, + bbox_mapping, bbox_mapping_back, delta2bbox, + distance2bbox, roi2bbox) __all__ = [ 'bbox_overlaps', 'BaseAssigner', 'MaxIoUAssigner', 'AssignResult', diff --git a/mmdet/core/bbox/assigners/__init__.py b/mmdet/core/bbox/assigners/__init__.py index fafa3fa084895c0c1a5f2e326b46f794d8a0e494..594e8406b5dad0ef381a9dd9d2ec9fbb75e0efd7 100644 --- a/mmdet/core/bbox/assigners/__init__.py +++ b/mmdet/core/bbox/assigners/__init__.py @@ -1,7 +1,7 @@ -from .base_assigner import BaseAssigner -from .max_iou_assigner import MaxIoUAssigner from .approx_max_iou_assigner import ApproxMaxIoUAssigner from .assign_result import AssignResult +from .base_assigner import BaseAssigner +from .max_iou_assigner import MaxIoUAssigner __all__ = [ 'BaseAssigner', 'MaxIoUAssigner', 'ApproxMaxIoUAssigner', 'AssignResult' diff --git a/mmdet/core/bbox/samplers/__init__.py b/mmdet/core/bbox/samplers/__init__.py index 167044f5baae2d2e99a705784866706790127edc..d709d8ecb24300088a1b3b034bdc5e5f6b26a04f 100644 --- a/mmdet/core/bbox/samplers/__init__.py +++ b/mmdet/core/bbox/samplers/__init__.py @@ -1,10 +1,10 @@ from .base_sampler import BaseSampler -from .pseudo_sampler import PseudoSampler -from .random_sampler import RandomSampler +from .combined_sampler import CombinedSampler from .instance_balanced_pos_sampler import InstanceBalancedPosSampler from .iou_balanced_neg_sampler import IoUBalancedNegSampler -from .combined_sampler import CombinedSampler from .ohem_sampler import OHEMSampler +from .pseudo_sampler import PseudoSampler +from .random_sampler import RandomSampler from .sampling_result import SamplingResult __all__ = [ diff --git a/mmdet/core/evaluation/__init__.py b/mmdet/core/evaluation/__init__.py index 4585c23229fd85419e6e5eacde8c1da48bb79bdf..90703fe65840465910149a3db9e04f4226ee3e0c 100644 --- a/mmdet/core/evaluation/__init__.py +++ b/mmdet/core/evaluation/__init__.py @@ -1,12 +1,12 @@ -from .class_names import (voc_classes, imagenet_det_classes, - imagenet_vid_classes, coco_classes, dataset_aliases, - get_classes) +from .class_names import (coco_classes, dataset_aliases, get_classes, + imagenet_det_classes, imagenet_vid_classes, + voc_classes) from .coco_utils import coco_eval, fast_eval_recall, results2json -from .eval_hooks import (DistEvalHook, DistEvalmAPHook, CocoDistEvalRecallHook, - CocoDistEvalmAPHook) +from .eval_hooks import (CocoDistEvalmAPHook, CocoDistEvalRecallHook, + DistEvalHook, DistEvalmAPHook) from .mean_ap import average_precision, eval_map, print_map_summary -from .recall import (eval_recalls, print_recall_summary, plot_num_recall, - plot_iou_recall) +from .recall import (eval_recalls, plot_iou_recall, plot_num_recall, + print_recall_summary) __all__ = [ 'voc_classes', 'imagenet_det_classes', 'imagenet_vid_classes', diff --git a/mmdet/core/mask/__init__.py b/mmdet/core/mask/__init__.py index b703b55d3eb92821c28ef38579fcbebeb1fa12cf..845e7180e3940fe1e886ee39d6e6c8c6d156b2a1 100644 --- a/mmdet/core/mask/__init__.py +++ b/mmdet/core/mask/__init__.py @@ -1,4 +1,4 @@ -from .utils import split_combined_polys from .mask_target import mask_target +from .utils import split_combined_polys __all__ = ['split_combined_polys', 'mask_target'] diff --git a/mmdet/core/post_processing/__init__.py b/mmdet/core/post_processing/__init__.py index 1b24a3fc68525de1c73d687404990bd521bdf5b0..11c3d30adf800302280de07553ee9751a156b092 100644 --- a/mmdet/core/post_processing/__init__.py +++ b/mmdet/core/post_processing/__init__.py @@ -1,6 +1,6 @@ from .bbox_nms import multiclass_nms -from .merge_augs import (merge_aug_proposals, merge_aug_bboxes, - merge_aug_scores, merge_aug_masks) +from .merge_augs import (merge_aug_bboxes, merge_aug_masks, + merge_aug_proposals, merge_aug_scores) __all__ = [ 'multiclass_nms', 'merge_aug_proposals', 'merge_aug_bboxes', diff --git a/mmdet/core/utils/__init__.py b/mmdet/core/utils/__init__.py index 89e952ee5f9c2a546485c270834b36df1412fffa..cc999ea101eeb83881a6a70838ba7fbcf0ee69af 100644 --- a/mmdet/core/utils/__init__.py +++ b/mmdet/core/utils/__init__.py @@ -1,5 +1,5 @@ -from .dist_utils import allreduce_grads, DistOptimizerHook -from .misc import tensor2imgs, unmap, multi_apply +from .dist_utils import DistOptimizerHook, allreduce_grads +from .misc import multi_apply, tensor2imgs, unmap __all__ = [ 'allreduce_grads', 'DistOptimizerHook', 'tensor2imgs', 'unmap', diff --git a/mmdet/datasets/__init__.py b/mmdet/datasets/__init__.py index 6d0f12f60b2f64bb9cee039a8e3e593ad5b131cd..11b7569ac2e67af993c6faa939b75f4aa64136bc 100644 --- a/mmdet/datasets/__init__.py +++ b/mmdet/datasets/__init__.py @@ -1,15 +1,15 @@ -from .custom import CustomDataset -from .xml_style import XMLDataset -from .coco import CocoDataset +from .builder import build_dataset from .cityscapes import CityscapesDataset -from .voc import VOCDataset -from .wider_face import WIDERFaceDataset -from .loader import GroupSampler, DistributedGroupSampler, build_dataloader -from .utils import to_tensor, random_scale, show_ann +from .coco import CocoDataset +from .custom import CustomDataset from .dataset_wrappers import ConcatDataset, RepeatDataset from .extra_aug import ExtraAugmentation +from .loader import DistributedGroupSampler, GroupSampler, build_dataloader from .registry import DATASETS -from .builder import build_dataset +from .utils import random_scale, show_ann, to_tensor +from .voc import VOCDataset +from .wider_face import WIDERFaceDataset +from .xml_style import XMLDataset __all__ = [ 'CustomDataset', 'XMLDataset', 'CocoDataset', 'VOCDataset', diff --git a/mmdet/datasets/loader/__init__.py b/mmdet/datasets/loader/__init__.py index 1f23fa4436df8587cfa1476d28673117fa0c5e83..4404615be66d7ce54e51e057652b2785c2e409ff 100644 --- a/mmdet/datasets/loader/__init__.py +++ b/mmdet/datasets/loader/__init__.py @@ -1,4 +1,4 @@ from .build_loader import build_dataloader -from .sampler import GroupSampler, DistributedGroupSampler +from .sampler import DistributedGroupSampler, GroupSampler __all__ = ['GroupSampler', 'DistributedGroupSampler', 'build_dataloader'] diff --git a/mmdet/models/__init__.py b/mmdet/models/__init__.py index c1776bf84d33532232ce13a7f5c6003f2e1397b4..35f0a09e3acb5658b9e5065a84335c81f0a939d4 100644 --- a/mmdet/models/__init__.py +++ b/mmdet/models/__init__.py @@ -1,17 +1,16 @@ +from .anchor_heads import * # noqa: F401,F403 from .backbones import * # noqa: F401,F403 +from .bbox_heads import * # noqa: F401,F403 +from .builder import (build_backbone, build_detector, build_head, build_loss, + build_neck, build_roi_extractor, build_shared_head) +from .detectors import * # noqa: F401,F403 +from .losses import * # noqa: F401,F403 +from .mask_heads import * # noqa: F401,F403 from .necks import * # noqa: F401,F403 +from .registry import (BACKBONES, DETECTORS, HEADS, LOSSES, NECKS, + ROI_EXTRACTORS, SHARED_HEADS) from .roi_extractors import * # noqa: F401,F403 -from .anchor_heads import * # noqa: F401,F403 from .shared_heads import * # noqa: F401,F403 -from .bbox_heads import * # noqa: F401,F403 -from .mask_heads import * # noqa: F401,F403 -from .losses import * # noqa: F401,F403 -from .detectors import * # noqa: F401,F403 -from .registry import (BACKBONES, NECKS, ROI_EXTRACTORS, SHARED_HEADS, HEADS, - LOSSES, DETECTORS) -from .builder import (build_backbone, build_neck, build_roi_extractor, - build_shared_head, build_head, build_loss, - build_detector) __all__ = [ 'BACKBONES', 'NECKS', 'ROI_EXTRACTORS', 'SHARED_HEADS', 'HEADS', 'LOSSES', diff --git a/mmdet/models/anchor_heads/__init__.py b/mmdet/models/anchor_heads/__init__.py index 798b1bcab3ec8b60c0e1bb7ea836e60a277ae8f6..f5a54ce4cfe1aadf1cf61d2bda714b5413bf013d 100644 --- a/mmdet/models/anchor_heads/__init__.py +++ b/mmdet/models/anchor_heads/__init__.py @@ -1,10 +1,10 @@ from .anchor_head import AnchorHead -from .guided_anchor_head import GuidedAnchorHead, FeatureAdaption from .fcos_head import FCOSHead -from .rpn_head import RPNHead +from .ga_retina_head import GARetinaHead from .ga_rpn_head import GARPNHead +from .guided_anchor_head import FeatureAdaption, GuidedAnchorHead from .retina_head import RetinaHead -from .ga_retina_head import GARetinaHead +from .rpn_head import RPNHead from .ssd_head import SSDHead __all__ = [ diff --git a/mmdet/models/backbones/__init__.py b/mmdet/models/backbones/__init__.py index 6e5abffcc1d64c212ba932c903cbaa1665ed334a..6fb56d63c8898a83f7b779c8c22cf52880f202c5 100644 --- a/mmdet/models/backbones/__init__.py +++ b/mmdet/models/backbones/__init__.py @@ -1,6 +1,6 @@ +from .hrnet import HRNet from .resnet import ResNet, make_res_layer from .resnext import ResNeXt from .ssd_vgg import SSDVGG -from .hrnet import HRNet __all__ = ['ResNet', 'make_res_layer', 'ResNeXt', 'SSDVGG', 'HRNet'] diff --git a/mmdet/models/bbox_heads/double_bbox_head.py b/mmdet/models/bbox_heads/double_bbox_head.py index 7211d9b49373f2c646e6c30c8c02f60b6c8f7a35..c02039bee9ed2b5bd08b78249481d41c0f4de605 100644 --- a/mmdet/models/bbox_heads/double_bbox_head.py +++ b/mmdet/models/bbox_heads/double_bbox_head.py @@ -1,10 +1,10 @@ import torch.nn as nn from mmcv.cnn.weight_init import normal_init, xavier_init -from .bbox_head import BBoxHead from ..backbones.resnet import Bottleneck from ..registry import HEADS from ..utils import ConvModule +from .bbox_head import BBoxHead class BasicResBlock(nn.Module): diff --git a/mmdet/models/detectors/__init__.py b/mmdet/models/detectors/__init__.py index 4d97b49e2e93c8dabb4a263bf54c2c5bd5fe66e5..d613a3bf7bdb3e95fa165a37c3036ecad36b4b34 100644 --- a/mmdet/models/detectors/__init__.py +++ b/mmdet/models/detectors/__init__.py @@ -1,17 +1,17 @@ from .base import BaseDetector -from .single_stage import SingleStageDetector -from .two_stage import TwoStageDetector -from .rpn import RPN -from .fast_rcnn import FastRCNN -from .faster_rcnn import FasterRCNN -from .mask_rcnn import MaskRCNN from .cascade_rcnn import CascadeRCNN from .double_head_rcnn import DoubleHeadRCNN -from .htc import HybridTaskCascade -from .retinanet import RetinaNet +from .fast_rcnn import FastRCNN +from .faster_rcnn import FasterRCNN from .fcos import FCOS from .grid_rcnn import GridRCNN +from .htc import HybridTaskCascade +from .mask_rcnn import MaskRCNN from .mask_scoring_rcnn import MaskScoringRCNN +from .retinanet import RetinaNet +from .rpn import RPN +from .single_stage import SingleStageDetector +from .two_stage import TwoStageDetector __all__ = [ 'BaseDetector', 'SingleStageDetector', 'TwoStageDetector', 'RPN', diff --git a/mmdet/models/detectors/double_head_rcnn.py b/mmdet/models/detectors/double_head_rcnn.py index 50001872713a3ea57750cda28d1805be8ad434dc..08f998b8aeba2f3c098332a8d169031c04f2a970 100644 --- a/mmdet/models/detectors/double_head_rcnn.py +++ b/mmdet/models/detectors/double_head_rcnn.py @@ -1,8 +1,8 @@ import torch -from .two_stage import TwoStageDetector -from ..registry import DETECTORS from mmdet.core import bbox2roi, build_assigner, build_sampler +from ..registry import DETECTORS +from .two_stage import TwoStageDetector @DETECTORS.register_module diff --git a/mmdet/models/losses/__init__.py b/mmdet/models/losses/__init__.py index 531e5f1b85883230e919c8fd1a156f000251a88e..992741ae4b8cde5897782ecb4b420c6971ba8b8b 100644 --- a/mmdet/models/losses/__init__.py +++ b/mmdet/models/losses/__init__.py @@ -1,12 +1,12 @@ -from .accuracy import accuracy, Accuracy -from .cross_entropy_loss import (cross_entropy, binary_cross_entropy, - mask_cross_entropy, CrossEntropyLoss) -from .focal_loss import sigmoid_focal_loss, FocalLoss -from .smooth_l1_loss import smooth_l1_loss, SmoothL1Loss +from .accuracy import Accuracy, accuracy +from .balanced_l1_loss import BalancedL1Loss, balanced_l1_loss +from .cross_entropy_loss import (CrossEntropyLoss, binary_cross_entropy, + cross_entropy, mask_cross_entropy) +from .focal_loss import FocalLoss, sigmoid_focal_loss from .ghm_loss import GHMC, GHMR -from .balanced_l1_loss import balanced_l1_loss, BalancedL1Loss -from .mse_loss import mse_loss, MSELoss -from .iou_loss import iou_loss, bounded_iou_loss, IoULoss, BoundedIoULoss +from .iou_loss import BoundedIoULoss, IoULoss, bounded_iou_loss, iou_loss +from .mse_loss import MSELoss, mse_loss +from .smooth_l1_loss import SmoothL1Loss, smooth_l1_loss from .utils import reduce_loss, weight_reduce_loss, weighted_loss __all__ = [ diff --git a/mmdet/models/necks/__init__.py b/mmdet/models/necks/__init__.py index aa56c42ce57b7e2da9e841d1f2a0240e97807877..6b26e5fee369f5d6578e8f4df9c4ff323d3510c6 100644 --- a/mmdet/models/necks/__init__.py +++ b/mmdet/models/necks/__init__.py @@ -1,5 +1,5 @@ -from .fpn import FPN from .bfp import BFP +from .fpn import FPN from .hrfpn import HRFPN __all__ = ['FPN', 'BFP', 'HRFPN'] diff --git a/mmdet/models/plugins/__init__.py b/mmdet/models/plugins/__init__.py index 2a771b906bcfe71e9b6f53ecf7edb7f6621a0f73..0ff85f2f5299949b38693544549df7bc40e556c5 100644 --- a/mmdet/models/plugins/__init__.py +++ b/mmdet/models/plugins/__init__.py @@ -1,4 +1,4 @@ -from .non_local import NonLocal2D from .generalized_attention import GeneralizedAttention +from .non_local import NonLocal2D __all__ = ['NonLocal2D', 'GeneralizedAttention'] diff --git a/mmdet/models/utils/__init__.py b/mmdet/models/utils/__init__.py index f9215c5ade9757b812697d85704188d5a593e0d9..3db40920deeb1a357c83b3557960265a211302f2 100644 --- a/mmdet/models/utils/__init__.py +++ b/mmdet/models/utils/__init__.py @@ -1,9 +1,9 @@ -from .conv_ws import conv_ws_2d, ConvWS2d -from .conv_module import build_conv_layer, ConvModule +from .conv_module import ConvModule, build_conv_layer +from .conv_ws import ConvWS2d, conv_ws_2d from .norm import build_norm_layer from .scale import Scale -from .weight_init import (xavier_init, normal_init, uniform_init, kaiming_init, - bias_init_with_prob) +from .weight_init import (bias_init_with_prob, kaiming_init, normal_init, + uniform_init, xavier_init) __all__ = [ 'conv_ws_2d', 'ConvWS2d', 'build_conv_layer', 'ConvModule', diff --git a/mmdet/ops/__init__.py b/mmdet/ops/__init__.py index c721925efa4cbcee8d594ebee624757d81d01b35..4317899a6cfd7966c8e5e3b9e0f34439c6a85068 100644 --- a/mmdet/ops/__init__.py +++ b/mmdet/ops/__init__.py @@ -1,13 +1,13 @@ -from .dcn import (DeformConv, DeformConvPack, ModulatedDeformConv, - ModulatedDeformConvPack, DeformRoIPooling, - DeformRoIPoolingPack, ModulatedDeformRoIPoolingPack, - deform_conv, modulated_deform_conv, deform_roi_pooling) from .context_block import ContextBlock +from .dcn import (DeformConv, DeformConvPack, DeformRoIPooling, + DeformRoIPoolingPack, ModulatedDeformConv, + ModulatedDeformConvPack, ModulatedDeformRoIPoolingPack, + deform_conv, deform_roi_pooling, modulated_deform_conv) +from .masked_conv import MaskedConv2d from .nms import nms, soft_nms from .roi_align import RoIAlign, roi_align from .roi_pool import RoIPool, roi_pool from .sigmoid_focal_loss import SigmoidFocalLoss, sigmoid_focal_loss -from .masked_conv import MaskedConv2d __all__ = [ 'nms', 'soft_nms', 'RoIAlign', 'roi_align', 'RoIPool', 'roi_pool', diff --git a/mmdet/ops/dcn/__init__.py b/mmdet/ops/dcn/__init__.py index 48566be193af852e4475ea0ebbdd2d38f0dcb549..79594c90b2827ce0a4b4839f675228d1ab03d3a2 100644 --- a/mmdet/ops/dcn/__init__.py +++ b/mmdet/ops/dcn/__init__.py @@ -1,8 +1,8 @@ -from .deform_conv import (deform_conv, modulated_deform_conv, DeformConv, - DeformConvPack, ModulatedDeformConv, - ModulatedDeformConvPack) -from .deform_pool import (deform_roi_pooling, DeformRoIPooling, - DeformRoIPoolingPack, ModulatedDeformRoIPoolingPack) +from .deform_conv import (DeformConv, DeformConvPack, ModulatedDeformConv, + ModulatedDeformConvPack, deform_conv, + modulated_deform_conv) +from .deform_pool import (DeformRoIPooling, DeformRoIPoolingPack, + ModulatedDeformRoIPoolingPack, deform_roi_pooling) __all__ = [ 'DeformConv', 'DeformConvPack', 'ModulatedDeformConv', diff --git a/mmdet/ops/masked_conv/__init__.py b/mmdet/ops/masked_conv/__init__.py index 6267190019d28da514d1d61c116af915e62697ab..f537ace080f797f3adce125ee85e4e29d24e2ace 100644 --- a/mmdet/ops/masked_conv/__init__.py +++ b/mmdet/ops/masked_conv/__init__.py @@ -1,3 +1,3 @@ -from .masked_conv import masked_conv2d, MaskedConv2d +from .masked_conv import MaskedConv2d, masked_conv2d __all__ = ['masked_conv2d', 'MaskedConv2d'] diff --git a/mmdet/ops/roi_align/__init__.py b/mmdet/ops/roi_align/__init__.py index 9acb61fe8a1f54b961fe765b240a21c7ccbd3adf..6da98298fa514ced8a8b968ac70258818f4375e7 100644 --- a/mmdet/ops/roi_align/__init__.py +++ b/mmdet/ops/roi_align/__init__.py @@ -1,3 +1,3 @@ -from .roi_align import roi_align, RoIAlign +from .roi_align import RoIAlign, roi_align __all__ = ['roi_align', 'RoIAlign'] diff --git a/mmdet/ops/roi_pool/__init__.py b/mmdet/ops/roi_pool/__init__.py index d19d60891d4c137b3b6ff4cab452a922c1c9a216..9f0474e5939994b45dcf158499421f9e998c33bd 100644 --- a/mmdet/ops/roi_pool/__init__.py +++ b/mmdet/ops/roi_pool/__init__.py @@ -1,3 +1,3 @@ -from .roi_pool import roi_pool, RoIPool +from .roi_pool import RoIPool, roi_pool __all__ = ['roi_pool', 'RoIPool']