Spaces:
Runtime error
Runtime error
| import os | |
| import sys | |
| import pandas as pd | |
| import numpy as np | |
| from tqdm import tqdm | |
| import matplotlib.pyplot as plt | |
| import tensorflow as tf | |
| from tensorflow import keras | |
| from tensorflow.keras.preprocessing.image import ImageDataGenerator | |
| from models import * | |
| import warnings | |
| warnings.filterwarnings("ignore") | |
| # preparing paths for functions | |
| current_directory = os.getcwd() | |
| all_images_path = '.' | |
| # get model directory | |
| model_name = '0508_saved_model_small_sample_vgg16_base.h5' | |
| model_folder = 'models' | |
| model_path = os.path.join(current_directory, model_folder, model_name) | |
| def model_init(): | |
| # set model | |
| mode = 'predict' #'train' or 'predict' | |
| model_type = 'vgg16' | |
| model_tag = 'base' | |
| model_id = '{:s}_{:s}'.format(model_type, model_tag) | |
| # set params | |
| bs = 8 | |
| epochs = 20 | |
| freeze_backbone = True | |
| # init model | |
| model = FacePrediction(img_dir=all_images_path, model_type=model_type) | |
| model.define_model(freeze_backbone=freeze_backbone) | |
| # model.model.summary() | |
| # use our own load model function to load | |
| model.load_weights(model_path) | |
| return model | |
| def model_predict_bmi(image): | |
| # Save the uploaded image to a temporary file | |
| with tempfile.NamedTemporaryFile(delete=False, suffix=".jpg") as tmp: | |
| tmp.write(image.read()) | |
| tmp_path = tmp.name | |
| model = model_init() | |
| bmi = model.predict_external(tmp_path, show_img=False) | |
| output_bmi = float(bmi[0][0]) | |
| output_bmi = np.round(output_bmi, 3) | |
| # Remove the temporary file | |
| os.remove(tmp_path) | |
| return output_bmi | |
| # Create the Gradio interface | |
| iface = gr.Interface( | |
| fn=model_predict_bmi, | |
| inputs="upload", | |
| outputs="text", | |
| title="BMI Prediction", | |
| description="Upload an image and get the predicted BMI.", | |
| examples=["lion.jpg", "cheetah.jpg"]) | |
| # Run the interface | |
| iface.launch() |