looiic commited on
Commit
32621ad
1 Parent(s): fcb4b2c

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .DS_Store +0 -0
  2. .gitattributes +18 -0
  3. README.md +2 -8
  4. app.ipynb +187 -0
  5. app.py +46 -0
  6. app_cat_dog.ipynb +118 -0
  7. app_pokemon.ipynb +120 -0
  8. dogs-vs-cats-model_transferlearning.keras +3 -0
  9. dogs-vs-cats/.DS_Store +0 -0
  10. dogs-vs-cats/train/.DS_Store +0 -0
  11. dogs-vs-cats/train/cat/Abyssinian_127_jpg.rf.b2553880d73a78e26e396fe7775f31be.jpg +0 -0
  12. dogs-vs-cats/train/cat/Abyssinian_131_jpg.rf.3aeee0801499f335e3a59b51189e1351.jpg +0 -0
  13. dogs-vs-cats/train/cat/Abyssinian_149_jpg.rf.b6b4a72a93f8bc2b239b18c5d181190c.jpg +0 -0
  14. dogs-vs-cats/train/cat/Abyssinian_15_jpg.rf.7bc44eeb9865e35cb1d5f9ef4f53b381.jpg +0 -0
  15. dogs-vs-cats/train/cat/Abyssinian_167_jpg.rf.1d367cb1cf82c1e5ebda79fda928cee5.jpg +0 -0
  16. dogs-vs-cats/train/cat/Bengal_103_jpg.rf.bb684501a53abf381a6bf07f9cd2243c.jpg +0 -0
  17. dogs-vs-cats/train/cat/Bengal_109_jpg.rf.aed42b8605ef92b579992d02e2e2cc4c.jpg +0 -0
  18. dogs-vs-cats/train/cat/Bengal_116_jpg.rf.8c6280ad977c6c749da4d35156e49286.jpg +0 -0
  19. dogs-vs-cats/train/cat/Bengal_13_jpg.rf.7c75131d257406a75d8d676dd9b5f5f7.jpg +0 -0
  20. dogs-vs-cats/train/cat/Bengal_145_jpg.rf.3dadbfbb39437890fc249f7edb37cb2f.jpg +0 -0
  21. dogs-vs-cats/train/cat/Bengal_150_jpg.rf.05c93a40014062c5ae66bae50a857aca.jpg +0 -0
  22. dogs-vs-cats/train/cat/Bengal_165_jpg.rf.31185846cf5892c6e7e3f02784e04fef.jpg +0 -0
  23. dogs-vs-cats/train/cat/Bengal_167_jpg.rf.1542d3551f036a577880f22719c2fd08.jpg +0 -0
  24. dogs-vs-cats/train/cat/Bengal_174_jpg.rf.bbac947432fbff310b6be201bd9a3de7.jpg +0 -0
  25. dogs-vs-cats/train/cat/Birman_105_jpg.rf.2f96b7dd47bb15df4def745602f5434d.jpg +0 -0
  26. dogs-vs-cats/train/cat/Birman_135_jpg.rf.d9cdc64e747de2078f60a4761fdc534a.jpg +0 -0
  27. dogs-vs-cats/train/cat/Birman_144_jpg.rf.369cb41f763175f21c7cfd77e77509ec.jpg +0 -0
  28. dogs-vs-cats/train/cat/Birman_151_jpg.rf.179ae9238f29eda8d63af4da89c48e05.jpg +0 -0
  29. dogs-vs-cats/train/cat/Birman_157_jpg.rf.cbf2d211aab989a6f26ef5b5cef5e63e.jpg +0 -0
  30. dogs-vs-cats/train/cat/Birman_159_jpg.rf.3ba8a57e52d925aa33e85822004c591d.jpg +0 -0
  31. dogs-vs-cats/train/cat/Birman_160_jpg.rf.dc1ca8f5f9cfd2aa585a7c024074ce7f.jpg +0 -0
  32. dogs-vs-cats/train/cat/Birman_166_jpg.rf.ac8785ee575600493ffac45e2b0d1342.jpg +0 -0
  33. dogs-vs-cats/train/cat/Birman_173_jpg.rf.b8656131a2f2fda3413154a7d01ad834.jpg +0 -0
  34. dogs-vs-cats/train/cat/Birman_186_jpg.rf.6c15b2f2afe3c230ded5e5d04d6affe5.jpg +0 -0
  35. dogs-vs-cats/train/cat/Birman_189_jpg.rf.29a9d3b4f764fc9e2cc6b78fbe5d30da.jpg +0 -0
  36. dogs-vs-cats/train/cat/Bombay_122_jpg.rf.218d47f5275b4de8706a9a56e6276113.jpg +0 -0
  37. dogs-vs-cats/train/cat/Bombay_125_jpg.rf.c91236394fb2adb244ba8866b53dbd43.jpg +0 -0
  38. dogs-vs-cats/train/cat/Bombay_127_jpg.rf.4c9fde3d1b3fc52a20cd4b2b82b98856.jpg +0 -0
  39. dogs-vs-cats/train/cat/Bombay_140_jpg.rf.15757f698af74453f34ee58604ea6afc.jpg +0 -0
  40. dogs-vs-cats/train/cat/Bombay_146_jpg.rf.288e58c8b226aa5b7c6ad4442f7fda5c.jpg +0 -0
  41. dogs-vs-cats/train/cat/Bombay_153_jpg.rf.2da5201d989106a5b1b4025aec3349b4.jpg +0 -0
  42. dogs-vs-cats/train/cat/Bombay_18_jpg.rf.68c07a9d844cc01b8bf5582d7d3c0e01.jpg +0 -0
  43. dogs-vs-cats/train/cat/British_Shorthair_101_jpg.rf.afa7cf2990a151279e674e2077fa306f.jpg +0 -0
  44. dogs-vs-cats/train/cat/British_Shorthair_109_jpg.rf.97fcd6a9c7f0d54b3d39d2d709237287.jpg +0 -0
  45. dogs-vs-cats/train/cat/British_Shorthair_154_jpg.rf.8e78c62b5e103771db2893338e5937da.jpg +0 -0
  46. dogs-vs-cats/train/cat/British_Shorthair_164_jpg.rf.8d27185e8344301592da98df828ab073.jpg +0 -0
  47. dogs-vs-cats/train/cat/British_Shorthair_166_jpg.rf.d18846beff566700c2e16e295bb701e4.jpg +0 -0
  48. dogs-vs-cats/train/cat/British_Shorthair_177_jpg.rf.5efbf04740eeac07cdd83e5773d24221.jpg +0 -0
  49. dogs-vs-cats/train/cat/British_Shorthair_187_jpg.rf.24d36402bce6b82092dc93876c65bb71.jpg +0 -0
  50. dogs-vs-cats/train/cat/British_Shorthair_193_jpg.rf.ab376d75fb05acc1ec59f06228ebe5bb.jpg +0 -0
