LoloSemper commited on
Commit
3f8fe80
·
verified ·
1 Parent(s): 9a1dfc0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -5
app.py CHANGED
@@ -9,6 +9,7 @@ import gradio as gr
9
  import io
10
  import base64
11
  import tensorflow as tf
 
12
  import zipfile
13
  import os
14
 
@@ -28,7 +29,9 @@ extract_dir = "saved_model"
28
  if not os.path.exists(extract_dir):
29
  with zipfile.ZipFile(zip_path, 'r') as zip_ref:
30
  zip_ref.extractall(extract_dir)
31
- model_isic = tf.keras.models.load_model(extract_dir)
 
 
32
 
33
  # 🔹 Clases y niveles de riesgo
34
  CLASSES = [
@@ -53,7 +56,7 @@ def preprocess_image_isic(image: Image.Image):
53
  if img_array.shape[-1] == 4: # eliminar canal alpha si existe
54
  img_array = img_array[..., :3]
55
  img_array = np.expand_dims(img_array, axis=0) # batch dimension
56
- return img_array
57
 
58
  def analizar_lesion_combined(img):
59
  # Convertir imagen para Fastai
@@ -73,9 +76,10 @@ def analizar_lesion_combined(img):
73
  prob_malignant = float(probs_fast_mal[1]) # índice 1 = maligno
74
  pred_fast_type, _, probs_fast_type = model_norm2000.predict(img_fastai)
75
 
76
- # Modelo TensorFlow ISIC
77
  x_isic = preprocess_image_isic(img)
78
- preds_isic = model_isic.predict(x_isic)[0] # vector probabilidades
 
79
  pred_idx_isic = int(np.argmax(preds_isic))
80
  pred_class_isic = CLASSES[pred_idx_isic]
81
  confidence_isic = preds_isic[pred_idx_isic]
@@ -139,4 +143,3 @@ demo = gr.Interface(
139
 
140
  if __name__ == "__main__":
141
  demo.launch()
142
-
 
9
  import io
10
  import base64
11
  import tensorflow as tf
12
+ import keras # <--- nuevo import para TFSMLayer
13
  import zipfile
14
  import os
15
 
 
29
  if not os.path.exists(extract_dir):
30
  with zipfile.ZipFile(zip_path, 'r') as zip_ref:
31
  zip_ref.extractall(extract_dir)
32
+
33
+ # Cargar modelo con TFSMLayer (solo para inferencia)
34
+ model_isic = keras.layers.TFSMLayer(extract_dir, call_endpoint='serving_default')
35
 
36
  # 🔹 Clases y niveles de riesgo
37
  CLASSES = [
 
56
  if img_array.shape[-1] == 4: # eliminar canal alpha si existe
57
  img_array = img_array[..., :3]
58
  img_array = np.expand_dims(img_array, axis=0) # batch dimension
59
+ return img_array.astype(np.float32)
60
 
61
  def analizar_lesion_combined(img):
62
  # Convertir imagen para Fastai
 
76
  prob_malignant = float(probs_fast_mal[1]) # índice 1 = maligno
77
  pred_fast_type, _, probs_fast_type = model_norm2000.predict(img_fastai)
78
 
79
+ # Modelo TensorFlow ISIC (usando TFSMLayer)
80
  x_isic = preprocess_image_isic(img)
81
+ preds_isic_tensor = model_isic(x_isic) # devuelve tensor
82
+ preds_isic = preds_isic_tensor.numpy()[0] # convertir a numpy y quitar batch dim
83
  pred_idx_isic = int(np.argmax(preds_isic))
84
  pred_class_isic = CLASSES[pred_idx_isic]
85
  confidence_isic = preds_isic[pred_idx_isic]
 
143
 
144
  if __name__ == "__main__":
145
  demo.launch()