diff --git a/PythonAI/JupyterLab/PythonAI_5.ipynb b/PythonAI/JupyterLab/PythonAI_5.ipynb index b33f330..6d9076c 100644 --- a/PythonAI/JupyterLab/PythonAI_5.ipynb +++ b/PythonAI/JupyterLab/PythonAI_5.ipynb @@ -70,9 +70,7 @@ { "cell_type": "markdown", "id": "9d98ba73-f954-4a6a-ac09-3a6b1afa58ce", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ "# Kod" ] @@ -80,16 +78,14 @@ { "cell_type": "markdown", "id": "11ee196e-06a8-47a4-a411-aa7dd06faaf8", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ "## Setup i wczytanie danych" ] }, { "cell_type": "code", - "execution_count": 134, + "execution_count": 33, "id": "ed806007-30fb-4048-8fa5-f31c7eed433a", "metadata": {}, "outputs": [], @@ -101,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 135, + "execution_count": 34, "id": "4b4881e2-fdaf-4ccc-b68e-15ec7391146e", "metadata": {}, "outputs": [], @@ -113,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 136, + "execution_count": 35, "id": "455c540d-bad5-4a66-9b13-35113ae41f3d", "metadata": {}, "outputs": [], @@ -129,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": 137, + "execution_count": 36, "id": "beee8e5a-348e-45d1-9a40-79976aed712f", "metadata": {}, "outputs": [ @@ -169,9 +165,7 @@ { "cell_type": "markdown", "id": "37735925-efe6-4540-97a3-c0c130274fae", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ "## Model" ] @@ -186,18 +180,26 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 37, "id": "4ec7f823-09ee-4b22-a2f6-f3f74853211e", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/sasza/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/keras/src/layers/core/dense.py:93: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n", + " super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n" + ] + }, { "data": { "text/html": [ - "
Model: \"sequential_15\"\n", + "Model: \"sequential_4\"\n", "\n" ], "text/plain": [ - "\u001b[1mModel: \"sequential_15\"\u001b[0m\n" + "\u001b[1mModel: \"sequential_4\"\u001b[0m\n" ] }, "metadata": {}, @@ -318,7 +320,7 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 38, "id": "6d0dbbe5-7eac-4917-aff1-6f127ab46dfb", "metadata": {}, "outputs": [], @@ -339,7 +341,7 @@ }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 39, "id": "30ce3fe1-2cc6-4dad-8b71-c04763d525fa", "metadata": {}, "outputs": [ @@ -347,65 +349,78 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch 1/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 8ms/step - accuracy: 0.7797 - loss: 0.6840 - val_accuracy: 0.9529 - val_loss: 0.1505\n", + "Epoch 1/25\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-05-20 13:23:23.834163: W external/local_xla/xla/tsl/framework/cpu_allocator_impl.cc:83] Allocation of 301056000 exceeds 10% of free system memory.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 9ms/step - accuracy: 0.7850 - loss: 0.6727 - val_accuracy: 0.9557 - val_loss: 0.1503\n", "Epoch 2/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9466 - loss: 0.1820 - val_accuracy: 0.9659 - val_loss: 0.1156\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 9ms/step - accuracy: 0.9457 - loss: 0.1848 - val_accuracy: 0.9625 - val_loss: 0.1182\n", "Epoch 3/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9579 - loss: 0.1361 - val_accuracy: 0.9683 - val_loss: 0.1057\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 9ms/step - accuracy: 0.9584 - loss: 0.1359 - val_accuracy: 0.9688 - val_loss: 0.1069\n", "Epoch 4/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9674 - loss: 0.1131 - val_accuracy: 0.9681 - val_loss: 0.1111\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9668 - loss: 0.1052 - val_accuracy: 0.9682 - val_loss: 0.1080\n", "Epoch 5/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 7ms/step - accuracy: 0.9706 - loss: 0.0968 - val_accuracy: 0.9723 - val_loss: 0.0927\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9735 - loss: 0.0867 - val_accuracy: 0.9723 - val_loss: 0.0939\n", "Epoch 6/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 7ms/step - accuracy: 0.9751 - loss: 0.0820 - val_accuracy: 0.9718 - val_loss: 0.0968\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9725 - loss: 0.0900 - val_accuracy: 0.9736 - val_loss: 0.0926\n", "Epoch 7/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 7ms/step - accuracy: 0.9772 - loss: 0.0747 - val_accuracy: 0.9715 - val_loss: 0.1028\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 10ms/step - accuracy: 0.9771 - loss: 0.0740 - val_accuracy: 0.9722 - val_loss: 0.1025\n", "Epoch 8/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9773 - loss: 0.0707 - val_accuracy: 0.9731 - val_loss: 0.0950\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 9ms/step - accuracy: 0.9781 - loss: 0.0684 - val_accuracy: 0.9713 - val_loss: 0.0975\n", "Epoch 9/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9801 - loss: 0.0605 - val_accuracy: 0.9747 - val_loss: 0.0953\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9814 - loss: 0.0592 - val_accuracy: 0.9726 - val_loss: 0.0988\n", "Epoch 10/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9813 - loss: 0.0599 - val_accuracy: 0.9731 - val_loss: 0.0968\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9830 - loss: 0.0560 - val_accuracy: 0.9713 - val_loss: 0.1129\n", "Epoch 11/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9836 - loss: 0.0521 - val_accuracy: 0.9738 - val_loss: 0.1034\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9831 - loss: 0.0554 - val_accuracy: 0.9734 - val_loss: 0.1071\n", "Epoch 12/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 7ms/step - accuracy: 0.9853 - loss: 0.0463 - val_accuracy: 0.9758 - val_loss: 0.0912\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9844 - loss: 0.0486 - val_accuracy: 0.9753 - val_loss: 0.0967\n", "Epoch 13/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 7ms/step - accuracy: 0.9847 - loss: 0.0494 - val_accuracy: 0.9744 - val_loss: 0.1016\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 10ms/step - accuracy: 0.9857 - loss: 0.0467 - val_accuracy: 0.9758 - val_loss: 0.0978\n", "Epoch 14/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9859 - loss: 0.0459 - val_accuracy: 0.9751 - val_loss: 0.1031\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 9ms/step - accuracy: 0.9857 - loss: 0.0456 - val_accuracy: 0.9728 - val_loss: 0.1028\n", "Epoch 15/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 8ms/step - accuracy: 0.9854 - loss: 0.0456 - val_accuracy: 0.9742 - val_loss: 0.1089\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 10ms/step - accuracy: 0.9866 - loss: 0.0438 - val_accuracy: 0.9742 - val_loss: 0.1067\n", "Epoch 16/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 7ms/step - accuracy: 0.9874 - loss: 0.0435 - val_accuracy: 0.9772 - val_loss: 0.0990\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 10ms/step - accuracy: 0.9861 - loss: 0.0439 - val_accuracy: 0.9746 - val_loss: 0.0986\n", "Epoch 17/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 7ms/step - accuracy: 0.9877 - loss: 0.0401 - val_accuracy: 0.9752 - val_loss: 0.1109\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 11ms/step - accuracy: 0.9865 - loss: 0.0433 - val_accuracy: 0.9766 - val_loss: 0.1007\n", "Epoch 18/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9891 - loss: 0.0346 - val_accuracy: 0.9747 - val_loss: 0.1082\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9891 - loss: 0.0366 - val_accuracy: 0.9764 - val_loss: 0.1119\n", "Epoch 19/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9882 - loss: 0.0383 - val_accuracy: 0.9775 - val_loss: 0.1048\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 9ms/step - accuracy: 0.9884 - loss: 0.0371 - val_accuracy: 0.9751 - val_loss: 0.1098\n", "Epoch 20/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9897 - loss: 0.0325 - val_accuracy: 0.9778 - val_loss: 0.1025\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9894 - loss: 0.0352 - val_accuracy: 0.9758 - val_loss: 0.1167\n", "Epoch 21/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9895 - loss: 0.0346 - val_accuracy: 0.9768 - val_loss: 0.1113\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9894 - loss: 0.0347 - val_accuracy: 0.9756 - val_loss: 0.1151\n", "Epoch 22/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 7ms/step - accuracy: 0.9899 - loss: 0.0338 - val_accuracy: 0.9743 - val_loss: 0.1128\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9891 - loss: 0.0357 - val_accuracy: 0.9738 - val_loss: 0.1123\n", "Epoch 23/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 7ms/step - accuracy: 0.9907 - loss: 0.0305 - val_accuracy: 0.9769 - val_loss: 0.1209\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9904 - loss: 0.0300 - val_accuracy: 0.9753 - val_loss: 0.1220\n", "Epoch 24/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 7ms/step - accuracy: 0.9893 - loss: 0.0349 - val_accuracy: 0.9753 - val_loss: 0.1185\n", + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 8ms/step - accuracy: 0.9894 - loss: 0.0355 - val_accuracy: 0.9759 - val_loss: 0.1151\n", "Epoch 25/25\n", - "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 7ms/step - accuracy: 0.9909 - loss: 0.0311 - val_accuracy: 0.9760 - val_loss: 0.1198\n" + "\u001b[1m750/750\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 9ms/step - accuracy: 0.9913 - loss: 0.0292 - val_accuracy: 0.9764 - val_loss: 0.1148\n" ] }, { "data": { "text/plain": [ - "" + " " ] }, - "execution_count": 94, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -421,7 +436,7 @@ }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 40, "id": "da23d88f-8187-41eb-919b-c925b3330924", "metadata": {}, "outputs": [ @@ -429,8 +444,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 3ms/step - accuracy: 0.9767 - loss: 0.1173\n", - "Test accuracy: 0.9783999919891357\n" + "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 3ms/step - accuracy: 0.9766 - loss: 0.1092\n", + "Test accuracy: 0.9790999889373779\n" ] } ], @@ -1907,9 +1922,7 @@ { "cell_type": "markdown", "id": "cd20cae1-be7f-49ee-b112-15f4cd9cfc6f", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ "# CNN - Convolutional Neural Network\n", "## zalety \n", @@ -1920,7 +1933,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 31, "id": "0c993d2e-5730-4084-a3c1-1bc001041ba1", "metadata": {}, "outputs": [], @@ -1938,7 +1951,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 41, "id": "2ee7ebc4-4be9-4720-b605-abe3153477dd", "metadata": {}, "outputs": [], @@ -1950,7 +1963,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 42, "id": "8f6fd327-3219-4ad5-a5f6-c043ccd108ea", "metadata": {}, "outputs": [], @@ -1971,7 +1984,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 43, "id": "1184eeaf-1cac-4a3f-b37d-b8edc3af40bd", "metadata": {}, "outputs": [], @@ -1990,19 +2003,10 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 44, "id": "56509616-c5fa-44ba-875c-5739e7411c60", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/sasza/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n", - " super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n" - ] - } - ], + "outputs": [], "source": [ "model = Sequential(layers=[\n", " # blok 1\n", @@ -2043,7 +2047,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 45, "id": "4d837958-3e5e-45a5-8d6c-33b2d7e1528b", "metadata": {}, "outputs": [], @@ -2057,18 +2061,18 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 46, "id": "04b45a8e-58b2-43d8-8cf9-2fd86e961eb5", "metadata": {}, "outputs": [ { "data": { "text/html": [ - " Model: \"sequential_3\"\n", + "\n" ], @@ -2198,9 +2202,9 @@ "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dropout_8 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m4\u001b[0m, \u001b[38;5;34m4\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ flatten (\u001b[38;5;33mFlatten\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m2048\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "│ flatten_2 (\u001b[38;5;33mFlatten\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m2048\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m20,490\u001b[0m │\n", + "│ dense_4 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m20,490\u001b[0m │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" ] }, @@ -2261,7 +2265,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 47, "id": "227d98ed-a60d-4fcf-aa0a-2f9fc1b4050e", "metadata": {}, "outputs": [ @@ -2270,32 +2274,32 @@ "output_type": "stream", "text": [ "Epoch 1/5\n", - "\u001b[1m195/195\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m49s\u001b[0m 222ms/step - accuracy: 0.1819 - loss: 2.8103 - val_accuracy: 0.1018 - val_loss: 97.6675\n", + "\u001b[1m195/195\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m44s\u001b[0m 193ms/step - accuracy: 0.1846 - loss: 2.9937 - val_accuracy: 0.1139 - val_loss: 119.8130\n", "Epoch 2/5\n", - "\u001b[1m195/195\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m43s\u001b[0m 222ms/step - accuracy: 0.2692 - loss: 2.1237 - val_accuracy: 0.1161 - val_loss: 82.1247\n", + "\u001b[1m195/195\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m38s\u001b[0m 194ms/step - accuracy: 0.2884 - loss: 2.0893 - val_accuracy: 0.0997 - val_loss: 174.2058\n", "Epoch 3/5\n", - "\u001b[1m195/195\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m48s\u001b[0m 248ms/step - accuracy: 0.3134 - loss: 1.9531 - val_accuracy: 0.1122 - val_loss: 135.0129\n", + "\u001b[1m195/195\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m34s\u001b[0m 174ms/step - accuracy: 0.3147 - loss: 1.9001 - val_accuracy: 0.1000 - val_loss: 198.8870\n", "Epoch 4/5\n", - "\u001b[1m195/195\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m44s\u001b[0m 226ms/step - accuracy: 0.3663 - loss: 1.7459 - val_accuracy: 0.1282 - val_loss: 175.1613\n", + "\u001b[1m195/195\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 181ms/step - accuracy: 0.3143 - loss: 1.8317 - val_accuracy: 0.1010 - val_loss: 159.6765\n", "Epoch 5/5\n", - "\u001b[1m195/195\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 204ms/step - accuracy: 0.3564 - loss: 1.7099 - val_accuracy: 0.1055 - val_loss: 170.8446\n" + "\u001b[1m195/195\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 206ms/step - accuracy: 0.3589 - loss: 1.7084 - val_accuracy: 0.1327 - val_loss: 79.0597\n" ] }, { "data": { "text/plain": [ - "Model: \"sequential_5\"\n", "\n" ], "text/plain": [ - "\u001b[1mModel: \"sequential_3\"\u001b[0m\n" + "\u001b[1mModel: \"sequential_5\"\u001b[0m\n" ] }, "metadata": {}, @@ -2134,9 +2138,9 @@ "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dropout_8 (Dropout) │ (None, 4, 4, 128) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ flatten (Flatten) │ (None, 2048) │ 0 │\n", + "│ flatten_2 (Flatten) │ (None, 2048) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense (Dense) │ (None, 10) │ 20,490 │\n", + "│ dense_4 (Dense) │ (None, 10) │ 20,490 │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n", "" + " " ] }, - "execution_count": 34, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.fit(\n", - " x=data_generator.flow(X_train, Y_train, batch_size=16),\n", - " epochs=5,\n", + " x=data_generator.flow(X_train, Y_train, batch_size=256),\n", + " epochs=100,\n", " verbose=1,\n", " validation_data=(X_validation, Y_validation),\n", " steps_per_epoch=len(X_train) // 256\n", @@ -2737,7 +2741,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 19, "id": "9bde4f30-f26c-4b37-bfa6-8b64460fe13d", "metadata": {}, "outputs": [], @@ -2749,7 +2753,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 20, "id": "d2e9da87-1912-466f-b902-e45130d8fd32", "metadata": {}, "outputs": [], @@ -2761,19 +2765,10 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 21, "id": "88156e8c-3c2a-467e-a018-a09c0f292de0", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/sasza/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/keras/src/layers/core/embedding.py:97: UserWarning: Argument `input_length` is deprecated. Just remove it.\n", - " warnings.warn(\n" - ] - } - ], + "outputs": [], "source": [ "model = Sequential()\n", "model.add(Embedding(vocab_size, embedding_dim, input_length=sequence_length))\n", @@ -2783,9 +2778,129 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "f976e119-8888-4316-a1b8-2352f74c42e8", "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " Model: \"sequential_2\"\n", + "\n" + ], + "text/plain": [ + "\u001b[1mModel: \"sequential_2\"\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", + "┃ Layer (type) ┃ Output Shape ┃ Param # ┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", + "│ embedding_1 (Embedding) │ ? │ 0 (unbuilt) │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ simple_rnn_1 (SimpleRNN) │ ? │ 0 (unbuilt) │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_2 (Dense) │ ? │ 0 (unbuilt) │\n", + "└─────────────────────────────────┴────────────────────────┴───────────────┘\n", + "\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", + "│ embedding_1 (\u001b[38;5;33mEmbedding\u001b[0m) │ ? │ \u001b[38;5;34m0\u001b[0m (unbuilt) │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ simple_rnn_1 (\u001b[38;5;33mSimpleRNN\u001b[0m) │ ? │ \u001b[38;5;34m0\u001b[0m (unbuilt) │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ ? │ \u001b[38;5;34m0\u001b[0m (unbuilt) │\n", + "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "Total params: 0 (0.00 B)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "Trainable params: 0 (0.00 B)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "Non-trainable params: 0 (0.00 B)\n", + "\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.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])\n", + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b024476-a946-4672-b1e9-8bb0de26c8e8", + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from tensorflow.keras.preprocessing.text import Tokenizer\n", + "from tensorflow.keras.utils import to_categorical\n", + "from tensorflow.keras.preprocessing.sequence import pad_sequences\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "862e9746-1f60-4036-b007-13240b285e2f", + "metadata": {}, + "outputs": [], + "source": [ + "text = \"\"\"\n", + "Ala ma kota. Kot ma na imię Mruczek. Mruczek lubi mleko. Ala daje mu mleko każdego dnia.\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "76e6afde-0194-4714-8b77-8a1876c5d128", + "metadata": {}, "outputs": [], "source": [] }