.DS_Store ADDED
Binary file (8.2 kB). View file
 
.gitattributes CHANGED
@@ -33,3 +33,21 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ dogs-vs-cats-model_transferlearning.keras filter=lfs diff=lfs merge=lfs -text
37
+ images/dog1.jpeg filter=lfs diff=lfs merge=lfs -text
38
+ pokemon_transferlearning.keras filter=lfs diff=lfs merge=lfs -text
39
+ pokemons/train/Charmeleon/00000027.png filter=lfs diff=lfs merge=lfs -text
40
+ pokemons/train/Charmeleon/00000207.png filter=lfs diff=lfs merge=lfs -text
41
+ pokemons/train/Hitmonchan/00000015.png filter=lfs diff=lfs merge=lfs -text
42
+ pokemons/train/Hitmonchan/00000025.png filter=lfs diff=lfs merge=lfs -text
43
+ pokemons/train/Hitmonchan/00000038.gif filter=lfs diff=lfs merge=lfs -text
44
+ pokemons/train/Hitmonchan/00000099.gif filter=lfs diff=lfs merge=lfs -text
45
+ pokemons/train/Hitmonchan/00000111.png filter=lfs diff=lfs merge=lfs -text
46
+ pokemons/train/Hitmonchan/00000169.png filter=lfs diff=lfs merge=lfs -text
47
+ pokemons/train/Pikachu/00000031.png filter=lfs diff=lfs merge=lfs -text
48
+ pokemons/train/Pikachu/00000034.png filter=lfs diff=lfs merge=lfs -text
49
+ pokemons/train/Pikachu/00000122.png filter=lfs diff=lfs merge=lfs -text
50
+ pokemons/val/Pikachu/00000154.jpg filter=lfs diff=lfs merge=lfs -text
51
+ pokemons/val/Pikachu/00000188.gif filter=lfs diff=lfs merge=lfs -text
52
+ pokemons/val/Pikachu/00000212.png filter=lfs diff=lfs merge=lfs -text
53
+ pokemons/val/Pikachu/00000225.jpg filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,12 +1,6 @@
1
  ---
