|
|
|
""" |
|
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.") |
|
|