dataclasses.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # -*- coding: utf-8 -*-
  2. """
  3. Datenklassen fuer das Trainer-Framework.
  4. """
  5. from dataclasses import dataclass, field
  6. from trixy_core.trainer.enums import TrainingState, TrainerType
  7. @dataclass
  8. class TrainerInfo:
  9. """Metadaten eines registrierten Trainers."""
  10. trainer_id: str = ""
  11. name: str = ""
  12. description: str = ""
  13. version: str = ""
  14. author: str = ""
  15. model_type: str = ""
  16. trainer_type: TrainerType = TrainerType.CORE
  17. @dataclass
  18. class TrainingProgress:
  19. """Fortschrittsdaten waehrend eines Trainings."""
  20. state: TrainingState = TrainingState.IDLE
  21. epoch: int = 0
  22. total_epochs: int = 0
  23. loss: float = 0.0
  24. val_loss: float = 0.0
  25. accuracy: float = 0.0
  26. learning_rate: float = 0.0
  27. eta_seconds: float = 0.0
  28. vram_used_mb: float = 0.0
  29. loss_history: list[float] = field(default_factory=list)
  30. val_loss_history: list[float] = field(default_factory=list)
  31. message: str = ""
  32. error: str = ""
  33. @dataclass
  34. class ValidationResult:
  35. """Ergebnis einer Trainings-Validierung."""
  36. valid: bool = False
  37. errors: list[str] = field(default_factory=list)
  38. warnings: list[str] = field(default_factory=list)
  39. gpu_available: bool = False
  40. gpu_name: str = ""
  41. gpu_memory_mb: float = 0.0
  42. @dataclass
  43. class FormSchema:
  44. """Schema fuer dynamische Formulare in der TUI."""
  45. fields: list[dict] = field(default_factory=list)