commit b98d5a0c98bae5873b5ac1c5c90b78ad1bee6de2
parent 53cfb87457de6a8a7f2ef8c901d0fb0bbf32d2d5
Author: Andrew <andrewlaack1@gmail.com>
Date: Fri, 14 Jun 2024 15:04:08 -0500
v
Diffstat:
1 file changed, 73 insertions(+), 61 deletions(-)
diff --git a/mnist/MNISTRegressionClassificationNN.ipynb b/mnist/MNISTRegressionClassificationNN.ipynb
@@ -13,18 +13,18 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
- "2024-06-11 11:01:32.011039: I external/local_tsl/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used.\n",
- "2024-06-11 11:01:32.014718: I external/local_tsl/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used.\n",
- "2024-06-11 11:01:32.057818: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
+ "2024-06-14 11:57:09.924151: I external/local_tsl/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used.\n",
+ "2024-06-14 11:57:09.927539: I external/local_tsl/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used.\n",
+ "2024-06-14 11:57:09.970132: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
"To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
- "2024-06-11 11:01:32.797741: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n"
+ "2024-06-14 11:57:10.704842: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n"
]
}
],
@@ -38,7 +38,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 2,
"metadata": {},
"outputs": [
{
@@ -47,7 +47,7 @@
"(70000, 784)"
]
},
- "execution_count": 3,
+ "execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
@@ -60,7 +60,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
@@ -80,15 +80,15 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
- "2024-06-11 11:01:47.515719: I external/local_xla/xla/stream_executor/cuda/cuda_executor.cc:998] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
- "2024-06-11 11:01:47.516239: W tensorflow/core/common_runtime/gpu/gpu_device.cc:2251] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.\n",
+ "2024-06-14 11:57:17.182720: I external/local_xla/xla/stream_executor/cuda/cuda_executor.cc:998] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
+ "2024-06-14 11:57:17.184240: W tensorflow/core/common_runtime/gpu/gpu_device.cc:2251] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.\n",
"Skipping registering GPU devices...\n"
]
}
@@ -110,7 +110,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 5,
"metadata": {},
"outputs": [
{
@@ -205,7 +205,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
@@ -215,88 +215,82 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Epoch 1/30\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 1ms/step - accuracy: 0.1138 - loss: 222.9251 - val_accuracy: 0.1199 - val_loss: 7.9898\n",
+ "Epoch 1/30\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 1ms/step - loss: 202.9985 - mae: 7.8408 - val_loss: 4.2281 - val_mae: 1.6003\n",
"Epoch 2/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1301 - loss: 5.0046 - val_accuracy: 0.1330 - val_loss: 3.2245\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 4.2868 - mae: 1.6209 - val_loss: 3.1366 - val_mae: 1.3650\n",
"Epoch 3/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 1ms/step - accuracy: 0.1341 - loss: 3.3604 - val_accuracy: 0.1118 - val_loss: 4.7502\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 3.0048 - mae: 1.3345 - val_loss: 2.1976 - val_mae: 1.1122\n",
"Epoch 4/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1357 - loss: 2.6554 - val_accuracy: 0.1126 - val_loss: 2.4580\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 2.1743 - mae: 1.1217 - val_loss: 1.8770 - val_mae: 1.0113\n",
"Epoch 5/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1494 - loss: 1.7955 - val_accuracy: 0.1631 - val_loss: 1.7636\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 1.6681 - mae: 0.9647 - val_loss: 1.4420 - val_mae: 0.8738\n",
"Epoch 6/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 1ms/step - accuracy: 0.1558 - loss: 1.3815 - val_accuracy: 0.1415 - val_loss: 1.2325\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 1.3077 - mae: 0.8395 - val_loss: 1.5200 - val_mae: 0.9104\n",
"Epoch 7/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1644 - loss: 1.0503 - val_accuracy: 0.1847 - val_loss: 1.0859\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.9894 - mae: 0.7081 - val_loss: 1.4996 - val_mae: 0.9626\n",
"Epoch 8/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1766 - loss: 0.8273 - val_accuracy: 0.1707 - val_loss: 1.0465\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 1ms/step - loss: 0.8075 - mae: 0.6240 - val_loss: 1.0141 - val_mae: 0.6623\n",
"Epoch 9/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1835 - loss: 0.7227 - val_accuracy: 0.1813 - val_loss: 0.7586\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.6778 - mae: 0.5564 - val_loss: 0.8471 - val_mae: 0.5888\n",
"Epoch 10/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 1ms/step - accuracy: 0.1827 - loss: 0.6235 - val_accuracy: 0.1931 - val_loss: 0.7283\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.5963 - mae: 0.5153 - val_loss: 0.7413 - val_mae: 0.5223\n",
"Epoch 11/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1825 - loss: 0.5756 - val_accuracy: 0.1542 - val_loss: 0.7893\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.5044 - mae: 0.4551 - val_loss: 0.6787 - val_mae: 0.4632\n",
"Epoch 12/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1900 - loss: 0.4808 - val_accuracy: 0.1903 - val_loss: 0.7062\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.4623 - mae: 0.4353 - val_loss: 0.6637 - val_mae: 0.4663\n",
"Epoch 13/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1955 - loss: 0.4436 - val_accuracy: 0.1995 - val_loss: 0.7161\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.3952 - mae: 0.3990 - val_loss: 0.6840 - val_mae: 0.4617\n",
"Epoch 14/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1892 - loss: 0.4469 - val_accuracy: 0.1789 - val_loss: 0.6684\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.3724 - mae: 0.3854 - val_loss: 0.6865 - val_mae: 0.4951\n",
"Epoch 15/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1950 - loss: 0.3970 - val_accuracy: 0.1193 - val_loss: 0.7309\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - loss: 0.3377 - mae: 0.3649 - val_loss: 0.5628 - val_mae: 0.3864\n",
"Epoch 16/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1945 - loss: 0.3584 - val_accuracy: 0.1604 - val_loss: 0.5815\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - loss: 0.2954 - mae: 0.3337 - val_loss: 0.6157 - val_mae: 0.4369\n",
"Epoch 17/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1989 - loss: 0.3285 - val_accuracy: 0.2011 - val_loss: 0.6027\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - loss: 0.2833 - mae: 0.3199 - val_loss: 0.5496 - val_mae: 0.3746\n",
"Epoch 18/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1927 - loss: 0.3314 - val_accuracy: 0.2016 - val_loss: 0.5064\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.2465 - mae: 0.3095 - val_loss: 0.6086 - val_mae: 0.4012\n",
"Epoch 19/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.1990 - loss: 0.2962 - val_accuracy: 0.2012 - val_loss: 0.5226\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.2436 - mae: 0.3003 - val_loss: 0.5564 - val_mae: 0.3431\n",
"Epoch 20/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.2079 - loss: 0.2676 - val_accuracy: 0.1995 - val_loss: 0.5952\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.2413 - mae: 0.2940 - val_loss: 0.5232 - val_mae: 0.3490\n",
"Epoch 21/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.2021 - loss: 0.2709 - val_accuracy: 0.2036 - val_loss: 0.5544\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 1ms/step - loss: 0.2087 - mae: 0.2784 - val_loss: 0.5680 - val_mae: 0.3854\n",
"Epoch 22/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.2027 - loss: 0.2493 - val_accuracy: 0.2012 - val_loss: 0.5411\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.2286 - mae: 0.2898 - val_loss: 0.5172 - val_mae: 0.3380\n",
"Epoch 23/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.2090 - loss: 0.2353 - val_accuracy: 0.2035 - val_loss: 0.4856\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.2041 - mae: 0.2718 - val_loss: 0.4947 - val_mae: 0.3167\n",
"Epoch 24/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.2064 - loss: 0.2244 - val_accuracy: 0.1806 - val_loss: 0.5377\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.1863 - mae: 0.2601 - val_loss: 0.5392 - val_mae: 0.3530\n",
"Epoch 25/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.2076 - loss: 0.2348 - val_accuracy: 0.2038 - val_loss: 0.5044\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.1917 - mae: 0.2661 - val_loss: 0.5393 - val_mae: 0.3282\n",
"Epoch 26/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.2053 - loss: 0.2084 - val_accuracy: 0.2024 - val_loss: 0.4909\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.1691 - mae: 0.2516 - val_loss: 0.4788 - val_mae: 0.3174\n",
"Epoch 27/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.2112 - loss: 0.1926 - val_accuracy: 0.2032 - val_loss: 0.5354\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.1597 - mae: 0.2428 - val_loss: 0.5443 - val_mae: 0.3862\n",
"Epoch 28/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.2056 - loss: 0.1908 - val_accuracy: 0.2018 - val_loss: 0.4798\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.1663 - mae: 0.2417 - val_loss: 0.4760 - val_mae: 0.3027\n",
"Epoch 29/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.2100 - loss: 0.1958 - val_accuracy: 0.2008 - val_loss: 0.5213\n",
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.1673 - mae: 0.2456 - val_loss: 0.5956 - val_mae: 0.3623\n",
"Epoch 30/30\n",
- "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - accuracy: 0.2081 - loss: 0.2056 - val_accuracy: 0.2031 - val_loss: 0.4574\n"
+ "\u001b[1m1641/1641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 1ms/step - loss: 0.1619 - mae: 0.2360 - val_loss: 0.4810 - val_mae: 0.3082\n"
]
},
{
"data": {
"text/plain": [
- "<keras.src.callbacks.history.History at 0x7fcc41b0b510>"
+ "<keras.src.callbacks.history.History at 0x7fb8eca64ad0>"
]
},
- "execution_count": 8,
+ "execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
@@ -314,14 +308,14 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "\u001b[1m547/547\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 652us/step\n"
+ "\u001b[1m547/547\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 627us/step\n"
]
}
],
@@ -331,7 +325,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
@@ -343,7 +337,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
@@ -361,16 +355,16 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "15378\n",
- "2122\n",
- "0.8787428571428572\n"
+ "15254\n",
+ "2246\n",
+ "0.8716571428571429\n"
]
}
],
@@ -379,6 +373,24 @@
"print(wrong)\n",
"print(correct / (correct + wrong))"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "model.save('../models/MNISTClassificationModel.keras')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "loadedModel = tf.keras.models.load_model('../models/MNISTClassificationModel.keras')"
+ ]
}
],
"metadata": {