facebookresearch / maskrcnn-benchmark
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 28% duplication:
    • 14,643 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 4,215 duplicated lines
  • 1,977 duplicates
system28% (4,215 lines)
Duplication per Extension
yaml94% (2,426 lines)
py10% (927 lines)
cu30% (760 lines)
h27% (102 lines)
Duplication per Component (primary)
maskrcnn_benchmark/csrc27% (862 lines)
configs94% (719 lines)
configs/gn_baselines100% (440 lines)
configs/quick_schedules97% (339 lines)
maskrcnn_benchmark/data15% (285 lines)
configs/retinanet96% (282 lines)
maskrcnn_benchmark/layers28% (279 lines)
maskrcnn_benchmark/modeling7% (255 lines)
configs/caffe285% (245 lines)
configs/dcn100% (190 lines)
configs/cityscapes86% (146 lines)
configs/pascal_voc79% (65 lines)
maskrcnn_benchmark/engine14% (43 lines)
maskrcnn_benchmark/structures4% (40 lines)
maskrcnn_benchmark/utils2% (14 lines)
tools7% (11 lines)
tools/cityscapes0% (0 lines)
docker/docker-jupyter0% (0 lines)
maskrcnn_benchmark/config0% (0 lines)
maskrcnn_benchmark0% (0 lines)
maskrcnn_benchmark/solver0% (0 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G configs/caffe2 configs/caffe2 configs configs configs/caffe2--configs 519 configs/quick_schedules configs/quick_schedules configs/caffe2--configs/quick_schedules 350 configs/dcn configs/dcn configs/caffe2--configs/dcn 280 configs/gn_baselines configs/gn_baselines configs/caffe2--configs/gn_baselines 309 configs/cityscapes configs/cityscapes configs/caffe2--configs/cityscapes 281 configs/retinanet configs/retinanet configs/caffe2--configs/retinanet 210 configs/pascal_voc configs/pascal_voc configs/caffe2--configs/pascal_voc 205 configs--configs/quick_schedules 457 configs--configs/gn_baselines 429 configs--configs/retinanet 203 configs--configs/pascal_voc 231 configs/quick_schedules--configs/retinanet 285 configs/dcn--configs 429 configs/dcn--configs/quick_schedules 228 configs/dcn--configs/gn_baselines 416 configs/dcn--configs/retinanet 130 configs/dcn--configs/pascal_voc 140 configs/gn_baselines--configs/quick_schedules 213 configs/gn_baselines--configs/retinanet 98 configs/gn_baselines--configs/pascal_voc 121 configs/cityscapes--configs 316 configs/cityscapes--configs/quick_schedules 240 configs/cityscapes--configs/dcn 225 configs/cityscapes--configs/gn_baselines 163 configs/cityscapes--configs/retinanet 130 configs/cityscapes--configs/pascal_voc 177 configs/pascal_voc--configs/quick_schedules 155 configs/pascal_voc--configs/retinanet 91

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 1,977 duplicates...
Size#FoldersFilesLinesCode
46 x 2 configs/gn_baselines
configs/gn_baselines
e2e_mask_rcnn_R_50_FPN_Xconv1fc_1x_gn...
scratch_e2e_mask_rcnn_R_50_FPN_Xconv1...
11:57 (75%)
12:58 (74%)
view
44 x 2 configs
configs
e2e_mask_rcnn_fbnet_600.yaml
e2e_mask_rcnn_fbnet_xirb16d_dsmask_60...
7:52 (88%)
7:52 (88%)
view
44 x 2 configs/gn_baselines
configs/gn_baselines
e2e_mask_rcnn_R_50_FPN_1x_gn.yaml
scratch_e2e_mask_rcnn_R_50_FPN_3x_gn....
11:55 (74%)
12:56 (73%)
view
42 x 2 maskrcnn_benchmark/data/...s/evaluation/cityscapes
maskrcnn_benchmark/data/...s/evaluation/cityscapes
eval_instances.py
eval_instances.py
543:616 (8%)
747:820 (8%)
view
41 x 2 configs/caffe2
configs
e2e_keypoint_rcnn_R_50_FPN_1x_caffe2....
e2e_keypoint_rcnn_R_50_FPN_1x.yaml
4:44 (93%)
4:44 (93%)
view
41 x 2 configs
configs
e2e_mask_rcnn_R_50_FPN_1x.yaml
e2e_mask_rcnn_R_50_FPN_1x_periodicall...
1:41 (100%)
1:41 (97%)
view
40 x 2 configs/quick_schedules
configs/quick_schedules
e2e_mask_rcnn_R_50_FPN_quick.yaml
e2e_mask_rcnn_X_101_32x8d_FPN_quick.yaml
8:47 (80%)
11:50 (75%)
view
38 x 2 configs/gn_baselines
configs/gn_baselines
scratch_e2e_faster_rcnn_R_50_FPN_Xcon...
scratch_e2e_mask_rcnn_R_50_FPN_Xconv1...
1:38 (74%)
1:38 (61%)
view
38 x 2 configs/dcn
configs/dcn
e2e_mask_rcnn_dconv_R_50_FPN_1x.yaml
e2e_mask_rcnn_mdconv_R_50_FPN_1x.yaml
15:53 (73%)
15:53 (73%)
view
37 x 2 configs/gn_baselines
configs/gn_baselines
e2e_faster_rcnn_R_50_FPN_Xconv1fc_1x_...
e2e_mask_rcnn_R_50_FPN_Xconv1fc_1x_gn...
1:37 (74%)
1:37 (60%)
view
36 x 2 maskrcnn_benchmark/csrc/cuda
maskrcnn_benchmark/csrc/cuda
cu
deform_conv_kernel_cuda.cu
deform_conv_kernel_cuda.cu
156:197 (4%)
537:577 (4%)
view
36 x 2 configs
configs
e2e_mask_rcnn_R_101_FPN_1x.yaml
e2e_mask_rcnn_R_50_FPN_1x_periodicall...
6:41 (87%)
6:41 (85%)
view
36 x 2 configs
configs
e2e_mask_rcnn_R_101_FPN_1x.yaml
e2e_mask_rcnn_R_50_FPN_1x.yaml
6:41 (87%)
6:41 (87%)
view
36 x 2 configs/gn_baselines
configs/gn_baselines
scratch_e2e_faster_rcnn_R_50_FPN_3x_g...
scratch_e2e_mask_rcnn_R_50_FPN_3x_gn....
1:36 (73%)
1:36 (60%)
view
35 x 2 configs/gn_baselines
configs/gn_baselines
e2e_faster_rcnn_R_50_FPN_1x_gn.yaml
e2e_mask_rcnn_R_50_FPN_1x_gn.yaml
1:35 (72%)
1:35 (59%)
view
35 x 2 configs/gn_baselines
configs/gn_baselines
e2e_faster_rcnn_R_50_FPN_Xconv1fc_1x_...
scratch_e2e_faster_rcnn_R_50_FPN_Xcon...
11:46 (70%)
12:47 (68%)
view
34 x 2 configs/dcn
configs
e2e_mask_rcnn_mdconv_R_50_FPN_1x.yaml
e2e_mask_rcnn_R_101_FPN_1x.yaml
16:50 (65%)
8:41 (82%)
view
34 x 2 configs/retinanet
configs/retinanet
retinanet_R-101-FPN_1x.yaml
retinanet_X_101_32x8d_FPN_1x.yaml
10:43 (70%)
13:46 (66%)
view
34 x 2 configs/gn_baselines
configs/gn_baselines
scratch_e2e_faster_rcnn_R_50_FPN_3x_g...
scratch_e2e_faster_rcnn_R_50_FPN_Xcon...
1:34 (69%)
1:34 (66%)
view
34 x 2 configs/dcn
configs
e2e_mask_rcnn_mdconv_R_50_FPN_1x.yaml
e2e_mask_rcnn_R_50_FPN_1x_periodicall...
16:50 (65%)
8:41 (80%)
view
Duplicated Units
The list of top 4 duplicated units.
See data for all 4 unit duplicates...
Size#FoldersFilesLinesCode
12 x 2 maskrcnn_benchmark/layers/dcn
maskrcnn_benchmark/layers/dcn
deform_conv_module.py
deform_conv_module.py
0:0 
0:0 
view
9 x 2 maskrcnn_benchmark/modeling/backbone
maskrcnn_benchmark/modeling/backbone
resnet.py
resnet.py
0:0 
0:0 
view
7 x 4 maskrcnn_benchmark/data/datasets/evaluation/coco
maskrcnn_benchmark/data/datasets/evaluation/coco
maskrcnn_benchmark/data/...s/evaluation/cityscapes
maskrcnn_benchmark/data/...s/evaluation/cityscapes
coco_eval_wrapper.py
coco_eval.py
__init__.py
cityscapes_eval.py
0:0 
0:0 
0:0 
0:0 
view
7 x 2 maskrcnn_benchmark/structures
maskrcnn_benchmark/modeling
boxlist_ops.py
utils.py
0:0 
0:0 
view