2
- title: Pokemon1
3
- emoji: 💻
4
- colorFrom: purple
5
- colorTo: pink
6
  sdk: gradio
7
  sdk_version: 4.27.0
8
- app_file: app.py
9
- pinned: false
10
  ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: pokemon1
3
+ app_file: app.py
 
 
4
  sdk: gradio
5
  sdk_version: 4.27.0
 
 
6
  ---
 
 
app.ipynb ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 2,
6
+ "metadata": {},
7
+ "outputs": [
8
+ {
9
+ "name": "stderr",
10
+ "output_type": "stream",
11
+ "text": [
12
+ "/Users/loic/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n",
13
+ " warnings.warn(\n",
14
+ "/Users/loic/Library/Python/3.9/lib/python/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
15
+ " from .autonotebook import tqdm as notebook_tqdm\n"
16
+ ]
17
+ }
18
+ ],
19
+ "source": [
20
+ "import gradio as gr\n",
21
+ "import tensorflow as tf\n",
22
+ "import numpy as np\n",
23
+ "from PIL import Image"
24
+ ]
25
+ },
26
+ {
27
+ "cell_type": "code",
28
+ "execution_count": 2,
29
+ "metadata": {},
30
+ "outputs": [],
31
+ "source": [
32
+ "model_path = \"dogs-vs-cats-model_transferlearning.keras\"\n",
33
+ "model = tf.keras.models.load_model(model_path)"
34
+ ]
35
+ },
36
+ {
37
+ "cell_type": "code",
38
+ "execution_count": 9,
39
+ "metadata": {},
40
+ "outputs": [],
41
+ "source": [
42
+ "# Define the core prediction function\n",
43
+ "def predict_cat_dog(image):\n",
44
+ " # Preprocess image\n",
45
+ " print(type(image))\n",
46
+ " image = Image.fromarray(image.astype('uint8')) # Convert numpy array to PIL image\n",
47
+ " image = image.resize((150, 150)) #resize the image to 28x28 and converts it to gray scale\n",
48
+ " image = np.array(image)\n",
49
+ " image = np.expand_dims(image, axis=0) # same as image[None, ...]\n",
50
+ " \n",
51
+ " # Predict\n",
52
+ " prediction = model.predict(image)\n",
53
+ " \n",
54
+ " # Because the output layer was dense(0) without an activation function, we need to apply sigmoid to get the probability\n",
55
+ " # we could also change the output layer to dense(1, activation='sigmoid')\n",
56
+ " prediction = np.round(float(tf.sigmoid(prediction)[0]), 2)\n",
57
+ " p_cat = (1 - prediction)\n",
58
+ " p_dog = prediction\n",
59
+ " return {'cat': p_cat, 'dog': p_dog}"
60
+ ]
61
+ },
62
+ {
63
+ "cell_type": "code",
64
+ "execution_count": 3,
65
+ "metadata": {},
66
+ "outputs": [
67
+ {
68
+ "data": {
69
+ "text/plain": [
70
+ "<tf.Tensor: shape=(), dtype=float32, numpy=0.6341356>"
71
+ ]
72
+ },
73
+ "execution_count": 3,
74
+ "metadata": {},
75
+ "output_type": "execute_result"
76
+ }
77
+ ],
78
+ "source": [
79
+ "tf.sigmoid(0.55)"
80
+ ]
81
+ },
82
+ {
83
+ "cell_type": "code",
84
+ "execution_count": 10,
85
+ "metadata": {},
86
+ "outputs": [
87
+ {
88
+ "name": "stdout",
89
+ "output_type": "stream",
90
+ "text": [
91
+ "Running on local URL: http://127.0.0.1:7863\n",
92
+ "\n",
93
+ "To create a public link, set `share=True` in `launch()`.\n"
94
+ ]
95
+ },
96
+ {
97
+ "data": {
98
+ "text/html": [
99
+ "<div><iframe src=\"http://127.0.0.1:7863/\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>"
100
+ ],
101
+ "text/plain": [
102
+ "<IPython.core.display.HTML object>"
103
+ ]
104
+ },
105
+ "metadata": {},
106
+ "output_type": "display_data"
107
+ },
108
+ {
109
+ "data": {
110
+ "text/plain": []
111
+ },
112
+ "execution_count": 10,
113
+ "metadata": {},
114
+ "output_type": "execute_result"
115
+ },
116
+ {
117
+ "name": "stdout",
118
+ "output_type": "stream",
119
+ "text": [
120
+ "<class 'numpy.ndarray'>\n",
121
+ "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 32ms/step\n"
122
+ ]
123
+ },
124
+ {
125
+ "name": "stderr",
126
+ "output_type": "stream",
127
+ "text": [
128
+ "Traceback (most recent call last):\n",
129
+ " File \"/Users/loic/Library/Python/3.9/lib/python/site-packages/gradio/queueing.py\", line 527, in process_events\n",
130
+ " response = await route_utils.call_process_api(\n",
131
+ " File \"/Users/loic/Library/Python/3.9/lib/python/site-packages/gradio/route_utils.py\", line 261, in call_process_api\n",
132
+ " output = await app.get_blocks().process_api(\n",
133
+ " File \"/Users/loic/Library/Python/3.9/lib/python/site-packages/gradio/blocks.py\", line 1786, in process_api\n",
134
+ " result = await self.call_function(\n",
135
+ " File \"/Users/loic/Library/Python/3.9/lib/python/site-packages/gradio/blocks.py\", line 1338, in call_function\n",
136
+ " prediction = await anyio.to_thread.run_sync(\n",
137
+ " File \"/Users/loic/Library/Python/3.9/lib/python/site-packages/anyio/to_thread.py\", line 56, in run_sync\n",
138
+ " return await get_async_backend().run_sync_in_worker_thread(\n",
139
+ " File \"/Users/loic/Library/Python/3.9/lib/python/site-packages/anyio/_backends/_asyncio.py\", line 2144, in run_sync_in_worker_thread\n",
140
+ " return await future\n",
141
+ " File \"/Users/loic/Library/Python/3.9/lib/python/site-packages/anyio/_backends/_asyncio.py\", line 851, in run\n",
142
+ " result = context.run(func, *args)\n",
143
+ " File \"/Users/loic/Library/Python/3.9/lib/python/site-packages/gradio/utils.py\", line 759, in wrapper\n",
144
+ " response = f(*args, **kwargs)\n",
145
+ " File \"/var/folders/vr/l64rqhls46j_2hyn4pdl0m880000gn/T/ipykernel_56385/4113486017.py\", line 15, in predict_cat_dog\n",
146
+ " prediction = np.round(float(tf.sigmoid(prediction)[0]), 2)\n",
147
+ " File \"/Users/loic/Library/Python/3.9/lib/python/site-packages/tensorflow/python/framework/ops.py\", line 307, in __float__\n",
148
+ " return float(self._numpy())\n",
149
+ "TypeError: only length-1 arrays can be converted to Python scalars\n"
150
+ ]
151
+ }
152
+ ],
153
+ "source": [
154
+ "# Create the Gradio interface\n",
155
+ "input_image = gr.Image()\n",
156
+ "iface = gr.Interface(\n",
157
+ " fn=predict_cat_dog,\n",
158
+ " inputs=input_image, \n",
159
+ " outputs=gr.Label(),\n",
160
+ " examples=[\"images/cat1.jpeg\", \"images/cat2.jpeg\", \"images/cat3.jpeg\", \"images/cat4.jpeg\", \"images/dog1.jpeg\", \"images/dog2.jpeg\", \"images/dog3.jpeg\"], \n",
161
+ " description=\"A simple mlp classification model for image classification using the mnist dataset.\")\n",
162
+ "iface.launch()"
163
+ ]
164
+ }
165
+ ],
166
+ "metadata": {
167
+ "kernelspec": {
168
+ "display_name": "venv_new",
169
+ "language": "python",
170
+ "name": "python3"
171
+ },
172
+ "language_info": {
173
+ "codemirror_mode": {
174
+ "name": "ipython",
175
+ "version": 3
176
+ },
177
+ "file_extension": ".py",
178
+ "mimetype": "text/x-python",
179
+ "name": "python",
180
+ "nbconvert_exporter": "python",
181
+ "pygments_lexer": "ipython3",
182
+ "version": "3.9.6"
183
+ }
184
+ },
185
+ "nbformat": 4,
186
+ "nbformat_minor": 2
187
+ }
app.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import tensorflow as tf
3
+ from PIL import Image
4
+ import numpy as np
5
+
6
+ # Load the pre-trained model
7
+ model = tf.keras.models.load_model('pokemon_transferlearning.keras')
8
+
9
+ def classify_image(img):
10
+
11
+ if isinstance(img, np.ndarray):
12
+ img = Image.fromarray(img.astype('uint8'), 'RGB')
13
+
14
+ # Preprocess the image to fit the model's input requirements
15
+ img = img.resize((150, 150)) # Resize the image using PIL, which is intended here
16
+ img_array = np.array(img) # Convert the resized PIL image to a numpy array
17
+ img_array = img_array / 255.0 # Normalize pixel values to [0, 1]
18
+ img_array = np.expand_dims(img_array, axis=0) # Expand dimensions to fit model input shape
19
+
20
+ # Make prediction
21
+ prediction = model.predict(img_array)
22
+
23
+ # prediction = np.round(float(tf.sigmoid(prediction)), 2)
24
+ # p_cat = (1 - prediction)
25
+ # p_dog = prediction
26
+ # return {'cat': p_cat, 'dog': p_dog}
27
+
28
+ print(prediction)
29
+
30
+ probabilities = tf.sigmoid(prediction).numpy() # Convert tensor to numpy array if using
31
+
32
+ # Formatting the probabilities
33
+ class_names = ['Hitchoman', 'Pikachu', 'Charmeleon']
34
+ results = {class_names[i]: float(prediction[0][i]) for i in range(3)} # Convert each probability to float
35
+
36
+ return results
37
+
38
+ # Create Gradio interface
39
+ iface = gr.Interface(fn=classify_image,
40
+ inputs=gr.Image(),
41
+ outputs=gr.Label(num_top_classes=3),
42
+ title="Pokemon Classifier",
43
+ description="Upload an image of a pokemon classify.")
44
+
45
+ # Launch the application
46
+ iface.launch(share=True)
app_cat_dog.ipynb ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 6,
6
+ "metadata": {},
7
+ "outputs": [
8
+ {
9
+ "name": "stdout",
10
+ "output_type": "stream",
11
+ "text": [
12
+ "Running on local URL: http://127.0.0.1:7865\n",
13
+ "\n",
14
+ "To create a public link, set `share=True` in `launch()`.\n"
15
+ ]
16
+ },
17
+ {
18
+ "data": {
19
+ "text/html": [
20
+ "<div><iframe src=\"http://127.0.0.1:7865/\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>"
21
+ ],
22
+ "text/plain": [
23
+ "<IPython.core.display.HTML object>"
24
+ ]
25
+ },
26
+ "metadata": {},
27
+ "output_type": "display_data"
28
+ },
29
+ {
30
+ "data": {
31
+ "text/plain": []
32
+ },
33
+ "execution_count": 6,
34
+ "metadata": {},
35
+ "output_type": "execute_result"
36
+ },
37
+ {
38
+ "name": "stdout",
39
+ "output_type": "stream",
40
+ "text": [
41
+ "WARNING:tensorflow:6 out of the last 7 calls to <function TensorFlowTrainer.make_predict_function.<locals>.one_step_on_data_distributed at 0x315091670> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n",
42
+ "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 608ms/step\n",
43
+ "[[0.49759743 0.50240254]]\n"
44
+ ]
45
+ }
46
+ ],
47
+ "source": [
48
+ "import gradio as gr\n",
49
+ "import tensorflow as tf\n",
50
+ "from PIL import Image\n",
51
+ "import numpy as np\n",
52
+ "\n",
53
+ "# Load the pre-trained model\n",
54
+ "model = tf.keras.models.load_model('dogs-vs-cats-model_transferlearning.keras')\n",
55
+ "\n",
56
+ "def classify_image(img):\n",
57
+ " \n",
58
+ " if isinstance(img, np.ndarray):\n",
59
+ " img = Image.fromarray(img.astype('uint8'), 'RGB')\n",
60
+ "\n",
61
+ " # Preprocess the image to fit the model's input requirements\n",
62
+ " img = img.resize((150, 150)) # Resize the image using PIL, which is intended here\n",
63
+ " img_array = np.array(img) # Convert the resized PIL image to a numpy array\n",
64
+ " img_array = img_array / 255.0 # Normalize pixel values to [0, 1]\n",
65
+ " img_array = np.expand_dims(img_array, axis=0) # Expand dimensions to fit model input shape\n",
66
+ "\n",
67
+ " # Make prediction\n",
68
+ " prediction = model.predict(img_array)\n",
69
+ "\n",
70
+ " # prediction = np.round(float(tf.sigmoid(prediction)), 2)\n",
71
+ " # p_cat = (1 - prediction)\n",
72
+ " # p_dog = prediction\n",
73
+ " # return {'cat': p_cat, 'dog': p_dog}\n",
74
+ "\n",
75
+ " print(prediction)\n",
76
+ "\n",
77
+ " probabilities = tf.sigmoid(prediction).numpy() # Convert tensor to numpy array if using \n",
78
+ "\n",
79
+ " # Formatting the probabilities\n",
80
+ " class_names = ['Cat', 'Dog']\n",
81
+ " results = {class_names[i]: float(prediction[0][i]) for i in range(2)} # Convert each probability to float\n",
82
+ " \n",
83
+ " return results\n",
84
+ "\n",
85
+ "# Create Gradio interface\n",
86
+ "iface = gr.Interface(fn=classify_image,\n",
87
+ " inputs=gr.Image(),\n",
88
+ " outputs=gr.Label(num_top_classes=2),\n",
89
+ " title=\"Cat vs Dog Classifier\",\n",
90
+ " description=\"Upload an image of a cat or dog to classify.\")\n",
91
+ "\n",
92
+ "# Launch the application\n",
93
+ "iface.launch()\n"
94
+ ]
95
+ }
96
+ ],
97
+ "metadata": {
98
+ "kernelspec": {
99
+ "display_name": "Python 3",
100
+ "language": "python",
101
+ "name": "python3"
102
+ },
103
+ "language_info": {
104
+ "codemirror_mode": {
105
+ "name": "ipython",
106
+ "version": 3
107
+ },
108
+ "file_extension": ".py",
109
+ "mimetype": "text/x-python",
110
+ "name": "python",
111
+ "nbconvert_exporter": "python",
112
+ "pygments_lexer": "ipython3",
113
+ "version": "3.9.6"
114
+ }
115
+ },
116
+ "nbformat": 4,
117
+ "nbformat_minor": 2
118
+ }
app_pokemon.ipynb ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 3,
6
+ "metadata": {},
7
+ "outputs": [
8
+ {
9
+ "name": "stdout",
10
+ "output_type": "stream",
11
+ "text": [
12
+ "Running on local URL: http://127.0.0.1:7862\n",
13
+ "Running on public URL: https://59007d69f4a41b96f2.gradio.live\n",
14
+ "\n",
15
+ "This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)\n"
16
+ ]
17
+ },
18
+ {
19
+ "data": {
20
+ "text/html": [
21
+ "<div><iframe src=\"https://59007d69f4a41b96f2.gradio.live\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>"
22
+ ],
23
+ "text/plain": [
24
+ "<IPython.core.display.HTML object>"
25
+ ]
26
+ },
27
+ "metadata": {},
28
+ "output_type": "display_data"
29
+ },
30
+ {
31
+ "data": {
32
+ "text/plain": []
33
+ },
34
+ "execution_count": 3,
35
+ "metadata": {},
36
+ "output_type": "execute_result"
37
+ },
38
+ {
39
+ "name": "stdout",
40
+ "output_type": "stream",
41
+ "text": [
42
+ "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 628ms/step\n",
43
+ "[[0.33698466 0.33483982 0.32817554]]\n",
44
+ "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 35ms/step\n",
45
+ "[[0.33667472 0.33442825 0.32889706]]\n"
46
+ ]
47
+ }
48
+ ],
49
+ "source": [
50
+ "import gradio as gr\n",
51
+ "import tensorflow as tf\n",
52
+ "from PIL import Image\n",
53
+ "import numpy as np\n",
54
+ "\n",
55
+ "# Load the pre-trained model\n",
56
+ "model = tf.keras.models.load_model('pokemon_transferlearning.keras')\n",
57
+ "\n",
58
+ "def classify_image(img):\n",
59
+ " \n",
60
+ " if isinstance(img, np.ndarray):\n",
61
+ " img = Image.fromarray(img.astype('uint8'), 'RGB')\n",
62
+ "\n",
63
+ " # Preprocess the image to fit the model's input requirements\n",
64
+ " img = img.resize((150, 150)) # Resize the image using PIL, which is intended here\n",
65
+ " img_array = np.array(img) # Convert the resized PIL image to a numpy array\n",
66
+ " img_array = img_array / 255.0 # Normalize pixel values to [0, 1]\n",
67
+ " img_array = np.expand_dims(img_array, axis=0) # Expand dimensions to fit model input shape\n",
68
+ "\n",
69
+ " # Make prediction\n",
70
+ " prediction = model.predict(img_array)\n",
71
+ "\n",
72
+ " # prediction = np.round(float(tf.sigmoid(prediction)), 2)\n",
73
+ " # p_cat = (1 - prediction)\n",
74
+ " # p_dog = prediction\n",
75
+ " # return {'cat': p_cat, 'dog': p_dog}\n",
76
+ "\n",
77
+ " print(prediction)\n",
78
+ "\n",
79
+ " probabilities = tf.sigmoid(prediction).numpy() # Convert tensor to numpy array if using \n",
80
+ "\n",
81
+ " # Formatting the probabilities\n",
82
+ " class_names = ['Hitchoman', 'Pikachu', 'Charmeleon']\n",
83
+ " results = {class_names[i]: float(prediction[0][i]) for i in range(3)} # Convert each probability to float\n",
84
+ " \n",
85
+ " return results\n",
86
+ "\n",
87
+ "# Create Gradio interface\n",
88
+ "iface = gr.Interface(fn=classify_image,\n",
89
+ " inputs=gr.Image(),\n",
90
+ " outputs=gr.Label(num_top_classes=3),\n",
91
+ " title=\"Pokemon Classifier\",\n",
92
+ " description=\"Upload an image of a pokemon to classify.\")\n",
93
+ "\n",
94
+ "# Launch the application\n",
95
+ "iface.launch(share=True)\n"
96
+ ]
97
+ }
98
+ ],
99
+ "metadata": {
100
+ "kernelspec": {
101
+ "display_name": "Python 3",
102
+ "language": "python",
103
+ "name": "python3"
104
+ },
105
+ "language_info": {
106
+ "codemirror_mode": {
107
+ "name": "ipython",
108
+ "version": 3
109
+ },
110
+ "file_extension": ".py",
111
+ "mimetype": "text/x-python",
112
+ "name": "python",
113
+ "nbconvert_exporter": "python",
114
+ "pygments_lexer": "ipython3",
115
+ "version": "3.9.6"
116
+ }
117
+ },
118
+ "nbformat": 4,
119
+ "nbformat_minor": 2
120
+ }
dogs-vs-cats-model_transferlearning.keras ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be78409d31d21d15c94cdeca9546556a421e9d5f5535f5b71cb185c3a2a95205
3
+ size 83967496
dogs-vs-cats/.DS_Store ADDED
Binary file (6.15 kB). View file
 
