File size: 1,353 Bytes
d4a00b2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #!/usr/bin/env python3
"""
App principal para execução no HuggingFace Space.
Este arquivo executa o treinamento do modelo EDA.
"""
import os
import subprocess
import sys
from space_lock import exclusive_training_lock
def main():
"""
Executa o script de treinamento.
"""
print("=" * 60)
print("Iniciando treinamento do modelo EDA")
print("=" * 60)
script_path = os.path.join(os.path.dirname(__file__), "train.py")
if not os.path.exists(script_path):
print(f"❌ Erro: Arquivo {script_path} não encontrado!")
sys.exit(1)
print(
"A aguardar lock exclusivo (um treino de cada vez na GPU). "
"Se o Space reiniciar em paralelo, os outros processos ficam em fila aqui."
)
try:
with exclusive_training_lock():
result = subprocess.run(
[sys.executable, script_path],
check=True,
capture_output=False,
)
print("\n✅ Treinamento concluído com sucesso!")
return result.returncode
except subprocess.CalledProcessError as e:
print(f"\n❌ Erro durante o treinamento: {e}")
sys.exit(e.returncode)
except KeyboardInterrupt:
print("\n⚠️ Treinamento interrompido pelo usuário")
sys.exit(130)
if __name__ == "__main__":
sys.exit(main())
|