| |
| """ |
| Script para corregir la configuración YAML del dataset |
| """ |
|
|
| import yaml |
| import os |
| from pathlib import Path |
|
|
| def fix_dataset_config(): |
| """Corrige el archivo de configuración YAML""" |
| |
| config_path = "/home/leonel/sistema_polinizador/Dataset/Classification/dataset_config.yaml" |
| |
| print("🔧 CORRIGIENDO CONFIGURACIÓN YAML") |
| print("=" * 50) |
| |
| |
| if not os.path.exists(config_path): |
| print(f"❌ No se encontró el archivo: {config_path}") |
| return False |
| |
| |
| dataset_base_path = "/home/leonel/sistema_polinizador/Dataset/Classification" |
| train_path = os.path.join(dataset_base_path, "Train") |
| val_path = os.path.join(dataset_base_path, "Validation") |
| test_path = os.path.join(dataset_base_path, "Test") |
| |
| print(f"📁 Verificando estructura del dataset:") |
| print(f" Base: {dataset_base_path} - {'✅' if os.path.exists(dataset_base_path) else '❌'}") |
| print(f" Train: {train_path} - {'✅' if os.path.exists(train_path) else '❌'}") |
| print(f" Validation: {val_path} - {'✅' if os.path.exists(val_path) else '❌'}") |
| print(f" Test: {test_path} - {'✅' if os.path.exists(test_path) else '❌'}") |
| |
| if not all(os.path.exists(p) for p in [dataset_base_path, train_path, val_path, test_path]): |
| print("❌ Faltan carpetas del dataset") |
| return False |
| |
| |
| class_names = [] |
| if os.path.exists(train_path): |
| class_names = sorted([d for d in os.listdir(train_path) |
| if os.path.isdir(os.path.join(train_path, d))]) |
| |
| print(f"🏷️ Clases encontradas: {len(class_names)}") |
| for i, name in enumerate(class_names): |
| print(f" {i}: {name}") |
| |
| |
| corrected_config = { |
| 'path': dataset_base_path, |
| 'train': 'Train', |
| 'val': 'Validation', |
| 'test': 'Test', |
| 'nc': len(class_names), |
| 'names': {i: name for i, name in enumerate(class_names)} |
| } |
| |
| |
| with open(config_path, 'w') as f: |
| yaml.dump(corrected_config, f, default_flow_style=False, sort_keys=False) |
| |
| print(f"\n✅ Configuración corregida guardada en: {config_path}") |
| |
| |
| print(f"\n📄 Contenido del archivo YAML:") |
| with open(config_path, 'r') as f: |
| content = f.read() |
| print(content) |
| |
| return True |
|
|
| if __name__ == "__main__": |
| success = fix_dataset_config() |
| if success: |
| print("\n🎯 Configuración corregida. Ahora puedes ejecutar el entrenamiento.") |
| else: |
| print("\n❌ Error corrigiendo la configuración.") |
|
|