File size: 60,941 Bytes
c18055d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "9KsncGm-p90B",
        "outputId": "adf91a72-da16-45d1-d7c0-81d03f8c05ca"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "cp: cannot stat 'kaggle.json': No such file or directory\n"
          ]
        }
      ],
      "source": [
        "!mkdir -p ~/.kaggle\n",
        "!cp kaggle.json ~/.kaggle/"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "epMkM_TppxYe",
        "outputId": "5d8294fe-628f-4b35-fa21-ddffabc275d3"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Dataset URL: https://www.kaggle.com/datasets/salader/dogs-vs-cats\n",
            "License(s): unknown\n",
            "Downloading dogs-vs-cats.zip to /content\n",
            "100% 1.06G/1.06G [00:07<00:00, 102MB/s] \n",
            "100% 1.06G/1.06G [00:07<00:00, 147MB/s]\n"
          ]
        }
      ],
      "source": [
        "#kallge ka api command hai ..isse ka use kerke kaggle ka data directly fetch ker sakte hai\n",
        "!kaggle datasets download -d salader/dogs-vs-cats"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "QvlIgcpto4Yq"
      },
      "outputs": [],
      "source": [
        "#ab humare pass jo data aaaya hai ushko unzip kerna padega\n",
        "import zipfile\n",
        "zip_ref = zipfile.ZipFile('/content/dogs-vs-cats.zip', \"r\")\n",
        "zip_ref.extractall('/content')\n",
        "zip_ref.close()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "Rk5hM0ffrMcY"
      },
      "outputs": [],
      "source": [
        "import tensorflow as tf\n",
        "from tensorflow import keras\n",
        "from keras import Sequential\n",
        "from keras.layers import Dense,Conv2D, MaxPooling2D ,Flatten"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "UzXicNVEro9K",
        "outputId": "07a616bd-0efe-4614-9feb-ab0d7499a89a"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Found 20000 files belonging to 2 classes.\n",
            "Found 5000 files belonging to 2 classes.\n"
          ]
        }
      ],
      "source": [
        "import tensorflow as tf\n",
        "from tensorflow import keras\n",
        "\n",
        "train_ds = keras.utils.image_dataset_from_directory(\n",
        "    directory='/content/train',\n",
        "    labels='inferred',  # Fixed spelling\n",
        "    label_mode='int',\n",
        "    batch_size=32,\n",
        "    image_size=(256, 256)\n",
        ")\n",
        "\n",
        "validation_ds = keras.utils.image_dataset_from_directory(\n",
        "    directory='/content/test',\n",
        "    labels='inferred',  # Fixed spelling\n",
        "    label_mode='int',\n",
        "    batch_size=32,\n",
        "    image_size=(256, 256)\n",
        ")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "qp8_aex6tz41"
      },
      "outputs": [],
      "source": [
        "#normalize\n",
        "def process(image, label):\n",
        "  image = tf.cast(image/255. , tf.float32)\n",
        "  return image, label\n",
        "\n",
        "train_ds= train_ds.map(process)\n",
        "validation_ds = validation_ds.map(process)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "kDJ2DOJXu_TC",
        "outputId": "599d1759-18cb-42ce-cf5c-b34cc5947b2e"
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.11/dist-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
            "  super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n"
          ]
        }
      ],
      "source": [
        "#create cnn model\n",
        "model = Sequential()\n",
        "model.add(Conv2D(32, kernel_size =(3,3), activation = 'relu', padding = \"valid\", input_shape = (256,256,3) ))\n",
        "model.add(MaxPooling2D(pool_size = (2,2),strides = 2, padding = 'valid' ))\n",
        "\n",
        "model.add(Conv2D(64, kernel_size =(3,3), activation = 'relu', padding = \"valid\" ))\n",
        "model.add(MaxPooling2D(pool_size = (2,2),strides = 2, padding = 'valid' ))\n",
        "\n",
        "model.add(Conv2D(128, kernel_size =(3,3), activation = 'relu', padding = \"valid\"))\n",
        "model.add(MaxPooling2D(pool_size = (2,2),strides = 2, padding = 'valid' ))\n",
        "\n",
        "model.add(Flatten())\n",
        "model.add(Dense(128,activation = 'relu'))\n",
        "model.add(Dense(64, activation = 'relu'))\n",
        "model.add(Dense(1, activation = 'sigmoid'))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 476
        },
        "id": "DwLn_WKvvUL9",
        "outputId": "399fd888-3031-4f08-effa-d407527d3fa0"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential\"</span>\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\u001b[1mModel: \"sequential\"\u001b[0m\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
              "┃<span style=\"font-weight: bold\"> Layer (type)                         </span>┃<span style=\"font-weight: bold\"> Output Shape                </span>┃<span style=\"font-weight: bold\">         Param # </span>┃\n",
              "┑━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
              "β”‚ conv2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)                      β”‚ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">254</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">254</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)        β”‚             <span style=\"color: #00af00; text-decoration-color: #00af00\">896</span> β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ max_pooling2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)         β”‚ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">127</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">127</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)        β”‚               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ conv2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)                    β”‚ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">125</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">125</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)        β”‚          <span style=\"color: #00af00; text-decoration-color: #00af00\">18,496</span> β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ max_pooling2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)       β”‚ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">62</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">62</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)          β”‚               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ conv2d_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)                    β”‚ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">60</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">60</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)         β”‚          <span style=\"color: #00af00; text-decoration-color: #00af00\">73,856</span> β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ max_pooling2d_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)       β”‚ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">30</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">30</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)         β”‚               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ flatten (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Flatten</span>)                    β”‚ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">115200</span>)              β”‚               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                        β”‚ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)                 β”‚      <span style=\"color: #00af00; text-decoration-color: #00af00\">14,745,728</span> β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ dense_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                      β”‚ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)                  β”‚           <span style=\"color: #00af00; text-decoration-color: #00af00\">8,256</span> β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ dense_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                      β”‚ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>)                   β”‚              <span style=\"color: #00af00; text-decoration-color: #00af00\">65</span> β”‚\n",
              "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜\n",
              "</pre>\n"
            ],
            "text/plain": [
              "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
              "┃\u001b[1m \u001b[0m\u001b[1mLayer (type)                        \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape               \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m        Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
              "┑━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
              "β”‚ conv2d (\u001b[38;5;33mConv2D\u001b[0m)                      β”‚ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m254\u001b[0m, \u001b[38;5;34m254\u001b[0m, \u001b[38;5;34m32\u001b[0m)        β”‚             \u001b[38;5;34m896\u001b[0m β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ max_pooling2d (\u001b[38;5;33mMaxPooling2D\u001b[0m)         β”‚ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m127\u001b[0m, \u001b[38;5;34m127\u001b[0m, \u001b[38;5;34m32\u001b[0m)        β”‚               \u001b[38;5;34m0\u001b[0m β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ conv2d_1 (\u001b[38;5;33mConv2D\u001b[0m)                    β”‚ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m125\u001b[0m, \u001b[38;5;34m125\u001b[0m, \u001b[38;5;34m64\u001b[0m)        β”‚          \u001b[38;5;34m18,496\u001b[0m β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ max_pooling2d_1 (\u001b[38;5;33mMaxPooling2D\u001b[0m)       β”‚ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m62\u001b[0m, \u001b[38;5;34m62\u001b[0m, \u001b[38;5;34m64\u001b[0m)          β”‚               \u001b[38;5;34m0\u001b[0m β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ conv2d_2 (\u001b[38;5;33mConv2D\u001b[0m)                    β”‚ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m60\u001b[0m, \u001b[38;5;34m60\u001b[0m, \u001b[38;5;34m128\u001b[0m)         β”‚          \u001b[38;5;34m73,856\u001b[0m β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ max_pooling2d_2 (\u001b[38;5;33mMaxPooling2D\u001b[0m)       β”‚ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m30\u001b[0m, \u001b[38;5;34m30\u001b[0m, \u001b[38;5;34m128\u001b[0m)         β”‚               \u001b[38;5;34m0\u001b[0m β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ flatten (\u001b[38;5;33mFlatten\u001b[0m)                    β”‚ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m115200\u001b[0m)              β”‚               \u001b[38;5;34m0\u001b[0m β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ dense (\u001b[38;5;33mDense\u001b[0m)                        β”‚ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m)                 β”‚      \u001b[38;5;34m14,745,728\u001b[0m β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ dense_1 (\u001b[38;5;33mDense\u001b[0m)                      β”‚ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m)                  β”‚           \u001b[38;5;34m8,256\u001b[0m β”‚\n",
              "β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n",
              "β”‚ dense_2 (\u001b[38;5;33mDense\u001b[0m)                      β”‚ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m)                   β”‚              \u001b[38;5;34m65\u001b[0m β”‚\n",
              "β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">14,847,297</span> (56.64 MB)\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m14,847,297\u001b[0m (56.64 MB)\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">14,847,297</span> (56.64 MB)\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m14,847,297\u001b[0m (56.64 MB)\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "model.summary()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "j-xdy5DMwwCn"
      },
      "outputs": [],
      "source": [
        "model.compile(optimizer = 'adam', loss= 'binary_crossentropy', metrics = ['accuracy'])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "kHV41wadxMTf",
        "outputId": "b89c05a9-3f69-4077-ff9a-753bb0d7eeb0"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Epoch 1/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m54s\u001b[0m 73ms/step - accuracy: 0.5726 - loss: 0.7222 - val_accuracy: 0.7048 - val_loss: 0.5793\n",
            "Epoch 2/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m66s\u001b[0m 106ms/step - accuracy: 0.7254 - loss: 0.5430 - val_accuracy: 0.7702 - val_loss: 0.4906\n",
            "Epoch 3/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m64s\u001b[0m 77ms/step - accuracy: 0.8056 - loss: 0.4145 - val_accuracy: 0.7622 - val_loss: 0.5422\n",
            "Epoch 4/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m76s\u001b[0m 67ms/step - accuracy: 0.8870 - loss: 0.2681 - val_accuracy: 0.7612 - val_loss: 0.7744\n",
            "Epoch 5/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m81s\u001b[0m 66ms/step - accuracy: 0.9457 - loss: 0.1373 - val_accuracy: 0.7468 - val_loss: 0.9700\n",
            "Epoch 6/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m86s\u001b[0m 73ms/step - accuracy: 0.9667 - loss: 0.0934 - val_accuracy: 0.7558 - val_loss: 1.2279\n",
            "Epoch 7/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m78s\u001b[0m 66ms/step - accuracy: 0.9813 - loss: 0.0573 - val_accuracy: 0.7586 - val_loss: 1.3820\n",
            "Epoch 8/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m86s\u001b[0m 73ms/step - accuracy: 0.9836 - loss: 0.0475 - val_accuracy: 0.7562 - val_loss: 1.3795\n",
            "Epoch 9/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m42s\u001b[0m 67ms/step - accuracy: 0.9863 - loss: 0.0418 - val_accuracy: 0.7522 - val_loss: 1.3611\n",
            "Epoch 10/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 65ms/step - accuracy: 0.9909 - loss: 0.0282 - val_accuracy: 0.7594 - val_loss: 1.5585\n",
            "Epoch 11/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 65ms/step - accuracy: 0.9946 - loss: 0.0210 - val_accuracy: 0.7674 - val_loss: 1.5576\n",
            "Epoch 12/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m42s\u001b[0m 67ms/step - accuracy: 0.9935 - loss: 0.0191 - val_accuracy: 0.7464 - val_loss: 1.8050\n",
            "Epoch 13/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 66ms/step - accuracy: 0.9924 - loss: 0.0314 - val_accuracy: 0.7656 - val_loss: 1.6694\n",
            "Epoch 14/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m86s\u001b[0m 73ms/step - accuracy: 0.9935 - loss: 0.0176 - val_accuracy: 0.7572 - val_loss: 2.0530\n",
            "Epoch 15/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m78s\u001b[0m 66ms/step - accuracy: 0.9917 - loss: 0.0262 - val_accuracy: 0.7676 - val_loss: 1.5757\n",
            "Epoch 16/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m46s\u001b[0m 74ms/step - accuracy: 0.9946 - loss: 0.0140 - val_accuracy: 0.7572 - val_loss: 1.7711\n",
            "Epoch 17/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m46s\u001b[0m 73ms/step - accuracy: 0.9926 - loss: 0.0222 - val_accuracy: 0.7648 - val_loss: 1.9376\n",
            "Epoch 18/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m82s\u001b[0m 73ms/step - accuracy: 0.9961 - loss: 0.0124 - val_accuracy: 0.7518 - val_loss: 2.0122\n",
            "Epoch 19/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m82s\u001b[0m 73ms/step - accuracy: 0.9952 - loss: 0.0169 - val_accuracy: 0.7546 - val_loss: 1.7739\n",
            "Epoch 20/20\n",
            "\u001b[1m625/625\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m46s\u001b[0m 73ms/step - accuracy: 0.9938 - loss: 0.0188 - val_accuracy: 0.7584 - val_loss: 1.9832\n"
          ]
        },
        {
          "data": {
            "text/plain": [
              "<keras.src.callbacks.history.History at 0x7d46d4556f50>"
            ]
          },
          "execution_count": 11,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "history = model.fit(train_ds, epochs = 10, validation_data = validation_ds)\n",
        "history"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "background_save": true
        },
        "id": "SVku8fIrxZGf",
        "outputId": "3275efa6-576d-4564-8ecd-1f74768aaf54"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "plt.plot(history.history['accuracy'], color = 'red', label = 'train')\n",
        "plt.plot(history.history['val_accuracy'], color = 'blue', label = 'validation')\n",
        "plt.legend()\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "GwmcZ0N7ywfe"
      },
      "outputs": [],
      "source": []
    }
  ],
  "metadata": {
    "accelerator": "GPU",
    "colab": {
      "gpuType": "T4",
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}