File size: 83,517 Bytes
25e2b85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# !pip install fastai\n",
    "# !pip install gradio\n",
    "# !pip install timm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from fastai.vision.all import *\n",
    "import gradio as gr\n",
    "import pathlib\n",
    "pathlib.PosixPath = pathlib.WindowsPath\n",
    "import timm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "# temp = pathlib.PosixPath\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "PILImage mode=RGB size=192x144"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "im = PILImage.create('melanoma.jpg')\n",
    "im.thumbnail((192,192))\n",
    "im"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn = load_learner('export.pkl')\n",
    "learn2 = load_learner('export_cancer_type.pkl')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "    <div>\n",
       "      <progress value='0' class='' max='1' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      0.00% [0/1 00:00&lt;?]\n",
       "    </div>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "('melanoma',\n",
       " tensor(3),\n",
       " tensor([1.4456e-03, 1.0283e-04, 6.1242e-04, 7.6649e-01, 2.2753e-01, 2.3810e-03,\n",
       "         6.9470e-04, 1.0568e-04, 6.3854e-04]))"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn2.predict(im)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "categories = ('Benign', 'Malignant')\n",
    "categories2 = (\n",
    "\"Actinic Keratosis\",\n",
    "\"Basal Cell Carcinoma\",\n",
    "\"Dermatofibroma\",\n",
    "\"Melanoma\",\n",
    "\"Nevus\",\n",
    "\"Pigmented Benign Keratosis\",\n",
    "\"Seborrheic Keratosis\",\n",
    "\"Squamous Cell Carcinoma\",\n",
    "\"Vascular Lesion\",\n",
    ")\n",
    "\n",
    "def classify_image(img):\n",
    "    pred,idx,probs = learn.predict(img)\n",
    "    pred2,idx2,probs2 = learn2.predict(img)\n",
    "    return dict(zip(categories, map(float,probs))), dict(zip(categories2, map(float,probs2)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "({'Benign': 0.4016205072402954, 'Malignant': 0.5983794927597046},\n",
       " {'actinic keratosis': 0.0014456179924309254,\n",
       "  'basal cell carcinoma': 0.00010283248411724344,\n",
       "  'dermatofibroma': 0.0006124223582446575,\n",
       "  'melanoma': 0.7664883136749268,\n",
       "  'nevus': 0.22753091156482697,\n",
       "  'pigmented benign keratosis': 0.0023810004349797964,\n",
       "  'seborrheic keratosis': 0.0006947041256353259,\n",
       "  'squamous cell carcinoma': 0.00010568421566858888,\n",
       "  'vascular lesion': 0.0006385358283296227})"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "classify_image(im)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\Users\\ntram\\Anaconda3\\lib\\site-packages\\gradio\\inputs.py:259: UserWarning: Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components\n",
      "  warnings.warn(\n",
      "c:\\Users\\ntram\\Anaconda3\\lib\\site-packages\\gradio\\inputs.py:262: UserWarning: `optional` parameter is deprecated, and it has no effect\n",
      "  super().__init__(\n",
      "c:\\Users\\ntram\\Anaconda3\\lib\\site-packages\\gradio\\outputs.py:197: UserWarning: Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components\n",
      "  warnings.warn(\n",
      "c:\\Users\\ntram\\Anaconda3\\lib\\site-packages\\gradio\\outputs.py:200: UserWarning: The 'type' parameter has been deprecated. Use the Number component instead.\n",
      "  super().__init__(num_top_classes=num_top_classes, type=type, label=label)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running on local URL:  http://127.0.0.1:7860\n",
      "\n",
      "To create a public link, set `share=True` in `launch()`.\n"
     ]
    },
    {
     "data": {
      "text/plain": []
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "image = gr.inputs.Image(shape=(192,192))\n",
    "label = gr.outputs.Label()\n",
    "label2 = gr.outputs.Label()\n",
    "examples = ['Benign1.jpg','Benign2.jpg','Benign3.jpg', 'Malignant1.jpg', 'Malignant2.jpg', 'Malignant3.jpg', \"melanoma.jpg\", \"actinic keratosis.jpg\", \"squamous cell carcinoma.jpg\"]\n",
    "\n",
    "intf = gr.Interface(fn=classify_image, inputs=image, outputs=[label,label2], examples=examples)\n",
    "intf.launch(inline=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}