Eli181927 commited on
Commit
3f3af89
·
verified ·
1 Parent(s): 6d8cc91

Upload app.py

Browse files
Files changed (1) hide show
  1. 2.CNN/app.py +19 -24
2.CNN/app.py CHANGED
@@ -725,7 +725,7 @@ def enrich_diagnostics(stats, probs):
725
  return stats
726
 
727
 
728
- def predict_number(main_canvas, stroke_scale):
729
  ensure_model_loaded()
730
  composed, seg_diag = compose_from_single_canvas(main_canvas)
731
  if composed is None:
@@ -737,7 +737,6 @@ def predict_number(main_canvas, stroke_scale):
737
 
738
  result = preprocess_composed_28x56(
739
  composed,
740
- stroke_scale=stroke_scale,
741
  extra_diag=seg_diag,
742
  )
743
  if result is None:
@@ -775,15 +774,8 @@ with gr.Blocks() as demo:
775
  )
776
 
777
  with gr.Row():
778
- with gr.Column(scale=1):
779
  main_canvas = gr.Sketchpad(label="Draw Two Digits (00–99)")
780
- stroke_slider = gr.Slider(
781
- minimum=0.3,
782
- maximum=1.2,
783
- value=1.0,
784
- step=0.05,
785
- label="Stroke Intensity (scale)",
786
- )
787
 
788
  with gr.Column(scale=1):
789
  pred_box = gr.Number(label="Predicted Number", precision=0, value=None)
@@ -796,29 +788,32 @@ with gr.Blocks() as demo:
796
  preview = gr.Image(label="Model Input Preview (28x56)", image_mode="L")
797
  mean_diff_view = gr.Image(label="Difference vs Training Mean", image_mode="L")
798
  diagnostics_box = gr.Code(label="Diagnostics (JSON)", language="json")
799
- predict_btn = gr.Button("Predict", variant="primary")
800
- clear_btn = gr.ClearButton(
801
- [
802
- main_canvas,
803
- stroke_slider,
804
- pred_box,
805
- prob_table,
806
- preview,
807
- mean_diff_view,
808
- diagnostics_box,
809
- ]
810
- )
 
 
 
811
 
812
  predict_btn.click(
813
  fn=predict_number,
814
- inputs=[main_canvas, stroke_slider],
815
  outputs=[pred_box, prob_table, preview, mean_diff_view, diagnostics_box],
816
  )
817
  # On Spaces, avoid per-stroke inference to prevent event floods
818
  if not IS_SPACE:
819
  main_canvas.change(
820
  fn=predict_number,
821
- inputs=[main_canvas, stroke_slider],
822
  outputs=[pred_box, prob_table, preview, mean_diff_view, diagnostics_box],
823
  )
824
 
 
725
  return stats
726
 
727
 
728
+ def predict_number(main_canvas):
729
  ensure_model_loaded()
730
  composed, seg_diag = compose_from_single_canvas(main_canvas)
731
  if composed is None:
 
737
 
738
  result = preprocess_composed_28x56(
739
  composed,
 
740
  extra_diag=seg_diag,
741
  )
742
  if result is None:
 
774
  )
775
 
776
  with gr.Row():
777
+ with gr.Column(scale=1) as left_col:
778
  main_canvas = gr.Sketchpad(label="Draw Two Digits (00–99)")
 
 
 
 
 
 
 
779
 
780
  with gr.Column(scale=1):
781
  pred_box = gr.Number(label="Predicted Number", precision=0, value=None)
 
788
  preview = gr.Image(label="Model Input Preview (28x56)", image_mode="L")
789
  mean_diff_view = gr.Image(label="Difference vs Training Mean", image_mode="L")
790
  diagnostics_box = gr.Code(label="Diagnostics (JSON)", language="json")
791
+
792
+ # Place buttons under the canvas, but wire them to clear outputs as well
793
+ with left_col:
794
+ with gr.Row():
795
+ predict_btn = gr.Button("Predict", variant="primary")
796
+ clear_btn = gr.ClearButton(
797
+ [
798
+ main_canvas,
799
+ pred_box,
800
+ prob_table,
801
+ preview,
802
+ mean_diff_view,
803
+ diagnostics_box,
804
+ ]
805
+ )
806
 
807
  predict_btn.click(
808
  fn=predict_number,
809
+ inputs=[main_canvas],
810
  outputs=[pred_box, prob_table, preview, mean_diff_view, diagnostics_box],
811
  )
812
  # On Spaces, avoid per-stroke inference to prevent event floods
813
  if not IS_SPACE:
814
  main_canvas.change(
815
  fn=predict_number,
816
+ inputs=[main_canvas],
817
  outputs=[pred_box, prob_table, preview, mean_diff_view, diagnostics_box],
818
  )
819