diff --git a/PythonAI/JupyterLab/PythonAI_5.ipynb b/PythonAI/JupyterLab/PythonAI_5.ipynb index 6d9076c..444af81 100644 --- a/PythonAI/JupyterLab/PythonAI_5.ipynb +++ b/PythonAI/JupyterLab/PythonAI_5.ipynb @@ -1933,7 +1933,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 48, "id": "0c993d2e-5730-4084-a3c1-1bc001041ba1", "metadata": {}, "outputs": [], @@ -1951,7 +1951,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 49, "id": "2ee7ebc4-4be9-4720-b605-abe3153477dd", "metadata": {}, "outputs": [], @@ -1963,7 +1963,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 50, "id": "8f6fd327-3219-4ad5-a5f6-c043ccd108ea", "metadata": {}, "outputs": [], @@ -1984,7 +1984,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 51, "id": "1184eeaf-1cac-4a3f-b37d-b8edc3af40bd", "metadata": {}, "outputs": [], @@ -2003,7 +2003,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 52, "id": "56509616-c5fa-44ba-875c-5739e7411c60", "metadata": {}, "outputs": [], @@ -2047,7 +2047,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 53, "id": "4d837958-3e5e-45a5-8d6c-33b2d7e1528b", "metadata": {}, "outputs": [], @@ -2061,18 +2061,18 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 55, "id": "04b45a8e-58b2-43d8-8cf9-2fd86e961eb5", "metadata": {}, "outputs": [ { "data": { "text/html": [ - "
Model: \"sequential_5\"\n", + "Model: \"sequential_6\"\n", "\n" ], "text/plain": [ - "\u001b[1mModel: \"sequential_5\"\u001b[0m\n" + "\u001b[1mModel: \"sequential_6\"\u001b[0m\n" ] }, "metadata": {}, @@ -2084,63 +2084,63 @@ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", "┃ Layer (type) ┃ Output Shape ┃ Param # ┃\n", "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", - "│ conv2d_12 (Conv2D) │ (None, 32, 32, 32) │ 896 │\n", + "│ conv2d_18 (Conv2D) │ (None, 32, 32, 32) │ 896 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_12 │ (None, 32, 32, 32) │ 128 │\n", + "│ batch_normalization_18 │ (None, 32, 32, 32) │ 128 │\n", "│ (BatchNormalization) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_12 (Activation) │ (None, 32, 32, 32) │ 0 │\n", + "│ activation_18 (Activation) │ (None, 32, 32, 32) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ conv2d_13 (Conv2D) │ (None, 32, 32, 32) │ 9,248 │\n", + "│ conv2d_19 (Conv2D) │ (None, 32, 32, 32) │ 9,248 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_13 │ (None, 32, 32, 32) │ 128 │\n", + "│ batch_normalization_19 │ (None, 32, 32, 32) │ 128 │\n", "│ (BatchNormalization) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_13 (Activation) │ (None, 32, 32, 32) │ 0 │\n", + "│ activation_19 (Activation) │ (None, 32, 32, 32) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ max_pooling2d_6 (MaxPooling2D) │ (None, 16, 16, 32) │ 0 │\n", + "│ max_pooling2d_9 (MaxPooling2D) │ (None, 16, 16, 32) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dropout_6 (Dropout) │ (None, 16, 16, 32) │ 0 │\n", + "│ dropout_9 (Dropout) │ (None, 16, 16, 32) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ conv2d_14 (Conv2D) │ (None, 16, 16, 64) │ 18,496 │\n", + "│ conv2d_20 (Conv2D) │ (None, 16, 16, 64) │ 18,496 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_14 │ (None, 16, 16, 64) │ 256 │\n", + "│ batch_normalization_20 │ (None, 16, 16, 64) │ 256 │\n", "│ (BatchNormalization) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_14 (Activation) │ (None, 16, 16, 64) │ 0 │\n", + "│ activation_20 (Activation) │ (None, 16, 16, 64) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ conv2d_15 (Conv2D) │ (None, 16, 16, 64) │ 36,928 │\n", + "│ conv2d_21 (Conv2D) │ (None, 16, 16, 64) │ 36,928 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_15 │ (None, 16, 16, 64) │ 256 │\n", + "│ batch_normalization_21 │ (None, 16, 16, 64) │ 256 │\n", "│ (BatchNormalization) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_15 (Activation) │ (None, 16, 16, 64) │ 0 │\n", + "│ activation_21 (Activation) │ (None, 16, 16, 64) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ max_pooling2d_7 (MaxPooling2D) │ (None, 8, 8, 64) │ 0 │\n", + "│ max_pooling2d_10 (MaxPooling2D) │ (None, 8, 8, 64) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dropout_7 (Dropout) │ (None, 8, 8, 64) │ 0 │\n", + "│ dropout_10 (Dropout) │ (None, 8, 8, 64) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ conv2d_16 (Conv2D) │ (None, 8, 8, 128) │ 73,856 │\n", + "│ conv2d_22 (Conv2D) │ (None, 8, 8, 128) │ 73,856 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_16 │ (None, 8, 8, 128) │ 512 │\n", + "│ batch_normalization_22 │ (None, 8, 8, 128) │ 512 │\n", "│ (BatchNormalization) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_16 (Activation) │ (None, 8, 8, 128) │ 0 │\n", + "│ activation_22 (Activation) │ (None, 8, 8, 128) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ conv2d_17 (Conv2D) │ (None, 8, 8, 128) │ 147,584 │\n", + "│ conv2d_23 (Conv2D) │ (None, 8, 8, 128) │ 147,584 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_17 │ (None, 8, 8, 128) │ 512 │\n", + "│ batch_normalization_23 │ (None, 8, 8, 128) │ 512 │\n", "│ (BatchNormalization) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_17 (Activation) │ (None, 8, 8, 128) │ 0 │\n", + "│ activation_23 (Activation) │ (None, 8, 8, 128) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ max_pooling2d_8 (MaxPooling2D) │ (None, 4, 4, 128) │ 0 │\n", + "│ max_pooling2d_11 (MaxPooling2D) │ (None, 4, 4, 128) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dropout_8 (Dropout) │ (None, 4, 4, 128) │ 0 │\n", + "│ dropout_11 (Dropout) │ (None, 4, 4, 128) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ flatten_2 (Flatten) │ (None, 2048) │ 0 │\n", + "│ flatten_3 (Flatten) │ (None, 2048) │ 0 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_4 (Dense) │ (None, 10) │ 20,490 │\n", + "│ dense_5 (Dense) │ (None, 10) │ 20,490 │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n", "\n" ], @@ -2148,63 +2148,63 @@ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\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_12 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m896\u001b[0m │\n", + "│ conv2d_18 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m896\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_12 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m128\u001b[0m │\n", + "│ batch_normalization_18 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m128\u001b[0m │\n", "│ (\u001b[38;5;33mBatchNormalization\u001b[0m) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_12 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "│ activation_18 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ conv2d_13 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m9,248\u001b[0m │\n", + "│ conv2d_19 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m9,248\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_13 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m128\u001b[0m │\n", + "│ batch_normalization_19 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m128\u001b[0m │\n", "│ (\u001b[38;5;33mBatchNormalization\u001b[0m) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_13 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "│ activation_19 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ max_pooling2d_6 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "│ max_pooling2d_9 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dropout_6 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "│ dropout_9 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ conv2d_14 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m18,496\u001b[0m │\n", + "│ conv2d_20 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m18,496\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_14 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m256\u001b[0m │\n", + "│ batch_normalization_20 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m256\u001b[0m │\n", "│ (\u001b[38;5;33mBatchNormalization\u001b[0m) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_14 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "│ activation_20 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ conv2d_15 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m36,928\u001b[0m │\n", + "│ conv2d_21 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m36,928\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_15 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m256\u001b[0m │\n", + "│ batch_normalization_21 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m256\u001b[0m │\n", "│ (\u001b[38;5;33mBatchNormalization\u001b[0m) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_15 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "│ activation_21 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m16\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ max_pooling2d_7 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "│ max_pooling2d_10 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dropout_7 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "│ dropout_10 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\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;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m73,856\u001b[0m │\n", + "│ conv2d_22 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m73,856\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_16 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m512\u001b[0m │\n", + "│ batch_normalization_22 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m512\u001b[0m │\n", "│ (\u001b[38;5;33mBatchNormalization\u001b[0m) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_16 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "│ activation_22 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\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;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m147,584\u001b[0m │\n", + "│ conv2d_23 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m147,584\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ batch_normalization_17 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m512\u001b[0m │\n", + "│ batch_normalization_23 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m512\u001b[0m │\n", "│ (\u001b[38;5;33mBatchNormalization\u001b[0m) │ │ │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ activation_17 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "│ activation_23 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m8\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ max_pooling2d_8 (\u001b[38;5;33mMaxPooling2D\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", + "│ max_pooling2d_11 (\u001b[38;5;33mMaxPooling2D\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", - "│ 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", + "│ dropout_11 (\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_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", + "│ flatten_3 (\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_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", + "│ dense_5 (\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" ] }, @@ -2265,7 +2265,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 56, "id": "227d98ed-a60d-4fcf-aa0a-2f9fc1b4050e", "metadata": {}, "outputs": [ @@ -2273,27 +2273,32 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch 1/5\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[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[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[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 206ms/step - accuracy: 0.3589 - loss: 1.7084 - val_accuracy: 0.1327 - val_loss: 79.0597\n" + "Epoch 1/100\n", + "\u001b[1m138/195\u001b[0m \u001b[32m━━━━━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━\u001b[0m \u001b[1m1:35\u001b[0m 2s/step - accuracy: 0.2540 - loss: 2.3037" ] }, { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mKeyboardInterrupt\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[56]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43mmodel\u001b[49m\u001b[43m.\u001b[49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 2\u001b[39m \u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m=\u001b[49m\u001b[43mdata_generator\u001b[49m\u001b[43m.\u001b[49m\u001b[43mflow\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX_train\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mY_train\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[43m=\u001b[49m\u001b[32;43m256\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 3\u001b[39m \u001b[43m \u001b[49m\u001b[43mepochs\u001b[49m\u001b[43m=\u001b[49m\u001b[32;43m100\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 4\u001b[39m \u001b[43m \u001b[49m\u001b[43mverbose\u001b[49m\u001b[43m=\u001b[49m\u001b[32;43m1\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 5\u001b[39m \u001b[43m \u001b[49m\u001b[43mvalidation_data\u001b[49m\u001b[43m=\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX_validation\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mY_validation\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 6\u001b[39m \u001b[43m \u001b[49m\u001b[43msteps_per_epoch\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mX_train\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[43m/\u001b[49m\u001b[43m/\u001b[49m\u001b[43m \u001b[49m\u001b[32;43m256\u001b[39;49m\n\u001b[32m 7\u001b[39m \u001b[43m)\u001b[49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/keras/src/utils/traceback_utils.py:117\u001b[39m, in \u001b[36mfilter_traceback. .error_handler\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m 115\u001b[39m filtered_tb = \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 116\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m117\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 118\u001b[39m \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[32m 119\u001b[39m filtered_tb = _process_traceback_frames(e.__traceback__)\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/keras/src/backend/tensorflow/trainer.py:377\u001b[39m, in \u001b[36mTensorFlowTrainer.fit\u001b[39m\u001b[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[39m\n\u001b[32m 375\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m step, iterator \u001b[38;5;129;01min\u001b[39;00m epoch_iterator:\n\u001b[32m 376\u001b[39m callbacks.on_train_batch_begin(step)\n\u001b[32m--> \u001b[39m\u001b[32m377\u001b[39m logs = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mtrain_function\u001b[49m\u001b[43m(\u001b[49m\u001b[43miterator\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 378\u001b[39m callbacks.on_train_batch_end(step, logs)\n\u001b[32m 379\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.stop_training:\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/keras/src/backend/tensorflow/trainer.py:220\u001b[39m, in \u001b[36mTensorFlowTrainer._make_function. .function\u001b[39m\u001b[34m(iterator)\u001b[39m\n\u001b[32m 216\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mfunction\u001b[39m(iterator):\n\u001b[32m 217\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\n\u001b[32m 218\u001b[39m iterator, (tf.data.Iterator, tf.distribute.DistributedIterator)\n\u001b[32m 219\u001b[39m ):\n\u001b[32m--> \u001b[39m\u001b[32m220\u001b[39m opt_outputs = \u001b[43mmulti_step_on_iterator\u001b[49m\u001b[43m(\u001b[49m\u001b[43miterator\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 221\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m opt_outputs.has_value():\n\u001b[32m 222\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/tensorflow/python/util/traceback_utils.py:150\u001b[39m, in \u001b[36mfilter_traceback. .error_handler\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m 148\u001b[39m filtered_tb = \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 149\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m150\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 151\u001b[39m \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[32m 152\u001b[39m filtered_tb = _process_traceback_frames(e.__traceback__)\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py:833\u001b[39m, in \u001b[36mFunction.__call__\u001b[39m\u001b[34m(self, *args, **kwds)\u001b[39m\n\u001b[32m 830\u001b[39m compiler = \u001b[33m\"\u001b[39m\u001b[33mxla\u001b[39m\u001b[33m\"\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m._jit_compile \u001b[38;5;28;01melse\u001b[39;00m \u001b[33m\"\u001b[39m\u001b[33mnonXla\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 832\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m OptionalXlaContext(\u001b[38;5;28mself\u001b[39m._jit_compile):\n\u001b[32m--> \u001b[39m\u001b[32m833\u001b[39m result = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 835\u001b[39m new_tracing_count = \u001b[38;5;28mself\u001b[39m.experimental_get_tracing_count()\n\u001b[32m 836\u001b[39m without_tracing = (tracing_count == new_tracing_count)\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py:878\u001b[39m, in \u001b[36mFunction._call\u001b[39m\u001b[34m(self, *args, **kwds)\u001b[39m\n\u001b[32m 875\u001b[39m \u001b[38;5;28mself\u001b[39m._lock.release()\n\u001b[32m 876\u001b[39m \u001b[38;5;66;03m# In this case we have not created variables on the first call. So we can\u001b[39;00m\n\u001b[32m 877\u001b[39m \u001b[38;5;66;03m# run the first trace but we should fail if variables are created.\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m878\u001b[39m results = \u001b[43mtracing_compilation\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcall_function\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 879\u001b[39m \u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwds\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_variable_creation_config\u001b[49m\n\u001b[32m 880\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 881\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m._created_variables:\n\u001b[32m 882\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[33m\"\u001b[39m\u001b[33mCreating variables on a non-first call to a function\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 883\u001b[39m \u001b[33m\"\u001b[39m\u001b[33m decorated with tf.function.\u001b[39m\u001b[33m\"\u001b[39m)\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/tracing_compilation.py:139\u001b[39m, in \u001b[36mcall_function\u001b[39m\u001b[34m(args, kwargs, tracing_options)\u001b[39m\n\u001b[32m 137\u001b[39m bound_args = function.function_type.bind(*args, **kwargs)\n\u001b[32m 138\u001b[39m flat_inputs = function.function_type.unpack_inputs(bound_args)\n\u001b[32m--> \u001b[39m\u001b[32m139\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunction\u001b[49m\u001b[43m.\u001b[49m\u001b[43m_call_flat\u001b[49m\u001b[43m(\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# pylint: disable=protected-access\u001b[39;49;00m\n\u001b[32m 140\u001b[39m \u001b[43m \u001b[49m\u001b[43mflat_inputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcaptured_inputs\u001b[49m\u001b[43m=\u001b[49m\u001b[43mfunction\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcaptured_inputs\u001b[49m\n\u001b[32m 141\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/concrete_function.py:1322\u001b[39m, in \u001b[36mConcreteFunction._call_flat\u001b[39m\u001b[34m(self, tensor_inputs, captured_inputs)\u001b[39m\n\u001b[32m 1318\u001b[39m possible_gradient_type = gradients_util.PossibleTapeGradientTypes(args)\n\u001b[32m 1319\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m (possible_gradient_type == gradients_util.POSSIBLE_GRADIENT_TYPES_NONE\n\u001b[32m 1320\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m executing_eagerly):\n\u001b[32m 1321\u001b[39m \u001b[38;5;66;03m# No tape is watching; skip to running the function.\u001b[39;00m\n\u001b[32m-> \u001b[39m\u001b[32m1322\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_inference_function\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcall_preflattened\u001b[49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 1323\u001b[39m forward_backward = \u001b[38;5;28mself\u001b[39m._select_forward_and_backward_functions(\n\u001b[32m 1324\u001b[39m args,\n\u001b[32m 1325\u001b[39m possible_gradient_type,\n\u001b[32m 1326\u001b[39m executing_eagerly)\n\u001b[32m 1327\u001b[39m forward_function, args_with_tangents = forward_backward.forward()\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/atomic_function.py:216\u001b[39m, in \u001b[36mAtomicFunction.call_preflattened\u001b[39m\u001b[34m(self, args)\u001b[39m\n\u001b[32m 214\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mcall_preflattened\u001b[39m(\u001b[38;5;28mself\u001b[39m, args: Sequence[core.Tensor]) -> Any:\n\u001b[32m 215\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"Calls with flattened tensor inputs and returns the structured output.\"\"\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m216\u001b[39m flat_outputs = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mcall_flat\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 217\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m.function_type.pack_output(flat_outputs)\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/atomic_function.py:251\u001b[39m, in \u001b[36mAtomicFunction.call_flat\u001b[39m\u001b[34m(self, *args)\u001b[39m\n\u001b[32m 249\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m record.stop_recording():\n\u001b[32m 250\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m._bound_context.executing_eagerly():\n\u001b[32m--> \u001b[39m\u001b[32m251\u001b[39m outputs = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_bound_context\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcall_function\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 252\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 253\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mlist\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 254\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mfunction_type\u001b[49m\u001b[43m.\u001b[49m\u001b[43mflat_outputs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 255\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 256\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 257\u001b[39m outputs = make_call_op_in_graph(\n\u001b[32m 258\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m 259\u001b[39m \u001b[38;5;28mlist\u001b[39m(args),\n\u001b[32m 260\u001b[39m \u001b[38;5;28mself\u001b[39m._bound_context.function_call_options.as_attrs(),\n\u001b[32m 261\u001b[39m )\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/tensorflow/python/eager/context.py:1688\u001b[39m, in \u001b[36mContext.call_function\u001b[39m\u001b[34m(self, name, tensor_inputs, num_outputs)\u001b[39m\n\u001b[32m 1686\u001b[39m cancellation_context = cancellation.context()\n\u001b[32m 1687\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m cancellation_context \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m-> \u001b[39m\u001b[32m1688\u001b[39m outputs = \u001b[43mexecute\u001b[49m\u001b[43m.\u001b[49m\u001b[43mexecute\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 1689\u001b[39m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m.\u001b[49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mutf-8\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1690\u001b[39m \u001b[43m \u001b[49m\u001b[43mnum_outputs\u001b[49m\u001b[43m=\u001b[49m\u001b[43mnum_outputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1691\u001b[39m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m=\u001b[49m\u001b[43mtensor_inputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1692\u001b[39m \u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[43m=\u001b[49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1693\u001b[39m \u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 1694\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 1695\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 1696\u001b[39m outputs = execute.execute_with_cancellation(\n\u001b[32m 1697\u001b[39m name.decode(\u001b[33m\"\u001b[39m\u001b[33mutf-8\u001b[39m\u001b[33m\"\u001b[39m),\n\u001b[32m 1698\u001b[39m num_outputs=num_outputs,\n\u001b[32m (...)\u001b[39m\u001b[32m 1702\u001b[39m cancellation_manager=cancellation_context,\n\u001b[32m 1703\u001b[39m )\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/virtualenvs/JupyterLab-9JRWupKp/lib/python3.12/site-packages/tensorflow/python/eager/execute.py:53\u001b[39m, in \u001b[36mquick_execute\u001b[39m\u001b[34m(op_name, num_outputs, inputs, attrs, ctx, name)\u001b[39m\n\u001b[32m 51\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m 52\u001b[39m ctx.ensure_initialized()\n\u001b[32m---> \u001b[39m\u001b[32m53\u001b[39m tensors = \u001b[43mpywrap_tfe\u001b[49m\u001b[43m.\u001b[49m\u001b[43mTFE_Py_Execute\u001b[49m\u001b[43m(\u001b[49m\u001b[43mctx\u001b[49m\u001b[43m.\u001b[49m\u001b[43m_handle\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdevice_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mop_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 54\u001b[39m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_outputs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 55\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m core._NotOkStatusException \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[32m 56\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m name \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[31mKeyboardInterrupt\u001b[39m: " + ] } ], "source": [ @@ -2741,7 +2746,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 57, "id": "9bde4f30-f26c-4b37-bfa6-8b64460fe13d", "metadata": {}, "outputs": [], @@ -2753,7 +2758,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 58, "id": "d2e9da87-1912-466f-b902-e45130d8fd32", "metadata": {}, "outputs": [], @@ -2765,7 +2770,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 59, "id": "88156e8c-3c2a-467e-a018-a09c0f292de0", "metadata": {}, "outputs": [], @@ -2778,18 +2783,18 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 60, "id": "f976e119-8888-4316-a1b8-2352f74c42e8", "metadata": {}, "outputs": [ { "data": { "text/html": [ - " Model: \"sequential_2\"\n", + "Model: \"sequential_7\"\n", "\n" ], "text/plain": [ - "\u001b[1mModel: \"sequential_2\"\u001b[0m\n" + "\u001b[1mModel: \"sequential_7\"\u001b[0m\n" ] }, "metadata": {}, @@ -2801,11 +2806,11 @@ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", "┃ Layer (type) ┃ Output Shape ┃ Param # ┃\n", "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", - "│ embedding_1 (Embedding) │ ? │ 0 (unbuilt) │\n", + "│ embedding_2 (Embedding) │ ? │ 0 (unbuilt) │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ simple_rnn_1 (SimpleRNN) │ ? │ 0 (unbuilt) │\n", + "│ simple_rnn_2 (SimpleRNN) │ ? │ 0 (unbuilt) │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_2 (Dense) │ ? │ 0 (unbuilt) │\n", + "│ dense_6 (Dense) │ ? │ 0 (unbuilt) │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n", "\n" ], @@ -2813,11 +2818,11 @@ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\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", + "│ embedding_2 (\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", + "│ simple_rnn_2 (\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", + "│ dense_6 (\u001b[38;5;33mDense\u001b[0m) │ ? │ \u001b[38;5;34m0\u001b[0m (unbuilt) │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" ] }, @@ -2871,7 +2876,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 61, "id": "6b024476-a946-4672-b1e9-8bb0de26c8e8", "metadata": {}, "outputs": [], @@ -2886,21 +2891,646 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 105, "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", + "Pewnemu bogatemu panu zachorowała żona, a kiedy poczuła, że nadszedł jej koniec, zawołała swoją jedyną córeczkę do łóżka i rzekła: \"Drogie dziecko, bądź pobożna i dobra, a dobry Bóg będzie z tobą. Będę patrzyła na ciebie z nieba i będę przy tobie.\" Potem zamknęła oczy i odeszła. Dziewczynka codziennie chodziła na grób matki, płakała, była pobożna i dobra. Kiedy nadeszła zima, śnieg przykrył białą chustą grób, a kiedy wiosenne słońce ją zdjęło, pan wziął sobie drugą żonę.\n", + "Kobieta zabrała do domu dwie córki, które z twarzy były śniade i piękne, ale w sercach szpetne i czarne. Dla biednej pasierbicy nastał zły czas.\n", + "\"Czy ta głupia gęś ma siedzieć z nami w izbie,\" mówiły, \"Kto chce jeść chleb, musi na niego zasłużyć. Precz do kuchni z tą dziewką!\"\n", + "Zabrały jej piękne suknie i założyły stary szary fartuch i drewniane buty. \"Popatrzcie no na dumną księżniczkę, jaka umorusana!\" wołały, śmiały się i poprowadziły do kuchni. A tam od rana do wieczora musiała ciężko pracować i wstawać przed dniem, nosić wodę, rozpalać ogień, gotować i myć. Siostry nie szczędziły jej żadnej przykrości, szydziły z niej, sypały groch i soczewicę do popiołu, tak że musiała siedzieć i zbierać. Wieczorem, zmęczona po ciężkiej pracy nie szła do łóżka, lecz kładła się na popielisko obok pieca. A ponieważ ciągle była w kurzu i brudzie nazwano ją Kopciuszkiem.\n", + "Zdarzyło się, że ojciec szedł na targ. Zapytał wtedy swoje pasierbice, co ma im przynieść. \"Piękne suknie!,\" powiedziała jedna; \"Perły i drogie kamienie,\" druga. - \"A ty, Kopciuszku,\" powiedział, \"co chcesz mieć?\" -\"Ojcze, pierwszą gałązkę, która wam kapelusz na waszej drodze do domu z głowy strąci, ułamcie ją dla mnie.\"\n", + "Kupił więc obu pasierbicom piękne suknie, perły i drogie kamienie, a kiedy w drodze do domu jechał swym koniem przez zielony gaj, zaczepiła go gałązka leszczyny i strąciła mu kapelusz. Ułamał ją więc i zabrał ze sobą. Kiedy przybył do domu, dał pasierbicom, czego sobie życzyły, a kopciuszkowi gałązkę krzewu leszczyny. Kopciuszek podziękował mu, poszedł na grób matki i zasadził na nim gałązkę. Płakał tak bardzo, że łzy kapały na nią i ją zraszały. Gałązka urosła i stała się pięknym drzewem. Kopciuszek chodził pod nie co trzy dni, płakał i modlił się, a za każdym razem na drzewie siadał biały ptaszek i kiedy Kopciuszek wymawiał swoje życzenie, zrzucał mu czego chciał.\n", + "Zdarzyło się też, że król wyprawiał ucztę, która miała trwać trzy dni. Zaprosił na nią wszystkie panny w kraju, aby jego syn znalazł sobie narzeczoną. Gdy przyrodnie siostry usłyszały, że i one mają się zjawić, były dobrej myśli, zawołały kopciuszka i powiedziały: \"Uczesz nam włosy, wyszczotkuj buty i zapnij klamerki, idziemy na Wesele na zamek króla.\"\n", + "Kopciuszek usłuchał, ale płakał, bo też chciał iść w tan na wesele i poprosił macochę, by raczyła jej na to pozwolić.\n", + "\"Ty kopciuszku,\" rzekła, \"pełna jesteś kurzu i brudu... i ty chcesz iść na wesele? Nie masz sukien ni butów, a chcesz tańczyć!\" A kiedy kopciuszek przestał prosić, powiedziała: \"Wysypałam ci miskę soczewicy do popiołu. Jeśli pozbierasz ją w dwie godziny, możesz z nami pójść\"\n", + "Dziewczynka wyszła przez tylne drzwi do ogrodu i zawołała: \"Łaskawe gołąbki, turkaweczki, wszystkie ptaszki na niebie, przylećcie by pomóc mi zbierać.\n", + "Dobre do garnuszka,\n", + "a złe do brzuszka\"\n", + "I wtedy przez kuchenne okno wleciały dwa białe gołąbki, potem turkaweczki, aż wreszcie furknęły wszystkie ptaszki na niebie wlatując do kuchni, usiadły wokół popieliska, że aż się od nich zaroiło. A gołąbki kiwały swoimi główkami i zaczęły robić pik, pik, pik, a wtedy i wszystkie inne ptaszki zaczęły robić pik, pik, pik i zbierały dobre ziarenka do miski. I nie minęła nawet godzina a wszystkie były gotowe i odleciały. Dziewczynka zaniosła miskę do macochy, cieszyła się i wierzyła, że będzie mogła pójść na wesele. Ale macocha powiedziała: \"Nie kopciuszku, nie masz sukien i nie umiesz tańczyć; tylko by się z ciebie śmiali.\"\n", + "Wtedy kopciuszek zapłakał, a macocha powiedziała \"Jeśli w ciągu godziny wybierzesz z popiołu dwie miski pełne soczewicy, możesz pójść z nami, i pomyślała; \"Nigdy jej się to nie uda.\" A kiedy wysypała dwie miski soczewicy na popielisko, dziewczynka wyszła przez tylne drzwi do ogrodu i zawołała: \"Łaskawe gołąbki, turkaweczki, wszystkie ptaszki na niebie, przylećcie by pomóc mi zbierać.\n", + "Dobre do garnuszka,\n", + "a złe do brzuszka\"\n", + "I wtedy przez kuchenne okno wleciały dwa białe gołąbki, potem turkaweczki, aż wreszcie furknęły wszystkie ptaszki na niebie wlatując do kuchni, usiadły wokół popieliska, że aż się od nich zaroiło. A gołąbki kiwały swoimi główkami i zaczęły robić pik, pik, pik, a wtedy i wszystkie inne ptaszki zaczęły robić pik, pik, pik i zbierały dobre ziarenka do miski. I zanim minęło pół godziny wszystkie były gotowe i odleciały. Dziewczynka zaniosła miskę do macochy, cieszyła się i wierzyła, że będzie mogła pójść na wesele. Ale macocha powiedziała: \"Nie pomoże ci to. Nie pójdziesz z nami, bo nie masz sukien i nie umiesz tańczyć; wstydziłybyśmy się ciebie.\" Odwróciła się do Kopciuszka plecami i pospieszyła za swymi córkami.\n", + "Kiedy nikogo nie było już w domu, kopciuszek poszedł na grób swojej matki pod leszczynowym drzewem i zawołał:\n", + "\"Drzewko, drzewko zrzuć na mnie oto\n", + "srebro i złoto\"\n", + "A ptaszek zrzucił jej suknię ze srebra i złota i pantofle przetykane jedwabiem i srebrem. W pośpiechu kopciuszek założył suknię i poszedł na wesele. Jego siostry i macocha nie poznały go i myślały, że to królewna z dalekiego kraju, tak piękna była w swej złotej sukni. O kopciuszku nawet nie pomyślały, o Kopciuszku, który siedział w domu, w brudzie i wyszukiwał soczewicy w popiele. Królewicz podszedł do niej, wziął ją za rękę i tańczył z nią. Nie chciał tańczyć z nikim innym trzymając ją cały czas za rękę, a kiedy podszedł ktoś by poprosić ją do tańca, mówił: \"To moja tancerka.\"\n", + "Kopciuszek tańczył do wieczora aż w końcu chciał iść do domu. Ale królewicz powiedział: \"Pójdę z Tobą i odprowadzę cię,\" bo chciał zobaczyć, czyja była tak piękna dziewczyna. Kopciuszek jednak uciekł mu i wskoczył do gołębnika. Królewicz czekał, aż przyszedł ojciec kopciuszka i powiedział mu, że pewna nieznajoma dziewczyna wskoczyła do gołębnika. Stary pomyślał: \"Czy to był mój Kopciuszek?\" i musieli mu przynieść siekierę i bosak, aby mógł przeciąć gołębnik na pół. Lecz w środku nie było nikogo. Gdy weszli do domu, Kopciuszek leżał w popiele w swoim brudnym ubraniu, a w kominku paliła się ciemna olejowa lampka, Kopciuszek bowiem wyskoczył z tyłu gołębnika i pobiegł do leszczynowego drzewa. Tam zdjął swe piękne suknie i położył na grób, a ptak je zabrał. Potem położył się w swych szarych rzeczach na kuchennym popielisku.\n", + "Następnego dnia, gdy uczta znowu się zaczynała, a rodzice i przyrodnie siostry już odeszły, kopciuszek podszedł do leszczyny i rzekł:\n", + "\"Drzewko, drzewko zrzuć na mnie oto\n", + "srebro i złoto\"\n", + "A ptak zrzucił suknię jeszcze bardziej przepyszną niż poprzedniego dnia. Kiedy ukazał się na weselu w tej sukni, zdziwił się każdy jego urodą. Królewicz czekał aż przyjdzie by wziąć Kopciuszka za rękę i tańczyć tylko z nim, a kiedy podszedł ktoś by poprosić go do tańca, mówił: \"To moja tancerka.\" Kiedy przyszedł zaś wieczór, Kopciuszek chciał odejść, lecz królewicz szedł za nim, bo chciał zobaczyć do jakiego pójdzie domu. Kopciuszek jednak szybko skoczył do przodu i pobiegł do ogrodu za domem, w którym stało piękne wielkie drzewo, a na nim wisiały wspaniałe gruszki. Wspiął się na nie tak zwinnie, jakby to wiewiórka wiła się wśród gałęzi, a królewicz nie wiedział, gdzie Kopciuszek poszedł. Czekał jednak, aż zjawił się ojciec i rzekł do niego: \"Ta nieznajoma dziewczyna uciekła mi i - jak sądzę - wskoczyła na tę gruszę. Ojciec pomyślał: \"Czy to mój Kopciuszek?\" Kazał sobie wnet przynieść siekierę i ściął drzewo, lecz nie było na nim nikogo.\n", + "Gdy poszli do kuchni, Kopciuszek jak zawsze leżał na popielisku, bo zeskoczył był z drugiej strony drzewa, ptaszkowi na leszczynowym drzewie oddał piękne suknie i włożył swój szary fartuch.\n", + "Trzeciego dnia, gdy rodzice i przyrodnie siostry już poszli, Kopciuszek poszedł na grób matki i rzekł do drzewka:\n", + "\"Drzewko, drzewko zrzuć na mnie oto\n", + "srebro i złoto\"\n", + "A ptaszek zrzucił mu suknię, która była taka wspaniała i błyszcząca, jakiej nie miał jeszcze nikt, a pantofle całe były ze złota. Kiedy w tej sukni przyszła na wesele, nikt z zachwytu głosu z siebie dobyć nie mógł. Królewicz tańczył tylko z Kopciuszkiem, a kiedy podchodził ktoś, by poprosić kopciuszka do tańca, mówił: \"To moja tancerka.\"\n", + "Kiedy nadszedł wieczór, Kopciuszek chciał odejść, a królewicz chciał go odprowadzić, lecz dziewczyna tak szybko znikła mu z oczu, że nie mógł iść za nią. Królewicz obmyślił jednak podstęp i kazał wysmarować całe schody smołą. Kiedy kopciuszek szedł po nich, do smoły przykleił się lewy pantofel. Królewicz podniósł go. Był mały, delikatny i cały ze złota. Rankiem podszedł do człowieka, którego spotykał co wieczór i rzekł: \"żadna inna nie może zostać moją żoną niż ta, na którą będzie pasował ten złoty bucik.\" Ucieszyły się obie siostry, bo miały piękne nogi.\n", + "Najstarsza poszła z butem do izby i chciała go przymierzyć, a była przy tym matka. Nie mogła jednak zmiścić wielkiego palca, bo but był na nią za mały. Wtedy matka podała jej nóż i rzekła: \"Odetnij tego palca: Kiedy będziesz królową, nie będziesz musiała chodzić pieszo.\" Dziewczyna obcięła palca, wcisnęła stopę w buta, a z bólu zacisnęła usta i wyszła do królewicza. Potem wziął ją jako narzeczoną na konia i odjechał. Musieli przejechać koło grobu, gdzie siedziały dwa gołąbki na leszczynowym drzewku i wołały:\n", + "Pewnie wzrok z ciebie drwi,\n", + "Bo buty pełne są krwi.\n", + "Oczy oszukać się dały,\n", + "Bo but jest dużo za mały.\n", + "Prawdziwa panna jest w domu\n", + "Nieznana jeszcze nikomu.\n", + "Spojrzał więc na nogę i zobaczył, jak tryska krew. Zawrócił konia i odwiózł fałszywą narzeczoną do domu. Druga siostra musiała przymierzyć buta. Poszła więc do izby, szczęśliwa włożyła palce do buta, lecz pięta była za duża. Wtedy matka podała jej nóż i rzekła: \"Odetnij kawałek pięty: Kiedy będziesz królową, nie będziesz musiała chodzić pieszo.\" Dziewczyna obcięła kawałek pięty, wcisnęła stopę w buta, a z bólu zacisnęła usta i wyszła do królewicza.\n", + "On zaś wziął ją jako narzeczoną na konia i odjechał. Kiedy przejeżdżali obok leszczynowego drzewka, dwa gołąbki zawołały:\n", + "\"Pewnie wzrok z ciebie drwi,\n", + "Bo buty pełne są krwi.\n", + "Oczy oszukać się dały,\n", + "Bo but jest dużo za mały.\n", + "Prawdziwa panna jest w domu\n", + "Nieznana jeszcze nikomu.\"\n", + "Spojrzał na jej stopę i zobaczył, jak krew tryska z buta, a po białych pończochach sączy się do góry i barwi je na czerwono. Zawrócił więc konia i odwiózł fałszywą narzeczoną do domu.\n", + "\"Nie o nią mi chodziło,\" powiedział., \"Czy macie jeszcze jakąś córkę?\"\n", + "\"Nie,\" odrzekł pan, \"Jest jeszcze tylko mój mały lichy Kopciuszek po mojej zmarłej żonie, ale on na pewno nie jest tą panną.\"\n", + "Królewicz powiedział, że mają ją przysłać, a matka odpowiedziała: \"Och nie, ona jest zbyt brudna i nie może się taka pokazać.\" Ale on chciał koniecznie ją zobaczyć i musieli ją zawołać. Kopciuszek umył sobie najpierw ręce i twarz, a potem poszedł pokłonić się królewiczowi, który podał mu złoty but. Potem usiadł na zydelku, zdjął ciężkiego drewniaka, i włożył pantofelek, który leżał jak ulał. A kiedy wstał, królewicz ujrzał jego twarz i poznał piękną dziewczynę, która z nim tańczyła i zawołał: \"Oto prawdziwa panna!\"\n", + "Macocha i obie siostry wystraszyły się i zbladły ze złości. A on wziął Kopciuszka na konia i odjechał z nim. Kiedy przejeżdżali obok leszczynowego drzewka, zawołały dwa gołąbki:\n", + "\"Widoku nic nie psuje\n", + "Bo bucik pięknie pasuje\n", + "Nie barwi go krew czerwona,\n", + "Bo panną młodą zaprawdę jest ona.\"\n", + "A kiedy to zawołały, usiadły Kopciuszkowi na ramionach, jeden z prawej, a drugi z lewej strony i tak zostały.\n", + "Kiedy miał odbyć się ślub z królewiczem, przyszły fałszywe siostry i chciały się przypodobać, by mieć swój udział w szczęściu Kopciuszka. Kiedy narzeczeni wchodzili do kościoła, starsza była z prawej strony, a młodsza z lewej. I wtedy gołębie wydziobały każdej po tym właśnie oku. Kiedy zaś wychodzili, starsza była z lewej a młodsza z prawej, gołębie wydziobały każdej po drugim oku. I tak zostały ukarane ślepotą po kres życia za swe zło i fałsz.\n", "\"\"\"" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 106, "id": "76e6afde-0194-4714-8b77-8a1876c5d128", "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "767\n" + ] + } + ], + "source": [ + "tokenizer = Tokenizer()\n", + "tokenizer.fit_on_texts([text])\n", + "total_words = len(tokenizer.word_index) + 1\n", + "print(total_words)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "id": "2b84df3b-93e1-4603-9284-97011baad75f", + "metadata": {}, + "outputs": [], + "source": [ + "input_sequences = []\n", + "for line in text.split('.'):\n", + " tokens = tokenizer.texts_to_sequences([line])[0]\n", + " for i in range(1, len(tokens)):\n", + " n_gram_sequence = tokens[:i+1]\n", + " input_sequences.append(n_gram_sequence)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "id": "e8c4750d-bb65-4038-bdf4-b4f194f5872e", + "metadata": {}, + "outputs": [], + "source": [ + "max_sequence_len = max([len(x) for x in input_sequences])\n", + "input_sequences = pad_sequences(input_sequences, maxlen=max_sequence_len, padding='pre')" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "id": "ac784307-1b04-47da-b627-81a82a6c22d2", + "metadata": {}, + "outputs": [], + "source": [ + "model = tf.keras.Sequential([\n", + " tf.keras.layers.Embedding(total_words, 10, input_length=max_sequence_len - 1),\n", + " tf.keras.layers.SimpleRNN(100),\n", + " tf.keras.layers.Dense(total_words, activation='softmax')\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "id": "32f017ab-3603-42b3-8c13-546a3e0f5425", + "metadata": {}, + "outputs": [], + "source": [ + "X = input_sequences[:, :-1]\n", + "y = input_sequences[:, -1]\n", + "y = to_categorical(y, num_classes=total_words)" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "id": "11705dd1-aa5f-4e52-a122-81420774e6bd", + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 12ms/step - accuracy: 0.0227 - loss: 6.5034\n", + "Epoch 2/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.0527 - loss: 6.0484\n", + "Epoch 3/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.0519 - loss: 6.0051\n", + "Epoch 4/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.0662 - loss: 5.9677\n", + "Epoch 5/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.0548 - loss: 5.9712\n", + "Epoch 6/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.0556 - loss: 5.9043\n", + "Epoch 7/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.0550 - loss: 5.9238\n", + "Epoch 8/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.0585 - loss: 5.7557\n", + "Epoch 9/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.0568 - loss: 5.6373\n", + "Epoch 10/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.0694 - loss: 5.3867\n", + "Epoch 11/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - accuracy: 0.0837 - loss: 5.1139\n", + "Epoch 12/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.1167 - loss: 4.8405\n", + "Epoch 13/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.1670 - loss: 4.4726\n", + "Epoch 14/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.2001 - loss: 4.2676\n", + "Epoch 15/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.2414 - loss: 3.9807\n", + "Epoch 16/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.2795 - loss: 3.7808\n", + "Epoch 17/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.3188 - loss: 3.5467\n", + "Epoch 18/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.3674 - loss: 3.2855\n", + "Epoch 19/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.4460 - loss: 3.0708\n", + "Epoch 20/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.4988 - loss: 2.8333\n", + "Epoch 21/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.5333 - loss: 2.6608\n", + "Epoch 22/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.5689 - loss: 2.4732\n", + "Epoch 23/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.6198 - loss: 2.2992\n", + "Epoch 24/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.6715 - loss: 2.1395\n", + "Epoch 25/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.6789 - loss: 2.0192\n", + "Epoch 26/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.6972 - loss: 1.8845\n", + "Epoch 27/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.7436 - loss: 1.7595\n", + "Epoch 28/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.7557 - loss: 1.6361\n", + "Epoch 29/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.7637 - loss: 1.5409\n", + "Epoch 30/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.8207 - loss: 1.3351\n", + "Epoch 31/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.8051 - loss: 1.3072\n", + "Epoch 32/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - accuracy: 0.8244 - loss: 1.2233\n", + "Epoch 33/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - accuracy: 0.8339 - loss: 1.1536\n", + "Epoch 34/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - accuracy: 0.8307 - loss: 1.1527\n", + "Epoch 35/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.8663 - loss: 0.9819\n", + "Epoch 36/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.8572 - loss: 0.9780\n", + "Epoch 37/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.8780 - loss: 0.8911\n", + "Epoch 38/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.8870 - loss: 0.8246\n", + "Epoch 39/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.8908 - loss: 0.8111\n", + "Epoch 40/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9097 - loss: 0.7270\n", + "Epoch 41/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9044 - loss: 0.7352\n", + "Epoch 42/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9189 - loss: 0.6513\n", + "Epoch 43/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.9163 - loss: 0.6176\n", + "Epoch 44/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9252 - loss: 0.5839\n", + "Epoch 45/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9372 - loss: 0.5575\n", + "Epoch 46/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9345 - loss: 0.5296\n", + "Epoch 47/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.9413 - loss: 0.5032\n", + "Epoch 48/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9288 - loss: 0.5008\n", + "Epoch 49/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9429 - loss: 0.4429\n", + "Epoch 50/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9456 - loss: 0.4413\n", + "Epoch 51/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9528 - loss: 0.3943\n", + "Epoch 52/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9529 - loss: 0.3864\n", + "Epoch 53/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9548 - loss: 0.3937\n", + "Epoch 54/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9440 - loss: 0.3806\n", + "Epoch 55/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9632 - loss: 0.3282\n", + "Epoch 56/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9524 - loss: 0.3394\n", + "Epoch 57/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9571 - loss: 0.3347\n", + "Epoch 58/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9603 - loss: 0.3073\n", + "Epoch 59/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9640 - loss: 0.2838\n", + "Epoch 60/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9644 - loss: 0.2802\n", + "Epoch 61/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9594 - loss: 0.2827\n", + "Epoch 62/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9623 - loss: 0.2469\n", + "Epoch 63/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9622 - loss: 0.2473\n", + "Epoch 64/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9698 - loss: 0.2250\n", + "Epoch 65/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9654 - loss: 0.2449\n", + "Epoch 66/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - accuracy: 0.9728 - loss: 0.2020\n", + "Epoch 67/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - accuracy: 0.9607 - loss: 0.2211\n", + "Epoch 68/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - accuracy: 0.9648 - loss: 0.2014\n", + "Epoch 69/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9656 - loss: 0.2023\n", + "Epoch 70/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - accuracy: 0.9662 - loss: 0.1846\n", + "Epoch 71/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - accuracy: 0.9670 - loss: 0.1770\n", + "Epoch 72/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 26ms/step - accuracy: 0.9560 - loss: 0.2102\n", + "Epoch 73/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 28ms/step - accuracy: 0.9637 - loss: 0.1712\n", + "Epoch 74/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - accuracy: 0.9682 - loss: 0.1826\n", + "Epoch 75/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9699 - loss: 0.1548\n", + "Epoch 76/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9654 - loss: 0.1653\n", + "Epoch 77/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9723 - loss: 0.1533\n", + "Epoch 78/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - accuracy: 0.9676 - loss: 0.1573\n", + "Epoch 79/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9603 - loss: 0.1726\n", + "Epoch 80/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9687 - loss: 0.1472\n", + "Epoch 81/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9673 - loss: 0.1455\n", + "Epoch 82/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9694 - loss: 0.1410\n", + "Epoch 83/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9692 - loss: 0.1314\n", + "Epoch 84/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - accuracy: 0.9689 - loss: 0.1399\n", + "Epoch 85/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9651 - loss: 0.1480\n", + "Epoch 86/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9560 - loss: 0.1737\n", + "Epoch 87/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9652 - loss: 0.1361\n", + "Epoch 88/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9692 - loss: 0.1295\n", + "Epoch 89/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9713 - loss: 0.1198\n", + "Epoch 90/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9636 - loss: 0.1328\n", + "Epoch 91/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9666 - loss: 0.1218\n", + "Epoch 92/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9714 - loss: 0.1325\n", + "Epoch 93/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9628 - loss: 0.1286\n", + "Epoch 94/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9759 - loss: 0.1006\n", + "Epoch 95/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9666 - loss: 0.1197\n", + "Epoch 96/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9648 - loss: 0.1186\n", + "Epoch 97/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9699 - loss: 0.1016\n", + "Epoch 98/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.9642 - loss: 0.1219\n", + "Epoch 99/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9681 - loss: 0.1097\n", + "Epoch 100/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9638 - loss: 0.1174\n", + "Epoch 101/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - accuracy: 0.9614 - loss: 0.1133\n", + "Epoch 102/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9634 - loss: 0.1051\n", + "Epoch 103/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9698 - loss: 0.1080\n", + "Epoch 104/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9719 - loss: 0.1035\n", + "Epoch 105/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9617 - loss: 0.1238\n", + "Epoch 106/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9792 - loss: 0.0871\n", + "Epoch 107/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9680 - loss: 0.1019\n", + "Epoch 108/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9749 - loss: 0.0932\n", + "Epoch 109/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9626 - loss: 0.1079\n", + "Epoch 110/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9697 - loss: 0.0935\n", + "Epoch 111/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9658 - loss: 0.0991\n", + "Epoch 112/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9734 - loss: 0.0809\n", + "Epoch 113/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9642 - loss: 0.1029\n", + "Epoch 114/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9757 - loss: 0.0875\n", + "Epoch 115/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9645 - loss: 0.1038\n", + "Epoch 116/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9649 - loss: 0.0981\n", + "Epoch 117/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9662 - loss: 0.0977\n", + "Epoch 118/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9702 - loss: 0.0848\n", + "Epoch 119/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9614 - loss: 0.0943\n", + "Epoch 120/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9678 - loss: 0.0958\n", + "Epoch 121/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9694 - loss: 0.0874\n", + "Epoch 122/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9678 - loss: 0.0825\n", + "Epoch 123/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9660 - loss: 0.0889\n", + "Epoch 124/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9699 - loss: 0.0835\n", + "Epoch 125/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9691 - loss: 0.0830\n", + "Epoch 126/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - accuracy: 0.9689 - loss: 0.0905\n", + "Epoch 127/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9634 - loss: 0.0955\n", + "Epoch 128/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9629 - loss: 0.1004\n", + "Epoch 129/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9654 - loss: 0.0919\n", + "Epoch 130/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9710 - loss: 0.0749\n", + "Epoch 131/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9675 - loss: 0.0874\n", + "Epoch 132/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9679 - loss: 0.0859\n", + "Epoch 133/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9601 - loss: 0.0870\n", + "Epoch 134/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9680 - loss: 0.0796\n", + "Epoch 135/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9688 - loss: 0.0854\n", + "Epoch 136/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9694 - loss: 0.0692\n", + "Epoch 137/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9570 - loss: 0.0961\n", + "Epoch 138/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9642 - loss: 0.0844\n", + "Epoch 139/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9672 - loss: 0.0853\n", + "Epoch 140/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9581 - loss: 0.0968\n", + "Epoch 141/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9742 - loss: 0.0701\n", + "Epoch 142/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9681 - loss: 0.0804\n", + "Epoch 143/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - accuracy: 0.9719 - loss: 0.0706\n", + "Epoch 144/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9729 - loss: 0.0716\n", + "Epoch 145/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9679 - loss: 0.0836\n", + "Epoch 146/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - accuracy: 0.9642 - loss: 0.0934\n", + "Epoch 147/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9652 - loss: 0.0881\n", + "Epoch 148/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9682 - loss: 0.0828\n", + "Epoch 149/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - accuracy: 0.9671 - loss: 0.0808\n", + "Epoch 150/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9713 - loss: 0.0733\n", + "Epoch 151/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.9661 - loss: 0.0757\n", + "Epoch 152/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.9689 - loss: 0.0741\n", + "Epoch 153/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - accuracy: 0.9589 - loss: 0.1052\n", + "Epoch 154/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 12ms/step - accuracy: 0.9631 - loss: 0.0833\n", + "Epoch 155/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 28ms/step - accuracy: 0.9738 - loss: 0.0671\n", + "Epoch 156/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - accuracy: 0.9671 - loss: 0.0750\n", + "Epoch 157/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - accuracy: 0.9753 - loss: 0.0599\n", + "Epoch 158/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9644 - loss: 0.0812\n", + "Epoch 159/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9653 - loss: 0.0835\n", + "Epoch 160/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9586 - loss: 0.0921\n", + "Epoch 161/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9624 - loss: 0.0829\n", + "Epoch 162/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9608 - loss: 0.0960\n", + "Epoch 163/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9630 - loss: 0.0792\n", + "Epoch 164/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9638 - loss: 0.0828\n", + "Epoch 165/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9681 - loss: 0.0739\n", + "Epoch 166/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9554 - loss: 0.1047\n", + "Epoch 167/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9657 - loss: 0.0815\n", + "Epoch 168/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9728 - loss: 0.0688\n", + "Epoch 169/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9686 - loss: 0.0836\n", + "Epoch 170/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9597 - loss: 0.0834\n", + "Epoch 171/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9698 - loss: 0.0661\n", + "Epoch 172/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9759 - loss: 0.0639\n", + "Epoch 173/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9648 - loss: 0.0788\n", + "Epoch 174/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9590 - loss: 0.0832\n", + "Epoch 175/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9679 - loss: 0.0687\n", + "Epoch 176/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9621 - loss: 0.0810\n", + "Epoch 177/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9650 - loss: 0.0808\n", + "Epoch 178/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9567 - loss: 0.0842\n", + "Epoch 179/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9243 - loss: 0.2690\n", + "Epoch 180/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9562 - loss: 0.1380\n", + "Epoch 181/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9635 - loss: 0.0920\n", + "Epoch 182/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9655 - loss: 0.0916\n", + "Epoch 183/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9684 - loss: 0.0807\n", + "Epoch 184/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9690 - loss: 0.0798\n", + "Epoch 185/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9656 - loss: 0.0820\n", + "Epoch 186/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9690 - loss: 0.0789\n", + "Epoch 187/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9715 - loss: 0.0678\n", + "Epoch 188/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9593 - loss: 0.1013\n", + "Epoch 189/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9646 - loss: 0.0824\n", + "Epoch 190/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9629 - loss: 0.0811\n", + "Epoch 191/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9667 - loss: 0.0712\n", + "Epoch 192/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 16ms/step - accuracy: 0.9667 - loss: 0.0694\n", + "Epoch 193/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - accuracy: 0.9723 - loss: 0.0600\n", + "Epoch 194/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9648 - loss: 0.0808\n", + "Epoch 195/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9753 - loss: 0.0602\n", + "Epoch 196/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9716 - loss: 0.0641\n", + "Epoch 197/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9656 - loss: 0.0812\n", + "Epoch 198/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9594 - loss: 0.0814\n", + "Epoch 199/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - accuracy: 0.9667 - loss: 0.0769\n", + "Epoch 200/200\n", + "\u001b[1m59/59\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - accuracy: 0.9622 - loss: 0.0834\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n", + "model.fit(X, y, epochs=200, verbose=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "id": "e1275c51-1ab3-4cad-8b3d-b657ba5016c5", + "metadata": {}, + "outputs": [], + "source": [ + "def generate_text(seed_text, next_words=5):\n", + " for _ in range(next_words):\n", + " token_list = tokenizer.texts_to_sequences([seed_text])[0]\n", + " token_list = pad_sequences([token_list], maxlen=max_sequence_len-1, padding='pre')\n", + " predicted = np.argmax(model.predict(token_list, verbose=0), axis=-1)\n", + " for word, index in tokenizer.word_index.items():\n", + " if index == predicted:\n", + " seed_text += \" \" + word\n", + " break\n", + " return seed_text" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "id": "13fae312-fd1c-4c92-a74a-55b0d23b0a00", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pantofel pasuje do człowieka którego spotykał co wieczór i rzekł żadna inna nie może zostać moją żoną\n" + ] + } + ], + "source": [ + "print(generate_text(\"Pantofel pasuje\", 15))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e37bb303-eb64-47e8-b412-34a8ba4fdf23", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "ca748b23-1558-41f1-8473-76369c3ed888", + "metadata": {}, + "source": [ + "#" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2fa8be6-540d-49cc-aff4-f891d59c6a95", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4fab2fe0-4668-4b5f-a871-302287768791", + "metadata": {}, "outputs": [], "source": [] }