Spaces:
Runtime error
Runtime error
| import os | |
| import shutil | |
| import random | |
| from pathlib import Path | |
| # Config | |
| SOURCE_DIR = r"archive (1)\combined_images" | |
| DATA_DIR = "data" | |
| TRAIN_RATIO = 0.8 | |
| # Map source names to target names (if they differ slightly, or just lowercased) | |
| # Source: MildDemented, ModerateDemented, NonDemented, VeryMildDemented | |
| # Target: mild_demented, moderate_demented, nondemented, very_mild | |
| CLASS_MAPPING = { | |
| "MildDemented": "mild_demented", | |
| "ModerateDemented": "moderate_demented", | |
| "NonDemented": "nondemented", | |
| "VeryMildDemented": "very_mild" | |
| } | |
| def setup_data(): | |
| if os.path.exists(DATA_DIR): | |
| print(f"'{DATA_DIR}' already exists. Removing to ensure fresh setup...") | |
| shutil.rmtree(DATA_DIR) | |
| os.makedirs(os.path.join(DATA_DIR, "train")) | |
| os.makedirs(os.path.join(DATA_DIR, "test")) | |
| for source_name, target_name in CLASS_MAPPING.items(): | |
| src_class_path = os.path.join(SOURCE_DIR, source_name) | |
| if not os.path.exists(src_class_path): | |
| print(f"Warning: Source folder '{src_class_path}' not found.") | |
| continue | |
| # Create target class folders | |
| os.makedirs(os.path.join(DATA_DIR, "train", target_name), exist_ok=True) | |
| os.makedirs(os.path.join(DATA_DIR, "test", target_name), exist_ok=True) | |
| images = [f for f in os.listdir(src_class_path) if f.lower().endswith(('.jpg', '.jpeg', '.png'))] | |
| random.shuffle(images) | |
| split_idx = int(len(images) * TRAIN_RATIO) | |
| train_imgs = images[:split_idx] | |
| test_imgs = images[split_idx:] | |
| print(f"Processing {source_name}: {len(train_imgs)} train, {len(test_imgs)} test") | |
| for img in train_imgs: | |
| shutil.copy(os.path.join(src_class_path, img), os.path.join(DATA_DIR, "train", target_name, img)) | |
| for img in test_imgs: | |
| shutil.copy(os.path.join(src_class_path, img), os.path.join(DATA_DIR, "test", target_name, img)) | |
| print("Data setup complete.") | |
| if __name__ == "__main__": | |
| setup_data() | |