Download app.py from martenb/iris: direct link, hf CLI and curl.
- Browser
- Download file 3.42 kB
-
https://huggingface.co/spaces/martenb/iris/resolve/main/app.py
- Command line
-
hf download hf://spaces/martenb/iris/app.py
-
curl -L -o app.py https://huggingface.co/spaces/martenb/iris/resolve/main/app.py
3.42 kB
| import gradio as gr | |
| from PIL import Image | |
| import requests | |
| import hopsworks | |
| import joblib | |
| import pandas as pd | |
| # def greet(name): | |
| # return "Oj Hello " + name + "!!" | |
| # iface = gr.Interface(fn=greet, inputs="text", outputs="text") | |
| # iface.launch() | |
| 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]], | |
| 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' is a list of predictions returned as the label. | |
| res = model.predict(df) | |
| # We add '[0]' to the result of the transformed 'res', because 'res' is a list, and we only want | |
| # the first element. | |
| # print("Res: {0}").format(res) | |
| 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.", | |
| # allow_flagging="never", | |
| # inputs=[ | |
| # gr.inputs.Number(default=2.0, label="sepal length (cm)"), | |
| # gr.inputs.Number(default=1.0, label="sepal width (cm)"), | |
| # gr.inputs.Number(default=2.0, label="petal length (cm)"), | |
| # gr.inputs.Number(default=1.0, label="petal width (cm)"), | |
| # ], | |
| # outputs=gr.Image(type="pil")) | |
| 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 | |
| """ | |