Spaces:
Runtime error
Runtime error
import gradio as gr | |
import random | |
class_names = ['cat', 'dog'] | |
def UpdateDropdown(className): | |
class_names.append(className) | |
return gr.Dropdown.update(choices=class_names) | |
def showPickedClass(className): | |
return className | |
def image_classifier(inp): | |
if inp is None: | |
return {'cat': 0.3, 'dog': 0.7} | |
num_class = len(class_names) | |
# Generate random percentages between 0 and 1 | |
percentages = [random.random() for _ in range(num_class)] | |
total = sum(percentages) | |
# Normalize the percentages to ensure they sum up to 1 | |
normalized_percentages = [p / total for p in percentages] | |
labeled_result = {name:score for name, score in zip(class_names, normalized_percentages)} | |
return labeled_result, gr.Dropdown.update(choices=class_names) | |
demo = gr.Blocks() | |
with demo as app: | |
with gr.Row(): | |
with gr.Column(): | |
inp_img = gr.Image() | |
with gr.Row(): | |
clear_btn = gr.Button(value="Clear") | |
process_btn = gr.Button(value="Process", variant="primary") | |
with gr.Column(): | |
out_txt = gr.Label(label="Probabilities", num_top_classes=3) | |
text_input = gr.Textbox(label="Input the new class here") | |
b1 = gr.Button("Add new class") | |
text_options = gr.Dropdown(class_names, label="Class Label", multiselect=False) | |
b2 = gr.Button("Show me the picked class") | |
picked_class = gr.Textbox() | |
b1.click(UpdateDropdown, inputs=text_input, outputs=text_options) | |
b2.click(showPickedClass, inputs=text_options, outputs=picked_class) | |
process_btn.click(image_classifier, inputs=inp_img, outputs=[out_txt, text_options]) | |
clear_btn.click(lambda:( | |
gr.update(value=None), | |
gr.update(value=None) | |
), | |
inputs=None, | |
outputs=[inp_img, out_txt]) | |
demo.launch(debug=True) |