Aspiring Astro commited on
Commit
2b05e43
1 Parent(s): 70a1bb4

report top losses and confusion matrix

Browse files
app.ipynb CHANGED
@@ -44,7 +44,8 @@
44
  "}\n",
45
  "models = list(learners.keys())\n",
46
  "\n",
47
- "active_model = learners[\"resnet-18\"]\n"
 
48
  ]
49
  },
50
  {
@@ -64,8 +65,16 @@
64
  "def select_model(model_name):\n",
65
  " if model_name not in models:\n",
66
  " model_name = \"resnet-18\"\n",
67
- " active_model = learners[model_name]\n",
68
- " return model_name\n"
 
 
 
 
 
 
 
 
69
  ]
70
  },
71
  {
@@ -493,6 +502,12 @@
493
  "#| export\n",
494
  "example_images = [ 'cheetah.jpg', 'jaguar.jpg', 'tiger.jpg', 'cougar.jpg', 'lion.jpg', 'african leopard.jpg', 'clouded leopard.jpg', 'snow leopard.jpg', 'hidden.png', 'hidden2.png' ]\n",
495
  "\n",
 
 
 
 
 
 
496
  "demo = gr.Blocks()\n",
497
  "with demo:\n",
498
  " with gr.Column(variant=\"panel\"):\n",
@@ -501,11 +516,18 @@
501
  " btnClassify = gr.Button(\"Classify\")\n",
502
  " with gr.Column(variant=\"panel\"):\n",
503
  " selected = gr.outputs.Textbox(label=\"Active Model\")\n",
 
 
 
504
  " result = gr.outputs.Label(label=\"Result\")\n",
505
  " \n",
506
  " model.change(fn=select_model, inputs=model, outputs=selected)\n",
507
  " btnClassify.click(fn=classify_image, inputs=image, outputs=result)\n",
508
  " img_gallery = gr.Examples(examples=example_images, inputs=image)\n",
 
 
 
 
509
  "\n",
510
  "demo.launch(debug=True, inline=False)\n",
511
  " # intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=example_images, title=title, description=description )\n",
@@ -515,39 +537,15 @@
515
  },
516
  {
517
  "cell_type": "code",
518
- "execution_count": 22,
519
  "id": "cab071f9-7c3b-4b35-a0d1-3687731ffce5",
520
  "metadata": {},
521
- "outputs": [
522
- {
523
- "name": "stdout",
524
- "output_type": "stream",
525
- "text": [
526
- "Export successful\n"
527
- ]
528
- }
529
- ],
530
  "source": [
531
  "import nbdev\n",
532
  "nbdev.export.nb_export('app.ipynb', './')\n",
533
  "print('Export successful')"
534
  ]
535
- },
536
- {
537
- "cell_type": "code",
538
- "execution_count": null,
539
- "id": "c7e6ddfb-9919-4a35-aac7-674d6fc5fd96",
540
- "metadata": {},
541
- "outputs": [],
542
- "source": []
543
- },
544
- {
545
- "cell_type": "code",
546
- "execution_count": null,
547
- "id": "e56bc359-81c7-4e70-a84a-5f81a0713cd3",
548
- "metadata": {},
549
- "outputs": [],
550
- "source": []
551
  }
552
  ],
553
  "metadata": {
 
44
  "}\n",
45
  "models = list(learners.keys())\n",
46
  "\n",
47
+ "active_name = \"resnet-18\"\n",
48
+ "active_model = learners[active_name]\n"
49
  ]
50
  },
51
  {
 
65
  "def select_model(model_name):\n",
66
  " if model_name not in models:\n",
67
  " model_name = \"resnet-18\"\n",
68
+ " active_name = model_name\n",
69
+ " active_model = learners[active_name]\n",
70
+ " return model_name.upper()\n",
71
+ "\n",
72
+ "def update_matrix():\n",
73
+ " return \"models/\" + active_name.replace('-','',1) + \"-confusion-matrix.png\"\n",
74
+ " \n",
75
+ "def update_losses():\n",
76
+ " return \"models/\" + active_name.replace('-','',1) + \"-top-losses.png\"\n",
77
+ " "
78
  ]
79
  },
