aws-samples / amazon-sagemaker-cv
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
  • 20% duplication:
    • 21,210 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 4,282 duplicated lines
  • 220 duplicates
system20% (4,282 lines)
Duplication per Extension
py17% (2,971 lines)
cu33% (939 lines)
h39% (200 lines)
cpp15% (172 lines)
Duplication per Component (primary)
pytorch/cuda_utils/smcv_utils29% (1,311 lines)
pytorch/sagemakercv/utils41% (642 lines)
tensorflow/sagemakercv/utils42% (549 lines)
tensorflow/sagemakercv/detection26% (375 lines)
pytorch/sagemakercv/data18% (265 lines)
pytorch/sagemakercv/layers20% (259 lines)
tensorflow/sagemakercv/data13% (209 lines)
tensorflow/sagemakercv/training18% (204 lines)
tensorflow/sagemakercv/core7% (168 lines)
pytorch/sagemakercv/detection5% (146 lines)
pytorch/sagemakercv/core9% (85 lines)
pytorch/sagemakercv/training8% (46 lines)
pytorch/sagemakercv/inference14% (16 lines)
pytorch3% (7 lines)
pytorch/sagemakercv0% (0 lines)
pytorch/configs0% (0 lines)
pytorch/cuda_utils0% (0 lines)
tensorflow0% (0 lines)
tensorflow/sagemakercv0% (0 lines)
tensorflow/sagemakercv/layers0% (0 lines)
tensorflow/configs0% (0 lines)

Duplication Between Components (50+ lines)

