|
|
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() |
|
|
|