facebookresearch / Mask2Former
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
  • 42% duplication:
    • 13,189 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 5,567 duplicated lines
  • 792 duplicates
system42% (5,567 lines)
Duplication per Extension
py26% (2,571 lines)
yaml94% (1,884 lines)
cuh82% (1,020 lines)
h72% (43 lines)
cu25% (32 lines)
cpp77% (17 lines)
Duplication per Component (primary)
mask2former/modeling53% (2,104 lines)
configs/cityscapes97% (522 lines)
mask2former_video/modeling88% (519 lines)
configs/ade20k92% (462 lines)
mask2former/data14% (426 lines)
configs/coco94% (344 lines)
ROOT55% (237 lines)
configs/mapillary-vistas93% (218 lines)
configs/youtubevis_202196% (169 lines)
configs/youtubevis_201994% (169 lines)
mask2former_video/data_video6% (100 lines)
mask2former26% (80 lines)
mask2former_video44% (80 lines)
datasets12% (68 lines)
demo_video19% (47 lines)
tools6% (22 lines)
mask2former/utils0% (0 lines)
mask2former/evaluation0% (0 lines)
mask2former_video/utils0% (0 lines)

Duplication Between Components (50+ lines)

G mask2former/modeling mask2former/modeling mask2former_video/modeling mask2former_video/modeling mask2former/modeling--mask2former_video/modeling 1137 configs/ade20k configs/ade20k configs/cityscapes configs/cityscapes configs/ade20k--configs/cityscapes 738 configs/coco configs/coco configs/ade20k--configs/coco 572 configs/youtubevis_2019 configs/youtubevis_2019 configs/ade20k--configs/youtubevis_2019 356 configs/youtubevis_2021 configs/youtubevis_2021 configs/ade20k--configs/youtubevis_2021 356 configs/mapillary-vistas configs/mapillary-vistas configs/ade20k--configs/mapillary-vistas 394 configs/cityscapes--configs/coco 649 configs/cityscapes--configs/youtubevis_2019 426 configs/cityscapes--configs/youtubevis_2021 426 configs/cityscapes--configs/mapillary-vistas 386 configs/coco--configs/youtubevis_2019 367 configs/coco--configs/youtubevis_2021 367 configs/coco--configs/mapillary-vistas 290 configs/youtubevis_2019--configs/youtubevis_2021 338 configs/mapillary-vistas--configs/youtubevis_2019 198 configs/mapillary-vistas--configs/youtubevis_2021 198 mask2former mask2former mask2former_video mask2former_video mask2former--mask2former_video 160

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 792 duplicates...
Size#FoldersFilesLinesCode
145 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
mask2former_transformer_decoder.py
video_mask2former_transformer_decoder.py
17:207 (45%)
18:208 (44%)
view
82 x 2 mask2former/modeling/pixel_decoder/ops/src/cuda
mask2former/modeling/pixel_decoder/ops/src/cuda
cuh
ms_deform_im2col_cuda.cuh
ms_deform_im2col_cuda.cuh
625:713 (6%)
738:826 (6%)
view
76 x 2 mask2former/modeling
mask2former_video/modeling
criterion.py
criterion.py
161:263 (52%)
157:259 (53%)
view
73 x 2 ROOT
ROOT
train_net.py
train_net_video.py
175:264 (30%)
95:184 (38%)
view
69 x 2 mask2former/modeling/pixel_decoder/ops/src/cuda
mask2former/modeling/pixel_decoder/ops/src/cuda
cuh
ms_deform_im2col_cuda.cuh
ms_deform_im2col_cuda.cuh
520:594 (5%)
625:699 (5%)
view
69 x 2 mask2former/modeling/pixel_decoder/ops/src/cuda
mask2former/modeling/pixel_decoder/ops/src/cuda
cuh
ms_deform_im2col_cuda.cuh
ms_deform_im2col_cuda.cuh
520:594 (5%)
738:812 (5%)
view
68 x 2 mask2former/modeling/pixel_decoder/ops/src/cuda
mask2former/modeling/pixel_decoder/ops/src/cuda
cuh
ms_deform_im2col_cuda.cuh
ms_deform_im2col_cuda.cuh
308:381 (5%)
413:486 (5%)
view
62 x 2 mask2former/modeling/pixel_decoder/ops/src/cuda
mask2former/modeling/pixel_decoder/ops/src/cuda
cuh
ms_deform_im2col_cuda.cuh
ms_deform_im2col_cuda.cuh
94:160 (5%)
169:235 (5%)
view
61 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
mask2former_transformer_decoder.py
video_mask2former_transformer_decoder.py
278:359 (19%)
283:364 (18%)
view
51 x 2 mask2former/modeling/pixel_decoder/ops/src/cuda
mask2former/modeling/pixel_decoder/ops/src/cuda
cuh
ms_deform_im2col_cuda.cuh
ms_deform_im2col_cuda.cuh
329:385 (4%)
542:598 (4%)
view
47 x 2 mask2former/modeling/pixel_decoder/ops/src/cuda
mask2former/modeling/pixel_decoder/ops/src/cuda
cuh
ms_deform_im2col_cuda.cuh
ms_deform_im2col_cuda.cuh
329:381 (3%)
760:812 (3%)
view
47 x 2 mask2former/modeling/pixel_decoder/ops/src/cuda
mask2former/modeling/pixel_decoder/ops/src/cuda
cuh
ms_deform_im2col_cuda.cuh
ms_deform_im2col_cuda.cuh
329:381 (3%)
647:699 (3%)
view
47 x 2 mask2former/modeling/pixel_decoder/ops/src/cuda
mask2former/modeling/pixel_decoder/ops/src/cuda
cuh
ms_deform_im2col_cuda.cuh
ms_deform_im2col_cuda.cuh
434:486 (3%)
760:812 (3%)
view
47 x 2 mask2former/modeling/pixel_decoder/ops/src/cuda
mask2former/modeling/pixel_decoder/ops/src/cuda
cuh
ms_deform_im2col_cuda.cuh
ms_deform_im2col_cuda.cuh
434:486 (3%)
542:594 (3%)
view
47 x 2 mask2former/modeling/pixel_decoder/ops/src/cuda
mask2former/modeling/pixel_decoder/ops/src/cuda
cuh
ms_deform_im2col_cuda.cuh
ms_deform_im2col_cuda.cuh
434:486 (3%)
647:699 (3%)
view
44 x 2 configs/youtubevis_2019
configs/youtubevis_2021
video_maskformer2_R50_bs16_8ep.yaml
video_maskformer2_R50_bs16_8ep.yaml
1:45 (100%)
1:45 (100%)
view
41 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
mask2former_transformer_decoder.py
video_mask2former_transformer_decoder.py
385:437 (12%)
396:448 (12%)
view
39 x 2 configs/mapillary-vistas/panoptic-segmentation
configs/mapillary-vistas/semantic-segmentation
maskformer_R50_bs16_300k.yaml
maskformer2_R50_bs16_300k.yaml
2:41 (90%)
2:41 (90%)
view
38 x 2 configs/cityscapes/panoptic-segmentation
configs/cityscapes/semantic-segmentation
maskformer2_R50_bs16_90k.yaml
maskformer2_R50_bs16_90k.yaml
2:40 (88%)
2:40 (88%)
view
38 x 2 configs/ade20k/panoptic-segmentation
configs/ade20k/semantic-segmentation
maskformer2_R50_bs16_160k.yaml
maskformer2_R50_bs16_160k.yaml
2:40 (88%)
2:40 (88%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 33 unit duplicates...
Size#FoldersFilesLinesCode
70 x 2 ROOT
ROOT
train_net_video.py
train_net.py
0:0 
0:0 
view
48 x 2 mask2former/data/datasets
mask2former/data/datasets
register_mapillary_vistas_panoptic.py
register_ade20k_panoptic.py
0:0 
0:0 
view
30 x 2 mask2former/modeling
mask2former_video/modeling
criterion.py
criterion.py
0:0 
0:0 
view
25 x 2 mask2former/data/dataset_mappers
mask2former/data/dataset_mappers
coco_panoptic_new_baseline_dataset_ma...
coco_instance_new_baseline_dataset_ma...
0:0 
0:0 
view
14 x 2 mask2former/modeling
mask2former_video/modeling
criterion.py
criterion.py
0:0 
0:0 
view
22 x 2 mask2former/modeling
mask2former_video/modeling
criterion.py
criterion.py
0:0 
0:0 
view
21 x 2 mask2former/modeling
mask2former_video/modeling
matcher.py
matcher.py
0:0 
0:0 
view
11 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
mask2former_transformer_decoder.py
video_mask2former_transformer_decoder.py
0:0 
0:0 
view
11 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
mask2former_transformer_decoder.py
video_mask2former_transformer_decoder.py
0:0 
0:0 
view
14 x 2 mask2former/modeling
mask2former_video/modeling
criterion.py
criterion.py
0:0 
0:0 
view
19 x 2 mask2former/modeling
mask2former_video/modeling
criterion.py
criterion.py
0:0 
0:0 
view
9 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
mask2former_transformer_decoder.py
video_mask2former_transformer_decoder.py
0:0 
0:0 
view
9 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
mask2former_transformer_decoder.py
video_mask2former_transformer_decoder.py
0:0 
0:0 
view
9 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
mask2former_transformer_decoder.py
video_mask2former_transformer_decoder.py
0:0 
0:0 
view
10 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
mask2former_transformer_decoder.py
video_mask2former_transformer_decoder.py
0:0 
0:0 
view
9 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
position_encoding.py
position_encoding.py
0:0 
0:0 
view
9 x 2 mask2former/modeling/transformer_decoder
mask2former/modeling/transformer_decoder
transformer.py
transformer.py
0:0 
0:0 
view
8 x 2 mask2former/modeling
mask2former_video/modeling
matcher.py
matcher.py
0:0 
0:0 
view
8 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
mask2former_transformer_decoder.py
video_mask2former_transformer_decoder.py
0:0 
0:0 
view
8 x 2 mask2former/modeling/transformer_decoder
mask2former_video/modeling/transformer_decoder
mask2former_transformer_decoder.py
video_mask2former_transformer_decoder.py
0:0 
0:0 
view