{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":5048,"databundleVersionId":868335,"sourceType":"competition"}],"dockerImageVersionId":30683,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport tensorflow as tf\nimport matplotlib.pyplot as plt\nimport os\nfrom keras.models import Sequential\nfrom keras.layers import Dense, Flatten, Dropout, Conv2D, MaxPooling2D\nfrom keras.optimizers import Adam\nfrom tensorflow.keras.applications import ResNet50\nfrom tensorflow.keras.applications.resnet50 import preprocess_input\n\n","metadata":{"execution":{"iopub.status.busy":"2024-04-09T18:27:48.918436Z","iopub.execute_input":"2024-04-09T18:27:48.91875Z","iopub.status.idle":"2024-04-09T18:28:01.265168Z","shell.execute_reply.started":"2024-04-09T18:27:48.918723Z","shell.execute_reply":"2024-04-09T18:28:01.264385Z"},"trusted":true},"execution_count":1,"outputs":[{"name":"stderr","text":"2024-04-09 18:27:50.617276: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n2024-04-09 18:27:50.617392: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n2024-04-09 18:27:50.746721: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n","output_type":"stream"}]},{"cell_type":"markdown","source":"**The data is divided into train and test folders. The train folder has subfolders named after the classes, and each subfolder contains the images. We just need to split the train data into train + validation data.**","metadata":{}},{"cell_type":"code","source":"train_dir = '/kaggle/input/state-farm-distracted-driver-detection/imgs/train'","metadata":{"execution":{"iopub.status.busy":"2024-04-09T02:15:26.156115Z","iopub.execute_input":"2024-04-09T02:15:26.156684Z","iopub.status.idle":"2024-04-09T02:15:26.160742Z","shell.execute_reply.started":"2024-04-09T02:15:26.156655Z","shell.execute_reply":"2024-04-09T02:15:26.159699Z"},"trusted":true},"execution_count":3,"outputs":[]},{"cell_type":"code","source":"train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(\n    rescale=1./255,\n    validation_split=0.2 \n)\n\ntrain_generator = train_datagen.flow_from_directory(\n    train_dir,\n    target_size=(150, 150),\n    batch_size=64,\n    class_mode='categorical',\n    subset='training'  \n)\n\nvalidation_generator = train_datagen.flow_from_directory(\n    train_dir,\n    target_size=(150, 150),\n    batch_size=64,\n    class_mode='categorical',\n    subset='validation'  \n)","metadata":{"execution":{"iopub.status.busy":"2024-04-09T00:19:38.905105Z","iopub.execute_input":"2024-04-09T00:19:38.90548Z","iopub.status.idle":"2024-04-09T00:19:44.132335Z","shell.execute_reply.started":"2024-04-09T00:19:38.905453Z","shell.execute_reply":"2024-04-09T00:19:44.131362Z"},"trusted":true},"execution_count":64,"outputs":[{"name":"stdout","text":"Found 17943 images belonging to 10 classes.\nFound 4481 images belonging to 10 classes.\n","output_type":"stream"}]},{"cell_type":"markdown","source":"# > **Let's try a NN made up of dense layers only**","metadata":{}},{"cell_type":"code","source":"model = Sequential()\nmodel.add(Flatten(input_shape=(150, 150, 3)))\nmodel.add(Dense(512, activation='relu'))\nmodel.add(Dense(256, activation='relu'))\nmodel.add(Dense(128, activation='relu'))\nmodel.add(Dense(64, activation='relu'))\nmodel.add(Dense(32, activation='relu'))\nmodel.add(Dense(10, activation='softmax'))  \n\nmodel.compile(optimizer=tf.keras.optimizers.Adam(0.0001),\n              loss='categorical_crossentropy',\n              metrics=['accuracy'])\n\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-04-08T23:36:18.532229Z","iopub.execute_input":"2024-04-08T23:36:18.532635Z","iopub.status.idle":"2024-04-08T23:36:18.892555Z","shell.execute_reply.started":"2024-04-08T23:36:18.532605Z","shell.execute_reply":"2024-04-08T23:36:18.891673Z"},"trusted":true},"execution_count":41,"outputs":[{"output_type":"display_data","data":{"text/plain":"\u001b[1mModel: \"sequential_5\"\u001b[0m\n","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_5\"</span>\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"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│ flatten_5 (\u001b[38;5;33mFlatten\u001b[0m)             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m67500\u001b[0m)          │             \u001b[38;5;34m0\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_24 (\u001b[38;5;33mDense\u001b[0m)                │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m)            │    \u001b[38;5;34m34,560,512\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_25 (\u001b[38;5;33mDense\u001b[0m)                │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m)            │       \u001b[38;5;34m131,328\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_26 (\u001b[38;5;33mDense\u001b[0m)                │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m)            │        \u001b[38;5;34m32,896\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_27 (\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_28 (\u001b[38;5;33mDense\u001b[0m)                │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m)             │         \u001b[38;5;34m2,080\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_29 (\u001b[38;5;33mDense\u001b[0m)                │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m)             │           \u001b[38;5;34m330\u001b[0m │\n└─────────────────────────────────┴────────────────────────┴───────────────┘\n","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│ flatten_5 (<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\">67500</span>)          │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_24 (<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\">512</span>)            │    <span style=\"color: #00af00; text-decoration-color: #00af00\">34,560,512</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_25 (<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\">256</span>)            │       <span style=\"color: #00af00; text-decoration-color: #00af00\">131,328</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_26 (<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\">32,896</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_27 (<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_28 (<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\">32</span>)             │         <span style=\"color: #00af00; text-decoration-color: #00af00\">2,080</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_29 (<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\">10</span>)             │           <span style=\"color: #00af00; text-decoration-color: #00af00\">330</span> │\n└─────────────────────────────────┴────────────────────────┴───────────────┘\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m34,735,402\u001b[0m (132.51 MB)\n","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\">34,735,402</span> (132.51 MB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m34,735,402\u001b[0m (132.51 MB)\n","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\">34,735,402</span> (132.51 MB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n","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"},"metadata":{}}]},{"cell_type":"code","source":"history = model.fit(\n      train_generator,\n      steps_per_epoch = 17943 // 64,   #no of samples//batch_size\n      epochs = 10,\n      validation_data = validation_generator,\n      validation_steps = 50)","metadata":{"execution":{"iopub.status.busy":"2024-04-08T23:36:23.028558Z","iopub.execute_input":"2024-04-08T23:36:23.029143Z","iopub.status.idle":"2024-04-08T23:51:38.61077Z","shell.execute_reply.started":"2024-04-08T23:36:23.029113Z","shell.execute_reply":"2024-04-08T23:51:38.609503Z"},"trusted":true},"execution_count":42,"outputs":[{"name":"stdout","text":"Epoch 1/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m148s\u001b[0m 517ms/step - accuracy: 0.3004 - loss: 1.9549 - val_accuracy: 0.7050 - val_loss: 0.9582\nEpoch 2/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 17ms/step - accuracy: 0.7188 - loss: 0.4991 - val_accuracy: 0.6862 - val_loss: 0.9067\nEpoch 3/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m191s\u001b[0m 499ms/step - accuracy: 0.7880 - loss: 0.7442 - val_accuracy: 0.8969 - val_loss: 0.3956\nEpoch 4/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 23ms/step - accuracy: 0.9688 - loss: 0.1582 - val_accuracy: 0.8970 - val_loss: 0.4247\nEpoch 5/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m198s\u001b[0m 509ms/step - accuracy: 0.9281 - loss: 0.3068 - val_accuracy: 0.9209 - val_loss: 0.2816\nEpoch 6/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 18ms/step - accuracy: 0.9219 - loss: 0.1352 - val_accuracy: 0.9493 - val_loss: 0.2106\nEpoch 7/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m148s\u001b[0m 521ms/step - accuracy: 0.9516 - loss: 0.1939 - val_accuracy: 0.9678 - val_loss: 0.1428\nEpoch 8/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 18ms/step - accuracy: 0.9844 - loss: 0.0527 - val_accuracy: 0.9641 - val_loss: 0.1586\nEpoch 9/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m198s\u001b[0m 528ms/step - accuracy: 0.9787 - loss: 0.1014 - val_accuracy: 0.9391 - val_loss: 0.1949\nEpoch 10/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 26ms/step - accuracy: 0.9219 - loss: 0.0777 - val_accuracy: 0.9657 - val_loss: 0.1177\n","output_type":"stream"}]},{"cell_type":"markdown","source":"# > **Let's try CNN**","metadata":{}},{"cell_type":"code","source":"model = Sequential()\nmodel.add(Conv2D(64, (3, 3), activation='relu', input_shape=(150, 150, 3)))\nmodel.add(MaxPooling2D((2, 2)))\nmodel.add(Conv2D(32, (3, 3), activation='relu'))\nmodel.add(MaxPooling2D((2, 2)))\nmodel.add(Conv2D(16, (3, 3), activation='relu'))\nmodel.add(MaxPooling2D((2, 2)))\n\nmodel.add(Flatten())\n\nmodel.add(Dense(128, activation='relu'))\n\nmodel.add(Dense(10, activation='softmax'))","metadata":{"execution":{"iopub.status.busy":"2024-04-09T00:26:10.226365Z","iopub.execute_input":"2024-04-09T00:26:10.227272Z","iopub.status.idle":"2024-04-09T00:26:10.343235Z","shell.execute_reply.started":"2024-04-09T00:26:10.227235Z","shell.execute_reply":"2024-04-09T00:26:10.342149Z"},"trusted":true},"execution_count":71,"outputs":[]},{"cell_type":"code","source":"model.compile(optimizer=tf.keras.optimizers.Adam(0.0001),\n              loss='categorical_crossentropy',\n              metrics=['accuracy'])\n\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-04-09T00:26:11.536181Z","iopub.execute_input":"2024-04-09T00:26:11.5367Z","iopub.status.idle":"2024-04-09T00:26:11.574352Z","shell.execute_reply.started":"2024-04-09T00:26:11.536664Z","shell.execute_reply":"2024-04-09T00:26:11.572809Z"},"trusted":true},"execution_count":72,"outputs":[{"output_type":"display_data","data":{"text/plain":"\u001b[1mModel: \"sequential_8\"\u001b[0m\n","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_8\"</span>\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"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_6 (\u001b[38;5;33mConv2D\u001b[0m)               │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m148\u001b[0m, \u001b[38;5;34m148\u001b[0m, \u001b[38;5;34m64\u001b[0m)   │         \u001b[38;5;34m1,792\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ max_pooling2d_6 (\u001b[38;5;33mMaxPooling2D\u001b[0m)  │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m74\u001b[0m, \u001b[38;5;34m74\u001b[0m, \u001b[38;5;34m64\u001b[0m)     │             \u001b[38;5;34m0\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ conv2d_7 (\u001b[38;5;33mConv2D\u001b[0m)               │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m72\u001b[0m, \u001b[38;5;34m72\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │        \u001b[38;5;34m18,464\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ max_pooling2d_7 (\u001b[38;5;33mMaxPooling2D\u001b[0m)  │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m36\u001b[0m, \u001b[38;5;34m36\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │             \u001b[38;5;34m0\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ conv2d_8 (\u001b[38;5;33mConv2D\u001b[0m)               │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m34\u001b[0m, \u001b[38;5;34m34\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │         \u001b[38;5;34m4,624\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ max_pooling2d_8 (\u001b[38;5;33mMaxPooling2D\u001b[0m)  │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m17\u001b[0m, \u001b[38;5;34m17\u001b[0m, \u001b[38;5;34m16\u001b[0m)     │             \u001b[38;5;34m0\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ flatten_8 (\u001b[38;5;33mFlatten\u001b[0m)             │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m4624\u001b[0m)           │             \u001b[38;5;34m0\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_35 (\u001b[38;5;33mDense\u001b[0m)                │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m)            │       \u001b[38;5;34m592,000\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_36 (\u001b[38;5;33mDense\u001b[0m)                │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m)             │         \u001b[38;5;34m1,290\u001b[0m │\n└─────────────────────────────────┴────────────────────────┴───────────────┘\n","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_6 (<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\">148</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">148</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)   │         <span style=\"color: #00af00; text-decoration-color: #00af00\">1,792</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ max_pooling2d_6 (<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\">74</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">74</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ conv2d_7 (<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\">72</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">72</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │        <span style=\"color: #00af00; text-decoration-color: #00af00\">18,464</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ max_pooling2d_7 (<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\">36</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">36</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ conv2d_8 (<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\">34</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">34</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │         <span style=\"color: #00af00; text-decoration-color: #00af00\">4,624</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ max_pooling2d_8 (<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\">17</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">17</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ flatten_8 (<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\">4624</span>)           │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_35 (<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\">592,000</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_36 (<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\">10</span>)             │         <span style=\"color: #00af00; text-decoration-color: #00af00\">1,290</span> │\n└─────────────────────────────────┴────────────────────────┴───────────────┘\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m618,170\u001b[0m (2.36 MB)\n","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\">618,170</span> (2.36 MB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m618,170\u001b[0m (2.36 MB)\n","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\">618,170</span> (2.36 MB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n","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"},"metadata":{}}]},{"cell_type":"code","source":"history = model.fit(\n      train_generator,\n      steps_per_epoch = 17943 // 64,   #no of samples//batch_size\n      epochs = 20,\n      validation_data = validation_generator,\n      validation_steps = 50)","metadata":{"execution":{"iopub.status.busy":"2024-04-09T00:26:18.589516Z","iopub.execute_input":"2024-04-09T00:26:18.589956Z","iopub.status.idle":"2024-04-09T01:53:37.227028Z","shell.execute_reply.started":"2024-04-09T00:26:18.589913Z","shell.execute_reply":"2024-04-09T01:53:37.225819Z"},"trusted":true},"execution_count":73,"outputs":[{"name":"stdout","text":"Epoch 1/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m483s\u001b[0m 2s/step - accuracy: 0.3000 - loss: 1.9827 - val_accuracy: 0.8100 - val_loss: 0.6859\nEpoch 2/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 56ms/step - accuracy: 0.8125 - loss: 0.3082 - val_accuracy: 0.7994 - val_loss: 0.6168\nEpoch 3/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m498s\u001b[0m 2s/step - accuracy: 0.8571 - loss: 0.5137 - val_accuracy: 0.9400 - val_loss: 0.2483\nEpoch 4/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 34ms/step - accuracy: 0.8750 - loss: 0.1594 - val_accuracy: 0.9422 - val_loss: 0.2092\nEpoch 5/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m537s\u001b[0m 2s/step - accuracy: 0.9543 - loss: 0.1827 - val_accuracy: 0.9522 - val_loss: 0.1749\nEpoch 6/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 33ms/step - accuracy: 0.9844 - loss: 0.1084 - val_accuracy: 0.9454 - val_loss: 0.1660\nEpoch 7/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m490s\u001b[0m 2s/step - accuracy: 0.9705 - loss: 0.1104 - val_accuracy: 0.9741 - val_loss: 0.1136\nEpoch 8/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 54ms/step - accuracy: 0.9844 - loss: 0.0318 - val_accuracy: 0.9820 - val_loss: 0.0818\nEpoch 9/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m550s\u001b[0m 2s/step - accuracy: 0.9834 - loss: 0.0674 - val_accuracy: 0.9719 - val_loss: 0.1037\nEpoch 10/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 34ms/step - accuracy: 0.9844 - loss: 0.0242 - val_accuracy: 0.9742 - val_loss: 0.0932\nEpoch 11/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m535s\u001b[0m 2s/step - accuracy: 0.9896 - loss: 0.0445 - val_accuracy: 0.9778 - val_loss: 0.0851\nEpoch 12/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 33ms/step - accuracy: 0.9531 - loss: 0.0495 - val_accuracy: 0.9766 - val_loss: 0.0705\nEpoch 13/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m482s\u001b[0m 2s/step - accuracy: 0.9921 - loss: 0.0326 - val_accuracy: 0.9834 - val_loss: 0.0665\nEpoch 14/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 55ms/step - accuracy: 1.0000 - loss: 0.0107 - val_accuracy: 0.9852 - val_loss: 0.0373\nEpoch 15/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m495s\u001b[0m 2s/step - accuracy: 0.9963 - loss: 0.0175 - val_accuracy: 0.9825 - val_loss: 0.0704\nEpoch 16/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 33ms/step - accuracy: 1.0000 - loss: 0.0034 - val_accuracy: 0.9906 - val_loss: 0.0494\nEpoch 17/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m538s\u001b[0m 2s/step - accuracy: 0.9965 - loss: 0.0141 - val_accuracy: 0.9866 - val_loss: 0.0567\nEpoch 18/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 34ms/step - accuracy: 1.0000 - loss: 0.0100 - val_accuracy: 0.9914 - val_loss: 0.0319\nEpoch 19/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m496s\u001b[0m 2s/step - accuracy: 0.9988 - loss: 0.0072 - val_accuracy: 0.9853 - val_loss: 0.0607\nEpoch 20/20\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 34ms/step - accuracy: 1.0000 - loss: 0.0031 - val_accuracy: 0.9875 - val_loss: 0.0343\n","output_type":"stream"}]},{"cell_type":"code","source":"val_acc = history.history['val_accuracy']\nprint(\"Validation Accuracy:\", val_acc[-1])","metadata":{"execution":{"iopub.status.busy":"2024-04-09T01:54:21.210353Z","iopub.execute_input":"2024-04-09T01:54:21.210843Z","iopub.status.idle":"2024-04-09T01:54:21.216526Z","shell.execute_reply.started":"2024-04-09T01:54:21.210808Z","shell.execute_reply":"2024-04-09T01:54:21.215758Z"},"trusted":true},"execution_count":74,"outputs":[{"name":"stdout","text":"Validation Accuracy: 0.9875097870826721\n","output_type":"stream"}]},{"cell_type":"code","source":"plt.plot(history.history['loss'], label='Training Loss')\nplt.plot(history.history['val_loss'], label='Validation Loss')\nplt.xlabel('Epoch')\nplt.ylabel('Loss')\nplt.title('Training and Validation Loss')\nplt.legend()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-04-09T01:58:53.794782Z","iopub.execute_input":"2024-04-09T01:58:53.795424Z","iopub.status.idle":"2024-04-09T01:58:54.057961Z","shell.execute_reply.started":"2024-04-09T01:58:53.795392Z","shell.execute_reply":"2024-04-09T01:58:54.05673Z"},"trusted":true},"execution_count":77,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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RERE1sBwY2FenA5ORERkVQw3FlYyHZzhhoiIyBoYbizMcAuGXHZLERERWQPDjYV56sMNW26IiIisguHGwryLu6XS2HJDRERkFQw3FmZoueFUcCIiIqtguLEwL3ZLERERWRXDjYXpZ0vlarTI12htXBsiIqKGz6bh5uDBg4iOjkZAQAAkEgm2bdtWafktW7bgySefhLe3N1xcXBAeHo69e/dap7I15KyUQyEXv83smiIiIrI8m4ab3NxchIWFYfny5dUqf/DgQTz55JPYtWsXTp06hQEDBiA6OhpnzpyxcE1rTiKRwNuwkB8HFRMREVma3JYnj4qKQlRUVLXLL1myxOj1+++/j+3bt+Pnn39Gly5dzFw78/FUKXAnI5/jboiIiKygXo+50el0yM7OhoeHh62rUinegoGIiMh6bNpyU1sff/wxcnJyMGLEiArLqNVqqNUloSIrK8saVTPi6cSbZxIREVlLvW25Wb9+PebNm4effvoJPj4+FZZbtGgRXF1dDY/AwEAr1lLk5cy1boiIiKylXoabDRs2YOLEifjpp58QERFRadmZM2ciMzPT8Lh165aValmCLTdERETWU++6pX788UdMmDABGzZswODBg6ssr1QqoVQqrVCzink7cyE/IiIia7FpuMnJycG1a9cMr+Pj43H27Fl4eHigWbNmmDlzJu7cuYN169YBELuixo4di//7v/9Dz549kZycDABwcHCAq6urTa6hOjydOKCYiIjIWmzaLXXy5El06dLFMI17+vTp6NKlC2bPng0ASEpKQmJioqH8V199haKiIkyZMgX+/v6Gx2uvvWaT+leXlzO7pYiIiKzFpi03/fv3hyAIFb6/du1ao9cHDhywbIUsRD8V/EGeBkVaHeSyejnUiYiIqF7gX1krcHdUQCoBBAFIz2PrDRERkSUx3FiBTCqBR/GMqTR2TREREVkUw42V6AcVc60bIiIiy2K4sRL9oGK23BAREVkWw42VsOWGiIjIOhhurEQ/Y+o+ww0REZFFMdxYiaeK3VJERETWwHBjJd4qdksRERFZA8ONlXBAMRERkXUw3FgJBxQTERFZB8ONlXgV3xk8LUdT6S0niIiIqHYYbqzEs3iFYo1Wh6yCIhvXhoiIqOFiuLESezsZnJXifUrT2DVFRERkMQw3VqSfDp7KQcVEREQWw3BjRV6cDk5ERGRxDDdWVLKQH8MNERGRpTDcWFHJLRjYLUVERGQpDDdWpA83bLkhIiKyHIYbK/IyDChmuCEiIrIUhhsrKmm5YbcUERGRpTDcWJEnZ0sRERFZHMONFXlxnRsiIiKLY7ixIn3LTY66CAWFWhvXhoiIqGFiuLEiF3s5FDLxW86uKSIiIstguLEiiURi6JrioGIiIiLLYLixMg4qJiIisiyGGytjyw0REZFlMdxYmafhFgxsuSEiIrIEhhsr40J+RERElsVwY2W8BQMREZFlMdxYmRcHFBMREVkUw42VeXJAMRERkUUx3FgZW26IiIgsy6bh5uDBg4iOjkZAQAAkEgm2bdtW5T4HDhzAI488AqVSiZYtW2Lt2rUWr6c56cNNep4GWp1g49oQERE1PDYNN7m5uQgLC8Py5curVT4+Ph6DBw/GgAEDcPbsWbz++uuYOHEi9u7da+Gamo+7ox0kEkAQgPRcdk0RERGZm9yWJ4+KikJUVFS1y69cuRLNmzfHJ598AgBo27YtDh8+jM8++wyRkZGWqqZZyWVSeDgqkJarQVquGt7OSltXiYiIqEGpV2Nujh07hoiICKNtkZGROHbsWIX7qNVqZGVlGT1sTT+oODWbLTdERETmVq/CTXJyMnx9fY22+fr6IisrC/n5+eXus2jRIri6uhoegYGB1qhqpQwL+eVyUDEREZG51atwUxMzZ85EZmam4XHr1i1bV6nkFgzZDDdERETmZtMxN6by8/NDSkqK0baUlBS4uLjAwcGh3H2USiWUyro1rqVklWJ2SxEREZlbvWq5CQ8PR2xsrNG2mJgYhIeH26hGNVNyfym23BAREZmbTcNNTk4Ozp49i7NnzwIQp3qfPXsWiYmJAMQupTFjxhjKv/TSS7hx4wbeeustXLp0CV988QV++uknvPHGG7aofo3x/lJERESWY9Nwc/LkSXTp0gVdunQBAEyfPh1dunTB7NmzAQBJSUmGoAMAzZs3x86dOxETE4OwsDB88skn+Oabb+rNNHC9kgHF7JYiIiIyN5uOuenfvz8EoeJVestbfbh///44c+aMBWtlefoBxakcUExERGR29WrMTUNh6JbK1VQa7oiIiMh0DDc2oO+W0hTpkK0usnFtiIiIGhaGGxuwt5NBpRR7BNM4HZyIiMisGG5sxJMzpoiIiCyC4cZGvDiomIiIyCIYbmzE06lkUDERERGZD8ONjXg5s+WGiIjIEhhubIR3BiciIrIMhhsbMax1k81uKSIiInNiuLERttwQERFZBsONjRgGFHOdGyIiIrNiuLERw4BirnNDRERkVgw3NuLlJIab7IIiFBRqbVwbIiKihoPhxkZcHOSwk0kAAGlc64aIiMhsGG5sRCKRwLO49SaNXVNERERmw3BjQ17OvL8UERGRuTHc2JDh/lKcMUVERGQ2DDc2pO+WYssNERGR+TDc2JC+WyqNLTdERERmw3BjQ15suSEiIjI7hhsbYssNERGR+THc2BDH3BAREZkfw40NlcyWYrghIiIyF4YbG/JSid1S6bkaaHWCjWtDRETUMDDc2JCHkwISCaATgAd5HHdDRERkDgw3NiSXSeHuyEHFRERE5sRwY2OeTrwFAxERkTkx3NgYBxUTERGZF8ONjXmq9C037JYiIiIyB4YbG9O33KSx5YaIiMgsGG5szEvFMTdERETmxHBjYyVjbtgtRUREZA41Cje3bt3C7du3Da+PHz+O119/HV999ZXZKtZYeLJbioiIyKxqFG6ef/557N+/HwCQnJyMJ598EsePH8e7776L+fPnm3y85cuXIzg4GPb29ujZsyeOHz9eafklS5agdevWcHBwQGBgIN544w0UFBTU5FJszosDiomIiMyqRuHm4sWL6NGjBwDgp59+QocOHXD06FH88MMPWLt2rUnH2rhxI6ZPn445c+bg9OnTCAsLQ2RkJO7du1du+fXr1+Odd97BnDlzEBcXh1WrVmHjxo3497//XZNLsbnSU8EFgbdgICIiqq0ahZvCwkIoleIf5X379uGZZ54BALRp0wZJSUkmHevTTz/FpEmTMH78eLRr1w4rV66Eo6MjVq9eXW75o0ePonfv3nj++ecRHByMp556CqNGjaqytaeu0ocbdZEOOeoiG9eGiIio/qtRuGnfvj1WrlyJQ4cOISYmBgMHDgQA3L17F56entU+jkajwalTpxAREVFSIakUEREROHbsWLn79OrVC6dOnTKEmRs3bmDXrl0YNGhQueXVajWysrKMHnWJg0IGJ4UMAG/BQEREZA41CjcffvghvvzyS/Tv3x+jRo1CWFgYAGDHjh2G7qrqSE1NhVarha+vr9F2X19fJCcnl7vP888/j/nz5+Oxxx6DnZ0dQkJC0L9//wq7pRYtWgRXV1fDIzAwsNr1sxZPrlJM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"},"metadata":{}}]},{"cell_type":"markdown","source":"# > **Let's try data augmentation and transfer learning**","metadata":{}},{"cell_type":"code","source":"train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(\n    preprocessing_function=preprocess_input,\n    rotation_range=20,\n    shear_range=0.2,\n    zoom_range=0.2,\n    horizontal_flip=True,\n    validation_split=0.2 \n)\n\ntrain_generator = train_datagen.flow_from_directory(\n    train_dir,\n    target_size=(150, 150),\n    batch_size=64,\n    class_mode='categorical',\n    subset='training'  \n)\n\nvalidation_generator = train_datagen.flow_from_directory(\n    train_dir,\n    target_size=(150, 150),\n    batch_size=64,\n    class_mode='categorical',\n    subset='validation'  \n)","metadata":{"execution":{"iopub.status.busy":"2024-04-09T02:15:33.293586Z","iopub.execute_input":"2024-04-09T02:15:33.293961Z","iopub.status.idle":"2024-04-09T02:15:46.727711Z","shell.execute_reply.started":"2024-04-09T02:15:33.293934Z","shell.execute_reply":"2024-04-09T02:15:46.72676Z"},"trusted":true},"execution_count":4,"outputs":[{"name":"stdout","text":"Found 17943 images belonging to 10 classes.\nFound 4481 images belonging to 10 classes.\n","output_type":"stream"}]},{"cell_type":"code","source":"resnet_model = ResNet50(weights='imagenet', include_top=False, input_shape=(150, 150, 3))\nresnet_model.trainable = False\n\nfor layer in resnet_model.layers:\n    layer.trainable = False","metadata":{"execution":{"iopub.status.busy":"2024-04-09T02:15:49.816763Z","iopub.execute_input":"2024-04-09T02:15:49.817155Z","iopub.status.idle":"2024-04-09T02:15:53.474045Z","shell.execute_reply.started":"2024-04-09T02:15:49.817123Z","shell.execute_reply":"2024-04-09T02:15:53.473015Z"},"trusted":true},"execution_count":5,"outputs":[{"name":"stdout","text":"Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/resnet/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5\n\u001b[1m94765736/94765736\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 0us/step\n","output_type":"stream"}]},{"cell_type":"code","source":"model = Sequential()\nmodel.add(resnet_model)\nmodel.add(Flatten())\nmodel.add(Dense(128, activation='relu'))\nmodel.add(Dense(10, activation='softmax'))\n\nmodel.compile(optimizer=tf.keras.optimizers.Adam(0.0001),\n              loss='categorical_crossentropy',\n              metrics=['accuracy'])\n\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-04-09T02:15:58.730303Z","iopub.execute_input":"2024-04-09T02:15:58.731175Z","iopub.status.idle":"2024-04-09T02:15:58.776064Z","shell.execute_reply.started":"2024-04-09T02:15:58.731142Z","shell.execute_reply":"2024-04-09T02:15:58.77519Z"},"trusted":true},"execution_count":6,"outputs":[{"output_type":"display_data","data":{"text/plain":"\u001b[1mModel: \"sequential\"\u001b[0m\n","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"},"metadata":{}},{"output_type":"display_data","data":{"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│ resnet50 (\u001b[38;5;33mFunctional\u001b[0m)           │ ?                      │    \u001b[38;5;34m23,587,712\u001b[0m │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ flatten (\u001b[38;5;33mFlatten\u001b[0m)               │ ?                      │   \u001b[38;5;34m0\u001b[0m (unbuilt) │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense (\u001b[38;5;33mDense\u001b[0m)                   │ ?                      │   \u001b[38;5;34m0\u001b[0m (unbuilt) │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_1 (\u001b[38;5;33mDense\u001b[0m)                 │ ?                      │   \u001b[38;5;34m0\u001b[0m (unbuilt) │\n└─────────────────────────────────┴────────────────────────┴───────────────┘\n","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│ resnet50 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Functional</span>)           │ ?                      │    <span style=\"color: #00af00; text-decoration-color: #00af00\">23,587,712</span> │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ flatten (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Flatten</span>)               │ ?                      │   <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (unbuilt) │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                   │ ?                      │   <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (unbuilt) │\n├─────────────────────────────────┼────────────────────────┼───────────────┤\n│ dense_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                 │ ?                      │   <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (unbuilt) │\n└─────────────────────────────────┴────────────────────────┴───────────────┘\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m23,587,712\u001b[0m (89.98 MB)\n","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\">23,587,712</span> (89.98 MB)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n","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\">0</span> (0.00 B)\n</pre>\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m23,587,712\u001b[0m (89.98 MB)\n","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\">23,587,712</span> (89.98 MB)\n</pre>\n"},"metadata":{}}]},{"cell_type":"code","source":"history = model.fit(\n      train_generator,\n      steps_per_epoch = 17943 // 64,   #no of samples//batch_size\n      epochs = 10,\n      validation_data = validation_generator,\n      validation_steps = 50)","metadata":{"execution":{"iopub.status.busy":"2024-04-09T02:16:05.313987Z","iopub.execute_input":"2024-04-09T02:16:05.314335Z","iopub.status.idle":"2024-04-09T02:33:35.586831Z","shell.execute_reply.started":"2024-04-09T02:16:05.314308Z","shell.execute_reply":"2024-04-09T02:33:35.585734Z"},"trusted":true},"execution_count":7,"outputs":[{"name":"stdout","text":"Epoch 1/10\n","output_type":"stream"},{"name":"stderr","text":"/opt/conda/lib/python3.10/site-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:120: UserWarning: Your `PyDataset` class should call `super().__init__(**kwargs)` in its constructor. `**kwargs` can include `workers`, `use_multiprocessing`, `max_queue_size`. Do not pass these arguments to `fit()`, as they will be ignored.\n  self._warn_if_super_not_called()\n","output_type":"stream"},{"name":"stdout","text":"\u001b[1m  1/280\u001b[0m \u001b[37m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[1m1:51:35\u001b[0m 24s/step - accuracy: 0.0938 - loss: 4.0274","output_type":"stream"},{"name":"stderr","text":"WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\nI0000 00:00:1712628991.042230     102 device_compiler.h:186] Compiled cluster using XLA!  This line is logged at most once for the lifetime of the process.\nW0000 00:00:1712628991.092306     102 graph_launch.cc:671] Fallback to op-by-op mode because memset node breaks graph update\n","output_type":"stream"},{"name":"stdout","text":"\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 787ms/step - accuracy: 0.4243 - loss: 1.8145","output_type":"stream"},{"name":"stderr","text":"W0000 00:00:1712629217.184292     102 graph_launch.cc:671] Fallback to op-by-op mode because memset node breaks graph update\n","output_type":"stream"},{"name":"stdout","text":"\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m288s\u001b[0m 946ms/step - accuracy: 0.4250 - loss: 1.8120 - val_accuracy: 0.8459 - val_loss: 0.4855\nEpoch 2/10\n\u001b[1m  1/280\u001b[0m \u001b[37m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[1m33s\u001b[0m 122ms/step - accuracy: 0.8438 - loss: 0.5483","output_type":"stream"},{"name":"stderr","text":"/opt/conda/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.\n  self.gen.throw(typ, value, traceback)\n","output_type":"stream"},{"name":"stdout","text":"\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 58ms/step - accuracy: 0.8438 - loss: 0.5483 - val_accuracy: 0.8509 - val_loss: 0.4638\nEpoch 3/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m178s\u001b[0m 623ms/step - accuracy: 0.8674 - loss: 0.4048 - val_accuracy: 0.9013 - val_loss: 0.3130\nEpoch 4/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 39ms/step - accuracy: 0.9375 - loss: 0.2535 - val_accuracy: 0.9141 - val_loss: 0.2818\nEpoch 5/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m176s\u001b[0m 615ms/step - accuracy: 0.9139 - loss: 0.2681 - val_accuracy: 0.9297 - val_loss: 0.2241\nEpoch 6/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 37ms/step - accuracy: 0.9219 - loss: 0.2836 - val_accuracy: 0.9336 - val_loss: 0.2093\nEpoch 7/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m174s\u001b[0m 608ms/step - accuracy: 0.9379 - loss: 0.1964 - val_accuracy: 0.9413 - val_loss: 0.1842\nEpoch 8/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 37ms/step - accuracy: 0.9375 - loss: 0.1843 - val_accuracy: 0.9383 - val_loss: 0.1704\nEpoch 9/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m174s\u001b[0m 608ms/step - accuracy: 0.9497 - loss: 0.1651 - val_accuracy: 0.9406 - val_loss: 0.1796\nEpoch 10/10\n\u001b[1m280/280\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 37ms/step - accuracy: 0.9688 - loss: 0.1158 - val_accuracy: 0.9454 - val_loss: 0.1604\n","output_type":"stream"}]},{"cell_type":"code","source":"val_acc = history.history['val_accuracy']\nprint(\"Validation Accuracy:\", val_acc[-1])","metadata":{"execution":{"iopub.status.busy":"2024-04-09T02:34:36.533352Z","iopub.execute_input":"2024-04-09T02:34:36.534075Z","iopub.status.idle":"2024-04-09T02:34:36.539324Z","shell.execute_reply.started":"2024-04-09T02:34:36.534043Z","shell.execute_reply":"2024-04-09T02:34:36.53822Z"},"trusted":true},"execution_count":8,"outputs":[{"name":"stdout","text":"Validation Accuracy: 0.9453551769256592\n","output_type":"stream"}]},{"cell_type":"code","source":"plt.plot(history.history['loss'], label='Training Loss')\nplt.plot(history.history['val_loss'], label='Validation Loss')\nplt.xlabel('Epoch')\nplt.ylabel('Loss')\nplt.title('Training and Validation Loss')\nplt.legend()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-04-09T02:34:49.193558Z","iopub.execute_input":"2024-04-09T02:34:49.193953Z","iopub.status.idle":"2024-04-09T02:34:49.496889Z","shell.execute_reply.started":"2024-04-09T02:34:49.193922Z","shell.execute_reply":"2024-04-09T02:34:49.495897Z"},"trusted":true},"execution_count":9,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABlvElEQVR4nO3dd1xV9f8H8Ne5F+6FC9zLXoqiiIqKeyTkKsqVpS0zcqXZUMvMSnObo7LhNy1tmLZM09Qst/40EylxYA7cCC5A9l73nt8fF65eQWRcOJd7X8/H4z7gnnvG+wp6X37OZwiiKIogIiIishAyqQsgIiIiMiWGGyIiIrIoDDdERERkURhuiIiIyKIw3BAREZFFYbghIiIii8JwQ0RERBaF4YaIiIgsCsMNERERWRSGG6I6NGrUKPj7+1fr2Dlz5kAQBNMWZGauXLkCQRCwevXqOr+2IAiYM2eO4fnq1ashCAKuXLly32P9/f0xatQok9ZTk98VImvHcEME/QdbZR779++XulSr9/rrr0MQBFy8ePGe+0yfPh2CIOC///6rw8qq7saNG5gzZw6io6OlLsWgNGB+/PHHUpdCVG02UhdAZA5+/PFHo+c//PADdu/eXWZ7UFBQja7zzTffQKfTVevYGTNmYOrUqTW6viUIDw/H0qVLsWbNGsyaNavcfX755RcEBwejbdu21b7O8OHD8dxzz0GpVFb7HPdz48YNzJ07F/7+/mjfvr3RazX5XSGydgw3RABeeOEFo+f//PMPdu/eXWb73XJzc6FSqSp9HVtb22rVBwA2NjawseFf2W7duqFZs2b45Zdfyg03kZGRiI2NxQcffFCj68jlcsjl8hqdoyZq8rtCZO14W4qoknr37o02bdrg6NGj6NmzJ1QqFd577z0AwO+//46BAwfC19cXSqUSAQEBeP/996HVao3OcXc/ijtvAXz99dcICAiAUqlEly5dEBUVZXRseX1uBEHAhAkTsHnzZrRp0wZKpRKtW7fGjh07ytS/f/9+dO7cGXZ2dggICMBXX31V6X48f//9N5555hk0atQISqUSfn5+ePPNN5GXl1fm/Tk6OuL69esYPHgwHB0d4eHhgSlTppT5s0hPT8eoUaOg0Wjg7OyMkSNHIj09/b61APrWm7Nnz+LYsWNlXluzZg0EQcCwYcNQWFiIWbNmoVOnTtBoNHBwcECPHj2wb9+++16jvD43oihi/vz5aNiwIVQqFfr06YPTp0+XOTY1NRVTpkxBcHAwHB0doVar0b9/f5w4ccKwz/79+9GlSxcAwOjRow23Pkv7G5XX5yYnJwdvvfUW/Pz8oFQq0aJFC3z88ccQRdFov6r8XlRXUlISxowZAy8vL9jZ2aFdu3b4/vvvy+y3du1adOrUCU5OTlCr1QgODsb//vc/w+tFRUWYO3cuAgMDYWdnBzc3Nzz44IPYvXu3yWol68P/BhJVQUpKCvr374/nnnsOL7zwAry8vADoPwgdHR0xefJkODo64v/+7/8wa9YsZGZmYvHixfc975o1a5CVlYWXX34ZgiDgo48+wpNPPonLly/f93/wBw8exMaNG/Haa6/ByckJn3/+OZ566inEx8fDzc0NAHD8+HH069cPPj4+mDt3LrRaLebNmwcPD49Kve/169cjNzcXr776Ktzc3HD48GEsXboU165dw/r164321Wq16Nu3L7p164aPP/4Ye/bswSeffIKAgAC8+uqrAPQh4YknnsDBgwfxyiuvICgoCJs2bcLIkSMrVU94eDjmzp2LNWvWoGPHjkbX/vXXX9GjRw80atQIycnJ+PbbbzFs2DC89NJLyMrKwsqVK9G3b18cPny4zK2g+5k1axbmz5+PAQMGYMCAATh27BgeffRRFBYWGu13+fJlbN68Gc888wyaNGmCxMREfPXVV+jVqxfOnDkDX19fBAUFYd68eZg1axbGjRuHHj16AABCQkLKvbYoinj88cexb98+jBkzBu3bt8fOnTvx9ttv4/r16/jss8+M9q/M70V15eXloXfv3rh48SImTJiAJk2aYP369Rg1ahTS09PxxhtvAAB2796NYcOG4eGHH8aHH34IAIiJiUFERIRhnzlz5mDRokUYO3YsunbtiszMTBw5cgTHjh3DI488UqM6yYqJRFTG+PHjxbv/evTq1UsEIK5YsaLM/rm5uWW2vfzyy6JKpRLz8/MN20aOHCk2btzY8Dw2NlYEILq5uYmpqamG7b///rsIQPzjjz8M22bPnl2mJgCiQqEQL168aNh24sQJEYC4dOlSw7ZBgwaJKpVKvH79umHbhQsXRBsbmzLnLE9572/RokWiIAhiXFyc0fsDIM6bN89o3w4dOoidOnUyPN+8ebMIQPzoo48M24qLi8UePXqIAMRVq1bdt6Yu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wsyZM7Fp0yYkJSXB19cXw4YNw6xZs6BQKKQur95iuCEiIiKLwj43REREZFEYboiIiMiiMNwQERGRRWG4ISIiIovCcENEREQWheGGiIiILArDDREREVkUhhsisnqCIGDz5s1Sl0FEJsJwQ0SSGjVqFARBKPPo16+f1KURUT3FtaWISHL9+vXDqlWrjLYplUqJqiGi+o4tN0QkOaVSCW9vb6OHi4sLAP0to+XLl6N///6wt7dH06ZNsWHDBqPjT548iYceegj29vZwc3PDuHHjkJ2dbbTPd999h9atW0OpVMLHxwcTJkwwej05ORlDhgyBSqVCYGAgtmzZUrtvmohqDcMNEZm9mTNn4qmnnsKJEycQHh6O5557DjExMQCAnJwc9O3bFy4uLoiKisL69euxZ88eo/CyfPlyjB8/HuPGjcPJkyexZcsWNGvWzOgac+fOxbPPPov//vsPAwYMQHh4OFJTU+v0fRKRiYhERBIaOXKkKJfLRQcHB6PHggULRFEURQDiK6+8YnRMt27dxFdffVUURVH8+uuvRRcXFzE7O9vw+tatW0WZTCYmJCSIoiiKvr6+4vTp0+9ZAwBxxowZhufZ2dkiAHH79u0me59EVHfY54aIJNenTx8sX77caJurq6vh++7duxu91r17d0RHRwMAYmJi0K5dOzg4OBheDw0NhU6nw7lz5yAIAm7cuIGHH364whratm1r+N7BwQFqtRpJSUnVfUtEJCGGGyKSnIODQ5nbRKZib29fqf1sbW2NnguCAJ1OVxslEVEtY58bIjJ7//zzT5nnQUFBAICgoCCcOHECOTk5htcjIiIgk8nQokULODk5wd/fH3v37q3TmolIOmy5ISLJFRQUICEhwWibjY0N3N3dAQDr169H586d8eCDD+Lnn3/G4cOHsXLlSgBAeHg4Zs+ejZEjR2LOnDm4desWJk6ciOHDh8PLywsAMGfOHLzyyivw9PRE//79kZWVhYiICEycOLFu3ygR1QmGGyKS3I4dO+Dj42O0rUWLFjh79iwA/UimtWvX4rXXXoOPjw9++eUXtGrVCgCgUqmwc+dOvPHGG+jSpQtUKhWeeuopfPrpp4ZzjRw5Evn5+fjss88wZcoUuLu74+mnn667N0hEdUoQRVGUuggionsRBAGbNm3C4MGDpS6FiOoJ9rkhIiIii8JwQ0RERBaFfW6IyKzxzjkRVRVbboiIiMiiMNwQERGRRWG4ISIiIovCcENEREQWheGGiIiILArDDREREVkUhhsiIiKyKAw3REREZFEYboiIiMii/D+oqbMbbgCXfQAAAABJRU5ErkJggg=="},"metadata":{}}]},{"cell_type":"markdown","source":"# **Summary**:\n# Dense layers with 10 epochs validation accuracy: 96%\n# CNN with 20 epochs validation accuracy: 98%\n# Data augmentation and transfer learning with 10 epochs validation accuracy: 94%","metadata":{}}]}