File size: 903 Bytes
cb053fc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import os
import shutil
import random
from pathlib import Path

SOURCE = Path("artifacts/data_ingestion/CT-KIDNEY-DATASET-Normal-Cyst-Tumor-Stone")
DEST   = Path("artifacts/data_ingestion/CT-KIDNEY-DATASET-split")
SPLIT  = 0.80
SEED   = 42

random.seed(SEED)

for class_dir in SOURCE.iterdir():
    if not class_dir.is_dir():
        continue

    images = list(class_dir.glob("*.jpg")) + list(class_dir.glob("*.png"))
    random.shuffle(images)

    split_idx  = int(len(images) * SPLIT)
    train_imgs = images[:split_idx]
    val_imgs   = images[split_idx:]

    for subset, imgs in [("train", train_imgs), ("val", val_imgs)]:
        dest_dir = DEST / subset / class_dir.name
        dest_dir.mkdir(parents=True, exist_ok=True)
        for img in imgs:
            shutil.copy(img, dest_dir / img.name)

    print(f"{class_dir.name}: {len(train_imgs)} train | {len(val_imgs)} val")

print("\nDone.")