apple / ml-cvnets
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
  • 23% duplication:
    • 10,096 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,396 duplicated lines
  • 334 duplicates
system23% (2,396 lines)
Duplication per Extension
py15% (1,394 lines)
yaml96% (1,002 lines)
Duplication per Component (primary)
config96% (1,002 lines)
cvnets15% (609 lines)
engine26% (264 lines)
data11% (248 lines)
ROOT32% (112 lines)
loss_fn14% (88 lines)
optim11% (51 lines)
utils3% (16 lines)
metrics3% (6 lines)
common0% (0 lines)
options0% (0 lines)

Duplication Between Components (50+ lines)

G cvnets cvnets loss_fn loss_fn cvnets--loss_fn 60

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 334 duplicates...
Size#FoldersFilesLinesCode
76 x 2 config/segmentation
config/segmentation
deeplabv3_mobilevit_small.yaml
deeplabv3_mobilevit_xx_small.yaml
1:76 (69%)
1:76 (69%)
view
76 x 2 config/segmentation
config/segmentation
deeplabv3_mobilevit_small.yaml
deeplabv3_mobilevit_x_small.yaml
1:76 (69%)
1:76 (69%)
view
76 x 2 config/segmentation
config/segmentation
deeplabv3_mobilevit_x_small.yaml
deeplabv3_mobilevit_xx_small.yaml
1:76 (69%)
1:76 (69%)
view
60 x 2 config/detection
config/detection
ssd_mobilevit_x_small_320.yaml
ssd_mobilevit_xx_small_320.yaml
1:60 (64%)
1:60 (64%)
view
60 x 2 config/detection
config/detection
ssd_mobilevit_small_320.yaml
ssd_mobilevit_xx_small_320.yaml
1:60 (64%)
1:60 (64%)
view
60 x 2 config/detection
config/detection
ssd_mobilevit_small_320.yaml
ssd_mobilevit_x_small_320.yaml
1:60 (64%)
1:60 (64%)
view
59 x 2 config/classification
config/classification
mobilevit_x_small.yaml
mobilevit_xx_small.yaml
1:59 (65%)
1:59 (65%)
view
40 x 2 config/classification
config/classification
mobilevit_small.yaml
mobilevit_x_small.yaml
1:40 (44%)
1:40 (44%)
view
40 x 2 config/classification
config/classification
mobilevit_small.yaml
mobilevit_xx_small.yaml
1:40 (44%)
1:40 (44%)
view
34 x 2 config/detection
config/segmentation
ssd_mobilevit_xx_small_320.yaml
deeplabv3_mobilevit_xx_small.yaml
57:90 (36%)
73:106 (31%)
view
34 x 2 config/detection
config/segmentation
ssd_mobilevit_x_small_320.yaml
deeplabv3_mobilevit_x_small.yaml
57:90 (36%)
73:106 (31%)
view
34 x 2 config/detection
config/segmentation
ssd_mobilevit_small_320.yaml
deeplabv3_mobilevit_small.yaml
57:90 (36%)
73:106 (31%)
view
30 x 2 config/classification
config/classification
mobilevit_small.yaml
mobilevit_x_small.yaml
61:90 (33%)
61:90 (33%)
view
27 x 2 config/classification
config/classification
mobilevit_x_small.yaml
mobilevit_xx_small.yaml
64:90 (30%)
64:90 (30%)
view
27 x 2 config/classification
config/classification
mobilevit_small.yaml
mobilevit_xx_small.yaml
64:90 (30%)
64:90 (30%)
view
26 x 2 config/classification
config/classification
mobilenetv2.yaml
resnet.yaml
15:40 (30%)
15:41 (31%)
view
25 x 2 config/classification
config/classification
mobilenetv2.yaml
mobilevit_x_small.yaml
1:25 (29%)
1:25 (27%)
view
25 x 2 config/classification
config/classification
mobilenetv2.yaml
mobilevit_xx_small.yaml
1:25 (29%)
1:25 (27%)
view
25 x 2 config/classification
config/classification
mobilenetv2.yaml
mobilevit_small.yaml
1:25 (29%)
1:25 (27%)
view
23 x 2 config/segmentation
config/segmentation
deeplabv3_mobilevit_small.yaml
deeplabv3_mobilevit_xx_small.yaml
87:109 (21%)
87:109 (21%)
view
Duplicated Units
The list of top 8 duplicated units.
See data for all 8 unit duplicates...
Size#FoldersFilesLinesCode
15 x 3 optim
optim
optim
adam.py
adamw.py
sgd.py
0:0 
0:0 
0:0 
view
10 x 2 ROOT
ROOT
main_eval.py
main_train.py
0:0 
0:0 
view
8 x 2 cvnets/models/detection
cvnets/models/segmentation/heads
base_detection.py
base_seg_head.py
0:0 
0:0 
view
8 x 2 cvnets/models/segmentation/heads
cvnets/models/detection
base_seg_head.py
base_detection.py
0:0 
0:0 
view
6 x 2 cvnets/models/classification
cvnets/models/segmentation
base_cls.py
base_seg.py
0:0 
0:0 
view
6 x 2 data/sampler
data/sampler
batch_sampler.py
batch_sampler.py
0:0 
0:0 
view
6 x 2 data/transforms
data/transforms
image.py
image.py
0:0 
0:0 
view
6 x 2 engine
utils
eval_segmentation.py
tensor_utils.py
0:0 
0:0 
view