G pytorch/sagemakercv/utils pytorch/sagemakercv/utils tensorflow/sagemakercv/utils tensorflow/sagemakercv/utils pytorch/sagemakercv/utils--tensorflow/sagemakercv/utils 994 pytorch/sagemakercv/data pytorch/sagemakercv/data pytorch/sagemakercv/data--pytorch/sagemakercv/utils 128

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 220 duplicates...
Size#FoldersFilesLinesCode
62 x 2 pytorch/sagemakercv/utils/fileio
tensorflow/sagemakercv/utils/fileio
io.py
io.py
5:117 (100%)
5:117 (100%)
view
57 x 2 pytorch/cuda_utils/smcv_utils/cuda
pytorch/cuda_utils/smcv_utils/cuda
rpn_generate_proposals.cu
rpn_generate_proposals_batched.cu
112:178 (27%)
134:200 (24%)
view
48 x 2 tensorflow/sagemakercv/data/coco
tensorflow/sagemakercv/data/coco
coco_metric.py
evaluation.py
231:318 (19%)
45:128 (33%)
view
46 x 2 pytorch/sagemakercv/utils
tensorflow/sagemakercv/utils
dist_utils.py
dist_utils.py
10:93 (75%)
24:107 (85%)
view
42 x 2 pytorch/cuda_utils/smcv_utils/cuda
pytorch/cuda_utils/smcv_utils/cuda
rpn_generate_proposals.cu
rpn_generate_proposals_batched.cu
1:50 (20%)
1:50 (18%)
view
41 x 2 pytorch/cuda_utils/smcv_utils/cuda/nhwc
pytorch/cuda_utils/smcv_utils/cuda/nhwc
Descriptors.h
Descriptors.h
57:147 (30%)
208:289 (30%)
view
37 x 2 pytorch/sagemakercv/utils/runner/hooks
tensorflow/sagemakercv/utils/runner/hooks
hook.py
hook.py
2:56 (100%)
18:72 (100%)
view
35 x 2 pytorch/sagemakercv/utils/runner/hooks/logger
tensorflow/sagemakercv/utils/runner/hooks/logger
base.py
base.py
7:58 (100%)
23:74 (100%)
view
34 x 2 pytorch/sagemakercv/utils/runner/hooks/logger
tensorflow/sagemakercv/utils/runner/hooks/logger
text.py
text.py
9:47 (52%)
25:63 (53%)
view
33 x 2 pytorch/sagemakercv/utils/runner
tensorflow/sagemakercv/utils/runner
runner.py
runner.py
147:191 (22%)
210:254 (19%)
view
31 x 2 pytorch/sagemakercv/data/transforms
pytorch/sagemakercv/utils
transforms.py
visualize.py
18:55 (30%)
29:65 (20%)
view
29 x 2 pytorch/cuda_utils/smcv_utils/cuda
pytorch/cuda_utils/smcv_utils/cuda
ROIAlign_cuda.cu
ROIAlign_cuda.cu
18:52 (5%)
129:163 (5%)
view
27 x 2 tensorflow/sagemakercv/training/losses
tensorflow/sagemakercv/training/losses
losses.py
losses.py
50:79 (10%)
95:125 (10%)
view
26 x 2 tensorflow/sagemakercv/data/coco
tensorflow/sagemakercv/data/coco
coco_metric.py
coco_metric.py
96:125 (10%)
140:169 (10%)
view
24 x 2 pytorch/cuda_utils/smcv_utils/cuda/nhwc
pytorch/cuda_utils/smcv_utils/cuda/nhwc
Descriptors.cpp
Descriptors.cpp
32:70 (22%)
155:190 (22%)
view
24 x 2 tensorflow/sagemakercv/data/coco
tensorflow/sagemakercv/data/coco
coco_metric.py
coco_metric.py
372:401 (9%)
413:442 (9%)
view
24 x 2 tensorflow/sagemakercv/training/losses
tensorflow/sagemakercv/training/losses
frcnn_losses.py
losses.py
134:166 (12%)
361:393 (8%)
view
23 x 2 tensorflow/sagemakercv/training/optimizers
tensorflow/sagemakercv/training/optimizers
novograd.py
novograd.py
157:182 (13%)
205:232 (13%)
view
23 x 2 pytorch/cuda_utils/smcv_utils/cuda
pytorch/cuda_utils/smcv_utils/cuda
ROIAlign_cuda.cu
ROIAlign_cuda.cu
329:357 (4%)
408:436 (4%)
view
22 x 2 pytorch/cuda_utils/smcv_utils/cuda
pytorch/cuda_utils/smcv_utils/cuda
box_encode.cu
match_proposals.cu
1:23 (25%)
1:24 (13%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 35 unit duplicates...
Size#FoldersFilesLinesCode
73 x 2 tensorflow/sagemakercv/data/coco
tensorflow/sagemakercv/data/coco
coco_metric.py
evaluation.py
0:0 
0:0 
view
31 x 2 pytorch/sagemakercv/utils/fileio
tensorflow/sagemakercv/utils/fileio
io.py
io.py
0:0 
0:0 
view
19 x 2 pytorch/cuda_utils/smcv_utils/cuda/nhwc
pytorch/cuda_utils/smcv_utils/cuda/nhwc
Descriptors.cpp
Descriptors.cpp
52:71 
172:191 
view
17 x 2 pytorch/sagemakercv/utils
pytorch/sagemakercv/data/transforms
visualize.py
transforms.py
0:0 
0:0 
view
19 x 2 pytorch/sagemakercv/data/datasets
pytorch/sagemakercv/data/datasets
coco.py
coco.py
0:0 
0:0 
view
18 x 2 pytorch/sagemakercv/inference
pytorch/sagemakercv/data/datasets/evaluation/coco
inference.py
coco_eval.py
0:0 
0:0 
view
26 x 2 pytorch/sagemakercv/utils/fileio
tensorflow/sagemakercv/utils/fileio
io.py
io.py
0:0 
0:0 
view
21 x 2 pytorch/sagemakercv/utils/runner
tensorflow/sagemakercv/utils/runner
runner.py
runner.py
0:0 
0:0 
view
18 x 2 pytorch/sagemakercv/utils/fileio
tensorflow/sagemakercv/utils/fileio
io.py
io.py
0:0 
0:0 
view
12 x 2 pytorch/cuda_utils/smcv_utils/cuda/nhwc
pytorch/cuda_utils/smcv_utils/cuda/nhwc
conv.cpp
conv.cpp
194:213 
216:235 
view
21 x 2 pytorch/sagemakercv/utils/fileio
tensorflow/sagemakercv/utils/fileio
parse.py
parse.py
0:0 
0:0 
view
16 x 2 pytorch/sagemakercv/utils/runner
tensorflow/sagemakercv/utils/runner
priority.py
priority.py
0:0 
0:0 
view
11 x 2 pytorch/sagemakercv/utils/runner
tensorflow/sagemakercv/utils/runner
log_buffer.py
log_buffer.py
0:0 
0:0 
view
10 x 2 pytorch/cuda_utils/smcv_utils/cuda/nhwc
pytorch/cuda_utils/smcv_utils/cuda/nhwc
Descriptors.cpp
Descriptors.cpp
32:42 
155:165 
view
10 x 2 pytorch/cuda_utils/smcv_utils/cuda/nhwc
pytorch/cuda_utils/smcv_utils/cuda/nhwc
Descriptors.h
Descriptors.h
57:67 
208:218 
view
9 x 2 pytorch/sagemakercv/detection/backbone
pytorch/sagemakercv/detection/backbone
resnet.py
resnet.py
0:0 
0:0 
view
20 x 2 pytorch/sagemakercv/utils/fileio
tensorflow/sagemakercv/utils/fileio
parse.py
parse.py
0:0 
0:0 
view
9 x 2 pytorch/cuda_utils/smcv_utils/cuda/nhwc
pytorch/cuda_utils/smcv_utils/cuda/nhwc
Exceptions.h
Exceptions.h
42:51 
77:86 
view
8 x 2 pytorch/sagemakercv/utils/fileio/handlers
tensorflow/sagemakercv/utils/fileio/handlers
json_handler.py
json_handler.py
0:0 
0:0 
view
28 x 2 pytorch/sagemakercv/utils
tensorflow/sagemakercv/utils
dist_utils.py
dist_utils.py
0:0 
0:0 
view