| import gradio as gr |
| from PIL import Image |
| import requests |
| import hopsworks |
| import joblib |
| import pandas as pd |
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
| def iris(sepal_length, sepal_width, petal_length, petal_width): |
| print("Calling iris() function") |
| |
| df = pd.DataFrame([[sepal_length, sepal_width, petal_length, petal_width]], |
| columns=['sepal_length', 'sepal_width', 'petal_length', 'petal_width']) |
| print("Predicting...") |
| print(df) |
| |
| res = model.predict(df) |
| |
| |
| |
| print(res) |
| flower_url = "https://raw.githubusercontent.com/featurestoreorg/serverless-ml-course/main/src/01-module/assets/" + \ |
| res[0] + ".png" |
| img = Image.open(requests.get(flower_url, stream=True).raw) |
| return img |
|
|
|
|
| print("Logging in to Hopsworks...") |
| project = hopsworks.login() |
|
|
| print("Getting feature store...") |
| fs = project.get_feature_store() |
|
|
| print("Getting model registry...") |
| mr = project.get_model_registry() |
|
|
| print("Getting model: ...") |
| model = mr.get_model("iris_model", version=1) |
|
|
| print("Downloading model...") |
| model_dir = model.download() |
|
|
| print("Initializing model locally...") |
| model = joblib.load(model_dir + "/iris_model.pkl") |
|
|
| print("Gradio version:", gr.__version__) |
|
|
| print("Configuring gradio interface...") |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| demo = gr.Interface( |
| fn=iris, |
| title="Iris Flower Predictive Analytics", |
| description="Experiment with sepal/petal lengths/widths to predict which flower it is.", |
| inputs=[ |
| gr.Number(label="sepal length (cm)", value=2.0), |
| gr.Number(label="sepal width (cm)", value=1.0), |
| gr.Number(label="petal length (cm)", value=2.0), |
| gr.Number(label="petal width (cm)", value=1.0) |
| ], |
| outputs=gr.Image(type="pil"), |
| ) |
|
|
| print("Launching gradio...") |
| demo.launch(debug=True) |
|
|
| """ |
| Logging in to Hopsworks... |
| Connected. Call `.close()` to terminate connection gracefully. |
| |
| Logged in to project, explore it here https://c.app.hopsworks.ai:443/p/201877 |
| Getting feature store... |
| Connected. Call `.close()` to terminate connection gracefully. |
| Getting model registry... |
| Connected. Call `.close()` to terminate connection gracefully. |
| Getting model: ... |
| Downloading model... |
| Downloading file ... Initializing model locally... |
| Gradio version: 4.1.2 |
| Configuring gradio interface... |
| Traceback (most recent call last): |
| File "/home/user/app/app.py", line 62, in <module> |
| gr.inputs.Number(default=2.0, label="sepal length (cm)"), |
| AttributeError: module 'gradio' has no attribute 'inputs |
| """ |
|
|