80
  {
 
502
  "#| export\n",
503
  "example_images = [ 'cheetah.jpg', 'jaguar.jpg', 'tiger.jpg', 'cougar.jpg', 'lion.jpg', 'african leopard.jpg', 'clouded leopard.jpg', 'snow leopard.jpg', 'hidden.png', 'hidden2.png' ]\n",
504
  "\n",
505
+ "model_matrix = [ 'models/resnet101-confusion-matrix.png', 'models/resnet18-confusion-matrix.png', 'models/resnet50-confusion-matrix.png',\n",
506
+ "'models/resnet152-confusion-matrix.png', 'models/resnet34-confusion-matrix.png' ]\n",
507
+ "\n",
508
+ "model_losses = [ 'models/resnet101-top-losses.png', 'models/resnet18-top-losses.png', 'models/resnet50-top-losses.png',\n",
509
+ "'models/resnet152-top-losses.png', 'models/resnet34-top-losses.png' ]\n",
510
+ "\n",
511
  "demo = gr.Blocks()\n",
512
  "with demo:\n",
513
  " with gr.Column(variant=\"panel\"):\n",
 
516
  " btnClassify = gr.Button(\"Classify\")\n",
517
  " with gr.Column(variant=\"panel\"):\n",
518
  " selected = gr.outputs.Textbox(label=\"Active Model\")\n",
519
+ " with gr.Row(equal_height=True):\n",
520
+ " matrix=gr.outputs.Image(type='filepath', label=\"Confusion Matrix\")\n",
521
+ " losses=gr.outputs.Image(type='filepath', label=\"Top Losses\")\n",
522
  " result = gr.outputs.Label(label=\"Result\")\n",
523
  " \n",
524
  " model.change(fn=select_model, inputs=model, outputs=selected)\n",
525
  " btnClassify.click(fn=classify_image, inputs=image, outputs=result)\n",
526
  " img_gallery = gr.Examples(examples=example_images, inputs=image)\n",
527
+ " matrix_gallery = gr.Examples(examples=model_matrix, label='Models Confusion Matrix', inputs=matrix)\n",
528
+ " loss_gallery = gr.Examples(examples=model_losses, label='Models Top Losses', inputs=losses)\n",
529
+ " result.change(fn=update_matrix, outputs=matrix)\n",
530
+ " result.change(fn=update_losses, outputs=losses)\n",
531
  "\n",
532
  "demo.launch(debug=True, inline=False)\n",
533
  " # intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=example_images, title=title, description=description )\n",
 
537
  },
538
  {
539
  "cell_type": "code",
540
+ "execution_count": null,
541
  "id": "cab071f9-7c3b-4b35-a0d1-3687731ffce5",
542
  "metadata": {},
543
+ "outputs": [],
 
 
 
 
 
 
 
 
544
  "source": [
545
  "import nbdev\n",
546
  "nbdev.export.nb_export('app.ipynb', './')\n",
547
  "print('Export successful')"
548
  ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
549
  }
550
  ],
551
  "metadata": {
app.py CHANGED
@@ -1,8 +1,8 @@
1
  # AUTOGENERATED! DO NOT EDIT! File to edit: app.ipynb.
2
 
3
  # %% auto 0
4
- __all__ = ['title', 'description', 'learners', 'models', 'active_model', 'example_images', 'demo', 'classify_image',
5
- 'select_model']
6
 
7
  # %% app.ipynb 1
8
  from fastai.vision.all import *
@@ -23,7 +23,8 @@ learners = {
23
  }
24
  models = list(learners.keys())
25
 
26
- active_model = learners["resnet-18"]
 
27
 
28
 
29
  # %% app.ipynb 3
@@ -35,13 +36,26 @@ def classify_image(img):
35
  def select_model(model_name):
36
  if model_name not in models:
37
  model_name = "resnet-18"
38
- active_model = learners[model_name]
39
- return model_name
 
40
 
 
 
 
 
 
 
41
 
42
  # %% app.ipynb 5
43
  example_images = [ 'cheetah.jpg', 'jaguar.jpg', 'tiger.jpg', 'cougar.jpg', 'lion.jpg', 'african leopard.jpg', 'clouded leopard.jpg', 'snow leopard.jpg', 'hidden.png', 'hidden2.png' ]
44
 
 
 
 
 
 
 
45
  demo = gr.Blocks()
46
  with demo:
47
  with gr.Column(variant="panel"):
@@ -50,11 +64,18 @@ with demo:
50
  btnClassify = gr.Button("Classify")
51
  with gr.Column(variant="panel"):
52
  selected = gr.outputs.Textbox(label="Active Model")
 
 
 
53
  result = gr.outputs.Label(label="Result")
54
 
55
  model.change(fn=select_model, inputs=model, outputs=selected)
56
  btnClassify.click(fn=classify_image, inputs=image, outputs=result)
57
  img_gallery = gr.Examples(examples=example_images, inputs=image)
 
 
 
 
58
 
59
  demo.launch(debug=True, inline=False)
60
  # intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=example_images, title=title, description=description )
 
1
  # AUTOGENERATED! DO NOT EDIT! File to edit: app.ipynb.
2
 
3
  # %% auto 0
4
+ __all__ = ['title', 'description', 'learners', 'models', 'active_name', 'active_model', 'example_images', 'model_matrix',
5
+ 'model_losses', 'demo', 'classify_image', 'select_model', 'update_matrix', 'update_losses']
6
 
7
  # %% app.ipynb 1
8
  from fastai.vision.all import *
 
23
  }
