ferdian15 commited on
Commit
af8db04
Β·
verified Β·
1 Parent(s): a63309f

Upload 2 files

Browse files
Files changed (2) hide show
  1. chatbot_(0_3)_.ipynb +801 -0
  2. intents.json +0 -0
chatbot_(0_3)_.ipynb ADDED
@@ -0,0 +1,801 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "nbformat": 4,
3
+ "nbformat_minor": 0,
4
+ "metadata": {
5
+ "colab": {
6
+ "provenance": []
7
+ },
8
+ "kernelspec": {
9
+ "name": "python3",
10
+ "display_name": "Python 3"
11
+ },
12
+ "language_info": {
13
+ "name": "python"
14
+ }
15
+ },
16
+ "cells": [
17
+ {
18
+ "cell_type": "code",
19
+ "source": [
20
+ "from google.colab import drive\n",
21
+ "drive.mount('/content/drive')"
22
+ ],
23
+ "metadata": {
24
+ "colab": {
25
+ "base_uri": "https://localhost:8080/"
26
+ },
27
+ "id": "hmExUq6HSDSb",
28
+ "outputId": "0a1c9821-bf29-4cd4-9888-7d2070382203"
29
+ },
30
+ "execution_count": 8,
31
+ "outputs": [
32
+ {
33
+ "output_type": "stream",
34
+ "name": "stdout",
35
+ "text": [
36
+ "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"
37
+ ]
38
+ }
39
+ ]
40
+ },
41
+ {
42
+ "cell_type": "code",
43
+ "source": [
44
+ "import nltk\n",
45
+ "nltk.download('punkt')\n",
46
+ "nltk.download('wordnet')\n"
47
+ ],
48
+ "metadata": {
49
+ "colab": {
50
+ "base_uri": "https://localhost:8080/"
51
+ },
52
+ "id": "zEmFVujkVCkF",
53
+ "outputId": "63c2024d-f4a0-411d-e45e-4138020c208f"
54
+ },
55
+ "execution_count": 16,
56
+ "outputs": [
57
+ {
58
+ "output_type": "stream",
59
+ "name": "stderr",
60
+ "text": [
61
+ "[nltk_data] Downloading package punkt to /root/nltk_data...\n",
62
+ "[nltk_data] Package punkt is already up-to-date!\n",
63
+ "[nltk_data] Downloading package wordnet to /root/nltk_data...\n"
64
+ ]
65
+ },
66
+ {
67
+ "output_type": "execute_result",
68
+ "data": {
69
+ "text/plain": [
70
+ "True"
71
+ ]
72
+ },
73
+ "metadata": {},
74
+ "execution_count": 16
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ "cell_type": "code",
80
+ "execution_count": 9,
81
+ "metadata": {
82
+ "id": "QRLEoc-hR6Ym"
83
+ },
84
+ "outputs": [],
85
+ "source": [
86
+ "import json\n",
87
+ "import random\n",
88
+ "import numpy as np\n",
89
+ "import nltk\n",
90
+ "from tensorflow.keras.models import Sequential\n",
91
+ "from tensorflow.keras.layers import Dense, Dropout\n",
92
+ "from tensorflow.keras.optimizers import SGD\n",
93
+ "from sklearn.preprocessing import LabelEncoder\n",
94
+ "from nltk.stem import WordNetLemmatizer"
95
+ ]
96
+ },
97
+ {
98
+ "cell_type": "code",
99
+ "source": [
100
+ "file_path = '/content/drive/MyDrive/Colab_Notebooks/Dataset/intents.json'\n",
101
+ "with open(file_path,'r') as file:\n",
102
+ " data = json.load(file)"
103
+ ],
104
+ "metadata": {
105
+ "id": "1aX_MbxJSBJ_"
106
+ },
107
+ "execution_count": 10,
108
+ "outputs": []
109
+ },
110
+ {
111
+ "cell_type": "code",
112
+ "source": [
113
+ "lemmatizer = WordNetLemmatizer()\n",
114
+ "words = []\n",
115
+ "classes = []\n",
116
+ "documents = []\n",
117
+ "ignore_words = ['?', '!', '.']"
118
+ ],
119
+ "metadata": {
120
+ "id": "1jC5aPxOSJj-"
121
+ },
122
+ "execution_count": 11,
123
+ "outputs": []
124
+ },
125
+ {
126
+ "cell_type": "code",
127
+ "source": [
128
+ "for intent in data['intents']:\n",
129
+ " for pattern in intent['patterns']:\n",
130
+ " # Tokenize each word\n",
131
+ " word_list = nltk.word_tokenize(pattern)\n",
132
+ " words.extend(word_list)\n",
133
+ " documents.append((word_list, intent['tag']))\n",
134
+ " if intent['tag'] not in classes:\n",
135
+ " classes.append(intent['tag'])"
136
+ ],
137
+ "metadata": {
138
+ "id": "eUHE55adSKXc"
139
+ },
140
+ "execution_count": 14,
141
+ "outputs": []
142
+ },
143
+ {
144
+ "cell_type": "code",
145
+ "source": [
146
+ "words = [lemmatizer.lemmatize(w.lower()) for w in words if w not in ignore_words]\n",
147
+ "words = sorted(list(set(words)))\n",
148
+ "classes = sorted(list(set(classes)))"
149
+ ],
150
+ "metadata": {
151
+ "id": "DLMKZLnOSOxW"
152
+ },
153
+ "execution_count": 17,
154
+ "outputs": []
155
+ },
156
+ {
157
+ "cell_type": "code",
158
+ "source": [
159
+ "training = []\n",
160
+ "output_empty = [0] * len(classes)"
161
+ ],
162
+ "metadata": {
163
+ "id": "t3bXEHe9SQd3"
164
+ },
165
+ "execution_count": 18,
166
+ "outputs": []
167
+ },
168
+ {
169
+ "cell_type": "code",
170
+ "source": [
171
+ "for doc in documents:\n",
172
+ " bag = []\n",
173
+ " word_patterns = doc[0]\n",
174
+ " word_patterns = [lemmatizer.lemmatize(word.lower()) for word in word_patterns]\n",
175
+ " for w in words:\n",
176
+ " bag.append(1 if w in word_patterns else 0)\n",
177
+ "\n",
178
+ " output_row = list(output_empty)\n",
179
+ " output_row[classes.index(doc[1])] = 1\n",
180
+ " training.append([bag, output_row])"
181
+ ],
182
+ "metadata": {
183
+ "id": "71s2dR6gSTMW"
184
+ },
185
+ "execution_count": 19,
186
+ "outputs": []
187
+ },
188
+ {
189
+ "cell_type": "code",
190
+ "source": [
191
+ "random.shuffle(training)\n",
192
+ "training = np.array(training, dtype=object)\n",
193
+ "\n",
194
+ "train_x = np.array(list(training[:, 0]))\n",
195
+ "train_y = np.array(list(training[:, 1]))"
196
+ ],
197
+ "metadata": {
198
+ "id": "PP2T232eSVfu"
199
+ },
200
+ "execution_count": 20,
201
+ "outputs": []
202
+ },
203
+ {
204
+ "cell_type": "code",
205
+ "source": [
206
+ "model = Sequential()\n",
207
+ "model.add(Dense(128, input_shape=(len(train_x[0]),), activation='relu'))\n",
208
+ "model.add(Dropout(0.5))\n",
209
+ "model.add(Dense(64, activation='relu'))\n",
210
+ "model.add(Dropout(0.5))\n",
211
+ "model.add(Dense(len(train_y[0]), activation='softmax'))\n"
212
+ ],
213
+ "metadata": {
214
+ "colab": {
215
+ "base_uri": "https://localhost:8080/"
216
+ },
217
+ "id": "JwzrpAgUSXmZ",
218
+ "outputId": "065d2848-7e12-410e-9060-630178f1d44b"
219
+ },
220
+ "execution_count": 21,
221
+ "outputs": [
222
+ {
223
+ "output_type": "stream",
224
+ "name": "stderr",
225
+ "text": [
226
+ "/usr/local/lib/python3.10/dist-packages/keras/src/layers/core/dense.py:87: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
227
+ " super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n"
228
+ ]
229
+ }
230
+ ]
231
+ },
232
+ {
233
+ "cell_type": "code",
234
+ "source": [
235
+ "sgd = SGD(learning_rate=0.01, decay=1e-6, momentum=0.9, nesterov=True)\n",
236
+ "model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])"
237
+ ],
238
+ "metadata": {
239
+ "colab": {
240
+ "base_uri": "https://localhost:8080/"
241
+ },
242
+ "id": "aX6rGbQ3SaAu",
243
+ "outputId": "0ed24b6e-ac06-49ed-8f5c-7b7d5799fa5d"
244
+ },
245
+ "execution_count": 22,
246
+ "outputs": [
247
+ {
248
+ "output_type": "stream",
249
+ "name": "stderr",
250
+ "text": [
251
+ "/usr/local/lib/python3.10/dist-packages/keras/src/optimizers/base_optimizer.py:33: UserWarning: Argument `decay` is no longer supported and will be ignored.\n",
252
+ " warnings.warn(\n"
253
+ ]
254
+ }
255
+ ]
256
+ },
257
+ {
258
+ "cell_type": "code",
259
+ "source": [
260
+ "hist = model.fit(train_x, train_y, epochs=200, batch_size=5, verbose=1)\n",
261
+ "model.save('chatbot_model.h5', hist)\n",
262
+ "\n",
263
+ "print(\"Model created and saved successfully!\")"
264
+ ],
265
+ "metadata": {
266
+ "colab": {
267
+ "base_uri": "https://localhost:8080/"
268
+ },
269
+ "id": "shBuA76PScjj",
270
+ "outputId": "1840358c-df15-4a74-dc12-5b2eda3c7251"
271
+ },
272
+ "execution_count": 23,
273
+ "outputs": [
274
+ {
275
+ "output_type": "stream",
276
+ "name": "stdout",
277
+ "text": [
278
+ "Epoch 1/200\n",
279
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 4ms/step - accuracy: 0.0160 - loss: 3.9287\n",
280
+ "Epoch 2/200\n",
281
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.0375 - loss: 3.9009\n",
282
+ "Epoch 3/200\n",
283
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.0701 - loss: 3.8703\n",
284
+ "Epoch 4/200\n",
285
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.0944 - loss: 3.8231\n",
286
+ "Epoch 5/200\n",
287
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.1473 - loss: 3.7111\n",
288
+ "Epoch 6/200\n",
289
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.1221 - loss: 3.6674\n",
290
+ "Epoch 7/200\n",
291
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.1828 - loss: 3.5505\n",
292
+ "Epoch 8/200\n",
293
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.1029 - loss: 3.4937\n",
294
+ "Epoch 9/200\n",
295
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.1679 - loss: 3.3554\n",
296
+ "Epoch 10/200\n",
297
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.1912 - loss: 3.0371\n",
298
+ "Epoch 11/200\n",
299
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.1387 - loss: 3.1178\n",
300
+ "Epoch 12/200\n",
301
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.2451 - loss: 2.8440\n",
302
+ "Epoch 13/200\n",
303
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.1636 - loss: 2.8542\n",
304
+ "Epoch 14/200\n",
305
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.3178 - loss: 2.6346\n",
306
+ "Epoch 15/200\n",
307
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.3606 - loss: 2.3944\n",
308
+ "Epoch 16/200\n",
309
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.4408 - loss: 2.2182\n",
310
+ "Epoch 17/200\n",
311
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.4852 - loss: 2.0750\n",
312
+ "Epoch 18/200\n",
313
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.4978 - loss: 1.8592\n",
314
+ "Epoch 19/200\n",
315
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.4109 - loss: 1.9696\n",
316
+ "Epoch 20/200\n",
317
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.6099 - loss: 1.7249\n",
318
+ "Epoch 21/200\n",
319
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.5910 - loss: 1.5929\n",
320
+ "Epoch 22/200\n",
321
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.6170 - loss: 1.5090\n",
322
+ "Epoch 23/200\n",
323
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.5359 - loss: 1.5326\n",
324
+ "Epoch 24/200\n",
325
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.6133 - loss: 1.3116\n",
326
+ "Epoch 25/200\n",
327
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.5605 - loss: 1.5211\n",
328
+ "Epoch 26/200\n",
329
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.6173 - loss: 1.3756\n",
330
+ "Epoch 27/200\n",
331
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.6295 - loss: 1.3038 \n",
332
+ "Epoch 28/200\n",
333
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.6551 - loss: 1.0944\n",
334
+ "Epoch 29/200\n",
335
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.6298 - loss: 1.1905\n",
336
+ "Epoch 30/200\n",
337
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.6804 - loss: 1.2018\n",
338
+ "Epoch 31/200\n",
339
+ "\u001b[1m33/33\u001b[0m \u001b[32m━��━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7484 - loss: 0.8515\n",
340
+ "Epoch 32/200\n",
341
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.6634 - loss: 1.0130\n",
342
+ "Epoch 33/200\n",
343
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7496 - loss: 0.9618\n",
344
+ "Epoch 34/200\n",
345
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.7764 - loss: 0.7866\n",
346
+ "Epoch 35/200\n",
347
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7919 - loss: 0.7579\n",
348
+ "Epoch 36/200\n",
349
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7773 - loss: 0.7759\n",
350
+ "Epoch 37/200\n",
351
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.7958 - loss: 0.7796\n",
352
+ "Epoch 38/200\n",
353
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7835 - loss: 0.6777\n",
354
+ "Epoch 39/200\n",
355
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.6933 - loss: 0.9080\n",
356
+ "Epoch 40/200\n",
357
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7136 - loss: 0.8473 \n",
358
+ "Epoch 41/200\n",
359
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7721 - loss: 0.7652\n",
360
+ "Epoch 42/200\n",
361
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8115 - loss: 0.7462\n",
362
+ "Epoch 43/200\n",
363
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8388 - loss: 0.6034\n",
364
+ "Epoch 44/200\n",
365
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8115 - loss: 0.5538\n",
366
+ "Epoch 45/200\n",
367
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7534 - loss: 0.7057\n",
368
+ "Epoch 46/200\n",
369
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7961 - loss: 0.7454 \n",
370
+ "Epoch 47/200\n",
371
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7371 - loss: 0.8724\n",
372
+ "Epoch 48/200\n",
373
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8563 - loss: 0.5258\n",
374
+ "Epoch 49/200\n",
375
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8373 - loss: 0.6451 \n",
376
+ "Epoch 50/200\n",
377
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8705 - loss: 0.4699\n",
378
+ "Epoch 51/200\n",
379
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8362 - loss: 0.5688 \n",
380
+ "Epoch 52/200\n",
381
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7597 - loss: 0.6519\n",
382
+ "Epoch 53/200\n",
383
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8160 - loss: 0.6018\n",
384
+ "Epoch 54/200\n",
385
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7629 - loss: 0.6320\n",
386
+ "Epoch 55/200\n",
387
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8370 - loss: 0.5583\n",
388
+ "Epoch 56/200\n",
389
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8217 - loss: 0.5044\n",
390
+ "Epoch 57/200\n",
391
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7954 - loss: 0.6656\n",
392
+ "Epoch 58/200\n",
393
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8589 - loss: 0.5088\n",
394
+ "Epoch 59/200\n",
395
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8512 - loss: 0.5375\n",
396
+ "Epoch 60/200\n",
397
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.7823 - loss: 0.6725\n",
398
+ "Epoch 61/200\n",
399
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7613 - loss: 0.6719\n",
400
+ "Epoch 62/200\n",
401
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8928 - loss: 0.3940\n",
402
+ "Epoch 63/200\n",
403
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9465 - loss: 0.3387\n",
404
+ "Epoch 64/200\n",
405
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8715 - loss: 0.4471\n",
406
+ "Epoch 65/200\n",
407
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8565 - loss: 0.4623\n",
408
+ "Epoch 66/200\n",
409
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8506 - loss: 0.4804\n",
410
+ "Epoch 67/200\n",
411
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8375 - loss: 0.5659\n",
412
+ "Epoch 68/200\n",
413
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8722 - loss: 0.3798\n",
414
+ "Epoch 69/200\n",
415
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8782 - loss: 0.4696\n",
416
+ "Epoch 70/200\n",
417
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8051 - loss: 0.5934\n",
418
+ "Epoch 71/200\n",
419
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8398 - loss: 0.5181\n",
420
+ "Epoch 72/200\n",
421
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8964 - loss: 0.3433\n",
422
+ "Epoch 73/200\n",
423
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9192 - loss: 0.2828\n",
424
+ "Epoch 74/200\n",
425
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8640 - loss: 0.3554 \n",
426
+ "Epoch 75/200\n",
427
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8770 - loss: 0.3985 \n",
428
+ "Epoch 76/200\n",
429
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8394 - loss: 0.3654\n",
430
+ "Epoch 77/200\n",
431
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8361 - loss: 0.4137 \n",
432
+ "Epoch 78/200\n",
433
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8550 - loss: 0.4868\n",
434
+ "Epoch 79/200\n",
435
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8201 - loss: 0.5561\n",
436
+ "Epoch 80/200\n",
437
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9044 - loss: 0.3645\n",
438
+ "Epoch 81/200\n",
439
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8462 - loss: 0.5026\n",
440
+ "Epoch 82/200\n",
441
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8316 - loss: 0.6040 \n",
442
+ "Epoch 83/200\n",
443
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8938 - loss: 0.3195\n",
444
+ "Epoch 84/200\n",
445
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8799 - loss: 0.4521\n",
446
+ "Epoch 85/200\n",
447
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9154 - loss: 0.3184\n",
448
+ "Epoch 86/200\n",
449
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8469 - loss: 0.4821\n",
450
+ "Epoch 87/200\n",
451
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8531 - loss: 0.3506\n",
452
+ "Epoch 88/200\n",
453
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9220 - loss: 0.3493\n",
454
+ "Epoch 89/200\n",
455
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8935 - loss: 0.3584\n",
456
+ "Epoch 90/200\n",
457
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8833 - loss: 0.2929\n",
458
+ "Epoch 91/200\n",
459
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8852 - loss: 0.2960\n",
460
+ "Epoch 92/200\n",
461
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8893 - loss: 0.2969\n",
462
+ "Epoch 93/200\n",
463
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9165 - loss: 0.2847\n",
464
+ "Epoch 94/200\n",
465
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9291 - loss: 0.3413\n",
466
+ "Epoch 95/200\n",
467
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9300 - loss: 0.2546\n",
468
+ "Epoch 96/200\n",
469
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━��━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9270 - loss: 0.2407\n",
470
+ "Epoch 97/200\n",
471
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9204 - loss: 0.2162\n",
472
+ "Epoch 98/200\n",
473
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8915 - loss: 0.2711\n",
474
+ "Epoch 99/200\n",
475
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9051 - loss: 0.3305\n",
476
+ "Epoch 100/200\n",
477
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8633 - loss: 0.5580\n",
478
+ "Epoch 101/200\n",
479
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8823 - loss: 0.3063\n",
480
+ "Epoch 102/200\n",
481
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9480 - loss: 0.2321\n",
482
+ "Epoch 103/200\n",
483
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8639 - loss: 0.3623\n",
484
+ "Epoch 104/200\n",
485
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8504 - loss: 0.3309\n",
486
+ "Epoch 105/200\n",
487
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.9191 - loss: 0.3501\n",
488
+ "Epoch 106/200\n",
489
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9379 - loss: 0.2638\n",
490
+ "Epoch 107/200\n",
491
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8833 - loss: 0.3927\n",
492
+ "Epoch 108/200\n",
493
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8745 - loss: 0.3595\n",
494
+ "Epoch 109/200\n",
495
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9051 - loss: 0.3232\n",
496
+ "Epoch 110/200\n",
497
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8815 - loss: 0.3396\n",
498
+ "Epoch 111/200\n",
499
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9430 - loss: 0.1751\n",
500
+ "Epoch 112/200\n",
501
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9491 - loss: 0.2361\n",
502
+ "Epoch 113/200\n",
503
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8514 - loss: 0.3512\n",
504
+ "Epoch 114/200\n",
505
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.9327 - loss: 0.1607\n",
506
+ "Epoch 115/200\n",
507
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.9445 - loss: 0.2465\n",
508
+ "Epoch 116/200\n",
509
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.8794 - loss: 0.3028\n",
510
+ "Epoch 117/200\n",
511
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.8682 - loss: 0.3845\n",
512
+ "Epoch 118/200\n",
513
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9307 - loss: 0.2463\n",
514
+ "Epoch 119/200\n",
515
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9004 - loss: 0.3431\n",
516
+ "Epoch 120/200\n",
517
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.7727 - loss: 0.6520\n",
518
+ "Epoch 121/200\n",
519
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8614 - loss: 0.4168\n",
520
+ "Epoch 122/200\n",
521
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8701 - loss: 0.3500\n",
522
+ "Epoch 123/200\n",
523
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9274 - loss: 0.3727\n",
524
+ "Epoch 124/200\n",
525
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8651 - loss: 0.3869\n",
526
+ "Epoch 125/200\n",
527
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9107 - loss: 0.2356\n",
528
+ "Epoch 126/200\n",
529
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9005 - loss: 0.2736\n",
530
+ "Epoch 127/200\n",
531
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8431 - loss: 0.3525\n",
532
+ "Epoch 128/200\n",
533
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8840 - loss: 0.2562\n",
534
+ "Epoch 129/200\n",
535
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9278 - loss: 0.3064\n",
536
+ "Epoch 130/200\n",
537
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9347 - loss: 0.2516\n",
538
+ "Epoch 131/200\n",
539
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9443 - loss: 0.2612\n",
540
+ "Epoch 132/200\n",
541
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8448 - loss: 0.4872\n",
542
+ "Epoch 133/200\n",
543
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9076 - loss: 0.3019\n",
544
+ "Epoch 134/200\n",
545
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8769 - loss: 0.3769\n",
546
+ "Epoch 135/200\n",
547
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.9624 - loss: 0.1565\n",
548
+ "Epoch 136/200\n",
549
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9364 - loss: 0.1980\n",
550
+ "Epoch 137/200\n",
551
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9291 - loss: 0.2010\n",
552
+ "Epoch 138/200\n",
553
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.8982 - loss: 0.2714\n",
554
+ "Epoch 139/200\n",
555
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step - accuracy: 0.9046 - loss: 0.2715\n",
556
+ "Epoch 140/200\n",
557
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9090 - loss: 0.2241\n",
558
+ "Epoch 141/200\n",
559
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9479 - loss: 0.2362\n",
560
+ "Epoch 142/200\n",
561
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9199 - loss: 0.2667\n",
562
+ "Epoch 143/200\n",
563
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9357 - loss: 0.2553\n",
564
+ "Epoch 144/200\n",
565
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.9743 - loss: 0.0919\n",
566
+ "Epoch 145/200\n",
567
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9209 - loss: 0.2244\n",
568
+ "Epoch 146/200\n",
569
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9292 - loss: 0.2036 \n",
570
+ "Epoch 147/200\n",
571
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9155 - loss: 0.2580\n",
572
+ "Epoch 148/200\n",
573
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9175 - loss: 0.3135 \n",
574
+ "Epoch 149/200\n",
575
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9232 - loss: 0.2287\n",
576
+ "Epoch 150/200\n",
577
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9054 - loss: 0.3006\n",
578
+ "Epoch 151/200\n",
579
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8932 - loss: 0.3317\n",
580
+ "Epoch 152/200\n",
581
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8935 - loss: 0.2983\n",
582
+ "Epoch 153/200\n",
583
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9113 - loss: 0.2758\n",
584
+ "Epoch 154/200\n",
585
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9151 - loss: 0.2177\n",
586
+ "Epoch 155/200\n",
587
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9614 - loss: 0.1674\n",
588
+ "Epoch 156/200\n",
589
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8989 - loss: 0.2747\n",
590
+ "Epoch 157/200\n",
591
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8944 - loss: 0.2961\n",
592
+ "Epoch 158/200\n",
593
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9024 - loss: 0.3327\n",
594
+ "Epoch 159/200\n",
595
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9522 - loss: 0.2010 \n",
596
+ "Epoch 160/200\n",
597
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9321 - loss: 0.2548\n",
598
+ "Epoch 161/200\n",
599
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9378 - loss: 0.1737\n",
600
+ "Epoch 162/200\n",
601
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8975 - loss: 0.3410 \n",
602
+ "Epoch 163/200\n",
603
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8985 - loss: 0.3531\n",
604
+ "Epoch 164/200\n",
605
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9079 - loss: 0.2994\n",
606
+ "Epoch 165/200\n",
607
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9407 - loss: 0.1578\n",
608
+ "Epoch 166/200\n",
609
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8804 - loss: 0.3309 \n",
610
+ "Epoch 167/200\n",
611
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9003 - loss: 0.3809\n",
612
+ "Epoch 168/200\n",
613
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9451 - loss: 0.1439\n",
614
+ "Epoch 169/200\n",
615
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9341 - loss: 0.2064\n",
616
+ "Epoch 170/200\n",
617
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9742 - loss: 0.1526\n",
618
+ "Epoch 171/200\n",
619
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9393 - loss: 0.2190\n",
620
+ "Epoch 172/200\n",
621
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9324 - loss: 0.1997\n",
622
+ "Epoch 173/200\n",
623
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9670 - loss: 0.1265\n",
624
+ "Epoch 174/200\n",
625
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9299 - loss: 0.2026\n",
626
+ "Epoch 175/200\n",
627
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8800 - loss: 0.3367\n",
628
+ "Epoch 176/200\n",
629
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9523 - loss: 0.2110\n",
630
+ "Epoch 177/200\n",
631
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9474 - loss: 0.1674\n",
632
+ "Epoch 178/200\n",
633
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9046 - loss: 0.2604\n",
634
+ "Epoch 179/200\n",
635
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9552 - loss: 0.1817\n",
636
+ "Epoch 180/200\n",
637
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9215 - loss: 0.2647\n",
638
+ "Epoch 181/200\n",
639
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9105 - loss: 0.2477\n",
640
+ "Epoch 182/200\n",
641
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8724 - loss: 0.3489\n",
642
+ "Epoch 183/200\n",
643
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.8908 - loss: 0.2489 \n",
644
+ "Epoch 184/200\n",
645
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9519 - loss: 0.1850\n",
646
+ "Epoch 185/200\n",
647
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step - accuracy: 0.9474 - loss: 0.1374\n",
648
+ "Epoch 186/200\n",
649
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9530 - loss: 0.1816\n",
650
+ "Epoch 187/200\n",
651
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9142 - loss: 0.1876\n",
652
+ "Epoch 188/200\n",
653
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.8823 - loss: 0.3123\n",
654
+ "Epoch 189/200\n",
655
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.9666 - loss: 0.0901\n",
656
+ "Epoch 190/200\n",
657
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9418 - loss: 0.2208\n",
658
+ "Epoch 191/200\n",
659
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9489 - loss: 0.2202\n",
660
+ "Epoch 192/200\n",
661
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9665 - loss: 0.2219\n",
662
+ "Epoch 193/200\n",
663
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9314 - loss: 0.1959\n",
664
+ "Epoch 194/200\n",
665
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9229 - loss: 0.3213\n",
666
+ "Epoch 195/200\n",
667
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.9696 - loss: 0.1268\n",
668
+ "Epoch 196/200\n",
669
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9439 - loss: 0.1486\n",
670
+ "Epoch 197/200\n",
671
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9745 - loss: 0.1643\n",
672
+ "Epoch 198/200\n",
673
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.8840 - loss: 0.3133\n",
674
+ "Epoch 199/200\n",
675
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - accuracy: 0.9689 - loss: 0.1050\n",
676
+ "Epoch 200/200\n",
677
+ "\u001b[1m33/33\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - accuracy: 0.9060 - loss: 0.3092\n"
678
+ ]
679
+ },
680
+ {
681
+ "output_type": "stream",
682
+ "name": "stderr",
683
+ "text": [
684
+ "WARNING:absl:You are saving your model as an HDF5 file via `model.save()` or `keras.saving.save_model(model)`. This file format is considered legacy. We recommend using instead the native Keras format, e.g. `model.save('my_model.keras')` or `keras.saving.save_model(model, 'my_model.keras')`. \n"
685
+ ]
686
+ },
687
+ {
688
+ "output_type": "stream",
689
+ "name": "stdout",
690
+ "text": [
691
+ "Model created and saved successfully!\n"
692
+ ]
693
+ }
694
+ ]
695
+ },
696
+ {
697
+ "cell_type": "code",
698
+ "source": [
699
+ "import tensorflow as tf\n",
700
+ "model = tf.keras.models.load_model('chatbot_model.h5')\n",
701
+ "\n",
702
+ "def clean_up_sentence(sentence):\n",
703
+ " sentence_words = nltk.word_tokenize(sentence)\n",
704
+ " sentence_words = [lemmatizer.lemmatize(word.lower()) for word in sentence_words]\n",
705
+ " return sentence_words\n",
706
+ "\n",
707
+ "def bag_of_words(sentence, words):\n",
708
+ " sentence_words = clean_up_sentence(sentence)\n",
709
+ " bag = [0] * len(words)\n",
710
+ " for s in sentence_words:\n",
711
+ " for i, w in enumerate(words):\n",
712
+ " if w == s:\n",
713
+ " bag[i] = 1\n",
714
+ " return np.array(bag)\n",
715
+ "\n",
716
+ "def predict_class(sentence, model):\n",
717
+ " bow = bag_of_words(sentence, words)\n",
718
+ " res = model.predict(np.array([bow]))[0]\n",
719
+ " ERROR_THRESHOLD = 0.25\n",
720
+ " results = [[i, r] for i, r in enumerate(res) if r > ERROR_THRESHOLD]\n",
721
+ "\n",
722
+ " results.sort(key=lambda x: x[1], reverse=True)\n",
723
+ " return_list = [{\"intent\": classes[r[0]], \"probability\": str(r[1])} for r in results]\n",
724
+ " return return_list\n",
725
+ "\n",
726
+ "def get_response(intents_list, intents_json):\n",
727
+ " tag = intents_list[0]['intent']\n",
728
+ " for i in intents_json['intents']:\n",
729
+ " if i['tag'] == tag:\n",
730
+ " return random.choice(i['responses'])"
731
+ ],
732
+ "metadata": {
733
+ "colab": {
734
+ "base_uri": "https://localhost:8080/"
735
+ },
736
+ "id": "b46z2vzBSfam",
737
+ "outputId": "fa096e3d-afc2-49ea-a216-f65fc104bfa3"
738
+ },
739
+ "execution_count": 24,
740
+ "outputs": [
741
+ {
742
+ "output_type": "stream",
743
+ "name": "stderr",
744
+ "text": [
745
+ "WARNING:absl:Compiled the loaded model, but the compiled metrics have yet to be built. `model.compile_metrics` will be empty until you train or evaluate the model.\n"
746
+ ]
747
+ }
748
+ ]
749
+ },
750
+ {
751
+ "cell_type": "code",
752
+ "source": [
753
+ "print(\"Bot is ready to chat! Type 'quit' to stop.\")\n",
754
+ "while True:\n",
755
+ " message = input(\"You: \")\n",
756
+ " if message.lower() == \"quit\":\n",
757
+ " break\n",
758
+ "\n",
759
+ " ints = predict_class(message, model)\n",
760
+ " if ints:\n",
761
+ " res = get_response(ints, data)\n",
762
+ " print(\"Bot:\", res)\n",
763
+ " else:\n",
764
+ " print(\"Bot: Sorry, I don't understand that.\")\\"
765
+ ],
766
+ "metadata": {
767
+ "colab": {
768
+ "base_uri": "https://localhost:8080/"
769
+ },
770
+ "id": "UITTjJ04Sh9u",
771
+ "outputId": "590b6824-0ba2-4af6-e20d-4bc1edc4d6dc"
772
+ },
773
+ "execution_count": 25,
774
+ "outputs": [
775
+ {
776
+ "name": "stdout",
777
+ "output_type": "stream",
778
+ "text": [
779
+ "Bot is ready to chat! Type 'quit' to stop.\n",
780
+ "You: hello\n",
781
+ "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 58ms/step\n",
782
+ "Bot: Hey! What brings you here today?\n",
783
+ "You: give me recommend book\n",
784
+ "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 20ms/step\n",
785
+ "Bot: Sure, I'd be happy to recommend a book. What type of book are you in the mood for?\n",
786
+ "You: fiction\n",
787
+ "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 33ms/step\n",
788
+ "Bot: {'Book': \"The Yiddish Policemen's Union\", 'Feedback': 'For sixty years, Jewish refugees and their descendants have prospered in the Federal District of Sitka, a \"temporary\" safe haven created in the wake of revelations of the Holocaust and the shocking 1948 collapse of the fledgling state of Israel. Proud, grateful, and longing to be American, the Jews of the Sitka District have created their own little world in the Alaskan panhandle, a vibrant, gritty, soulful, and complex frontier city that moves to the music of Yiddish. For sixty years they have been left alone, neglected and half-forgotten in a backwater of history. Now the District is set to revert to Alaskan control, and their dream is coming to an end: once again the tides of history threaten to sweep them up and carry them off into the unknown. But homicide detective Meyer Landsman of the District Police has enough problems without worrying about the upcoming Reversion. His life is a shambles, his marriage a wreck, his career a disaster. He and his half-Tlingit partner, Berko Shemets, can\\'t catch a break in any of their outstanding cases. Landsman\\'s new supervisor is the love of his lifeβ€”and also his worst nightmare. And in the cheap hotel where he has washed up, someone has just committed a murderβ€”right under Landsman\\'s nose. Out of habit, obligation, and a mysterious sense that it somehow offers him a shot at redeeming himself, Landsman begins to investigate the killing of his neighbor, a former chess prodigy. But when word comes down from on high that the case is to be dropped immediately, Landsman soon finds himself contending with all the powerful forces of faith, obsession, hopefulness, evil, and salvation that are his heritageβ€”and with the unfinished business of his marriage to Bina Gelbfish, the one person who understands his darkest fears. At once a gripping whodunit, a love story, an homage to 1940s noir, and an exploration of the mysteries of exile and redemption, The Yiddish Policemen\\'s Union is a novel only Michael Chabon could have written.', 'Rate': 3.7}\n",
789
+ "You: give fact book\n",
790
+ "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 30ms/step\n",
791
+ "Bot: Hey! What brings you here today?\n",
792
+ "You: comic\n",
793
+ "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 19ms/step\n",
794
+ "Bot: [{'Book': 'How to Make Money Like a Porn Star', 'Feedback': \"Claudia Corvette. From her tousled bedroom hair to her name–all the porn stars in this world take their names from supermodels and sports cars–she is adult entertainment's prototypical femme fatale. Her life is the collision of countless troubled–childhood cliches and grown–up wet dreams, projected onto her as surely as her videos project their blue light onto lonely men around the world. From its first panel, How to Make Money Like a Porn Star draws the reader into the dark world of girls like Claudia, the men who fantasize about them, and the monsters who control them. In the hands of Rolling Stone writer Neil Strauss and illustrator Bernard Chang, this adult graphic novel weaves together black humor and blacker reality. Like all great American stories, it features humble beginnings, life–changing tragedy, stripping, abuse, implants, fame, addiction, bigger implants, abduction, gunplay, downfall, and even bigger implants. Not to mention a thousand shades of latex and L'Oreal. Part parody, part morality tale, here is the truth about the porn life, its outsized visual splendor captured in a comic parade of doe–eyed centerfolds, its essence distilled in a story that will haunt every reader who has ever wondered where his next fantasy is coming from.\", 'Rate': 3.31}, {'Book': 'Inferno', 'Feedback': 'As a mad arsonist known as an Enfer scheme terrorizes the inhabitants of Gotham City, a fire at Arkham Asylum is engineered to provide an escape opportunity for its most infamous inmate, the Joker, who comes up with a scheme to launch the ultimate crime wave, disguised as the Caped Crusader himself. Original.', 'Rate': 3.6}, {'Book': 'Black Hole', 'Feedback': 'Seattle teenagers of the 1970s are suddenly faced with a devastating, disfiguring, and incurable plague that spreads only through sexual contact.', 'Rate': 3.83}, {'Book': 'Good-bye, Chunky Rice', 'Feedback': 'Chunky Rice, a small green turtle, embarks on an ocean voyage, where he meets a shady skipper and conjoined twins, Ruth and Livonia, but he also leaves behind his mouse deer girlfriend Dandel, who sends him letters in a bottle. Reprint. 20,000 first printing.', 'Rate': 3.8}, {'Book': \"Will Eisner's New York\", 'Feedback': 'A quartet of graphic works explores the lives and landscapes of the diverse inhabitants of the urban jungle of the Big Apple.', 'Rate': 4.36}, {'Book': 'Amphigorey', 'Feedback': 'Fifteen works by the American artist and author provide a journey into a macabre world', 'Rate': 4.05}, {'Book': 'Calvin and Hobbes: Sunday Pages 1985-1995', 'Feedback': 'Compiles a selection of Sunday cartoons selected and commented upon by the author.', 'Rate': 4.71}, {'Book': 'The Complete Calvin and Hobbes', 'Feedback': 'Brings together every \"Calvin and Hobbes\" cartoon that has ever appeared in syndication, along with stories and poems from classic collections.', 'Rate': 4.82}, {'Book': 'The Best of Ray Bradbury', 'Feedback': 'Collects top adaptations of the popular science-fiction author\\'s works, in a fan\\'s compendium that includes \"Come Into My Cellar,\" \"The Golden Apples of the Sun,\" and \"A Sound of Thunder.\" Original.', 'Rate': 4.07}, {'Book': 'The Marvel Comics Encyclopedia', 'Feedback': \"Introduces all of Marvel's greatest heroes and villains, with full details about their powers and careers.\", 'Rate': 4.36}]\n",
795
+ "You: quit\n"
796
+ ]
797
+ }
798
+ ]
799
+ }
800
+ ]
801
+ }
intents.json ADDED
The diff for this file is too large to render. See raw diff