{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nimport warnings\nwarnings.filterwarnings('ignore')\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","id":"FCspt6WIW5Hc","executionInfo":{"status":"ok","timestamp":1666987426687,"user_tz":-120,"elapsed":952,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:22:41.482590Z","iopub.execute_input":"2022-10-28T21:22:41.483404Z","iopub.status.idle":"2022-10-28T21:22:42.002422Z","shell.execute_reply.started":"2022-10-28T21:22:41.483216Z","shell.execute_reply":"2022-10-28T21:22:42.001302Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"warnings.filterwarnings('ignore')","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# About the data set\nThe MNIST handwritten digit classification problem is a standard dataset used in computer vision and deep learning. The MNIST dataset is an acronym that stands for the Modified National Institute of Standards and Technology dataset.\n\n- It is a dataset of 60,000 small square 28×28 pixel grayscale images of handwritten single digits between 0 and 9.\n- The task is to classify a given image of a handwritten digit into one of 10 classes representing integer values from 0 to 9, inclusively.\n- Although the dataset is effectively solved, it can be used as the basis for learning and practicing how to develop, evaluate, and use convolutional deep learning neural networks for image classification from scratch.\n\nThis notebook will try to inspect the dataset and apply different ANN archtiectures and compare it to CNN and try to find how effective CNN is","metadata":{"id":"lBnUOoT3W5Hf"}},{"cell_type":"markdown","source":"# Inspecting Data","metadata":{"id":"h-EioSZBW5Hh"}},{"cell_type":"code","source":"df_train = pd.read_csv(\"../input/digit-recognizer/train.csv\")\ndf_test = pd.read_csv(\"../input/digit-recognizer/test.csv\")","metadata":{"id":"OfvSW8cgW5Hi","executionInfo":{"status":"ok","timestamp":1666987433296,"user_tz":-120,"elapsed":3693,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:22:42.004125Z","iopub.execute_input":"2022-10-28T21:22:42.004529Z","iopub.status.idle":"2022-10-28T21:22:46.361247Z","shell.execute_reply.started":"2022-10-28T21:22:42.004487Z","shell.execute_reply":"2022-10-28T21:22:46.359752Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_train.shape","metadata":{"id":"oJk122qFW5Hi","executionInfo":{"status":"ok","timestamp":1666987433297,"user_tz":-120,"elapsed":27,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"7ce53c48-ad25-4f2c-b0d9-703cd85e1270","execution":{"iopub.status.busy":"2022-10-28T21:22:46.367040Z","iopub.execute_input":"2022-10-28T21:22:46.370489Z","iopub.status.idle":"2022-10-28T21:22:46.387633Z","shell.execute_reply.started":"2022-10-28T21:22:46.370439Z","shell.execute_reply":"2022-10-28T21:22:46.386219Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_test.shape","metadata":{"id":"eAhsrAIyW5Hj","executionInfo":{"status":"ok","timestamp":1666987433297,"user_tz":-120,"elapsed":26,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"c95e55f7-64b7-4033-cfa2-fd4f17b8d1c1","execution":{"iopub.status.busy":"2022-10-28T21:22:46.395705Z","iopub.execute_input":"2022-10-28T21:22:46.398355Z","iopub.status.idle":"2022-10-28T21:22:46.410515Z","shell.execute_reply.started":"2022-10-28T21:22:46.398313Z","shell.execute_reply":"2022-10-28T21:22:46.409139Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### The dataset is splitted into 42000:28000, and the images are flatten so we will need to convert it to its 2d dimension to display it and to be able to use it in CNN","metadata":{"id":"CgitWtesW5Hk"}},{"cell_type":"code","source":"df_train.head(4)","metadata":{"id":"LD2i7jXPW5Hl","executionInfo":{"status":"ok","timestamp":1666987433298,"user_tz":-120,"elapsed":25,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"944b20de-16e2-49b6-d976-f841a5732468","execution":{"iopub.status.busy":"2022-10-28T21:22:46.416243Z","iopub.execute_input":"2022-10-28T21:22:46.419240Z","iopub.status.idle":"2022-10-28T21:22:46.451090Z","shell.execute_reply.started":"2022-10-28T21:22:46.419170Z","shell.execute_reply":"2022-10-28T21:22:46.449818Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### The samples are splitted almost with the with same ratio across all the digits","metadata":{"id":"omEWMe8KW5Hm"}},{"cell_type":"code","source":"plt.figure(figsize=(12,8))\nsns.countplot(df_train['label'])\nplt.xlabel('Digit')\nplt.show()","metadata":{"id":"wj7kVk6KW5Hn","executionInfo":{"status":"ok","timestamp":1666987433298,"user_tz":-120,"elapsed":15,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"5e0a4a3c-5429-4023-df8a-7c96cd21592b","execution":{"iopub.status.busy":"2022-10-28T21:22:46.456367Z","iopub.execute_input":"2022-10-28T21:22:46.458883Z","iopub.status.idle":"2022-10-28T21:22:46.775181Z","shell.execute_reply.started":"2022-10-28T21:22:46.458843Z","shell.execute_reply":"2022-10-28T21:22:46.774104Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_train.isnull().any().sum()","metadata":{"id":"aY5yJHjJW5Ho","executionInfo":{"status":"ok","timestamp":1666987433298,"user_tz":-120,"elapsed":13,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"8ba4d6bf-1e55-4a5a-d67b-5f99808d5b92","execution":{"iopub.status.busy":"2022-10-28T21:22:46.779938Z","iopub.execute_input":"2022-10-28T21:22:46.782614Z","iopub.status.idle":"2022-10-28T21:22:46.809599Z","shell.execute_reply.started":"2022-10-28T21:22:46.782558Z","shell.execute_reply":"2022-10-28T21:22:46.808544Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Reshaping the images to display it","metadata":{"id":"_oRsiyz_W5Ho"}},{"cell_type":"code","source":"X = df_train.drop('label',axis=1)\ny = df_train['label']","metadata":{"id":"wIasJ7C8W5Hp","executionInfo":{"status":"ok","timestamp":1666987433299,"user_tz":-120,"elapsed":12,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:22:46.814634Z","iopub.execute_input":"2022-10-28T21:22:46.815422Z","iopub.status.idle":"2022-10-28T21:22:46.912977Z","shell.execute_reply.started":"2022-10-28T21:22:46.815380Z","shell.execute_reply":"2022-10-28T21:22:46.911607Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_show = X.values.reshape(-1,28,28,1)\nX_show.shape","metadata":{"id":"2krGvhRxW5Hp","executionInfo":{"status":"ok","timestamp":1666987433299,"user_tz":-120,"elapsed":12,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"4db2b16b-f5e5-4a1f-b1ee-8a0ee76b8a6b","execution":{"iopub.status.busy":"2022-10-28T21:22:46.914648Z","iopub.execute_input":"2022-10-28T21:22:46.915057Z","iopub.status.idle":"2022-10-28T21:22:46.923630Z","shell.execute_reply.started":"2022-10-28T21:22:46.915015Z","shell.execute_reply":"2022-10-28T21:22:46.922543Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(12,8))\nfor i in range(9):\n  plt.subplot(331+i)\n  plt.imshow(X_show[i][:,:,0],cmap=plt.get_cmap('gray'))\nplt.show()","metadata":{"id":"o-hRiBRlW5Hq","executionInfo":{"status":"ok","timestamp":1666987433803,"user_tz":-120,"elapsed":513,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"45c9fd8b-cc9a-4ed6-e0b0-8cd2f0d2023f","execution":{"iopub.status.busy":"2022-10-28T21:22:46.925565Z","iopub.execute_input":"2022-10-28T21:22:46.926391Z","iopub.status.idle":"2022-10-28T21:22:47.840287Z","shell.execute_reply.started":"2022-10-28T21:22:46.926335Z","shell.execute_reply":"2022-10-28T21:22:47.838714Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Normalizing the Data","metadata":{"id":"ivEqaoRib167"}},{"cell_type":"code","source":"X /=255\ndf_test /=255","metadata":{"id":"lSU9n4ZRb1Ia","executionInfo":{"status":"ok","timestamp":1666987434280,"user_tz":-120,"elapsed":480,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:22:47.842166Z","iopub.execute_input":"2022-10-28T21:22:47.842963Z","iopub.status.idle":"2022-10-28T21:22:48.048484Z","shell.execute_reply.started":"2022-10-28T21:22:47.842901Z","shell.execute_reply":"2022-10-28T21:22:48.047339Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Encoding labels\nusing one-hot endcoding","metadata":{"id":"u29bget2cL3o"}},{"cell_type":"code","source":"from keras.utils.np_utils import to_categorical\ny = to_categorical(y)\ny","metadata":{"id":"Eqlx7ceHcSAX","executionInfo":{"status":"ok","timestamp":1666987437462,"user_tz":-120,"elapsed":3183,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"e21dbeac-534d-4a4a-b1d8-ddabf9f7619a","execution":{"iopub.status.busy":"2022-10-28T21:22:48.051633Z","iopub.execute_input":"2022-10-28T21:22:48.052038Z","iopub.status.idle":"2022-10-28T21:22:49.814766Z","shell.execute_reply.started":"2022-10-28T21:22:48.051997Z","shell.execute_reply":"2022-10-28T21:22:49.813288Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Spliting the data","metadata":{"id":"scjQBE1jcjrg"}},{"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.15, random_state=2022)","metadata":{"id":"N3P7AdQ3cmSQ","executionInfo":{"status":"ok","timestamp":1666987437462,"user_tz":-120,"elapsed":15,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:22:49.820816Z","iopub.execute_input":"2022-10-28T21:22:49.821451Z","iopub.status.idle":"2022-10-28T21:22:50.120523Z","shell.execute_reply.started":"2022-10-28T21:22:49.821418Z","shell.execute_reply":"2022-10-28T21:22:50.119330Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(\"Train shape = \",X_train.shape)\nprint(\"Test shape = \",X_test.shape)","metadata":{"id":"GSlQ_3NMczBH","executionInfo":{"status":"ok","timestamp":1666987437462,"user_tz":-120,"elapsed":15,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"43fd2c62-d26a-45b6-d9bd-97421e4f2667","execution":{"iopub.status.busy":"2022-10-28T21:22:50.122187Z","iopub.execute_input":"2022-10-28T21:22:50.123306Z","iopub.status.idle":"2022-10-28T21:22:50.131492Z","shell.execute_reply.started":"2022-10-28T21:22:50.123265Z","shell.execute_reply":"2022-10-28T21:22:50.130359Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Classical ANN","metadata":{"id":"zZpsRcI1c-3w"}},{"cell_type":"code","source":"from keras.models import Sequential\nfrom keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPool2D, BatchNormalization\nfrom keras import regularizers","metadata":{"id":"7uYXXPNvc-gM","executionInfo":{"status":"ok","timestamp":1666987437463,"user_tz":-120,"elapsed":13,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:22:50.132922Z","iopub.execute_input":"2022-10-28T21:22:50.133753Z","iopub.status.idle":"2022-10-28T21:22:50.140436Z","shell.execute_reply.started":"2022-10-28T21:22:50.133715Z","shell.execute_reply":"2022-10-28T21:22:50.139201Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"colors = plt.rcParams['axes.prop_cycle'].by_key()['color']\ndef plot_his(history):\n    plt.figure(figsize=(15,12))\n    metrics = ['accuracy', 'loss']\n    for i, metric in enumerate(metrics):\n        plt.subplot(220+1+i)\n        plt.plot(history.epoch, history.history[metric], color=colors[0], label='Train')\n        plt.plot(history.epoch, history.history['val_'+metric],\n                 color=colors[1], linestyle=\"--\", label='Val')\n        plt.xlabel('Epoch')\n        plt.ylabel(metric)\n        plt.legend()\n    plt.show()","metadata":{"id":"JQgWv3yLgoFP","executionInfo":{"status":"ok","timestamp":1666987437463,"user_tz":-120,"elapsed":13,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:22:50.142620Z","iopub.execute_input":"2022-10-28T21:22:50.143026Z","iopub.status.idle":"2022-10-28T21:22:50.154408Z","shell.execute_reply.started":"2022-10-28T21:22:50.142984Z","shell.execute_reply":"2022-10-28T21:22:50.153199Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def create_baseline():\n    model = Sequential([\n        Dense(256, activation = 'relu', input_shape=[X_train.shape[-1]], ),\n        Dropout(0.3),\n        BatchNormalization(),\n        \n        Dense(512, activation = 'relu',),\n        Dropout(0.3),\n        BatchNormalization(),\n        \n        Dense(256, activation = 'relu', ),\n        Dropout(0.3),\n        BatchNormalization(),\n        \n        Dense(10, activation='softmax')\n    ])\n    model.compile(loss='categorical_crossentropy', optimizer='RMSprop', metrics=['accuracy'])\n    return model","metadata":{"id":"RvEF8s_YdwxY","executionInfo":{"status":"ok","timestamp":1666987437463,"user_tz":-120,"elapsed":13,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:22:50.155782Z","iopub.execute_input":"2022-10-28T21:22:50.157115Z","iopub.status.idle":"2022-10-28T21:22:50.168671Z","shell.execute_reply.started":"2022-10-28T21:22:50.157065Z","shell.execute_reply":"2022-10-28T21:22:50.167213Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = create_baseline()","metadata":{"id":"MG49CtQSefS_","executionInfo":{"status":"ok","timestamp":1666987438849,"user_tz":-120,"elapsed":1399,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:22:50.171086Z","iopub.execute_input":"2022-10-28T21:22:50.171575Z","iopub.status.idle":"2022-10-28T21:22:51.357730Z","shell.execute_reply.started":"2022-10-28T21:22:50.171532Z","shell.execute_reply":"2022-10-28T21:22:51.356554Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.summary()","metadata":{"id":"mtaGhS7AfrwX","executionInfo":{"status":"ok","timestamp":1666987438849,"user_tz":-120,"elapsed":10,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"61b97d99-ef6b-41c8-e1f7-502cbb4309c5","execution":{"iopub.status.busy":"2022-10-28T21:22:51.359262Z","iopub.execute_input":"2022-10-28T21:22:51.362229Z","iopub.status.idle":"2022-10-28T21:22:51.369995Z","shell.execute_reply.started":"2022-10-28T21:22:51.362172Z","shell.execute_reply":"2022-10-28T21:22:51.368433Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from keras.callbacks import EarlyStopping\nearly_stop = EarlyStopping(\n        monitor=\"val_accuracy\", \n        patience=20,\n        verbose=1,\n        mode=\"max\",\n        restore_best_weights=True, \n     )\n\nhistory = model.fit(\n    X_train, y_train,\n    validation_data=(X_test, y_test),\n    batch_size = 128,\n    epochs = 100,\n    callbacks=[early_stop],\n)","metadata":{"id":"EZ01Eytofsau","executionInfo":{"status":"ok","timestamp":1666987521525,"user_tz":-120,"elapsed":82680,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"329bb131-090e-4334-a01d-d186fd30de4d","execution":{"iopub.status.busy":"2022-10-28T21:22:51.372333Z","iopub.execute_input":"2022-10-28T21:22:51.372767Z","iopub.status.idle":"2022-10-28T21:24:00.928788Z","shell.execute_reply.started":"2022-10-28T21:22:51.372725Z","shell.execute_reply":"2022-10-28T21:24:00.927622Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_his(history)","metadata":{"id":"XFvzmdDkhzCv","executionInfo":{"status":"ok","timestamp":1666987521527,"user_tz":-120,"elapsed":18,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"6d6d4727-7456-4a63-cc73-640e01831c24","execution":{"iopub.status.busy":"2022-10-28T21:24:00.930339Z","iopub.execute_input":"2022-10-28T21:24:00.931371Z","iopub.status.idle":"2022-10-28T21:24:01.332770Z","shell.execute_reply.started":"2022-10-28T21:24:00.931326Z","shell.execute_reply":"2022-10-28T21:24:01.331615Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# CNN","metadata":{"id":"w7cKMgT_uNNO"}},{"cell_type":"code","source":"X_train = X_train.values.reshape(-1,28,28,1)\nX_test = X_test.values.reshape(-1,28,28,1)","metadata":{"id":"L4-v3NcKvT3K","executionInfo":{"status":"ok","timestamp":1666987522081,"user_tz":-120,"elapsed":5,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:24:01.334633Z","iopub.execute_input":"2022-10-28T21:24:01.335388Z","iopub.status.idle":"2022-10-28T21:24:01.341829Z","shell.execute_reply.started":"2022-10-28T21:24:01.335340Z","shell.execute_reply":"2022-10-28T21:24:01.340612Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train.shape","metadata":{"id":"9hYDh1uzv_dy","executionInfo":{"status":"ok","timestamp":1666987522081,"user_tz":-120,"elapsed":5,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"adf0fa3f-5764-431d-d0b4-2bb798b357c4","execution":{"iopub.status.busy":"2022-10-28T21:24:01.343744Z","iopub.execute_input":"2022-10-28T21:24:01.344647Z","iopub.status.idle":"2022-10-28T21:24:01.357022Z","shell.execute_reply.started":"2022-10-28T21:24:01.344591Z","shell.execute_reply":"2022-10-28T21:24:01.355857Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def create_baselineCNN():\n    model = Sequential([\n        Conv2D(filters = 64, kernel_size=3, padding = 'Same', activation = 'relu', input_shape=X_train[0].shape),\n        BatchNormalization(),\n        Conv2D(filters = 64, kernel_size=3, padding = 'Same', activation = 'relu',),\n        BatchNormalization(),\n        MaxPool2D(2),\n        Dropout(0.3),\n\n        Conv2D(filters = 128, kernel_size=3, padding = 'Same', activation = 'relu',),\n        BatchNormalization(),\n        Conv2D(filters = 128, kernel_size=3, padding = 'Same', activation = 'relu',),\n        BatchNormalization(),\n        Conv2D(filters = 128, kernel_size=3, padding = 'Same', activation = 'relu',),\n        BatchNormalization(),\n        MaxPool2D(2),\n        Dropout(0.3),\n        \n        Flatten(),\n        Dense(512, activation = 'relu' ),\n        Dropout(0.3),\n        BatchNormalization(),\n        Dense(256, activation = 'relu' ),\n        Dropout(0.3),\n        BatchNormalization(),\n        Dense(10, activation='softmax')\n    ])\n    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n    return model","metadata":{"id":"OrUmQPzYuODe","executionInfo":{"status":"ok","timestamp":1666987522081,"user_tz":-120,"elapsed":3,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:24:01.359091Z","iopub.execute_input":"2022-10-28T21:24:01.359584Z","iopub.status.idle":"2022-10-28T21:24:01.371538Z","shell.execute_reply.started":"2022-10-28T21:24:01.359528Z","shell.execute_reply":"2022-10-28T21:24:01.370188Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = create_baselineCNN()","metadata":{"id":"DPVnabacvOov","executionInfo":{"status":"ok","timestamp":1666987522745,"user_tz":-120,"elapsed":666,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"execution":{"iopub.status.busy":"2022-10-28T21:24:01.373077Z","iopub.execute_input":"2022-10-28T21:24:01.373822Z","iopub.status.idle":"2022-10-28T21:24:01.771631Z","shell.execute_reply.started":"2022-10-28T21:24:01.373768Z","shell.execute_reply":"2022-10-28T21:24:01.770530Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.summary()","metadata":{"id":"MU_zBpRGvQpP","executionInfo":{"status":"ok","timestamp":1666987522745,"user_tz":-120,"elapsed":19,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"22cfaa52-a82f-4957-bc85-d435a5699c9e","execution":{"iopub.status.busy":"2022-10-28T21:24:01.773176Z","iopub.execute_input":"2022-10-28T21:24:01.773597Z","iopub.status.idle":"2022-10-28T21:24:01.784136Z","shell.execute_reply.started":"2022-10-28T21:24:01.773555Z","shell.execute_reply":"2022-10-28T21:24:01.782785Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"early_stop = EarlyStopping(\n        monitor=\"val_accuracy\", \n        patience=20,\n        verbose=1,\n        mode=\"max\",\n        restore_best_weights=True, \n     )\n\nhistory = model.fit(\n    X_train, y_train,\n    validation_data=(X_test, y_test),\n    batch_size = 128,\n    epochs = 100,\n    callbacks=[early_stop]\n)","metadata":{"id":"0TP0-N_lwEMe","executionInfo":{"status":"ok","timestamp":1666987715941,"user_tz":-120,"elapsed":193201,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"ad019816-9819-4196-f80d-bf29c718b9c1","execution":{"iopub.status.busy":"2022-10-28T21:24:01.786295Z","iopub.execute_input":"2022-10-28T21:24:01.787141Z","iopub.status.idle":"2022-10-28T21:26:44.984837Z","shell.execute_reply.started":"2022-10-28T21:24:01.787094Z","shell.execute_reply":"2022-10-28T21:26:44.983655Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_his(history)","metadata":{"id":"-IIqWVZQwkHO","executionInfo":{"status":"ok","timestamp":1666987715941,"user_tz":-120,"elapsed":15,"user":{"displayName":"PrinceEGY","userId":"03254836640974808784"}},"outputId":"481e0e3e-79ee-43a9-f7ce-4da59dd560b8","execution":{"iopub.status.busy":"2022-10-28T21:26:44.986340Z","iopub.execute_input":"2022-10-28T21:26:44.987092Z","iopub.status.idle":"2022-10-28T21:26:45.360300Z","shell.execute_reply.started":"2022-10-28T21:26:44.987059Z","shell.execute_reply":"2022-10-28T21:26:45.359016Z"},"trusted":true},"execution_count":null,"outputs":[]}]}