ki-dhbw/tasks/15 -keeras mit anderen daten.ipynb

591 lines
118 KiB
Text
Raw Permalink Normal View History

2025-02-13 12:59:35 +01:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"id": "I2keZzFjqmcc"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2025-02-13 12:39:12.831009: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n",
"2025-02-13 12:39:12.831563: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used.\n",
"2025-02-13 12:39:12.835242: I external/local_xla/xla/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used.\n",
"2025-02-13 12:39:12.846730: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:477] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
"WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
"E0000 00:00:1739446752.866428 56926 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
"E0000 00:00:1739446752.872158 56926 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
"2025-02-13 12:39:12.891394: 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 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
]
}
],
"source": [
"import tensorflow as tf\n",
"\n",
"from tensorflow.keras import datasets, layers, models\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "MRfXcFGdqsPZ",
"outputId": "6e36b70f-6853-412b-e728-bfea5c8c8ffd"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz\n",
"\u001b[1m170498071/170498071\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 0us/step\n"
]
}
],
"source": [
"(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.cifar10.load_data()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "SQQ6sLQZrV25",
"outputId": "cc273cbd-fd3c-49ef-ac30-8fdc51dc2d62"
},
"outputs": [
{
"data": {
"text/plain": [
"(32, 32, 3)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_images[1].shape"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 282
},
"id": "Y7MiDICErjtO",
"outputId": "ad14bbdb-50c9-4eda-85bd-208cb5b25a44"
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f61ec374410>"
]
},
"execution_count": 9,
"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": [
"plt.imshow(train_images[2000])"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"id": "-TWpc3c-tXkx"
},
"outputs": [],
"source": [
"model = models.Sequential()\n",
"model.add(layers.Conv2D(64, (3, 3), activation='relu', input_shape=(32,32,3)))\n",
"model.add(layers.MaxPooling2D((2, 2)))\n",
"model.add(layers.Conv2D(64, (3, 3), activation='relu'))\n",
"model.add(layers.MaxPooling2D((2, 2)))\n",
"model.add(layers.Conv2D(64, (3, 3), activation='relu'))\n",
"model.add(layers.Flatten())\n",
"model.add(layers.Dense(64, activation='relu'))\n",
"model.add(layers.Dense(10))"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "HIsZlqvyt1qr",
"outputId": "fe8d632b-0fe7-4e36-e70a-bedfc5908deb"
},
"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_5\"</span>\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1mModel: \"sequential_5\"\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ conv2d_15 (<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\">30</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">30</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_10 (<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\">15</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">15</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_16 (<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\">13</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">13</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">36,928</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d_11 (<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\">6</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">6</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_17 (<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\">4</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">4</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">36,928</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\">1024</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_12 (<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\">65,600</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_13 (<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\">650</span> │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
"</pre>\n"
],
"text/plain": [
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ conv2d_15 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m30\u001b[0m, \u001b[38;5;34m30\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m1,792\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d_10 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m15\u001b[0m, \u001b[38;5;34m15\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_16 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m13\u001b[0m, \u001b[38;5;34m13\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m36,928\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d_11 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m6\u001b[0m, \u001b[38;5;34m6\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_17 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m4\u001b[0m, \u001b[38;5;34m4\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m36,928\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ flatten_5 (\u001b[38;5;33mFlatten\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1024\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_12 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m65,600\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_13 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m650\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\">141,898</span> (554.29 KB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m141,898\u001b[0m (554.29 KB)\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\">141,898</span> (554.29 KB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m141,898\u001b[0m (554.29 KB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"model.summary()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "uslCpPtpt2tD",
"outputId": "0f1211aa-afb1-45e1-c6fb-c4865b93892f"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/6\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m15s\u001b[0m 556ms/step - accuracy: 0.1200 - loss: 2.2874 - val_accuracy: 0.1855 - val_loss: 2.1505\n",
"Epoch 2/6\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m14s\u001b[0m 560ms/step - accuracy: 0.2117 - loss: 2.0862 - val_accuracy: 0.3449 - val_loss: 1.7981\n",
"Epoch 3/6\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m15s\u001b[0m 594ms/step - accuracy: 0.3619 - loss: 1.7431 - val_accuracy: 0.3989 - val_loss: 1.6349\n",
"Epoch 4/6\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m14s\u001b[0m 564ms/step - accuracy: 0.4179 - loss: 1.6021 - val_accuracy: 0.4420 - val_loss: 1.5258\n",
"Epoch 5/6\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m14s\u001b[0m 564ms/step - accuracy: 0.4615 - loss: 1.4910 - val_accuracy: 0.4814 - val_loss: 1.4457\n",
"Epoch 6/6\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m14s\u001b[0m 561ms/step - accuracy: 0.5026 - loss: 1.3813 - val_accuracy: 0.4991 - val_loss: 1.3774\n"
]
}
],
"source": [
"model.compile(optimizer='adam',\n",
" loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),\n",
" metrics=['accuracy'])\n",
"\n",
"history = model.fit(train_images, train_labels, epochs=6, batch_size=2**11, \n",
" validation_data=(test_images, test_labels))"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 300
},
"id": "Y8mAWZshvBGJ",
"outputId": "cc8ec1f2-4dae-479a-ea06-32e09c484f60"
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f617c1ef680>"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAG2CAYAAACDLKdOAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAT2NJREFUeJzt3Xl4VPXZxvHvTPY9IXtCIOyLEHYiihuiCEpFbYtIBVFrbQGX1AoogrYqqEXRglp9EVxAqFqQyqKIRS2gIBgWSSJbCIGsQHayzcz7x8DAkIAEkkxyuD/XNRc5Z86ZeWaK5O5vNdlsNhsiIiIiBmF2dQEiIiIi9UnhRkRERAxF4UZEREQMReFGREREDEXhRkRERAxF4UZEREQMReFGREREDEXhRkRERAxF4UZEREQMReFGREREDMWl4eabb75h+PDhxMTEYDKZWLZs2S/es27dOnr37o2Xlxft27dnwYIFDV6niIiINB8uDTelpaX06NGDuXPnntf1+/fv5+abb+a6664jOTmZRx55hPvvv5/PP/+8gSsVERGR5sLUVDbONJlMLF26lBEjRpz1mkmTJrFixQp27tzpOHfnnXdSUFDA6tWrG6FKERERaercXV1AXWzcuJHBgwc7nRsyZAiPPPLIWe+pqKigoqLCcWy1Wjl69CihoaGYTKaGKlVERETqkc1mo7i4mJiYGMzmc3c8Natwk52dTWRkpNO5yMhIioqKOH78OD4+PjXumTFjBs8880xjlSgiIiIN6ODBg7Rs2fKc1zSrcHMhpkyZQlJSkuO4sLCQVq1acfDgQQIDA11YmYiIiJyvoqIi4uLiCAgI+MVrm1W4iYqKIicnx+lcTk4OgYGBtbbaAHh5eeHl5VXjfGBgoMKNiIhIM3M+Q0qa1To3AwYMYO3atU7n1qxZw4ABA1xUkYiIiDQ1Lg03JSUlJCcnk5ycDNineicnJ5ORkQHYu5TGjBnjuP7BBx9k3759PP7446SmpvL666/zr3/9i0cffdQV5YuIiEgT5NJw88MPP9CrVy969eoFQFJSEr169WLatGkAZGVlOYIOQJs2bVixYgVr1qyhR48ezJo1i//7v/9jyJAhLqlfREREmp4ms85NYykqKiIoKIjCwkKNuREREWkm6vL7u1mNuRERERH5JQo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoCjciIiJiKAo3IiIiYigKNyIiImIoLg83c+fOJT4+Hm9vbxITE9m0adM5r589ezadOnXCx8eHuLg4Hn30UcrLyxupWhEREWnqXBpulixZQlJSEtOnT2fr1q306NGDIUOGkJubW+v1ixYtYvLkyUyfPp2UlBTmzZvHkiVLeOKJJxq5chEREWmqXBpuXn75ZX7/+98zbtw4unbtyptvvomvry/vvPNOrddv2LCBK6+8krvuuov4+HhuvPFGRo0a9YutPSIiInLpcFm4qaysZMuWLQwePPhUMWYzgwcPZuPGjbXec8UVV7BlyxZHmNm3bx8rV65k2LBhZ32fiooKioqKnB4iIiJiXO6ueuP8/HwsFguRkZFO5yMjI0lNTa31nrvuuov8/HwGDhyIzWajurqaBx988JzdUjNmzOCZZ56p19pFRESk6XL5gOK6WLduHc8//zyvv/46W7du5d///jcrVqzgb3/721nvmTJlCoWFhY7HwYMHG7FiERERaWwua7kJCwvDzc2NnJwcp/M5OTlERUXVes9TTz3F3Xffzf333w9A9+7dKS0t5YEHHuDJJ5/EbK6Z1by8vPDy8qr/DyAiIiJNkstabjw9PenTpw9r1651nLNaraxdu5YBAwbUek9ZWVmNAOPm5gaAzWZruGJFRESk2XBZyw1AUlISY8eOpW/fvvTv35/Zs2dTWlrKuHHjABgzZgyxsbHMmDEDgOHDh/Pyyy/Tq1cvEhMT2bNnD0899RTDhw93hBwRERG5tLk03IwcOZK8vDymTZtGdnY2PXv2ZPXq1Y5BxhkZGU4tNVOnTsVkMjF16lQOHTpEeHg4w4cP57nnnnPVRxAREZEmxmS7xPpzioqKCAoKorCwkMDAQFeXIyIiIuehLr+/m9VsKREREZFfonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIoaicCMiIiKGonAjIiIihqJwIyIiIobi8nAzd+5c4uPj8fb2JjExkU2bNp3z+oKCAsaPH090dDReXl507NiRlStXNlK1IiIi0tS5u/LNlyxZQlJSEm+++SaJiYnMnj2bIUOGkJaWRkRERI3rKysrueGGG4iIiODjjz8mNjaWAwcOEBwc3PjFi4iISJNkstlsNle9eWJiIv369WPOnDkAWK1W4uLimDhxIpMnT65x/ZtvvslLL71EamoqHh4eF/SeRUVFBAUFUVhYSGBg4EXVLyIiIo2jLr+/XdYtVVlZyZYtWxg8ePCpYsxmBg8ezMaNG2u9Z/ny5QwYMIDx48cTGRlJt27deP7557FYLGd9n4qKCoqKipweIiIiYlwuCzf5+flYLBYiIyOdzkdGRpKdnV3rPfv27ePjjz/GYrGwcuVKnnrqKWbNmsWzzz571veZMWMGQUFBjkdcXFy9fg4RERFpWlw+oLgurFYrERERvPXWW/Tp04eRI0fy5JNP8uabb571nilTplBYWOh4HDx4sBErFhERkcbmsgHFYWFhuLm5kZOT43Q+JyeHqKioWu+Jjo7Gw8MDNzc3x7kuXbqQnZ1NZWUlnp6eNe7x8vLCy8urfosXERGRJstlLTeenp706dOHtWvXOs5ZrVbWrl3LgAEDar3nyiuvZM+ePVitVse5n3/+mejo6FqDjYiIiFx6XNotlZSUxNtvv827775LSkoKf/zjHyktLWXcuHEAjBkzhilTpjiu/+Mf/8jRo0d5+OGH+fnnn1mxYgXPP/8848ePd9VHEBERkSbGpevcjBw5kry8PKZNm0Z2djY9e/Zk9erVjkHGGRkZmM2n8ldcXByff/45jz76KAkJCcTGxvLwww8zadIkV30EERERaWJcus6NK2idGxERkea
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(history.history['accuracy'], label='accuracy')\n",
"plt.plot(history.history['val_accuracy'], label = 'val_accuracy')\n",
"plt.xlabel('Epoch')\n",
"plt.ylabel('Accuracy')\n",
"plt.ylim([0.0, 1])\n",
"plt.legend(loc='lower right')\n",
"\n",
"#test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "HCN3gqhtvGzj",
"outputId": "fa85df97-a484-419c-8b14-5b5c1a528be3"
},
"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_7\"</span>\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1mModel: \"sequential_7\"\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",
"│ flatten_7 (<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\">3072</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_18 (<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\">196,672</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_19 (<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\">16,640</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_20 (<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_21 (<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"
],
"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_7 (\u001b[38;5;33mFlatten\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m3072\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_18 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m196,672\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_19 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m16,640\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_20 (\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_21 (\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"
]
},
"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\">247,498</span> (966.79 KB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m247,498\u001b[0m (966.79 KB)\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\">247,498</span> (966.79 KB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m247,498\u001b[0m (966.79 KB)\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": [
"fc_model = models.Sequential()\n",
"fc_model.add(layers.Flatten(input_shape=(32, 32, 3)))\n",
"fc_model.add(layers.Dense(64, activation='relu'))\n",
"fc_model.add(layers.Dense(256, activation='relu'))\n",
"fc_model.add(layers.Dense(128, activation='relu'))\n",
"fc_model.add(layers.Dense(10))\n",
"fc_model.summary()"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "o-lxxt6q1O7S",
"outputId": "0f9e418d-faab-4487-8d1e-420ee9f355ed"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 44ms/step - accuracy: 0.1018 - loss: 60.7497 - val_accuracy: 0.1001 - val_loss: 2.3026\n",
"Epoch 2/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 33ms/step - accuracy: 0.1006 - loss: 2.3038 - val_accuracy: 0.0999 - val_loss: 2.3026\n",
"Epoch 3/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - accuracy: 0.0996 - loss: 2.3028 - val_accuracy: 0.0999 - val_loss: 2.3025\n",
"Epoch 4/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 37ms/step - accuracy: 0.0986 - loss: 2.3027 - val_accuracy: 0.0999 - val_loss: 2.3025\n",
"Epoch 5/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 35ms/step - accuracy: 0.1003 - loss: 2.3026 - val_accuracy: 0.0999 - val_loss: 2.3026\n",
"Epoch 6/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - accuracy: 0.0980 - loss: 2.3025 - val_accuracy: 0.1000 - val_loss: 2.3026\n",
"Epoch 7/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 33ms/step - accuracy: 0.1002 - loss: 2.3025 - val_accuracy: 0.1000 - val_loss: 2.3026\n",
"Epoch 8/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - accuracy: 0.0988 - loss: 2.3025 - val_accuracy: 0.0999 - val_loss: 2.3026\n",
"Epoch 9/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - accuracy: 0.1013 - loss: 2.3026 - val_accuracy: 0.0999 - val_loss: 2.3026\n",
"Epoch 10/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 36ms/step - accuracy: 0.1004 - loss: 2.3024 - val_accuracy: 0.1000 - val_loss: 2.3026\n",
"Epoch 11/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 32ms/step - accuracy: 0.0994 - loss: 2.3025 - val_accuracy: 0.1000 - val_loss: 2.3026\n",
"Epoch 12/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 32ms/step - accuracy: 0.1022 - loss: 2.3025 - val_accuracy: 0.1000 - val_loss: 2.3026\n",
"Epoch 13/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - accuracy: 0.0982 - loss: 2.3025 - val_accuracy: 0.0999 - val_loss: 2.3026\n",
"Epoch 14/19\n",
"\u001b[1m25/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 33ms/step - accuracy: 0.1010 - loss: 2.3024 - val_accuracy: 0.0999 - val_loss: 2.3026\n",
"Epoch 15/19\n",
"\u001b[1m24/25\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m━\u001b[0m \u001b[1m0s\u001b[0m 28ms/step - accuracy: 0.1013 - loss: 2.3025"
]
},
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[34], line 5\u001b[0m\n\u001b[1;32m 1\u001b[0m fc_model\u001b[38;5;241m.\u001b[39mcompile(optimizer\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124madam\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m 2\u001b[0m loss\u001b[38;5;241m=\u001b[39mtf\u001b[38;5;241m.\u001b[39mkeras\u001b[38;5;241m.\u001b[39mlosses\u001b[38;5;241m.\u001b[39mSparseCategoricalCrossentropy(from_logits\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m),\n\u001b[1;32m 3\u001b[0m metrics\u001b[38;5;241m=\u001b[39m[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124maccuracy\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[0;32m----> 5\u001b[0m history \u001b[38;5;241m=\u001b[39m \u001b[43mfc_model\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtrain_images\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrain_labels\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mepochs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m19\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m11\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43mvalidation_data\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtest_images\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtest_labels\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/Dokumente/code/py/ki-dhbw/.venv/lib/python3.12/site-packages/keras/src/utils/traceback_utils.py:117\u001b[0m, in \u001b[0;36mfilter_traceback.<locals>.error_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 115\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 117\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 118\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 119\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n",
"File \u001b[0;32m~/Dokumente/code/py/ki-dhbw/.venv/lib/python3.12/site-packages/keras/src/backend/tensorflow/trainer.py:395\u001b[0m, in \u001b[0;36mTensorFlowTrainer.fit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq)\u001b[0m\n\u001b[1;32m 384\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mgetattr\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m_eval_epoch_iterator\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 385\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_eval_epoch_iterator \u001b[38;5;241m=\u001b[39m TFEpochIterator(\n\u001b[1;32m 386\u001b[0m x\u001b[38;5;241m=\u001b[39mval_x,\n\u001b[1;32m 387\u001b[0m y\u001b[38;5;241m=\u001b[39mval_y,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 393\u001b[0m shuffle\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 394\u001b[0m )\n\u001b[0;32m--> 395\u001b[0m val_logs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mevaluate\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 396\u001b[0m \u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mval_x\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 397\u001b[0m \u001b[43m \u001b[49m\u001b[43my\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mval_y\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 398\u001b[0m \u001b[43m \u001b[49m\u001b[43msample_weight\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mval_sample_weight\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 399\u001b[0m \u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mvalidation_batch_size\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 400\u001b[0m \u001b[43m \u001b[49m\u001b[43msteps\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mvalidation_steps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 401\u001b[0m \u001b[43m \u001b[49m\u001b[43mcallbacks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcallbacks\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 402\u001b[0m \u001b[43m \u001b[49m\u001b[43mreturn_dict\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 403\u001b[0m \u001b[43m \u001b[49m\u001b[43m_use_cached_eval_dataset\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 404\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 405\u001b[0m val_logs \u001b[38;5;241m=\u001b[39m {\n\u001b[1;32m 406\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mval_\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m name: val \u001b[38;5;28;01mfor\u001b[39;00m name, val \u001b[38;5;129;01min\u001b[39;00m val_logs\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 407\u001b[0m }\n\u001b[1;32m 408\u001b[0m epoch_logs\u001b[38;5;241m.\u001b[39mupdate(val_logs)\n",
"File \u001b[0;32m~/Dokumente/code/py/ki-dhbw/.venv/lib/python3.12/site-packages/keras/src/utils/traceback_utils.py:117\u001b[0m, in \u001b[0;36mfilter_traceback.<locals>.error_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 115\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 117\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 118\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 119\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n",
"File \u001b[0;32m~/Dokumente/code/py/ki-dhbw/.venv/lib/python3.12/site-packages/keras/src/backend/tensorflow/trainer.py:482\u001b[0m, in \u001b[0;36mTensorFlowTrainer.evaluate\u001b[0;34m(self, x, y, batch_size, verbose, sample_weight, steps, callbacks, return_dict, **kwargs)\u001b[0m\n\u001b[1;32m 480\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mreset_metrics()\n\u001b[1;32m 481\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m epoch_iterator\u001b[38;5;241m.\u001b[39mcatch_stop_iteration():\n\u001b[0;32m--> 482\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mstep\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miterator\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mepoch_iterator\u001b[49m\u001b[43m:\u001b[49m\n\u001b[1;32m 483\u001b[0m \u001b[43m \u001b[49m\u001b[43mcallbacks\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mon_test_batch_begin\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstep\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 484\u001b[0m \u001b[43m \u001b[49m\u001b[43mlogs\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtest_function\u001b[49m\u001b[43m(\u001b[49m\u001b[43miterator\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/Dokumente/code/py/ki-dhbw/.venv/lib/python3.12/site-packages/keras/src/backend/tensorflow/trainer.py:736\u001b[0m, in \u001b[0;36mTFEpochIterator.__next__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 735\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m__next__\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m--> 736\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mnext\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_epoch_iterator\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/Dokumente/code/py/ki-dhbw/.venv/lib/python3.12/site-packages/keras/src/trainers/epoch_iterator.py:112\u001b[0m, in \u001b[0;36mEpochIterator._enumerate_iterator\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m step, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_current_iterator\n\u001b[1;32m 111\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_num_batches \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_steps_seen \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_num_batches:\n\u001b[0;32m--> 112\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_current_iterator \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43miter\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_iterator\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 113\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_steps_seen \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n",
"File \u001b[0;32m~/Dokumente/code/py/ki-dhbw/.venv/lib/python3.12/site-packages/tensorflow/python/data/ops/dataset_ops.py:501\u001b[0m, in \u001b[0;36mDatasetV2.__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 499\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m context\u001b[38;5;241m.\u001b[39mexecuting_eagerly() \u001b[38;5;129;01mor\u001b[39;00m ops\u001b[38;5;241m.\u001b[39minside_function():\n\u001b[1;32m 500\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m ops\u001b[38;5;241m.\u001b[39mcolocate_with(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_variant_tensor):\n\u001b[0;32m--> 501\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43miterator_ops\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mOwnedIterator\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 502\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 503\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m`tf.data.Dataset` only supports Python-style \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 504\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124miteration in eager mode or within tf.function.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"File \u001b[0;32m~/Dokumente/code/py/ki-dhbw/.venv/lib/python3.12/site-packages/tensorflow/python/data/ops/iterator_ops.py:709\u001b[0m, in \u001b[0;36mOwnedIterator.__init__\u001b[0;34m(self, dataset, components, element_spec)\u001b[0m\n\u001b[1;32m 705\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (components \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m element_spec \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 706\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 707\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mWhen `dataset` is provided, `element_spec` and `components` must \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 708\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnot be specified.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 709\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_create_iterator\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdataset\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 711\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_next_call_count \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m\n",
"File \u001b[0;32m~/Dokumente/code/py/ki-dhbw/.venv/lib/python3.12/site-packages/tensorflow/python/data/ops/iterator_ops.py:748\u001b[0m, in \u001b[0;36mOwnedIterator._create_iterator\u001b[0;34m(self, dataset)\u001b[0m\n\u001b[1;32m 745\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(fulltype\u001b[38;5;241m.\u001b[39margs[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39margs[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39margs) \u001b[38;5;241m==\u001b[39m \u001b[38;5;28mlen\u001b[39m(\n\u001b[1;32m 746\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_flat_output_types)\n\u001b[1;32m 747\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_iterator_resource\u001b[38;5;241m.\u001b[39mop\u001b[38;5;241m.\u001b[39mexperimental_set_type(fulltype)\n\u001b[0;32m--> 748\u001b[0m \u001b[43mgen_dataset_ops\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmake_iterator\u001b[49m\u001b[43m(\u001b[49m\u001b[43mds_variant\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_iterator_resource\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/Dokumente/code/py/ki-dhbw/.venv/lib/python3.12/site-packages/tensorflow/python/ops/gen_dataset_ops.py:3478\u001b[0m, in \u001b[0;36mmake_iterator\u001b[0;34m(dataset, iterator, name)\u001b[0m\n\u001b[1;32m 3476\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m tld\u001b[38;5;241m.\u001b[39mis_eager:\n\u001b[1;32m 3477\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 3478\u001b[0m _result \u001b[38;5;241m=\u001b[39m \u001b[43mpywrap_tfe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mTFE_Py_FastPathExecute\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3479\u001b[0m \u001b[43m \u001b[49m\u001b[43m_ctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mMakeIterator\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdataset\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miterator\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3480\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _result\n\u001b[1;32m 3481\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m _core\u001b[38;5;241m.\u001b[39m_NotOkStatusException \u001b[38;5;28;01mas\u001b[39;00m e:\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m: "
]
}
],
"source": [
"fc_model.compile(optimizer='adam',\n",
" loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),\n",
" metrics=['accuracy'])\n",
"\n",
"history = fc_model.fit(train_images, train_labels, epochs=19, batch_size=2**11,\n",
" validation_data=(test_images, test_labels))"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f60d8572e40>"
]
},
"execution_count": 35,
"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": [
"plt.plot(history.history['accuracy'], label='accuracy')\n",
"plt.plot(history.history['val_accuracy'], label = 'val_accuracy')\n",
"plt.xlabel('Epoch')\n",
"plt.ylabel('Accuracy')\n",
"plt.ylim([0.8, 1])\n",
"plt.legend(loc='lower right')"
]
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"provenance": []
},
"gpuClass": "standard",
"kernelspec": {
"display_name": ".venv",
"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.12.9"
}
},
"nbformat": 4,
"nbformat_minor": 1
}