Titanic / app.py
moahof's picture
Add application file
53977cf
raw history blame
No virus
1.79 kB
import gradio as gr
import numpy as np
from PIL import Image
import requests
import hopsworks
import joblib
project = hopsworks.login()
fs = project.get_feature_store()
mr = project.get_model_registry()
model = mr.get_model("titanic_modal", version=1)
model_dir = model.download()
model = joblib.load(model_dir + "/titanic_model.pkl")
def passenger(passengerid, survived, pclass,age, sex, sibsp,parch):
input_list = []
input_list.append(passengerid)
input_list.append(survived)
input_list.append(pclass)
input_list.append(age)
input_list.append(sex)
input_list.append(sibsp)
input_list.append(parch)
# 'res' is a list of predictions returned as the label.
res = model.predict(np.asarray(input_list).reshape(1, -1))
# We add '[0]' to the result of the transformed 'res', because 'res' is a list, and we only want
# the first element.
titanic_url = "https://raw.githubusercontent.com/AbyelT/ID2223-Scalable-ML-and-DL/main/Lab1/Titanic/assets/" + res[0] + ".png"
img = Image.open(requests.get(titanic_url, stream=True).raw)
return img
demo = gr.Interface(
fn=passenger,
title="Titanic Survival Predictive Analytics",
#description="Experiment with sepal/petal lengths/widths to predict which flower it is.",
allow_flagging="never",
inputs=[
gr.inputs.Number(default=1.0, label="passengerid"),
gr.inputs.Number(default=1.0, label="survived"),
gr.inputs.Number(default=1.0, label="pclass"),
gr.inputs.Number(default=1.0, label="age"),
gr.inputs.Number(default=1.0, label="sex"),
gr.inputs.Number(default=1.0, label="sibsp"),
gr.inputs.Number(default=1.0, label="parch"),
],
outputs=gr.Image(type="pil"))
demo.launch()