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()