Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import sys | |
| from toy_problem_pgt import toy_problem | |
| help_guide = """ | |
| ## Help Guide | |
| This demo allows you to experiment with the toy problem from the Plausibility Guided Training (PGT) paper. | |
| ### Input Parameters: | |
| - **PGT Coefficient**: Choose a number between 0.1 and 10. This determines the emphasis given to the PGT loss function in the training process. | |
| - **Focus Coefficient**: Choose a number between 0.01 and 1. This determines the concentration of pixels around the object that will be rewarded. Higher coefficient results in a more focused reward. | |
| - **X Coord**: Choose a number between 0 and 1. This sets the X coordinate of the target. | |
| - **Y Coord**: Choose a number between 0 and 1. This sets the Y coordinate of the target. | |
| ### Outputs: | |
| 1. **First 2 images**: Displays the distance regulaization map and the first atrribution map step. | |
| 2. **Second 8 images**: Displays each other attribution map steps. | |
| 3. **PGT Losses**: Visualizes the plausibility losses over each step. | |
| 4. **PGT Scores**: Displays the plausibility scores over each step. | |
| """ | |
| if __name__ == "__main__": | |
| with gr.Blocks(title="toy problem demo", theme=gr.themes.Base()) as demo: | |
| gr.Markdown( | |
| """ | |
| # Toy Problem Demo | |
| This is a demo of the toy problem implementation. | |
| """ | |
| ) | |
| with gr.Accordion("Help", open=False): | |
| gr.Markdown(help_guide) | |
| with gr.Row() as file_settings: | |
| pgt_coeff = gr.Number(label="PGT Coefficent",info="choose a number between 0.1 and 10", | |
| minimum=0.1,maximum=10,value=1,interactive=True,step=1,show_label=True) | |
| focus_coeff = gr.Number(label="Focus Coefficent",info="Choose a number between 0.1 and 1", | |
| minimum=0.01,maximum=1,value=0.2,interactive=True,step=1,show_label=True) | |
| #TODO - Target info (this is where we can adjust) | |
| #We are just going to give the user access to the number of bounding boxes, and the xy coords | |
| # num_bb = gr.Number(label="Number of Bounding Boxes",info="Choose a number", | |
| # minimum=0,maximum=0,value=0,interactive=True,step=1,show_label=True) | |
| x_coord = gr.Number(label="X Coord",info="Choose a number between 0 and 1", | |
| minimum=0,maximum=1,value=0.8,interactive=True,step=1,show_label=True) | |
| y_coord = gr.Number(label="Y Coord",info="Choose a number between 0 and 1", | |
| minimum=0,maximum=1,value=0.76,interactive=True,step=1,show_label=True) | |
| with gr.Row() as outputs: | |
| output_img1 = gr.Image(type='filepath',label="First 2 images", | |
| show_download_button=True,show_share_button=True,interactive=False,visible=True) | |
| output_img2 = gr.Image(type='filepath',label="9 images", | |
| show_download_button=True,show_share_button=True,interactive=False,visible=True, scale=4) | |
| with gr.Row() as outputs_2: | |
| output_img3 = gr.Image(type='filepath',label="PGT Losses", | |
| show_download_button=True,show_share_button=True,interactive=False,visible=True) | |
| output_img4 = gr.Image(type='filepath',label="PGT Scores", | |
| show_download_button=True,show_share_button=True,interactive=False,visible=True) | |
| # List of components for clearing | |
| clear_comp_list = [output_img1, output_img2, output_img3, output_img4] | |
| # Row for start, clear and demo buttons | |
| with gr.Row() as buttons: | |
| start = gr.Button(value="Start") | |
| clear = gr.ClearButton(value='Clear All',components=clear_comp_list, | |
| interactive=True,visible=True) | |
| # List of gradio components that are input into the run_all method (when start button is clicked) | |
| run_inputs = [pgt_coeff, focus_coeff, x_coord, y_coord] | |
| # List of gradio components that are output from the run_all method (when start button is clicked) | |
| run_outputs = [output_img1, output_img2, output_img3, output_img4] | |
| start.click(toy_problem, inputs=run_inputs, outputs=run_outputs) | |
| demo.queue().launch() |