From 97d08556373c0bc98badf4f2b17a114d97a70124 Mon Sep 17 00:00:00 2001
From: Jiangmiao Pang <pangjiangmiao@gmail.com>
Date: Mon, 20 May 2019 21:10:48 +0800
Subject: [PATCH] Reformat use yapf 0.27.0 & Add yapf style file (#672)

* Reformat use yapf 0.27.0

* Add yapf style file
---
 .style.yapf                                   |  4 +++
 ...ascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x.py |  4 +--
 .../cascade_rcnn_dconv_c3-c5_r50_fpn_1x.py    |  4 +--
 .../dcn/faster_rcnn_dconv_c3-c5_r50_fpn_1x.py |  4 +--
 .../faster_rcnn_mdconv_c3-c5_r50_fpn_1x.py    |  4 +--
 .../dcn/mask_rcnn_dconv_c3-c5_r50_fpn_1x.py   |  4 +--
 configs/gn+ws/faster_rcnn_r50_fpn_gn_ws_1x.py |  4 +--
 mmdet/apis/inference.py                       |  3 +-
 mmdet/apis/train.py                           |  4 +--
 mmdet/core/bbox/assign_sampling.py            |  6 ++--
 mmdet/core/evaluation/mean_ap.py              |  4 +--
 mmdet/core/post_processing/bbox_nms.py        |  5 ++-
 mmdet/datasets/extra_aug.py                   |  4 +--
 mmdet/datasets/loader/__init__.py             |  4 +--
 mmdet/datasets/loader/build_loader.py         | 22 ++++++-------
 mmdet/datasets/loader/sampler.py              |  4 +--
 mmdet/datasets/transforms.py                  |  4 +--
 mmdet/models/anchor_heads/anchor_head.py      |  5 +--
 mmdet/models/backbones/resnet.py              |  7 +----
 mmdet/models/bbox_heads/convfc_bbox_head.py   |  8 ++---
 mmdet/models/detectors/cascade_rcnn.py        | 18 ++++++-----
 mmdet/models/detectors/htc.py                 | 18 ++++++-----
 mmdet/models/detectors/test_mixins.py         |  4 +--
 mmdet/models/mask_heads/fcn_mask_head.py      | 14 ++++-----
 .../models/mask_heads/fused_semantic_head.py  |  5 +--
 mmdet/models/registry.py                      |  5 +--
 mmdet/models/utils/conv_module.py             | 19 ++++++------
 mmdet/models/utils/norm.py                    |  1 -
 mmdet/ops/dcn/setup.py                        |  6 ++--
 tools/analyze_logs.py                         |  4 +--
 tools/test.py                                 | 31 +++++++++----------
 tools/train.py                                |  3 +-
 32 files changed, 108 insertions(+), 128 deletions(-)
 create mode 100644 .style.yapf

diff --git a/.style.yapf b/.style.yapf
new file mode 100644
index 0000000..286a3f1
--- /dev/null
+++ b/.style.yapf
@@ -0,0 +1,4 @@
+[style]
+BASED_ON_STYLE = pep8
+BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF = true
+SPLIT_BEFORE_EXPRESSION_AFTER_OPENING_PAREN = true
diff --git a/configs/dcn/cascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x.py b/configs/dcn/cascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x.py
index afd3183..711231e 100644
--- a/configs/dcn/cascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x.py
+++ b/configs/dcn/cascade_mask_rcnn_dconv_c3-c5_r50_fpn_1x.py
@@ -11,9 +11,7 @@ model = dict(
         frozen_stages=1,
         style='pytorch',
         dcn=dict(
-            modulated=False,
-            deformable_groups=1,
-            fallback_on_stride=False),
+            modulated=False, deformable_groups=1, fallback_on_stride=False),
         stage_with_dcn=(False, True, True, True)),
     neck=dict(
         type='FPN',
diff --git a/configs/dcn/cascade_rcnn_dconv_c3-c5_r50_fpn_1x.py b/configs/dcn/cascade_rcnn_dconv_c3-c5_r50_fpn_1x.py
index 19f281f..cc00d91 100644
--- a/configs/dcn/cascade_rcnn_dconv_c3-c5_r50_fpn_1x.py
+++ b/configs/dcn/cascade_rcnn_dconv_c3-c5_r50_fpn_1x.py
@@ -11,9 +11,7 @@ model = dict(
         frozen_stages=1,
         style='pytorch',
         dcn=dict(
-            modulated=False,
-            deformable_groups=1,
-            fallback_on_stride=False),
+            modulated=False, deformable_groups=1, fallback_on_stride=False),
         stage_with_dcn=(False, True, True, True)),
     neck=dict(
         type='FPN',
diff --git a/configs/dcn/faster_rcnn_dconv_c3-c5_r50_fpn_1x.py b/configs/dcn/faster_rcnn_dconv_c3-c5_r50_fpn_1x.py
index 5d24d81..5e47eae 100644
--- a/configs/dcn/faster_rcnn_dconv_c3-c5_r50_fpn_1x.py
+++ b/configs/dcn/faster_rcnn_dconv_c3-c5_r50_fpn_1x.py
@@ -10,9 +10,7 @@ model = dict(
         frozen_stages=1,
         style='pytorch',
         dcn=dict(
-            modulated=False,
-            deformable_groups=1,
-            fallback_on_stride=False),
+            modulated=False, deformable_groups=1, fallback_on_stride=False),
         stage_with_dcn=(False, True, True, True)),
     neck=dict(
         type='FPN',
diff --git a/configs/dcn/faster_rcnn_mdconv_c3-c5_r50_fpn_1x.py b/configs/dcn/faster_rcnn_mdconv_c3-c5_r50_fpn_1x.py
index 10279ac..73dc579 100644
--- a/configs/dcn/faster_rcnn_mdconv_c3-c5_r50_fpn_1x.py
+++ b/configs/dcn/faster_rcnn_mdconv_c3-c5_r50_fpn_1x.py
@@ -10,9 +10,7 @@ model = dict(
         frozen_stages=1,
         style='pytorch',
         dcn=dict(
-            modulated=True,
-            deformable_groups=1,
-            fallback_on_stride=False),
+            modulated=True, deformable_groups=1, fallback_on_stride=False),
         stage_with_dcn=(False, True, True, True)),
     neck=dict(
         type='FPN',
diff --git a/configs/dcn/mask_rcnn_dconv_c3-c5_r50_fpn_1x.py b/configs/dcn/mask_rcnn_dconv_c3-c5_r50_fpn_1x.py
index 3325943..8135f09 100644
--- a/configs/dcn/mask_rcnn_dconv_c3-c5_r50_fpn_1x.py
+++ b/configs/dcn/mask_rcnn_dconv_c3-c5_r50_fpn_1x.py
@@ -10,9 +10,7 @@ model = dict(
         frozen_stages=1,
         style='pytorch',
         dcn=dict(
-            modulated=False,
-            deformable_groups=1,
-            fallback_on_stride=False),
+            modulated=False, deformable_groups=1, fallback_on_stride=False),
         stage_with_dcn=(False, True, True, True)),
     neck=dict(
         type='FPN',
diff --git a/configs/gn+ws/faster_rcnn_r50_fpn_gn_ws_1x.py b/configs/gn+ws/faster_rcnn_r50_fpn_gn_ws_1x.py
index ef63583..396993f 100644
--- a/configs/gn+ws/faster_rcnn_r50_fpn_gn_ws_1x.py
+++ b/configs/gn+ws/faster_rcnn_r50_fpn_gn_ws_1x.py
@@ -99,9 +99,7 @@ test_cfg = dict(
         nms_thr=0.7,
         min_bbox_size=0),
     rcnn=dict(
-        score_thr=0.05,
-        nms=dict(type='nms', iou_thr=0.5),
-        max_per_img=100))
+        score_thr=0.05, nms=dict(type='nms', iou_thr=0.5), max_per_img=100))
 # dataset settings
 dataset_type = 'CocoDataset'
 data_root = 'data/coco/'
