C2MV commited on
Commit
a2da660
1 Parent(s): 3a39920

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -27
app.py CHANGED
@@ -5,39 +5,22 @@ import time
5
  from functools import wraps
6
  import sys
7
  import multimolecule # Importar para registrar los modelos de multimolecule
 
8
 
9
- # Decorador mejorado para medir el tiempo de ejecución
10
  def medir_tiempo(func):
11
  @wraps(func)
12
  def wrapper(*args, **kwargs):
13
- try:
14
- inicio = time.time()
15
- resultado = func(*args, **kwargs)
16
- fin = time.time()
17
- tiempo_transcurrido = fin - inicio
18
- print(f"Tiempo de ejecución de '{func.__name__}': {tiempo_transcurrido:.2f} segundos")
19
- return resultado
20
- except RecursionError as re:
21
- print(f"RecursionError en '{func.__name__}': {re}")
22
- raise re
23
- except Exception as e:
24
- print(f"Error en '{func.__name__}': {e}")
25
- raise e
26
  return wrapper
27
 
28
- # Configurar el dispositivo
29
- device = 0 if torch.cuda.is_available() else -1
30
- if device == -1:
31
- print("Advertencia: CUDA no está disponible. Se usará la CPU, lo que puede ser lento.")
32
-
33
- # Cargar el pipeline de Fill-Mask
34
- try:
35
- print("Cargando el pipeline de Fill-Mask...")
36
- fill_mask = pipeline('fill-mask', model='multimolecule/mrnafm', device=device)
37
- except Exception as e:
38
- print(f"Error al cargar el pipeline de Fill-Mask: {e}")
39
- sys.exit(1)
40
-
41
  @medir_tiempo
42
  def predecir_fill_mask(secuencias):
43
  """
@@ -77,6 +60,19 @@ def predecir_fill_mask(secuencias):
77
  print(f"Error durante la predicción: {e}")
78
  return f"Error al realizar la predicción: {e}"
79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  # Definir la interfaz de Gradio
81
  titulo = "OmniGenome: Predicción de Fill-Mask para Secuencias de ARN"
82
  descripcion = (
 
5
  from functools import wraps
6
  import sys
7
  import multimolecule # Importar para registrar los modelos de multimolecule
8
+ import spaces # Importar el módulo spaces
9
 
10
+ # Decorador para medir el tiempo de ejecución
11
  def medir_tiempo(func):
12
  @wraps(func)
13
  def wrapper(*args, **kwargs):
14
+ inicio = time.time()
15
+ resultado = func(*args, **kwargs)
16
+ fin = time.time()
17
+ tiempo_transcurrido = fin - inicio
18
+ print(f"Tiempo de ejecución de '{func.__name__}': {tiempo_transcurrido:.2f} segundos")
19
+ return resultado
 
 
 
 
 
 
 
20
  return wrapper
21
 
22
+ # Decorador para asignar GPU (según la funcionalidad proporcionada por spaces)
23
+ @spaces.GPU
 
 
 
 
 
 
 
 
 
 
 
24
  @medir_tiempo
25
  def predecir_fill_mask(secuencias):
26
  """
 
60
  print(f"Error durante la predicción: {e}")
61
  return f"Error al realizar la predicción: {e}"
62
 
63
+ # Configurar el dispositivo (aunque el decorador @spaces.GPU debería manejar esto)
64
+ device = 0 if torch.cuda.is_available() else -1
65
+ if device == -1:
66
+ print("Advertencia: CUDA no está disponible. Se usará la CPU, lo que puede ser lento.")
67
+
68
+ # Cargar el pipeline de Fill-Mask
69
+ try:
70
+ print("Cargando el pipeline de Fill-Mask...")
71
+ fill_mask = pipeline('fill-mask', model='multimolecule/mrnafm', device=device)
72
+ except Exception as e:
73
+ print(f"Error al cargar el pipeline de Fill-Mask: {e}")
74
+ sys.exit(1)
75
+
76
  # Definir la interfaz de Gradio
77
  titulo = "OmniGenome: Predicción de Fill-Mask para Secuencias de ARN"
78
  descripcion = (