File size: 3,382 Bytes
a22d169
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "source": [
        "!pip install -Uqq fastai gradio nbdev"
      ],
      "metadata": {
        "id": "LyRA7KSuOt6f"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "P9petL8cIBXd"
      },
      "outputs": [],
      "source": [
        "#|default_exp app"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#|export\n",
        "from fastai.vision.all import *\n",
        "import gradio as gr"
      ],
      "metadata": {
        "id": "6olANYYvILjT"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "im = PILImage.create('garamond.png')\n",
        "im.thumbnail((192, 192))\n",
        "im"
      ],
      "metadata": {
        "id": "JNb8CfVCRM3C"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "#|export\n",
        "learn = load_learner('model.pkl')"
      ],
      "metadata": {
        "id": "FFxZjXWrP-Fg"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "learn.predict(im)"
      ],
      "metadata": {
        "id": "gA5vqoTISPVL"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "#|export\n",
        "categories = ('Garamond', 'Helvetica')\n",
        "\n",
        "def classify_image(img):\n",
        "  pred, idx, probs = learn.predict(img)\n",
        "  return dict(zip(categories, map(float, probs)))"
      ],
      "metadata": {
        "id": "bScV4g0eQUgh"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "classify_image(im)"
      ],
      "metadata": {
        "id": "_yMhyT_hSXt0"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "#|export\n",
        "image = gr.inputs.Image(shape=(192, 192))\n",
        "label = gr.outputs.Label()\n",
        "examples = ['garamond.png', 'helvetica.png']\n",
        "\n",
        "intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)\n",
        "intf.launch(inline=False)"
      ],
      "metadata": {
        "id": "BTRZvR-3SdRp"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Export"
      ],
      "metadata": {
        "id": "BtgbVjRtTTqB"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import nbdev"
      ],
      "metadata": {
        "id": "_wNIvDXSTUwC"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "nbdev.export.nb_export('app.ipynb', 'app')"
      ],
      "metadata": {
        "id": "CMlwAQz0Taj0"
      },
      "execution_count": null,
      "outputs": []
    }
  ]
}