diff --git a/mmdet/apis/inference.py b/mmdet/apis/inference.py
index d2f455e..222fc83 100644
--- a/mmdet/apis/inference.py
+++ b/mmdet/apis/inference.py
@@ -124,8 +124,7 @@ def show_result(img, result, class_names, score_thr=0.3, out_file=None):
         segms = mmcv.concat_list(segm_result)
         inds = np.where(bboxes[:, -1] > score_thr)[0]
         for i in inds:
-            color_mask = np.random.randint(
-                0, 256, (1, 3), dtype=np.uint8)
+            color_mask = np.random.randint(0, 256, (1, 3), dtype=np.uint8)
             mask = maskUtils.decode(segms[i]).astype(np.bool)
             img[mask] = img[mask] * 0.5 + color_mask * 0.5
     # draw bounding boxes
diff --git a/mmdet/apis/train.py b/mmdet/apis/train.py
index 6732664..44ec2cc 100644
--- a/mmdet/apis/train.py
+++ b/mmdet/apis/train.py
@@ -91,8 +91,8 @@ def build_optimizer(model, optimizer_cfg):
     paramwise_options = optimizer_cfg.pop('paramwise_options', None)
     # if no paramwise option is specified, just use the global setting
     if paramwise_options is None:
-        return obj_from_dict(optimizer_cfg, torch.optim,
-                             dict(params=model.parameters()))
+        return obj_from_dict(
+            optimizer_cfg, torch.optim, dict(params=model.parameters()))
     else:
         assert isinstance(paramwise_options, dict)
         # get base lr and weight decay
