Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ModelZoo
SOLOv2-pytorch
Commits
97d08556
Commit
97d08556
authored
May 20, 2019
by
Jiangmiao Pang
Committed by
Kai Chen
May 20, 2019
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
Changes
32
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
65 additions
and
63 deletions
+65
-63
mmdet/models/detectors/cascade_rcnn.py
mmdet/models/detectors/cascade_rcnn.py
+10
-8
mmdet/models/detectors/htc.py
mmdet/models/detectors/htc.py
+10
-8
mmdet/models/detectors/test_mixins.py
mmdet/models/detectors/test_mixins.py
+2
-2
mmdet/models/mask_heads/fcn_mask_head.py
mmdet/models/mask_heads/fcn_mask_head.py
+7
-7
mmdet/models/mask_heads/fused_semantic_head.py
mmdet/models/mask_heads/fused_semantic_head.py
+1
-4
mmdet/models/registry.py
mmdet/models/registry.py
+3
-2
mmdet/models/utils/conv_module.py
mmdet/models/utils/conv_module.py
+10
-9
mmdet/models/utils/norm.py
mmdet/models/utils/norm.py
+0
-1
mmdet/ops/dcn/setup.py
mmdet/ops/dcn/setup.py
+3
-3
tools/analyze_logs.py
tools/analyze_logs.py
+2
-2
tools/test.py
tools/test.py
+15
-16
tools/train.py
tools/train.py
+2
-1
No files found.
mmdet/models/detectors/cascade_rcnn.py
View file @
97d08556
...
...
@@ -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
):
...
...
mmdet/models/detectors/htc.py
View file @
97d08556
...
...
@@ -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
=
[]
...
...
mmdet/models/detectors/test_mixins.py
View file @
97d08556
...
...
@@ -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
)
...
...
mmdet/models/mask_heads/fcn_mask_head.py
View file @
97d08556
...
...
@@ -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'
els
e
upsample_in_channels
)
logits_in_channel
=
(
self
.
conv_out_chann
els
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
...
...
mmdet/models/mask_heads/fused_semantic_head.py
View file @
97d08556
...
...
@@ -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
):
...
...
mmdet/models/registry.py
View file @
97d08556
...
...
@@ -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
(
...
...
mmdet/models/utils/conv_module.py
View file @
97d08556
...
...
@@ -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
...
...
mmdet/models/utils/norm.py
View file @
97d08556
import
torch.nn
as
nn
norm_cfg
=
{
# format: layer_type: (abbreviation, module)
'BN'
:
(
'bn'
,
nn
.
BatchNorm2d
),
...
...
mmdet/ops/dcn/setup.py
View file @
97d08556
...
...
@@ -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
})
tools/analyze_logs.py
View file @
97d08556
...
...
@@ -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
:
...
...
tools/test.py
View file @
97d08556
...
...
@@ -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
)
...
...
tools/train.py
View file @
97d08556
...
...
@@ -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
...
...
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment