rmayormartins's picture
Adicionando app.py2c
edc81ff
raw
history blame contribute delete
No virus
1.74 kB
import gradio as gr
from tensorflow.keras.models import load_model
from PIL import Image
import numpy as np
import zipfile
import tempfile
import os
#######
def classify_images(uploaded_file, images):
with tempfile.TemporaryDirectory() as temp_dir:
with zipfile.ZipFile(uploaded_file, 'r') as zip_ref:
zip_ref.extractall(temp_dir)
model_path = os.path.join(temp_dir, 'keras_model.h5')
labels_path = os.path.join(temp_dir, 'labels.txt')
loaded_model = load_model(model_path)
with open(labels_path, 'r') as file:
class_names = file.read().splitlines()
predictions = []
for img in images:
with Image.open(img) as pil_image:
image = pil_image.resize((224, 224))
image = np.array(image)
image = image / 255.0
image = np.expand_dims(image, axis=0)
prediction = loaded_model.predict(image)
predicted_class = class_names[np.argmax(prediction)]
predictions.append(predicted_class)
return predictions
#
# Gradio interface
iface = gr.Interface(
fn=classify_images,
inputs=[
gr.File(label="Upload do Modelo (.h5 or .zip (with .h5))"),
gr.Files(label="Upload of Images")
],
outputs="text",
title="GTM-Keras-h5-Predictor",
description="In Google Teachable Machine, after training, under 'Export Model', go to 'Tensorflow', click on 'Keras' and then 'Download my model' (wait a moment). The zip will contain the Keras .h5 model.",
examples=[["converted_keras.zip", ["example1.jpg", "example2.jpg"]]]
)
if __name__ == "__main__":
iface.launch(debug=True)