File size: 1,630 Bytes
8fa681c ddcde56 99638fe 59ea95e 8fa681c 99638fe 8fa681c 59ea95e 8fa681c 99638fe 8fa681c 99638fe 7967e3d 99638fe a590ce0 99638fe 8fa681c 99638fe | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | import pandas as pd
import numpy as np
import torch
import torch.nn as nn
import gradio as gr
model = nn.Sequential(
nn.Linear(11, 20),
nn.ReLU(),
nn.Linear(20, 5, bias=True))
PATH = "wine_model.pth"
model.load_state_dict(torch.load(PATH, weights_only=False))
def forward(model, input):
preds = model(input)
predicted_class = torch.argmax(preds, dim=-1) + 4
return predicted_class
def process_data(input_dataframe):
# Perform operations on the input_dataframe
if isinstance(input_dataframe, pd.DataFrame):
wineq_np = input_dataframe.to_numpy(dtype=np.float32)
wineq_t = torch.from_numpy(wineq_np)
return forward(model, wineq_t)
return "Invalid input type"
columns = ['fixed acidity',
'volatile acidity',
'citric acid',
'residual sugar',
'chlorides',
'free sulfur dioxide',
'total sulfur dioxide',
'density',
'pH',
'sulphates',
'alcohol']
with gr.Blocks() as demo:
gr.Markdown("Enter your wine data below:")
input_df = gr.Dataframe(
row_count=(1, "dynamic"), # Allows adding/removing rows
col_count=(11, "dynamic"), # Allows adding/removing columns
headers=columns,
label="Input Data",
interactive=True,
type="pandas" # Specify the desired input type for your function
)
submit_button = gr.Button("Process Data")
output_text = gr.Textbox(label="Processed Output")
submit_button.click(
fn=process_data,
inputs=input_df,
outputs=output_text
)
submit_button.click(fn=process_data, inputs=input_df, outputs=output_text)
demo.launch() |