diff --git a/mmdet/core/bbox/assign_sampling.py b/mmdet/core/bbox/assign_sampling.py
index 70d9fdf..4267174 100644
--- a/mmdet/core/bbox/assign_sampling.py
+++ b/mmdet/core/bbox/assign_sampling.py
@@ -7,8 +7,7 @@ def build_assigner(cfg, **kwargs):
     if isinstance(cfg, assigners.BaseAssigner):
         return cfg
     elif isinstance(cfg, dict):
-        return mmcv.runner.obj_from_dict(
-            cfg, assigners, default_args=kwargs)
+        return mmcv.runner.obj_from_dict(cfg, assigners, default_args=kwargs)
     else:
         raise TypeError('Invalid type {} for building a sampler'.format(
             type(cfg)))
@@ -18,8 +17,7 @@ def build_sampler(cfg, **kwargs):
     if isinstance(cfg, samplers.BaseSampler):
         return cfg
     elif isinstance(cfg, dict):
-        return mmcv.runner.obj_from_dict(
-            cfg, samplers, default_args=kwargs)
+        return mmcv.runner.obj_from_dict(cfg, samplers, default_args=kwargs)
     else:
         raise TypeError('Invalid type {} for building a sampler'.format(
             type(cfg)))
diff --git a/mmdet/core/evaluation/mean_ap.py b/mmdet/core/evaluation/mean_ap.py
index d69eda7..8f0474a 100644
--- a/mmdet/core/evaluation/mean_ap.py
+++ b/mmdet/core/evaluation/mean_ap.py
@@ -261,8 +261,8 @@ def eval_map(det_results,
         cls_dets, cls_gts, cls_gt_ignore = get_cls_results(
             det_results, gt_bboxes, gt_labels, gt_ignore, i)
         # calculate tp and fp for each image
-        tpfp_func = (tpfp_imagenet
-                     if dataset in ['det', 'vid'] else tpfp_default)
+        tpfp_func = (
+            tpfp_imagenet if dataset in ['det', 'vid'] else tpfp_default)
         tpfp = [
             tpfp_func(cls_dets[j], cls_gts[j], cls_gt_ignore[j], iou_thr,
                       area_ranges) for j in range(len(cls_dets))
diff --git a/mmdet/core/post_processing/bbox_nms.py b/mmdet/core/post_processing/bbox_nms.py
index 01beecd..cb3fe21 100644
--- a/mmdet/core/post_processing/bbox_nms.py
+++ b/mmdet/core/post_processing/bbox_nms.py
@@ -45,9 +45,8 @@ def multiclass_nms(multi_bboxes,
             _scores *= score_factors[cls_inds]
         cls_dets = torch.cat([_bboxes, _scores[:, None]], dim=1)
         cls_dets, _ = nms_op(cls_dets, **nms_cfg_)
-        cls_labels = multi_bboxes.new_full((cls_dets.shape[0], ),
-                                           i - 1,
-                                           dtype=torch.long)
+        cls_labels = multi_bboxes.new_full(
+            (cls_dets.shape[0], ), i - 1, dtype=torch.long)
         bboxes.append(cls_dets)
         labels.append(cls_labels)
     if bboxes:
diff --git a/mmdet/datasets/extra_aug.py b/mmdet/datasets/extra_aug.py
index c9e0734..a9f4f44 100644
--- a/mmdet/datasets/extra_aug.py
+++ b/mmdet/datasets/extra_aug.py
@@ -91,9 +91,7 @@ class Expand(object):
 
 class RandomCrop(object):
 
-    def __init__(self,
-                 min_ious=(0.1, 0.3, 0.5, 0.7, 0.9),
-                 min_crop_size=0.3):
+    def __init__(self, min_ious=(0.1, 0.3, 0.5, 0.7, 0.9), min_crop_size=0.3):
         # 1: return ori img
         self.sample_mode = (1, *min_ious, 0)
         self.min_crop_size = min_crop_size
diff --git a/mmdet/datasets/loader/__init__.py b/mmdet/datasets/loader/__init__.py
index a3d4fdd..1f23fa4 100644
--- a/mmdet/datasets/loader/__init__.py
+++ b/mmdet/datasets/loader/__init__.py
@@ -1,6 +1,4 @@
 from .build_loader import build_dataloader
 from .sampler import GroupSampler, DistributedGroupSampler
 
-__all__ = [
-    'GroupSampler', 'DistributedGroupSampler', 'build_dataloader'
-]
+__all__ = ['GroupSampler', 'DistributedGroupSampler', 'build_dataloader']
diff --git a/mmdet/datasets/loader/build_loader.py b/mmdet/datasets/loader/build_loader.py
index 248f8f8..8759b06 100644
--- a/mmdet/datasets/loader/build_loader.py
+++ b/mmdet/datasets/loader/build_loader.py
@@ -25,10 +25,8 @@ def build_dataloader(dataset,
             sampler = DistributedGroupSampler(dataset, imgs_per_gpu,
                                               world_size, rank)
         else:
-            sampler = DistributedSampler(dataset,
-                                         world_size,
-                                         rank,
-                                         shuffle=False)
+            sampler = DistributedSampler(
+                dataset, world_size, rank, shuffle=False)
         batch_size = imgs_per_gpu
         num_workers = workers_per_gpu
     else:
@@ -36,13 +34,13 @@ def build_dataloader(dataset,
         batch_size = num_gpus * imgs_per_gpu
         num_workers = num_gpus * workers_per_gpu
 
-    data_loader = DataLoader(dataset,
-                             batch_size=batch_size,
-                             sampler=sampler,
-                             num_workers=num_workers,
-                             collate_fn=partial(collate,
-                                                samples_per_gpu=imgs_per_gpu),
-                             pin_memory=False,
-                             **kwargs)
+    data_loader = DataLoader(
+        dataset,
+        batch_size=batch_size,
+        sampler=sampler,
+        num_workers=num_workers,
+        collate_fn=partial(collate, samples_per_gpu=imgs_per_gpu),
+        pin_memory=False,
+        **kwargs)
 
     return data_loader
diff --git a/mmdet/datasets/loader/sampler.py b/mmdet/datasets/loader/sampler.py
index d2eef23..1e454b7 100644
--- a/mmdet/datasets/loader/sampler.py
+++ b/mmdet/datasets/loader/sampler.py
@@ -139,8 +139,8 @@ class DistributedGroupSampler(Sampler):
 
         indices = [
             indices[j] for i in list(
-                torch.randperm(len(indices) // self.samples_per_gpu,
-                               generator=g))
+                torch.randperm(
+                    len(indices) // self.samples_per_gpu, generator=g))
             for j in range(i * self.samples_per_gpu, (i + 1) *
                            self.samples_per_gpu)
         ]
diff --git a/mmdet/datasets/transforms.py b/mmdet/datasets/transforms.py
index df36590..ff575db 100644
--- a/mmdet/datasets/transforms.py
+++ b/mmdet/datasets/transforms.py
@@ -34,8 +34,8 @@ class ImageTransform(object):
         else:
             img, w_scale, h_scale = mmcv.imresize(
                 img, scale, return_scale=True)
-            scale_factor = np.array([w_scale, h_scale, w_scale, h_scale],
-                                    dtype=np.float32)
+            scale_factor = np.array(
+                [w_scale, h_scale, w_scale, h_scale], dtype=np.float32)
         img_shape = img.shape
         img = mmcv.imnormalize(img, self.mean, self.std, self.to_rgb)
         if flip:
diff --git a/mmdet/models/anchor_heads/anchor_head.py b/mmdet/models/anchor_heads/anchor_head.py
index 54096a4..881415b 100644
--- a/mmdet/models/anchor_heads/anchor_head.py
+++ b/mmdet/models/anchor_heads/anchor_head.py
@@ -196,8 +196,9 @@ class AnchorHead(nn.Module):
             return None
         (labels_list, label_weights_list, bbox_targets_list, bbox_weights_list,
          num_total_pos, num_total_neg) = cls_reg_targets
-        num_total_samples = (num_total_pos if self.cls_focal_loss else
-                             num_total_pos + num_total_neg)
+        num_total_samples = (
+            num_total_pos
+            if self.cls_focal_loss else num_total_pos + num_total_neg)
         losses_cls, losses_reg = multi_apply(
             self.loss_single,
             cls_scores,
diff --git a/mmdet/models/backbones/resnet.py b/mmdet/models/backbones/resnet.py
index 564b565..d1db1dd 100644
--- a/mmdet/models/backbones/resnet.py
+++ b/mmdet/models/backbones/resnet.py
@@ -43,12 +43,7 @@ class BasicBlock(nn.Module):
             bias=False)
         self.add_module(self.norm1_name, norm1)
         self.conv2 = build_conv_layer(
-            conv_cfg,
-            planes,
-            planes,
-            3,
-            padding=1,
-            bias=False)
+            conv_cfg, planes, planes, 3, padding=1, bias=False)
         self.add_module(self.norm2_name, norm2)
 
         self.relu = nn.ReLU(inplace=True)
diff --git a/mmdet/models/bbox_heads/convfc_bbox_head.py b/mmdet/models/bbox_heads/convfc_bbox_head.py
index c0e7154..2ce687e 100644
--- a/mmdet/models/bbox_heads/convfc_bbox_head.py
+++ b/mmdet/models/bbox_heads/convfc_bbox_head.py
@@ -94,8 +94,8 @@ class ConvFCBBoxHead(BBoxHead):
         branch_convs = nn.ModuleList()
         if num_branch_convs > 0:
             for i in range(num_branch_convs):
-                conv_in_channels = (last_layer_dim
-                                    if i == 0 else self.conv_out_channels)
+                conv_in_channels = (
+                    last_layer_dim if i == 0 else self.conv_out_channels)
                 branch_convs.append(
                     ConvModule(
                         conv_in_channels,
@@ -114,8 +114,8 @@ class ConvFCBBoxHead(BBoxHead):
                     or self.num_shared_fcs == 0) and not self.with_avg_pool:
                 last_layer_dim *= (self.roi_feat_size * self.roi_feat_size)
             for i in range(num_branch_fcs):
-                fc_in_channels = (last_layer_dim
-                                  if i == 0 else self.fc_out_channels)
+                fc_in_channels = (
+                    last_layer_dim if i == 0 else self.fc_out_channels)
                 branch_fcs.append(
                     nn.Linear(fc_in_channels, self.fc_out_channels))
             last_layer_dim = self.fc_out_channels
diff --git a/mmdet/models/detectors/cascade_rcnn.py b/mmdet/models/detectors/cascade_rcnn.py
index 6eb83e8..f0564c9 100644
--- a/mmdet/models/detectors/cascade_rcnn.py
+++ b/mmdet/models/detectors/cascade_rcnn.py
@@ -186,8 +186,8 @@ class CascadeRCNN(BaseDetector, RPNTestMixin):
                                                 gt_labels, rcnn_train_cfg)
             loss_bbox = bbox_head.loss(cls_score, bbox_pred, *bbox_targets)
             for name, value in loss_bbox.items():
-                losses['s{}.{}'.format(
-                    i, name)] = (value * lw if 'loss' in name else value)
+                losses['s{}.{}'.format(i, name)] = (
+                    value * lw if 'loss' in name else value)
 
             # mask head forward and loss
             if self.with_mask:
@@ -224,8 +224,8 @@ class CascadeRCNN(BaseDetector, RPNTestMixin):
                     [res.pos_gt_labels for res in sampling_results])
                 loss_mask = mask_head.loss(mask_pred, mask_targets, pos_labels)
                 for name, value in loss_mask.items():
-                    losses['s{}.{}'.format(
-                        i, name)] = (value * lw if 'loss' in name else value)
+                    losses['s{}.{}'.format(i, name)] = (
+                        value * lw if 'loss' in name else value)
 
             # refine bboxes
             if i < self.num_stages - 1:
@@ -286,8 +286,9 @@ class CascadeRCNN(BaseDetector, RPNTestMixin):
                             [] for _ in range(mask_head.num_classes - 1)
                         ]
                     else:
-                        _bboxes = (det_bboxes[:, :4] * scale_factor
-                                   if rescale else det_bboxes)
+                        _bboxes = (
+                            det_bboxes[:, :4] * scale_factor
+                            if rescale else det_bboxes)
                         mask_rois = bbox2roi([_bboxes])
                         mask_feats = mask_roi_extractor(
                             x[:len(mask_roi_extractor.featmap_strides)],
@@ -324,8 +325,9 @@ class CascadeRCNN(BaseDetector, RPNTestMixin):
                     [] for _ in range(self.mask_head[-1].num_classes - 1)
                 ]
             else:
-                _bboxes = (det_bboxes[:, :4] * scale_factor
-                           if rescale else det_bboxes)
+                _bboxes = (
+                    det_bboxes[:, :4] * scale_factor
+                    if rescale else det_bboxes)
                 mask_rois = bbox2roi([_bboxes])
                 aug_masks = []
                 for i in range(self.num_stages):
diff --git a/mmdet/models/detectors/htc.py b/mmdet/models/detectors/htc.py
index b7ac7ae..0384aa9 100644
--- a/mmdet/models/detectors/htc.py
+++ b/mmdet/models/detectors/htc.py
@@ -224,8 +224,8 @@ class HybridTaskCascade(CascadeRCNN):
             roi_labels = bbox_targets[0]
 
             for name, value in loss_bbox.items():
-                losses['s{}.{}'.format(
-                    i, name)] = (value * lw if 'loss' in name else value)
+                losses['s{}.{}'.format(i, name)] = (
+                    value * lw if 'loss' in name else value)
 
             # mask head forward and loss
             if self.with_mask:
@@ -253,8 +253,8 @@ class HybridTaskCascade(CascadeRCNN):
                                                      gt_masks, rcnn_train_cfg,
                                                      semantic_feat)
                 for name, value in loss_mask.items():
-                    losses['s{}.{}'.format(
-                        i, name)] = (value * lw if 'loss' in name else value)
+                    losses['s{}.{}'.format(i, name)] = (
+                        value * lw if 'loss' in name else value)
 
             # refine bboxes (same as Cascade R-CNN)
             if i < self.num_stages - 1 and not self.interleaved:
@@ -312,8 +312,9 @@ class HybridTaskCascade(CascadeRCNN):
                             [] for _ in range(mask_head.num_classes - 1)
                         ]
                     else:
-                        _bboxes = (det_bboxes[:, :4] * scale_factor
-                                   if rescale else det_bboxes)
+                        _bboxes = (
+                            det_bboxes[:, :4] * scale_factor
+                            if rescale else det_bboxes)
                         mask_pred = self._mask_forward_test(
                             i, x, _bboxes, semantic_feat=semantic_feat)
                         segm_result = mask_head.get_seg_masks(
@@ -345,8 +346,9 @@ class HybridTaskCascade(CascadeRCNN):
                     [] for _ in range(self.mask_head[-1].num_classes - 1)
                 ]
             else:
-                _bboxes = (det_bboxes[:, :4] * scale_factor
-                           if rescale else det_bboxes)
+                _bboxes = (
+                    det_bboxes[:, :4] * scale_factor
+                    if rescale else det_bboxes)
 
                 mask_rois = bbox2roi([_bboxes])
                 aug_masks = []
diff --git a/mmdet/models/detectors/test_mixins.py b/mmdet/models/detectors/test_mixins.py
index 709ee39..b64f2cd 100644
--- a/mmdet/models/detectors/test_mixins.py
+++ b/mmdet/models/detectors/test_mixins.py
@@ -105,8 +105,8 @@ class MaskTestMixin(object):
         else:
             # if det_bboxes is rescaled to the original image size, we need to
             # rescale it back to the testing scale to obtain RoIs.
-            _bboxes = (det_bboxes[:, :4] * scale_factor
-                       if rescale else det_bboxes)
+            _bboxes = (
+                det_bboxes[:, :4] * scale_factor if rescale else det_bboxes)
             mask_rois = bbox2roi([_bboxes])
             mask_feats = self.mask_roi_extractor(
                 x[:len(self.mask_roi_extractor.featmap_strides)], mask_rois)
diff --git a/mmdet/models/mask_heads/fcn_mask_head.py b/mmdet/models/mask_heads/fcn_mask_head.py
index 9274e7c..0a5054c 100644
--- a/mmdet/models/mask_heads/fcn_mask_head.py
+++ b/mmdet/models/mask_heads/fcn_mask_head.py
@@ -43,8 +43,8 @@ class FCNMaskHead(nn.Module):
 
         self.convs = nn.ModuleList()
         for i in range(self.num_convs):
-            in_channels = (self.in_channels
-                           if i == 0 else self.conv_out_channels)
+            in_channels = (
+                self.in_channels if i == 0 else self.conv_out_channels)
             padding = (self.conv_kernel_size - 1) // 2
             self.convs.append(
                 ConvModule(
@@ -54,8 +54,8 @@ class FCNMaskHead(nn.Module):
                     padding=padding,
                     conv_cfg=conv_cfg,
                     norm_cfg=norm_cfg))
-        upsample_in_channels = (self.conv_out_channels
-                                if self.num_convs > 0 else in_channels)
+        upsample_in_channels = (
+            self.conv_out_channels if self.num_convs > 0 else in_channels)
         if self.upsample_method is None:
             self.upsample = None
         elif self.upsample_method == 'deconv':
@@ -69,9 +69,9 @@ class FCNMaskHead(nn.Module):
                 scale_factor=self.upsample_ratio, mode=self.upsample_method)
 
         out_channels = 1 if self.class_agnostic else self.num_classes
