444 lines
76 KiB
Plaintext
444 lines
76 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"id": "fe7570b6-1e0d-480f-b6cc-17868ec7ea43",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from tensorflow.keras import datasets,utils,models,layers,optimizers,losses\n",
|
|
"import numpy as np \n",
|
|
"import matplotlib.pyplot as plt "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "bf9f047c-ffaf-4cf8-973f-21b8f0bcba83",
|
|
"metadata": {},
|
|
"source": [
|
|
"# data preparation "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"id": "91befa7a-0369-41c5-a042-e0256b97b76a",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"5\n",
|
|
"[0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"(train_images , train_labels), (test_images,test_labels ) = datasets.mnist.load_data()\n",
|
|
"\n",
|
|
"# preprocessing\n",
|
|
"X_train = train_images.reshape(60000,784)\n",
|
|
"X_test = test_images.reshape(10000,784)\n",
|
|
"\n",
|
|
"# Normalizing (0,1 )\n",
|
|
"X_train = X_train.astype('float') / 255\n",
|
|
"X_test = X_test.astype('float') / 255\n",
|
|
"\n",
|
|
"y_train = utils.to_categorical(train_labels)\n",
|
|
"y_test = utils.to_categorical(test_labels) \n",
|
|
"\n",
|
|
"print(train_labels[0])\n",
|
|
"print(y_train[0])\n",
|
|
"\n",
|
|
"\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"id": "3c80e2f2-1805-4dcb-918d-f7ab72f95a38",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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bc12NY4dEsrLy9Nsj2+1G0/t2bOnXLXiHxXdgOjnn3/WbF8PuLMbDp17VkBUVJTmX375RXN5VpsdOnRIsz3X4OKLL9Zsz3RZtWpVOSv2DfQQAAAAGgQAAMCPhgys3bt3a77rrrs09+3bV7NdifDQQw9pbt26teYePXp4q0SfZLt+7SxdEZHff/9dsz1e2tvsmQr2HAtr3bp1bpefeuopb5ZUreymKfv379d84403VvixcnNzNa9cuVLz999/r3nbtm0VftyzRo0apdl2u9pubFSM3TO/PKtlSlt9AHd2U6xzNxxavXq1Zruax65as2cNpKamaj569KjmJUuWaLZDBvb62oYeAgAAQIMAAAD46ZCBZbuO0tLSNM+fP1+z3VglPj5ec0JCguYNGzZ4pb7awm5E4+3Nm+wwweTJkzU/8cQTmu0s95SUFLf7FxUVebE673n55ZedLuG87Codqzyz4/Evu4KntDMhLNt9vXfvXm+U5Nfshloi7sNdFWX/fbj55ps12+Ge2jyERg8BAACgQQAAAPx0yMBu0DJw4EDNnTt31myHCSy7WcumTZu8UF3t5O3NiGw3qh0aGDx4sGbbdTpgwACv1oPys5uCoWxr167V3LhxY4+3satB7DktcJZdiVXa5misMgAAALUaDQIAAFC7hwxiYmI0jx07VnP//v01N2vWrMzH+fvvvzXbGfT+eKzu+dj9720Wcd/cY/z48dXyfI899pjmZ555RnOjRo00L1y4UPPw4cOr5XkBJzVp0kRzaZ8xc+bM0VxbV834ozVr1jhdglfRQwAAAGgQAACAWjJkYLv9hwwZotkOE9hjRMvDHvFqjzz2haN9nWJnyp57FKh9DWbNmqXZHpubn5+v+frrr9c8bNgwzddcc43m5s2ba7b78NtuOdt1Ct9hh5TatGmjuSpnJfgze3ZKnTpl/z9s69at3iwHlZSYmOh0CV5FDwEAAKBBAAAAfGzI4KKLLtLctm1bza+99prmK6+8skKPafexnjFjhma7yU2grSaojODgYM32yF67QdDx48c122OkS2O7RdevX6/52WefrXSdqBl2SKk8XeCByG62deutt2q2nzenTp3S/Prrr2vOy8vzbnGolMsvv9zpEryKdzIAAKBBAAAAaBAAAABxYA5BZGSk5rlz57p9z465VXSsxo5Hp6SkaLZL2EpKSir0mIEmKytLc3Z2ttv37MFQll2OaOeAWHY5oj34o7p2PISzbrjhBs2pqanOFeJjIiIiNJe2Y+rBgwc1T5gwwdsloYo+//xzzXbujL/MQ6OHAAAA0CAAAABeHDLo0qWLZnu+/XXXXaf5kksuqfDjnjhxQrPdMW/q1Kmai4uLK/y4EDlw4IBme0CUiMhDDz2kefLkyWU+1syZMzW/8cYbmn/88ceqlAgfce7hV0Ag2L17t+Z9+/ZptkPcV1xxheY//vijZgqrJvQQAAAAGgQAAMCLQwZJSUke8/nk5ORoXr16tebTp09rtisICgoKqlAhzufw4cNul6dMmeIxI3BkZmZqHjRokIOV1A579uzRbFdBde3a1YlyUM3sMPX8+fM128Pyxo0bp9n+++ar6CEAAAA0CAAAgEiQ69yD70u7IbOKvaKcv/7z4rXxjqq+Nrwu3sF7xncF0nsmPDxc87JlyzTbg6zef/99zSNGjNBc0yvhyvu60EMAAABoEAAAAIYMHEf3p+8KpO7P2oT3jO8K1PeMHT6wqwxGjx6tOTY2VnNNrzhgyAAAAJQbDQIAAMCQgdPo/vRdgdr96et4z/gu3jO+iSEDAABQbjQIAABA+YcMAACA/6KHAAAA0CAAAAA0CAAAgNAgAAAAQoMAAAAIDQIAACA0CAAAgNAgAAAAQoMAAACIyP8AD/Odvxg/M/kAAAAASUVORK5CYII=",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 5 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"#visualize Sample Traning Data \n",
|
|
"for i in range(5):\n",
|
|
" plt.subplot(1,5,i+1)\n",
|
|
" plt.imshow(train_images[i],cmap='gray')\n",
|
|
" plt.title(train_labels[i])\n",
|
|
" plt.axis('off')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5e6329a7-76c8-4851-944d-63c83046a8cc",
|
|
"metadata": {},
|
|
"source": [
|
|
"# model creation"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"id": "d538ccae-1104-4be7-ae82-abff974847d3",
|
|
"metadata": {},
|
|
"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_2\"</span>\n",
|
|
"</pre>\n"
|
|
],
|
|
"text/plain": [
|
|
"\u001b[1mModel: \"sequential_2\"\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",
|
|
"│ dense_6 (<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\">500</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">392,500</span> │\n",
|
|
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
|
|
"│ dropout_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">500</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
|
|
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
|
|
"│ dense_7 (<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\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">50,100</span> │\n",
|
|
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
|
|
"│ dropout_3 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
|
|
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
|
|
"│ dense_8 (<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,010</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",
|
|
"│ dense_6 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m500\u001b[0m) │ \u001b[38;5;34m392,500\u001b[0m │\n",
|
|
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
|
|
"│ dropout_2 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m500\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
|
|
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
|
|
"│ dense_7 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m50,100\u001b[0m │\n",
|
|
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
|
|
"│ dropout_3 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
|
|
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
|
|
"│ dense_8 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m1,010\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\">443,610</span> (1.69 MB)\n",
|
|
"</pre>\n"
|
|
],
|
|
"text/plain": [
|
|
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m443,610\u001b[0m (1.69 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\">443,610</span> (1.69 MB)\n",
|
|
"</pre>\n"
|
|
],
|
|
"text/plain": [
|
|
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m443,610\u001b[0m (1.69 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": [
|
|
"mymodel = models.Sequential()\n",
|
|
"mymodel.add(layers.Dense(500 , activation='relu' , input_shape = (784,) ))\n",
|
|
"mymodel.add(layers.Dropout(0.2))\n",
|
|
"mymodel.add(layers.Dense(100 , activation='relu' ))\n",
|
|
"mymodel.add(layers.Dropout(0.2))\n",
|
|
"mymodel.add(layers.Dense(10 , activation='softmax' ))\n",
|
|
"\n",
|
|
"mymodel.summary()\n",
|
|
"mymodel.compile(optimizer=optimizers.SGD(learning_rate=0.01),loss=losses.categorical_crossentropy)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "4814a7a9-0acd-41d4-8802-400735eb72c3",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Train and Evaluation"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"id": "630c5c9b-85b0-4cc0-aa27-aaa405d6338c",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Epoch 1/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 6ms/step - loss: 1.3166 - val_loss: 0.6008\n",
|
|
"Epoch 2/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.6291 - val_loss: 0.4087\n",
|
|
"Epoch 3/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 6ms/step - loss: 0.4950 - val_loss: 0.3429\n",
|
|
"Epoch 4/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 6ms/step - loss: 0.4320 - val_loss: 0.3075\n",
|
|
"Epoch 5/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.3911 - val_loss: 0.2837\n",
|
|
"Epoch 6/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.3633 - val_loss: 0.2659\n",
|
|
"Epoch 7/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.3384 - val_loss: 0.2510\n",
|
|
"Epoch 8/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 5ms/step - loss: 0.3214 - val_loss: 0.2400\n",
|
|
"Epoch 9/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.3052 - val_loss: 0.2280\n",
|
|
"Epoch 10/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.2930 - val_loss: 0.2189\n",
|
|
"Epoch 11/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.2809 - val_loss: 0.2110\n",
|
|
"Epoch 12/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.2669 - val_loss: 0.2038\n",
|
|
"Epoch 13/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 6ms/step - loss: 0.2608 - val_loss: 0.1968\n",
|
|
"Epoch 14/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.2494 - val_loss: 0.1903\n",
|
|
"Epoch 15/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.2411 - val_loss: 0.1842\n",
|
|
"Epoch 16/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.2331 - val_loss: 0.1792\n",
|
|
"Epoch 17/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 6ms/step - loss: 0.2265 - val_loss: 0.1734\n",
|
|
"Epoch 18/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.2165 - val_loss: 0.1688\n",
|
|
"Epoch 19/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 6ms/step - loss: 0.2118 - val_loss: 0.1647\n",
|
|
"Epoch 20/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.2052 - val_loss: 0.1609\n",
|
|
"Epoch 21/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1994 - val_loss: 0.1569\n",
|
|
"Epoch 22/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1958 - val_loss: 0.1537\n",
|
|
"Epoch 23/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1899 - val_loss: 0.1504\n",
|
|
"Epoch 24/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1858 - val_loss: 0.1475\n",
|
|
"Epoch 25/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1806 - val_loss: 0.1449\n",
|
|
"Epoch 26/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1784 - val_loss: 0.1422\n",
|
|
"Epoch 27/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1728 - val_loss: 0.1390\n",
|
|
"Epoch 28/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 6ms/step - loss: 0.1699 - val_loss: 0.1367\n",
|
|
"Epoch 29/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1675 - val_loss: 0.1350\n",
|
|
"Epoch 30/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1627 - val_loss: 0.1324\n",
|
|
"Epoch 31/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1591 - val_loss: 0.1302\n",
|
|
"Epoch 32/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1549 - val_loss: 0.1282\n",
|
|
"Epoch 33/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1527 - val_loss: 0.1267\n",
|
|
"Epoch 34/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1499 - val_loss: 0.1244\n",
|
|
"Epoch 35/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1481 - val_loss: 0.1229\n",
|
|
"Epoch 36/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1425 - val_loss: 0.1213\n",
|
|
"Epoch 37/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1411 - val_loss: 0.1196\n",
|
|
"Epoch 38/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1396 - val_loss: 0.1177\n",
|
|
"Epoch 39/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1362 - val_loss: 0.1164\n",
|
|
"Epoch 40/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1340 - val_loss: 0.1150\n",
|
|
"Epoch 41/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1342 - val_loss: 0.1136\n",
|
|
"Epoch 42/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1298 - val_loss: 0.1135\n",
|
|
"Epoch 43/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 6ms/step - loss: 0.1263 - val_loss: 0.1114\n",
|
|
"Epoch 44/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1256 - val_loss: 0.1102\n",
|
|
"Epoch 45/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1242 - val_loss: 0.1094\n",
|
|
"Epoch 46/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1218 - val_loss: 0.1082\n",
|
|
"Epoch 47/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1194 - val_loss: 0.1071\n",
|
|
"Epoch 48/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1181 - val_loss: 0.1062\n",
|
|
"Epoch 49/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1147 - val_loss: 0.1048\n",
|
|
"Epoch 50/50\n",
|
|
"\u001b[1m375/375\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 5ms/step - loss: 0.1152 - val_loss: 0.1041\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"history = mymodel.fit(X_train,y_train,batch_size=128,epochs=50,validation_split=0.2)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"id": "5faabfcd-bd9c-4db2-870e-ac838ff72265",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.legend.Legend at 0x1a8973087d0>"
|
|
]
|
|
},
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# plot losses \n",
|
|
"losses = history.history['loss']\n",
|
|
"val_losses = history.history['val_loss']\n",
|
|
"\n",
|
|
"plt.plot(losses)\n",
|
|
"plt.plot(val_losses)\n",
|
|
"plt.xlabel('Epochs')\n",
|
|
"plt.ylabel('loss')\n",
|
|
"\n",
|
|
"plt.legend(['loss','val_loss'])\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"id": "ef70d735-63a6-4b11-b659-263f9030acd7",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 0.0991\n",
|
|
"test loss 0.09906331449747086\n",
|
|
"\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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t0fNUuPRJtrfh03vv/++bN26VR599NE8vS6eRfNnJxNjmz/R9H3HlwYNGoiIyE8//RT0NmIV59j40qBBA3nxxRdl/fr1uui+K9LHayB/e2EX/pusArdz506VkZGh6tSpE/Q29u7dq5577jnVqFEjlZCQoMqUKaN69+6tcnJy8nyr6K5du1SxYsVUq1atrMe//vprJSLq8ccfD7qfse6xxx4L+VzTUI7tF198oXJzc61/gwYNUiKiXnzxRfXpp5+GrN+xbMOGDapkyZJqwIABQW8jlOM6cuRIJSJq6dKl1uM//vijEpF89TMWHTp06JTjIDc3V7Vp00YlJyer3Nxc9d133wW17VCOq1JKZWdnq+TkZNWyZUt16NChoPoUT7Kzs5WIqNGjR1uPP/3000pEgn6PC+W47tixQyUnJ6t+/fpZj48ZM4alnvMg2t6HTe3bt1fJyclq586dQW8jnkT7ZycTYxu8aPu+48tfU3vnzZsXku3FEs6x8aV79+6qUKFCQU9jC8fx2q5dO1WkSBG1bdu2kGwvFKLmwlOXLl3UoEGD1Ny5c1Vubq6aPHmyOu+881RiYqLfebFnkpubq4oVK6ZuueUWtWDBAnX06NF89fOpp55SIqJuv/12tXDhQvXqq6+qypUrq8zMTIoV+/DX7+yaa65RX3zxxSn/ghXqsXVR48m/7777To0YMUK9//77atGiReqpp55S6enpqn79+mrfvn1BbzeU4/rbb7+pUqVKqYyMDDVp0iSVk5Ojpk6dqqpXr66KFy+u1q5dG/S240koiouHclw//fRTlZKSoqpWrapycnJOeU/Zs2dPvvoaqzp06KCSkpLU448/rhYtWqTGjBmjkpOTVVZWVtDbDPX78KhRo1RCQoIaMmSIWrx4sXryySdVUlKS6t27d762G6sKwvvwXzZt2qQKFy6sunbtmu9txYOC9NmJsQ1cQfi+8+KLL6pu3bqp6dOnq5ycHPXee++phx56SKWkpKiGDRtSYNwHzrGxp3fv3urBBx9Uc+bMUYsXL1bz5s1TnTt3ViKi/v73vwe93VCO67hx49Qdd9yhZs6cqXJzc9WcOXNU69atlYioESNGBL1dL0TNhacxY8aoOnXqqJIlS6rChQurcuXKqeuvv1599dVX+drunj171P79+0PUy/+aMmWKql27tipatKgqW7as6tatm/r9999D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zNuDv/32Wyv373//W8fuFJ8VK1bo2Jzah4LN/Ps0l3Z2meca5I87xcb08ssvh7EnyI877rjDapufsw4ePGjlpk2bFo4uIQqsWrUq0l0osMwl6t2pdmlpaTp230PD8XnTLFvQr18/K3fbbbfp+I8//rByM2bM0PH69es96h18caevu+1HH31Ux+73ndKlS+u4UqVKVu7NN9/UsXkdRcT+TD5hwgQrx1Q7AAAAAAAAFDhceAIAAAAAAIAnuPAEAAAAAAAAT4S9xtOJEyd0vHz5citXs2ZNn69r0aKFjt16JObSlpdddlk+e3h65pxet94PbO64mnOH3eUk58+fr2NzaUcRkc2bN+u4Y8eOPnP5YdYNMus9idj1YmbPnm3lbr75Zh0fOnQoJH2JF/7mufur4xQqF1xwgY4XL17s+f4Kgho1aljtQOs6vfbaa1b7ueee8/nczp0767hMmTJWzq2TYC7n69Z+Q/D+9a9/6dg8b4rYy/d269bNypk1fXbt2uVN5/yoVauWjt0lgffv36/jp59+Omx9ijVly5a12n369PH5XGppRTezVqK5hLrLrOUnIvLGG2941if41rRpU5+5Tz75JCT76N27t9UePHiwjs3vN65w1NQtaNzPK6ZLL71Ux9OnT7dyXbp00fHOnTuD2vfFF19stTt16mS1H3roIR2b53sRkeHDh+t4yZIlVo66TgWH+53TbFevXt3KmbW83BpPkcI7CgAAAAAAADzBhScAAAAAAAB4IuxT7YJlLqHtqlOnjo7dqXbHjx/X8SuvvGLlpkyZYrUHDBig465duwbRS5zOuHHjdNykSRMrZ06vdJf+NKfhhWNpdHeal3kLqzu1YOnSpTpu0KCBlTty5IgHvYs+5cuX1/Fnn31m5cwplS+88IKV+/XXXz3t15m8/fbbEd1/NDJvzz6T//u//9OxucSriD2V2lWuXDkdu7eqz5w502r36NEj4P4gcKtXr9bxW2+9ZeXMc94//vEPK9erVy8dP//881bupZde0rF5vs2rxMT/fRwxpwqJiMyZM8fn6+bOnavjNWvWBL3/eGcenyIiVatW9fncPXv2eNwb5IU7VWrIkCE6Ll68uM/Xvffee571Cf5VrFhRx24JCnMalPk560zMkhTu9L2zzjrLahcuXFjH7vl45cqVOr722mutnL9SCfHil19+0bH7vpmWlqbj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",
|
|
"text/plain": [
|
|
"<Figure size 1500x1500 with 10 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"#Evaluation on test data \n",
|
|
"test_loss = mymodel.evaluate(X_test,y_test)\n",
|
|
"print(\"test loss\",test_loss)\n",
|
|
"\n",
|
|
"test_labels_p = mymodel.predict(X_test)\n",
|
|
"test_labels_p = np.argmax(test_labels_p, axis=1 )\n",
|
|
"\n",
|
|
"n = 0\n",
|
|
"\n",
|
|
"f,axs = plt.subplots(1,10,figsize = (15,15))\n",
|
|
"for i in range(len(test_labels)): \n",
|
|
" if n >= 10 :\n",
|
|
" break\n",
|
|
" if (test_labels_p[i] != test_labels[i]):\n",
|
|
" axs[n].imshow(test_images[i],cmap='gray')\n",
|
|
" axs[n].set_title(f'{test_labels[i]} -> {test_labels_p[i]}')\n",
|
|
" axs[n].axis('off')\n",
|
|
" n= n+1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "79b41f2d-d6f6-4ede-8af0-5a4e600157c3",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.13.9"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|