dogs-vs-cats/train/.DS_Store ADDED
Binary file (6.15 kB). View file
 
dogs-vs-cats/train/cat/Abyssinian_127_jpg.rf.b2553880d73a78e26e396fe7775f31be.jpg ADDED
dogs-vs-cats/train/cat/Abyssinian_131_jpg.rf.3aeee0801499f335e3a59b51189e1351.jpg ADDED
dogs-vs-cats/train/cat/Abyssinian_149_jpg.rf.b6b4a72a93f8bc2b239b18c5d181190c.jpg ADDED
dogs-vs-cats/train/cat/Abyssinian_15_jpg.rf.7bc44eeb9865e35cb1d5f9ef4f53b381.jpg ADDED
dogs-vs-cats/train/cat/Abyssinian_167_jpg.rf.1d367cb1cf82c1e5ebda79fda928cee5.jpg ADDED
dogs-vs-cats/train/cat/Bengal_103_jpg.rf.bb684501a53abf381a6bf07f9cd2243c.jpg ADDED
dogs-vs-cats/train/cat/Bengal_109_jpg.rf.aed42b8605ef92b579992d02e2e2cc4c.jpg ADDED
dogs-vs-cats/train/cat/Bengal_116_jpg.rf.8c6280ad977c6c749da4d35156e49286.jpg ADDED
dogs-vs-cats/train/cat/Bengal_13_jpg.rf.7c75131d257406a75d8d676dd9b5f5f7.jpg ADDED
dogs-vs-cats/train/cat/Bengal_145_jpg.rf.3dadbfbb39437890fc249f7edb37cb2f.jpg ADDED
dogs-vs-cats/train/cat/Bengal_150_jpg.rf.05c93a40014062c5ae66bae50a857aca.jpg ADDED
dogs-vs-cats/train/cat/Bengal_165_jpg.rf.31185846cf5892c6e7e3f02784e04fef.jpg ADDED
dogs-vs-cats/train/cat/Bengal_167_jpg.rf.1542d3551f036a577880f22719c2fd08.jpg ADDED
dogs-vs-cats/train/cat/Bengal_174_jpg.rf.bbac947432fbff310b6be201bd9a3de7.jpg ADDED
dogs-vs-cats/train/cat/Birman_105_jpg.rf.2f96b7dd47bb15df4def745602f5434d.jpg ADDED
dogs-vs-cats/train/cat/Birman_135_jpg.rf.d9cdc64e747de2078f60a4761fdc534a.jpg ADDED
dogs-vs-cats/train/cat/Birman_144_jpg.rf.369cb41f763175f21c7cfd77e77509ec.jpg ADDED
dogs-vs-cats/train/cat/Birman_151_jpg.rf.179ae9238f29eda8d63af4da89c48e05.jpg ADDED
dogs-vs-cats/train/cat/Birman_157_jpg.rf.cbf2d211aab989a6f26ef5b5cef5e63e.jpg ADDED
dogs-vs-cats/train/cat/Birman_159_jpg.rf.3ba8a57e52d925aa33e85822004c591d.jpg ADDED
dogs-vs-cats/train/cat/Birman_160_jpg.rf.dc1ca8f5f9cfd2aa585a7c024074ce7f.jpg ADDED
dogs-vs-cats/train/cat/Birman_166_jpg.rf.ac8785ee575600493ffac45e2b0d1342.jpg ADDED
dogs-vs-cats/train/cat/Birman_173_jpg.rf.b8656131a2f2fda3413154a7d01ad834.jpg ADDED
dogs-vs-cats/train/cat/Birman_186_jpg.rf.6c15b2f2afe3c230ded5e5d04d6affe5.jpg ADDED
dogs-vs-cats/train/cat/Birman_189_jpg.rf.29a9d3b4f764fc9e2cc6b78fbe5d30da.jpg ADDED
dogs-vs-cats/train/cat/Bombay_122_jpg.rf.218d47f5275b4de8706a9a56e6276113.jpg ADDED
dogs-vs-cats/train/cat/Bombay_125_jpg.rf.c91236394fb2adb244ba8866b53dbd43.jpg ADDED
dogs-vs-cats/train/cat/Bombay_127_jpg.rf.4c9fde3d1b3fc52a20cd4b2b82b98856.jpg ADDED
dogs-vs-cats/train/cat/Bombay_140_jpg.rf.15757f698af74453f34ee58604ea6afc.jpg ADDED
dogs-vs-cats/train/cat/Bombay_146_jpg.rf.288e58c8b226aa5b7c6ad4442f7fda5c.jpg ADDED
dogs-vs-cats/train/cat/Bombay_153_jpg.rf.2da5201d989106a5b1b4025aec3349b4.jpg ADDED
dogs-vs-cats/train/cat/Bombay_18_jpg.rf.68c07a9d844cc01b8bf5582d7d3c0e01.jpg ADDED
dogs-vs-cats/train/cat/British_Shorthair_101_jpg.rf.afa7cf2990a151279e674e2077fa306f.jpg ADDED
dogs-vs-cats/train/cat/British_Shorthair_109_jpg.rf.97fcd6a9c7f0d54b3d39d2d709237287.jpg ADDED
dogs-vs-cats/train/cat/British_Shorthair_154_jpg.rf.8e78c62b5e103771db2893338e5937da.jpg ADDED
dogs-vs-cats/train/cat/British_Shorthair_164_jpg.rf.8d27185e8344301592da98df828ab073.jpg ADDED
dogs-vs-cats/train/cat/British_Shorthair_166_jpg.rf.d18846beff566700c2e16e295bb701e4.jpg ADDED
dogs-vs-cats/train/cat/British_Shorthair_177_jpg.rf.5efbf04740eeac07cdd83e5773d24221.jpg ADDED
dogs-vs-cats/train/cat/British_Shorthair_187_jpg.rf.24d36402bce6b82092dc93876c65bb71.jpg ADDED
dogs-vs-cats/train/cat/British_Shorthair_193_jpg.rf.ab376d75fb05acc1ec59f06228ebe5bb.jpg ADDED