ojoel98 commited on
Commit
16036bc
verified
1 Parent(s): 758f154

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -12
app.py CHANGED
@@ -554,32 +554,37 @@ caption_model.fit(
554
  """### **Opci贸n para guardar el modelo entrenado**"""
555
 
556
  #con est谩 opci贸n vemos los pesos del modelo en una lista
557
- pesos = caption_model.get_weights()
558
 
559
  #guardamos esos pesos en formato npy - en este caso lo guardamos entrenado con una 茅poca, ya que si quitamos el fit o el entrenamiento nos da error, por lo que siempre tenemos que
560
  #entrenarle al modelo con una 茅poca para despu茅s configurarle con otro con 10 茅pocas
561
- np.save('pesos1.npy', np.array(pesos, dtype=object), allow_pickle=True)
562
 
563
  #aqu铆 configuramos los pesos que estaban entrenados con una 茅poca con diez - nosotros corrimos anteriormente con 10 y nos descargamos
564
  import os
565
  import numpy as np
566
 
567
  #Carga del modelo
568
- archivo_pesos = os.path.join("pesos1.npy")
569
  caption_model = np.load(archivo_pesos, allow_pickle=True)
570
 
571
  #Interfaz para gradio
572
  def generate_caption(sample_img):
573
- print(sample_img.shape)
574
- sample_img = np.random.choice(valid_images)
575
  sample_img = decode_and_resize(sample_img)
576
  img = sample_img.numpy().clip(0, 255).astype(np.uint8)
577
  plt.imshow(img)
578
  plt.show()
 
 
579
  img = tf.expand_dims(sample_img, 0)
580
- img = caption_model.cnn_model(img)
581
- encoded_img = caption_model.encoder(img, training=False)
582
- decoded_caption = "<start> "
 
 
 
 
583
  for i in range(max_decoded_sentence_length):
584
  tokenized_caption = vectorization([decoded_caption])[:, :-1]
585
  mask = tf.math.not_equal(tokenized_caption, 0)
@@ -591,16 +596,18 @@ def generate_caption(sample_img):
591
  if sampled_token == "<end>":
592
  break
593
  decoded_caption += " " + sampled_token
 
 
594
  decoded_caption = decoded_caption.replace("<start> ", "")
595
  decoded_caption = decoded_caption.replace(" <end>", "").strip()
 
 
596
  text_to_say = decoded_caption
597
  lenguage = "es-es"
598
- gtts_object = gTTS(text = text_to_say,
599
- lang = lenguage,
600
- slow = False )
601
  gtts_object.save("gtts.mp3")
602
  audio = "gtts.mp3"
603
-
604
  return decoded_caption, audio
605
 
606
  demo = gr.Interface(fn = generate_caption,inputs = gr.Image(label="Imagen"), outputs = [gr.Text(label="Descripci贸n textual"), gr.Audio(label="Audio")], theme ='darkhuggingface', title = 'DESCRIPCI脫N DE IM脕GENES DE RIPIOS DE PERFORACI脫N',
 
554
  """### **Opci贸n para guardar el modelo entrenado**"""
555
 
556
  #con est谩 opci贸n vemos los pesos del modelo en una lista
557
+ #pesos = caption_model.get_weights()
558
 
559
  #guardamos esos pesos en formato npy - en este caso lo guardamos entrenado con una 茅poca, ya que si quitamos el fit o el entrenamiento nos da error, por lo que siempre tenemos que
560
  #entrenarle al modelo con una 茅poca para despu茅s configurarle con otro con 10 茅pocas
561
+ #np.save('pesos1.npy', np.array(pesos, dtype=object), allow_pickle=True)
562
 
563
  #aqu铆 configuramos los pesos que estaban entrenados con una 茅poca con diez - nosotros corrimos anteriormente con 10 y nos descargamos
564
  import os
565
  import numpy as np
566
 
567
  #Carga del modelo
568
+ archivo_pesos = os.path.join("pesos10.npy")
569
  caption_model = np.load(archivo_pesos, allow_pickle=True)
570
 
571
  #Interfaz para gradio
572
  def generate_caption(sample_img):
573
+ # Decodifica y redimensiona la imagen de entrada
 
574
  sample_img = decode_and_resize(sample_img)
575
  img = sample_img.numpy().clip(0, 255).astype(np.uint8)
576
  plt.imshow(img)
577
  plt.show()
578
+
579
+ # Prepara la imagen para el modelo
580
  img = tf.expand_dims(sample_img, 0)
581
+ img_embed = caption_model.cnn_model(img)
582
+ encoded_img = caption_model.encoder(img_embed, training=False)
583
+
584
+ # Inicializa la descripci贸n con el token de inicio
585
+ decoded_caption = "<start>"
586
+
587
+ # Itera para generar la descripci贸n
588
  for i in range(max_decoded_sentence_length):
589
  tokenized_caption = vectorization([decoded_caption])[:, :-1]
590
  mask = tf.math.not_equal(tokenized_caption, 0)
 
596
  if sampled_token == "<end>":
597
  break
598
  decoded_caption += " " + sampled_token
599
+
600
+ # Elimina los tokens de inicio y fin de la descripci贸n
601
  decoded_caption = decoded_caption.replace("<start> ", "")
602
  decoded_caption = decoded_caption.replace(" <end>", "").strip()
603
+
604
+ # Convierte la descripci贸n a audio
605
  text_to_say = decoded_caption
606
  lenguage = "es-es"
607
+ gtts_object = gTTS(text=text_to_say, lang=lenguage, slow=False)
 
 
608
  gtts_object.save("gtts.mp3")
609
  audio = "gtts.mp3"
610
+
611
  return decoded_caption, audio
612
 
613
  demo = gr.Interface(fn = generate_caption,inputs = gr.Image(label="Imagen"), outputs = [gr.Text(label="Descripci贸n textual"), gr.Audio(label="Audio")], theme ='darkhuggingface', title = 'DESCRIPCI脫N DE IM脕GENES DE RIPIOS DE PERFORACI脫N',