Commit 97d08556 authored by Jiangmiao Pang's avatar Jiangmiao Pang Committed by Kai Chen
Browse files

Reformat use yapf 0.27.0 & Add yapf style file (#672)

* Reformat use yapf 0.27.0

* Add yapf style file
parent 4bbb4a2a
...@@ -186,8 +186,8 @@ class CascadeRCNN(BaseDetector, RPNTestMixin): ...@@ -186,8 +186,8 @@ class CascadeRCNN(BaseDetector, RPNTestMixin):
gt_labels, rcnn_train_cfg) gt_labels, rcnn_train_cfg)
loss_bbox = bbox_head.loss(cls_score, bbox_pred, *bbox_targets) loss_bbox = bbox_head.loss(cls_score, bbox_pred, *bbox_targets)
for name, value in loss_bbox.items(): for name, value in loss_bbox.items():
losses['s{}.{}'.format( losses['s{}.{}'.format(i, name)] = (
i, name)] = (value * lw if 'loss' in name else value) value * lw if 'loss' in name else value)
# mask head forward and loss # mask head forward and loss
if self.with_mask: if self.with_mask:
...@@ -224,8 +224,8 @@ class CascadeRCNN(BaseDetector, RPNTestMixin): ...@@ -224,8 +224,8 @@ class CascadeRCNN(BaseDetector, RPNTestMixin):
[res.pos_gt_labels for res in sampling_results]) [res.pos_gt_labels for res in sampling_results])
loss_mask = mask_head.loss(mask_pred, mask_targets, pos_labels) loss_mask = mask_head.loss(mask_pred, mask_targets, pos_labels)
for name, value in loss_mask.items(): for name, value in loss_mask.items():
losses['s{}.{}'.format( losses['s{}.{}'.format(i, name)] = (
i, name)] = (value * lw if 'loss' in name else value) value * lw if 'loss' in name else value)
# refine bboxes # refine bboxes
if i < self.num_stages - 1: if i < self.num_stages - 1:
...@@ -286,7 +286,8 @@ class CascadeRCNN(BaseDetector, RPNTestMixin): ...@@ -286,7 +286,8 @@ class CascadeRCNN(BaseDetector, RPNTestMixin):
[] for _ in range(mask_head.num_classes - 1) [] for _ in range(mask_head.num_classes - 1)
] ]
else: else:
_bboxes = (det_bboxes[:, :4] * scale_factor _bboxes = (
det_bboxes[:, :4] * scale_factor
if rescale else det_bboxes) if rescale else det_bboxes)
mask_rois = bbox2roi([_bboxes]) mask_rois = bbox2roi([_bboxes])
mask_feats = mask_roi_extractor( mask_feats = mask_roi_extractor(
...@@ -324,7 +325,8 @@ class CascadeRCNN(BaseDetector, RPNTestMixin): ...@@ -324,7 +325,8 @@ class CascadeRCNN(BaseDetector, RPNTestMixin):
[] for _ in range(self.mask_head[-1].num_classes - 1) [] for _ in range(self.mask_head[-1].num_classes - 1)
] ]
else: else:
_bboxes = (det_bboxes[:, :4] * scale_factor _bboxes = (
det_bboxes[:, :4] * scale_factor
if rescale else det_bboxes) if rescale else det_bboxes)
mask_rois = bbox2roi([_bboxes]) mask_rois = bbox2roi([_bboxes])
aug_masks = [] aug_masks = []
......
...@@ -224,8 +224,8 @@ class HybridTaskCascade(CascadeRCNN): ...@@ -224,8 +224,8 @@ class HybridTaskCascade(CascadeRCNN):
roi_labels = bbox_targets[0] roi_labels = bbox_targets[0]
for name, value in loss_bbox.items(): for name, value in loss_bbox.items():
losses['s{}.{}'.format( losses['s{}.{}'.format(i, name)] = (
i, name)] = (value * lw if 'loss' in name else value) value * lw if 'loss' in name else value)
# mask head forward and loss # mask head forward and loss
if self.with_mask: if self.with_mask:
...@@ -253,8 +253,8 @@ class HybridTaskCascade(CascadeRCNN): ...@@ -253,8 +253,8 @@ class HybridTaskCascade(CascadeRCNN):
gt_masks, rcnn_train_cfg, gt_masks, rcnn_train_cfg,
semantic_feat) semantic_feat)
for name, value in loss_mask.items(): for name, value in loss_mask.items():
losses['s{}.{}'.format( losses['s{}.{}'.format(i, name)] = (
i, name)] = (value * lw if 'loss' in name else value) value * lw if 'loss' in name else value)
# refine bboxes (same as Cascade R-CNN) # refine bboxes (same as Cascade R-CNN)
if i < self.num_stages - 1 and not self.interleaved: if i < self.num_stages - 1 and not self.interleaved:
...@@ -312,7 +312,8 @@ class HybridTaskCascade(CascadeRCNN): ...@@ -312,7 +312,8 @@ class HybridTaskCascade(CascadeRCNN):
[] for _ in range(mask_head.num_classes - 1) [] for _ in range(mask_head.num_classes - 1)
] ]
else: else:
_bboxes = (det_bboxes[:, :4] * scale_factor _bboxes = (
det_bboxes[:, :4] * scale_factor
if rescale else det_bboxes) if rescale else det_bboxes)
mask_pred = self._mask_forward_test( mask_pred = self._mask_forward_test(
i, x, _bboxes, semantic_feat=semantic_feat) i, x, _bboxes, semantic_feat=semantic_feat)
...@@ -345,7 +346,8 @@ class HybridTaskCascade(CascadeRCNN): ...@@ -345,7 +346,8 @@ class HybridTaskCascade(CascadeRCNN):
[] for _ in range(self.mask_head[-1].num_classes - 1) [] for _ in range(self.mask_head[-1].num_classes - 1)
] ]
else: else:
_bboxes = (det_bboxes[:, :4] * scale_factor _bboxes = (
det_bboxes[:, :4] * scale_factor
if rescale else det_bboxes) if rescale else det_bboxes)
mask_rois = bbox2roi([_bboxes]) mask_rois = bbox2roi([_bboxes])
......
...@@ -105,8 +105,8 @@ class MaskTestMixin(object): ...@@ -105,8 +105,8 @@ class MaskTestMixin(object):
else: else:
# if det_bboxes is rescaled to the original image size, we need to # if det_bboxes is rescaled to the original image size, we need to
# rescale it back to the testing scale to obtain RoIs. # rescale it back to the testing scale to obtain RoIs.
_bboxes = (det_bboxes[:, :4] * scale_factor _bboxes = (
if rescale else det_bboxes) det_bboxes[:, :4] * scale_factor if rescale else det_bboxes)
mask_rois = bbox2roi([_bboxes]) mask_rois = bbox2roi([_bboxes])
mask_feats = self.mask_roi_extractor( mask_feats = self.mask_roi_extractor(
x[:len(self.mask_roi_extractor.featmap_strides)], mask_rois) x[:len(self.mask_roi_extractor.featmap_strides)], mask_rois)
......
...@@ -43,8 +43,8 @@ class FCNMaskHead(nn.Module): ...@@ -43,8 +43,8 @@ class FCNMaskHead(nn.Module):
self.convs = nn.ModuleList() self.convs = nn.ModuleList()
for i in range(self.num_convs): for i in range(self.num_convs):
in_channels = (self.in_channels in_channels = (
if i == 0 else self.conv_out_channels) self.in_channels if i == 0 else self.conv_out_channels)
padding = (self.conv_kernel_size - 1) // 2 padding = (self.conv_kernel_size - 1) // 2
self.convs.append( self.convs.append(
ConvModule( ConvModule(
...@@ -54,8 +54,8 @@ class FCNMaskHead(nn.Module): ...@@ -54,8 +54,8 @@ class FCNMaskHead(nn.Module):
padding=padding, padding=padding,
conv_cfg=conv_cfg, conv_cfg=conv_cfg,
norm_cfg=norm_cfg)) norm_cfg=norm_cfg))
upsample_in_channels = (self.conv_out_channels upsample_in_channels = (
if self.num_convs > 0 else in_channels) self.conv_out_channels if self.num_convs > 0 else in_channels)
if self.upsample_method is None: if self.upsample_method is None:
self.upsample = None self.upsample = None
elif self.upsample_method == 'deconv': elif self.upsample_method == 'deconv':
...@@ -69,9 +69,9 @@ class FCNMaskHead(nn.Module): ...@@ -69,9 +69,9 @@ class FCNMaskHead(nn.Module):
scale_factor=self.upsample_ratio, mode=self.upsample_method) scale_factor=self.upsample_ratio, mode=self.upsample_method)
out_channels = 1 if self.class_agnostic else self.num_classes out_channels = 1 if self.class_agnostic else self.num_classes
logits_in_channel = (self.conv_out_channels logits_in_channel = (
if self.upsample_method == 'deconv' else self.conv_out_channels
upsample_in_channels) if self.upsample_method == 'deconv' else upsample_in_channels)
self.conv_logits = nn.Conv2d(logits_in_channel, out_channels, 1) self.conv_logits = nn.Conv2d(logits_in_channel, out_channels, 1)
self.relu = nn.ReLU(inplace=True) self.relu = nn.ReLU(inplace=True)
self.debug_imgs = None self.debug_imgs = None
......
...@@ -85,10 +85,7 @@ class FusedSemanticHead(nn.Module): ...@@ -85,10 +85,7 @@ class FusedSemanticHead(nn.Module):
for i, feat in enumerate(feats): for i, feat in enumerate(feats):
if i != self.fusion_level: if i != self.fusion_level:
feat = F.interpolate( feat = F.interpolate(
feat, feat, size=fused_size, mode='bilinear', align_corners=True)
size=fused_size,
mode='bilinear',
align_corners=True)
x += self.lateral_convs[i](feat) x += self.lateral_convs[i](feat)
for i in range(self.num_convs): for i in range(self.num_convs):
......
...@@ -22,8 +22,9 @@ class Registry(object): ...@@ -22,8 +22,9 @@ class Registry(object):
module (:obj:`nn.Module`): Module to be registered. module (:obj:`nn.Module`): Module to be registered.
""" """
if not issubclass(module_class, nn.Module): if not issubclass(module_class, nn.Module):
raise TypeError('module must be a child of nn.Module, but got {}'. raise TypeError(
format(module_class)) 'module must be a child of nn.Module, but got {}'.format(
module_class))
module_name = module_class.__name__ module_name = module_class.__name__
if module_name in self._module_dict: if module_name in self._module_dict:
raise KeyError('{} is already registered in {}'.format( raise KeyError('{} is already registered in {}'.format(
......
...@@ -98,7 +98,8 @@ class ConvModule(nn.Module): ...@@ -98,7 +98,8 @@ class ConvModule(nn.Module):
warnings.warn('ConvModule has norm and bias at the same time') warnings.warn('ConvModule has norm and bias at the same time')
# build convolution layer # build convolution layer
self.conv = build_conv_layer(conv_cfg, self.conv = build_conv_layer(
conv_cfg,
in_channels, in_channels,
out_channels, out_channels,
kernel_size, kernel_size,
......
import torch.nn as nn import torch.nn as nn
norm_cfg = { norm_cfg = {
# format: layer_type: (abbreviation, module) # format: layer_type: (abbreviation, module)
'BN': ('bn', nn.BatchNorm2d), 'BN': ('bn', nn.BatchNorm2d),
......
...@@ -8,8 +8,8 @@ setup( ...@@ -8,8 +8,8 @@ setup(
'src/deform_conv_cuda.cpp', 'src/deform_conv_cuda.cpp',
'src/deform_conv_cuda_kernel.cu', 'src/deform_conv_cuda_kernel.cu',
]), ]),
CUDAExtension('deform_pool_cuda', [ CUDAExtension(
'src/deform_pool_cuda.cpp', 'src/deform_pool_cuda_kernel.cu' 'deform_pool_cuda',
]), ['src/deform_pool_cuda.cpp', 'src/deform_pool_cuda_kernel.cu']),
], ],
cmdclass={'build_ext': BuildExtension}) cmdclass={'build_ext': BuildExtension})
...@@ -51,8 +51,8 @@ def plot_curve(log_dicts, args): ...@@ -51,8 +51,8 @@ def plot_curve(log_dicts, args):
for j, metric in enumerate(metrics): for j, metric in enumerate(metrics):
print('plot curve of {}, metric is {}'.format( print('plot curve of {}, metric is {}'.format(
args.json_logs[i], metric)) args.json_logs[i], metric))
assert metric in log_dict[ assert metric in log_dict[epochs[
epochs[0]], '{} does not contain metric {}'.format( 0]], '{} does not contain metric {}'.format(
args.json_logs[i], metric) args.json_logs[i], metric)
if 'mAP' in metric: if 'mAP' in metric:
......
...@@ -63,15 +63,12 @@ def collect_results(result_part, size, tmpdir=None): ...@@ -63,15 +63,12 @@ def collect_results(result_part, size, tmpdir=None):
if tmpdir is None: if tmpdir is None:
MAX_LEN = 512 MAX_LEN = 512
# 32 is whitespace # 32 is whitespace
dir_tensor = torch.full((MAX_LEN, ), dir_tensor = torch.full(
32, (MAX_LEN, ), 32, dtype=torch.uint8, device='cuda')
dtype=torch.uint8,
device='cuda')
if rank == 0: if rank == 0:
tmpdir = tempfile.mkdtemp() tmpdir = tempfile.mkdtemp()
tmpdir = torch.tensor(bytearray(tmpdir.encode()), tmpdir = torch.tensor(
dtype=torch.uint8, bytearray(tmpdir.encode()), dtype=torch.uint8, device='cuda')
device='cuda')
dir_tensor[:len(tmpdir)] = tmpdir dir_tensor[:len(tmpdir)] = tmpdir
dist.broadcast(dir_tensor, 0) dist.broadcast(dir_tensor, 0)
tmpdir = dir_tensor.cpu().numpy().tobytes().decode().rstrip() tmpdir = dir_tensor.cpu().numpy().tobytes().decode().rstrip()
...@@ -113,7 +110,8 @@ def parse_args(): ...@@ -113,7 +110,8 @@ def parse_args():
help='eval types') help='eval types')
parser.add_argument('--show', action='store_true', help='show results') parser.add_argument('--show', action='store_true', help='show results')
parser.add_argument('--tmpdir', help='tmp dir for writing some results') parser.add_argument('--tmpdir', help='tmp dir for writing some results')
parser.add_argument('--launcher', parser.add_argument(
'--launcher',
choices=['none', 'pytorch', 'slurm', 'mpi'], choices=['none', 'pytorch', 'slurm', 'mpi'],
default='none', default='none',
help='job launcher') help='job launcher')
...@@ -145,7 +143,8 @@ def main(): ...@@ -145,7 +143,8 @@ def main():
# build the dataloader # build the dataloader
# TODO: support multiple images per gpu (only minor changes are needed) # TODO: support multiple images per gpu (only minor changes are needed)
dataset = get_dataset(cfg.data.test) dataset = get_dataset(cfg.data.test)
data_loader = build_dataloader(dataset, data_loader = build_dataloader(
dataset,
imgs_per_gpu=1, imgs_per_gpu=1,
workers_per_gpu=cfg.data.workers_per_gpu, workers_per_gpu=cfg.data.workers_per_gpu,
dist=distributed, dist=distributed,
......
...@@ -77,7 +77,8 @@ def main(): ...@@ -77,7 +77,8 @@ def main():
# save mmdet version, config file content and class names in # save mmdet version, config file content and class names in
# checkpoints as meta data # checkpoints as meta data
cfg.checkpoint_config.meta = dict( cfg.checkpoint_config.meta = dict(
mmdet_version=__version__, config=cfg.text, mmdet_version=__version__,
config=cfg.text,
classes=train_dataset.CLASSES) classes=train_dataset.CLASSES)
# add an attribute for visualization convenience # add an attribute for visualization convenience
model.CLASSES = train_dataset.CLASSES model.CLASSES = train_dataset.CLASSES
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment