| import os |
| import random |
| from src.config import Config |
| from src.dataset import DeepfakeDataset |
|
|
| def test_dataloading(): |
| print("Testing Data Loading & Splitting Logic...") |
| Config.setup() |
| |
| print(f"Data Path: {Config.TRAIN_DATA_PATH}") |
| |
| |
| paths, labels = DeepfakeDataset.scan_directory(Config.TRAIN_DATA_PATH) |
| total_files = len(paths) |
| print(f"Total images found: {total_files}") |
| |
| if total_files == 0: |
| print("[FAIL] No images found! Check path.") |
| return |
|
|
| |
| combined = list(zip(paths, labels)) |
| random.shuffle(combined) |
| split_idx = int(len(combined) * 0.8) |
| train_data = combined[:split_idx] |
| val_data = combined[split_idx:] |
| |
| print(f"Train Split: {len(train_data)} images") |
| print(f"Val Split: {len(val_data)} images") |
| |
| |
| try: |
| train_paths, train_labels = zip(*train_data) |
| ds = DeepfakeDataset(file_paths=list(train_paths), labels=list(train_labels), phase='train') |
| print(f"[Pass] Dataset initialized with {len(ds)} samples.") |
| |
| |
| img, lbl = ds[0] |
| print(f"[Pass] Loaded sample image. Shape: {img.shape}, Label: {lbl}") |
| except Exception as e: |
| print(f"[FAIL] Dataset initialization or loading error: {e}") |
| return |
|
|
| print("\nSUCCESS: Data loading verification passed!") |
|
|
| if __name__ == "__main__": |
| test_dataloading() |
|
|