-        logits_in_channel = (self.conv_out_channels
-                             if self.upsample_method == 'deconv' else
-                             upsample_in_channels)
+        logits_in_channel = (
+            self.conv_out_channels
+            if self.upsample_method == 'deconv' else upsample_in_channels)
         self.conv_logits = nn.Conv2d(logits_in_channel, out_channels, 1)
         self.relu = nn.ReLU(inplace=True)
         self.debug_imgs = None
diff --git a/mmdet/models/mask_heads/fused_semantic_head.py b/mmdet/models/mask_heads/fused_semantic_head.py
index 12b8302..6107423 100644
--- a/mmdet/models/mask_heads/fused_semantic_head.py
+++ b/mmdet/models/mask_heads/fused_semantic_head.py
@@ -85,10 +85,7 @@ class FusedSemanticHead(nn.Module):
         for i, feat in enumerate(feats):
             if i != self.fusion_level:
                 feat = F.interpolate(
-                    feat,
-                    size=fused_size,
-                    mode='bilinear',
-                    align_corners=True)
+                    feat, size=fused_size, mode='bilinear', align_corners=True)
                 x += self.lateral_convs[i](feat)
 
         for i in range(self.num_convs):
diff --git a/mmdet/models/registry.py b/mmdet/models/registry.py
index fc14bc1..d5f8e67 100644
--- a/mmdet/models/registry.py
+++ b/mmdet/models/registry.py
@@ -22,8 +22,9 @@ class Registry(object):
             module (:obj:`nn.Module`): Module to be registered.
         """
         if not issubclass(module_class, nn.Module):
-            raise TypeError('module must be a child of nn.Module, but got {}'.
-                            format(module_class))
+            raise TypeError(
+                'module must be a child of nn.Module, but got {}'.format(
+                    module_class))
         module_name = module_class.__name__
         if module_name in self._module_dict:
             raise KeyError('{} is already registered in {}'.format(
diff --git a/mmdet/models/utils/conv_module.py b/mmdet/models/utils/conv_module.py
index 329b235..623d691 100644
--- a/mmdet/models/utils/conv_module.py
+++ b/mmdet/models/utils/conv_module.py
@@ -98,15 +98,16 @@ class ConvModule(nn.Module):
             warnings.warn('ConvModule has norm and bias at the same time')
 
         # build convolution layer
-        self.conv = build_conv_layer(conv_cfg,
-                                     in_channels,
-                                     out_channels,
-                                     kernel_size,
-                                     stride=stride,
-                                     padding=padding,
-                                     dilation=dilation,
-                                     groups=groups,
-                                     bias=bias)
+        self.conv = build_conv_layer(
+            conv_cfg,
+            in_channels,
+            out_channels,
+            kernel_size,
+            stride=stride,
+            padding=padding,
+            dilation=dilation,
+            groups=groups,
+            bias=bias)
         # export the attributes of self.conv to a higher level for convenience
         self.in_channels = self.conv.in_channels
         self.out_channels = self.conv.out_channels
diff --git a/mmdet/models/utils/norm.py b/mmdet/models/utils/norm.py
index a912a19..d5687cb 100644
--- a/mmdet/models/utils/norm.py
+++ b/mmdet/models/utils/norm.py
@@ -1,6 +1,5 @@
 import torch.nn as nn
 
-
 norm_cfg = {
     # format: layer_type: (abbreviation, module)
     'BN': ('bn', nn.BatchNorm2d),
diff --git a/mmdet/ops/dcn/setup.py b/mmdet/ops/dcn/setup.py
index 020d5ed..9638018 100644
--- a/mmdet/ops/dcn/setup.py
+++ b/mmdet/ops/dcn/setup.py
@@ -8,8 +8,8 @@ setup(
             'src/deform_conv_cuda.cpp',
             'src/deform_conv_cuda_kernel.cu',
         ]),
-        CUDAExtension('deform_pool_cuda', [
-            'src/deform_pool_cuda.cpp', 'src/deform_pool_cuda_kernel.cu'
-        ]),
+        CUDAExtension(
+            'deform_pool_cuda',
+            ['src/deform_pool_cuda.cpp', 'src/deform_pool_cuda_kernel.cu']),
     ],
     cmdclass={'build_ext': BuildExtension})
diff --git a/tools/analyze_logs.py b/tools/analyze_logs.py
index b56f3de..c9f603f 100644
--- a/tools/analyze_logs.py
+++ b/tools/analyze_logs.py
@@ -51,8 +51,8 @@ def plot_curve(log_dicts, args):
         for j, metric in enumerate(metrics):
             print('plot curve of {}, metric is {}'.format(
                 args.json_logs[i], metric))
-            assert metric in log_dict[
-                epochs[0]], '{} does not contain metric {}'.format(
+            assert metric in log_dict[epochs[
+                0]], '{} does not contain metric {}'.format(
                     args.json_logs[i], metric)
 
             if 'mAP' in metric:
diff --git a/tools/test.py b/tools/test.py
index dc94b6d..9719f45 100644
--- a/tools/test.py
+++ b/tools/test.py
@@ -63,15 +63,12 @@ def collect_results(result_part, size, tmpdir=None):
     if tmpdir is None:
         MAX_LEN = 512
         # 32 is whitespace
-        dir_tensor = torch.full((MAX_LEN, ),
-                                32,
-                                dtype=torch.uint8,
-                                device='cuda')
+        dir_tensor = torch.full(
+            (MAX_LEN, ), 32, dtype=torch.uint8, device='cuda')
         if rank == 0:
             tmpdir = tempfile.mkdtemp()
-            tmpdir = torch.tensor(bytearray(tmpdir.encode()),
-                                  dtype=torch.uint8,
-                                  device='cuda')
+            tmpdir = torch.tensor(
+                bytearray(tmpdir.encode()), dtype=torch.uint8, device='cuda')
             dir_tensor[:len(tmpdir)] = tmpdir
         dist.broadcast(dir_tensor, 0)
         tmpdir = dir_tensor.cpu().numpy().tobytes().decode().rstrip()
@@ -113,10 +110,11 @@ def parse_args():
         help='eval types')
     parser.add_argument('--show', action='store_true', help='show results')
     parser.add_argument('--tmpdir', help='tmp dir for writing some results')
-    parser.add_argument('--launcher',
-                        choices=['none', 'pytorch', 'slurm', 'mpi'],
-                        default='none',
-                        help='job launcher')
+    parser.add_argument(
+        '--launcher',
+        choices=['none', 'pytorch', 'slurm', 'mpi'],
+        default='none',
+        help='job launcher')
     parser.add_argument('--local_rank', type=int, default=0)
     args = parser.parse_args()
     return args
@@ -145,11 +143,12 @@ def main():
     # build the dataloader
     # TODO: support multiple images per gpu (only minor changes are needed)
     dataset = get_dataset(cfg.data.test)
-    data_loader = build_dataloader(dataset,
-                                   imgs_per_gpu=1,
-                                   workers_per_gpu=cfg.data.workers_per_gpu,
-                                   dist=distributed,
-                                   shuffle=False)
+    data_loader = build_dataloader(
+        dataset,
+        imgs_per_gpu=1,
+        workers_per_gpu=cfg.data.workers_per_gpu,
+        dist=distributed,
+        shuffle=False)
 
     # build the model and load checkpoint
     model = build_detector(cfg.model, train_cfg=None, test_cfg=cfg.test_cfg)
diff --git a/tools/train.py b/tools/train.py
index 97a253f..3e06d6f 100644
--- a/tools/train.py
+++ b/tools/train.py
@@ -77,7 +77,8 @@ def main():
         # save mmdet version, config file content and class names in
         # checkpoints as meta data
         cfg.checkpoint_config.meta = dict(
-            mmdet_version=__version__, config=cfg.text,
+            mmdet_version=__version__,
+            config=cfg.text,
             classes=train_dataset.CLASSES)
     # add an attribute for visualization convenience
     model.CLASSES = train_dataset.CLASSES
-- 
GitLab