Spaces:
Running
on
T4
Running
on
T4
artificialguybr
commited on
Update app.py
Browse files
app.py
CHANGED
@@ -15,7 +15,67 @@ from surya.settings import settings
|
|
15 |
from surya.model.ordering.processor import load_processor as load_order_processor
|
16 |
from surya.model.ordering.model import load_model as load_order_model
|
17 |
|
18 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
class CustomJSONEncoder(json.JSONEncoder):
|
21 |
def default(self, obj):
|
|
|
15 |
from surya.model.ordering.processor import load_processor as load_order_processor
|
16 |
from surya.model.ordering.model import load_model as load_order_model
|
17 |
|
18 |
+
# Configuração do TorchDynamo
|
19 |
+
torch._dynamo.config.capture_scalar_outputs = True
|
20 |
+
|
21 |
+
# Configuração de logging
|
22 |
+
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
|
23 |
+
logger = logging.getLogger(__name__)
|
24 |
+
|
25 |
+
# Configuração de variáveis de ambiente
|
26 |
+
logger.info("Configurando variáveis de ambiente para otimização de performance")
|
27 |
+
os.environ["RECOGNITION_BATCH_SIZE"] = "512"
|
28 |
+
os.environ["DETECTOR_BATCH_SIZE"] = "36"
|
29 |
+
os.environ["ORDER_BATCH_SIZE"] = "32"
|
30 |
+
os.environ["RECOGNITION_STATIC_CACHE"] = "true"
|
31 |
+
|
32 |
+
# Carregamento de modelos
|
33 |
+
logger.info("Iniciando carregamento dos modelos...")
|
34 |
+
|
35 |
+
try:
|
36 |
+
logger.debug("Carregando modelo e processador de detecção...")
|
37 |
+
det_processor, det_model = load_det_processor(), load_det_model()
|
38 |
+
logger.debug("Modelo e processador de detecção carregados com sucesso")
|
39 |
+
except Exception as e:
|
40 |
+
logger.error(f"Erro ao carregar modelo de detecção: {e}")
|
41 |
+
raise
|
42 |
+
|
43 |
+
try:
|
44 |
+
logger.debug("Carregando modelo e processador de reconhecimento...")
|
45 |
+
rec_model, rec_processor = load_rec_model(), load_rec_processor()
|
46 |
+
logger.debug("Modelo e processador de reconhecimento carregados com sucesso")
|
47 |
+
except Exception as e:
|
48 |
+
logger.error(f"Erro ao carregar modelo de reconhecimento: {e}")
|
49 |
+
raise
|
50 |
+
|
51 |
+
try:
|
52 |
+
logger.debug("Carregando modelo e processador de layout...")
|
53 |
+
layout_model = load_det_model(checkpoint=settings.LAYOUT_MODEL_CHECKPOINT)
|
54 |
+
layout_processor = load_det_processor(checkpoint=settings.LAYOUT_MODEL_CHECKPOINT)
|
55 |
+
logger.debug("Modelo e processador de layout carregados com sucesso")
|
56 |
+
except Exception as e:
|
57 |
+
logger.error(f"Erro ao carregar modelo de layout: {e}")
|
58 |
+
raise
|
59 |
+
|
60 |
+
try:
|
61 |
+
logger.debug("Carregando modelo e processador de ordenação...")
|
62 |
+
order_model = load_order_model()
|
63 |
+
order_processor = load_order_processor()
|
64 |
+
logger.debug("Modelo e processador de ordenação carregados com sucesso")
|
65 |
+
except Exception as e:
|
66 |
+
logger.error(f"Erro ao carregar modelo de ordenação: {e}")
|
67 |
+
raise
|
68 |
+
|
69 |
+
logger.info("Todos os modelos foram carregados com sucesso")
|
70 |
+
|
71 |
+
# Compilação do modelo de reconhecimento
|
72 |
+
logger.info("Iniciando compilação do modelo de reconhecimento...")
|
73 |
+
try:
|
74 |
+
rec_model.decoder.model = torch.compile(rec_model.decoder.model)
|
75 |
+
logger.info("Compilação do modelo de reconhecimento concluída com sucesso")
|
76 |
+
except Exception as e:
|
77 |
+
logger.error(f"Erro durante a compilação do modelo de reconhecimento: {e}")
|
78 |
+
logger.warning("Continuando sem compilação do modelo")
|
79 |
|
80 |
class CustomJSONEncoder(json.JSONEncoder):
|
81 |
def default(self, obj):
|