24
  models = list(learners.keys())
25
 
26
+ active_name = "resnet-18"
27
+ active_model = learners[active_name]
28
 
29
 
30
  # %% app.ipynb 3
 
36
  def select_model(model_name):
37
  if model_name not in models:
38
  model_name = "resnet-18"
39
+ active_name = model_name
40
+ active_model = learners[active_name]
41
+ return model_name.upper()
42
 
43
+ def update_matrix():
44
+ return "models/" + active_name.replace('-','',1) + "-confusion-matrix.png"
45
+
46
+ def update_losses():
47
+ return "models/" + active_name.replace('-','',1) + "-top-losses.png"
48
+
49
 
50
  # %% app.ipynb 5
51
  example_images = [ 'cheetah.jpg', 'jaguar.jpg', 'tiger.jpg', 'cougar.jpg', 'lion.jpg', 'african leopard.jpg', 'clouded leopard.jpg', 'snow leopard.jpg', 'hidden.png', 'hidden2.png' ]
52
 
53
+ model_matrix = [ 'models/resnet101-confusion-matrix.png', 'models/resnet18-confusion-matrix.png', 'models/resnet50-confusion-matrix.png',
54
+ 'models/resnet152-confusion-matrix.png', 'models/resnet34-confusion-matrix.png' ]
55
+
56
+ model_losses = [ 'models/resnet101-top-losses.png', 'models/resnet18-top-losses.png', 'models/resnet50-top-losses.png',
57
+ 'models/resnet152-top-losses.png', 'models/resnet34-top-losses.png' ]
58
+
59
  demo = gr.Blocks()
60
  with demo:
61
  with gr.Column(variant="panel"):
 
64
  btnClassify = gr.Button("Classify")
65
  with gr.Column(variant="panel"):
66
  selected = gr.outputs.Textbox(label="Active Model")
67
+ with gr.Row(equal_height=True):
68
+ matrix=gr.outputs.Image(type='filepath', label="Confusion Matrix")
69
+ losses=gr.outputs.Image(type='filepath', label="Top Losses")
70
  result = gr.outputs.Label(label="Result")
71
 
72
  model.change(fn=select_model, inputs=model, outputs=selected)
73
  btnClassify.click(fn=classify_image, inputs=image, outputs=result)
74
  img_gallery = gr.Examples(examples=example_images, inputs=image)
75
+ matrix_gallery = gr.Examples(examples=model_matrix, label='Models Confusion Matrix', inputs=matrix)
76
+ loss_gallery = gr.Examples(examples=model_losses, label='Models Top Losses', inputs=losses)
77
+ result.change(fn=update_matrix, outputs=matrix)
78
+ result.change(fn=update_losses, outputs=losses)
79
 
80
  demo.launch(debug=True, inline=False)
81
  # intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=example_images, title=title, description=description )
models/resnet101-confusion-matrix.png ADDED
models/resnet101-top-losses.png ADDED
models/resnet152-confusion-matrix.png ADDED
models/resnet152-top-losses.png ADDED
models/resnet18-confusion-matrix.png ADDED
models/resnet18-top-losses.png ADDED
models/resnet34-confusion-matrix.png ADDED
models/resnet34-top-losses.png ADDED
models/resnet50-confusion-matrix.png ADDED
models/resnet50-top-losses.png ADDED