060_DLByABr_05a-LSTM-Solution(Python)

Loading...

ScaDaMaLe Course site and book

This is a 2019-2021 augmentation and update of Adam Breindel's initial notebooks.

Thanks to Christian von Koch and William Anzén for their contributions towards making these materials Spark 3.0.1 and Python 3+ compliant.

import numpy
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from keras.utils import np_utils
 
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
char_to_int = dict((c, i) for i, c in enumerate(alphabet))
int_to_char = dict((i, c) for i, c in enumerate(alphabet))
 
seq_length = 3
dataX = []
dataY = []
for i in range(0, len(alphabet) - seq_length, 1):
    seq_in = alphabet[i:i + seq_length]
    seq_out = alphabet[i + seq_length]
    dataX.append([char_to_int[char] for char in seq_in])
    dataY.append(char_to_int[seq_out])
    print (seq_in, '->', seq_out)
 
# reshape X to be [samples, time steps, features]
X = numpy.reshape(dataX, (len(dataX), seq_length, 1))
X = X / float(len(alphabet))
y = np_utils.to_categorical(dataY)
 
model = Sequential()
model.add(LSTM(32, input_shape=(X.shape[1], X.shape[2])))
model.add(Dense(y.shape[1], activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X, y, epochs=400, batch_size=1, verbose=2)
 
scores = model.evaluate(X, y)
print("Model Accuracy: %.2f%%" % (scores[1]*100))
 
for pattern in ['WBC', 'WKL', 'WTU', 'DWF', 'MWO', 'VWW', 'GHW', 'JKW', 'PQW']:
    pattern = [char_to_int[c] for c in pattern]
    x = numpy.reshape(pattern, (1, len(pattern), 1))
    x = x / float(len(alphabet))
    prediction = model.predict(x, verbose=0)
    index = numpy.argmax(prediction)
    result = int_to_char[index]
    seq_in = [int_to_char[value] for value in pattern]
    print (seq_in, "->", result)
Using TensorFlow backend. ABC -> D BCD -> E CDE -> F DEF -> G EFG -> H FGH -> I GHI -> J HIJ -> K IJK -> L JKL -> M KLM -> N LMN -> O MNO -> P NOP -> Q OPQ -> R PQR -> S QRS -> T RST -> U STU -> V TUV -> W UVW -> X VWX -> Y WXY -> Z WARNING:tensorflow:From /databricks/python/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version. Instructions for updating: Colocations handled automatically by placer. WARNING:tensorflow:From /databricks/python/lib/python3.7/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. Instructions for updating: Use tf.cast instead. Epoch 1/400 - 1s - loss: 3.2607 - acc: 0.0435 Epoch 2/400 - 0s - loss: 3.2471 - acc: 0.0435 Epoch 3/400 - 0s - loss: 3.2406 - acc: 0.0435 Epoch 4/400 - 0s - loss: 3.2340 - acc: 0.0435 Epoch 5/400 - 0s - loss: 3.2268 - acc: 0.0435 Epoch 6/400 - 0s - loss: 3.2188 - acc: 0.0435 Epoch 7/400 - 0s - loss: 3.2119 - acc: 0.0000e+00 Epoch 8/400 - 0s - loss: 3.2032 - acc: 0.0000e+00 Epoch 9/400 - 0s - loss: 3.1923 - acc: 0.0000e+00 Epoch 10/400 - 0s - loss: 3.1813 - acc: 0.0000e+00 Epoch 11/400 - 0s - loss: 3.1704 - acc: 0.0000e+00 Epoch 12/400 - 0s - loss: 3.1563 - acc: 0.0000e+00 Epoch 13/400 - 0s - loss: 3.1418 - acc: 0.0435 Epoch 14/400 - 0s - loss: 3.1271 - acc: 0.0000e+00 Epoch 15/400 - 0s - loss: 3.1095 - acc: 0.0435 Epoch 16/400 - 0s - loss: 3.0919 - acc: 0.0435 Epoch 17/400 - 0s - loss: 3.0732 - acc: 0.0435 Epoch 18/400 - 0s - loss: 3.0534 - acc: 0.0435 Epoch 19/400 - 0s - loss: 3.0314 - acc: 0.0435 Epoch 20/400 - 0s - loss: 3.0114 - acc: 0.0000e+00 Epoch 21/400 - 0s - loss: 2.9832 - acc: 0.0000e+00 Epoch 22/400 - 0s - loss: 2.9516 - acc: 0.0435 Epoch 23/400 - 0s - loss: 2.9206 - acc: 0.0870 Epoch 24/400 - 0s - loss: 2.8855 - acc: 0.1304 Epoch 25/400 - 0s - loss: 2.8390 - acc: 0.0435 Epoch 26/400 - 0s - loss: 2.7914 - acc: 0.0435 Epoch 27/400 - 0s - loss: 2.7509 - acc: 0.0435 Epoch 28/400 - 0s - loss: 2.6969 - acc: 0.0870 Epoch 29/400 - 0s - loss: 2.6545 - acc: 0.0435 Epoch 30/400 - 0s - loss: 2.6108 - acc: 0.0870 Epoch 31/400 - 0s - loss: 2.5731 - acc: 0.0435 Epoch 32/400 - 0s - loss: 2.5345 - acc: 0.0870 Epoch 33/400 - 0s - loss: 2.5017 - acc: 0.0435 Epoch 34/400 - 0s - loss: 2.4686 - acc: 0.1304 Epoch 35/400 - 0s - loss: 2.4437 - acc: 0.0870 Epoch 36/400 - 0s - loss: 2.4134 - acc: 0.1304 Epoch 37/400 - 0s - loss: 2.3951 - acc: 0.1304 Epoch 38/400 - 0s - loss: 2.3646 - acc: 0.1304 Epoch 39/400 - 0s - loss: 2.3386 - acc: 0.1304 Epoch 40/400 - 0s - loss: 2.3184 - acc: 0.1739 Epoch 41/400 - 0s - loss: 2.2917 - acc: 0.1304 Epoch 42/400 - 0s - loss: 2.2671 - acc: 0.1304 Epoch 43/400 - 0s - loss: 2.2335 - acc: 0.2174 Epoch 44/400 - 0s - loss: 2.2171 - acc: 0.1739 Epoch 45/400 - 0s - loss: 2.1917 - acc: 0.1739 Epoch 46/400 - 0s - loss: 2.1575 - acc: 0.1739 Epoch 47/400 - 0s - loss: 2.1401 - acc: 0.1739 Epoch 48/400 - 0s - loss: 2.1176 - acc: 0.0870 Epoch 49/400 - 0s - loss: 2.0948 - acc: 0.2174 Epoch 50/400 - 0s - loss: 2.0782 - acc: 0.2174 Epoch 51/400 - 0s - loss: 2.0612 - acc: 0.2174 Epoch 52/400 - 0s - loss: 2.0398 - acc: 0.3043 Epoch 53/400 - 0s - loss: 2.0150 - acc: 0.2174 Epoch 54/400 - 0s - loss: 1.9948 - acc: 0.2609 Epoch 55/400 - 0s - loss: 1.9834 - acc: 0.2609 Epoch 56/400 - 0s - loss: 1.9608 - acc: 0.3478 Epoch 57/400 - 0s - loss: 1.9438 - acc: 0.2609 Epoch 58/400 - 0s - loss: 1.9316 - acc: 0.3913 Epoch 59/400 - 0s - loss: 1.9126 - acc: 0.2609 Epoch 60/400 - 0s - loss: 1.9025 - acc: 0.3043 Epoch 61/400 - 0s - loss: 1.8868 - acc: 0.2609 Epoch 62/400 - 0s - loss: 1.8789 - acc: 0.2174 Epoch 63/400 - 0s - loss: 1.8545 - acc: 0.2174 Epoch 64/400 - 0s - loss: 1.8475 - acc: 0.3043 Epoch 65/400 - 0s - loss: 1.8338 - acc: 0.2609 Epoch 66/400 - 0s - loss: 1.8265 - acc: 0.3478 Epoch 67/400 - 0s - loss: 1.8118 - acc: 0.3043 Epoch 68/400 - 0s - loss: 1.7896 - acc: 0.3478 Epoch 69/400 - 0s - loss: 1.7823 - acc: 0.3043 Epoch 70/400 - 0s - loss: 1.7655 - acc: 0.4783 Epoch 71/400 - 0s - loss: 1.7583 - acc: 0.4348 Epoch 72/400 - 0s - loss: 1.7516 - acc: 0.3478 Epoch 73/400 - 0s - loss: 1.7415 - acc: 0.3043 Epoch 74/400 - 0s - loss: 1.7327 - acc: 0.4348 Epoch 75/400 - 0s - loss: 1.7153 - acc: 0.3913 Epoch 76/400 - 0s - loss: 1.7080 - acc: 0.3478 Epoch 77/400 - 0s - loss: 1.6930 - acc: 0.3478 Epoch 78/400 - 0s - loss: 1.6934 - acc: 0.4348 Epoch 79/400 - 0s - loss: 1.6783 - acc: 0.4348 Epoch 80/400 - 0s - loss: 1.6727 - acc: 0.4783 Epoch 81/400 - 0s - loss: 1.6616 - acc: 0.4348 Epoch 82/400 - 0s - loss: 1.6524 - acc: 0.4348 Epoch 83/400 - 0s - loss: 1.6392 - acc: 0.5652 Epoch 84/400 - 0s - loss: 1.6321 - acc: 0.6522 Epoch 85/400 - 0s - loss: 1.6241 - acc: 0.5217 Epoch 86/400 - 0s - loss: 1.6140 - acc: 0.6522 Epoch 87/400 - 0s - loss: 1.6054 - acc: 0.5652 Epoch 88/400 - 0s - loss: 1.5969 - acc: 0.6087 Epoch 89/400 - 0s - loss: 1.5884 - acc: 0.5652 Epoch 90/400 - 0s - loss: 1.5831 - acc: 0.5217 Epoch 91/400 - 0s - loss: 1.5750 - acc: 0.5652 Epoch 92/400 - 0s - loss: 1.5625 - acc: 0.6522 Epoch 93/400 - 0s - loss: 1.5559 - acc: 0.6957 Epoch 94/400 - 0s - loss: 1.5512 - acc: 0.6957 Epoch 95/400 - 0s - loss: 1.5378 - acc: 0.6957 Epoch 96/400 - 0s - loss: 1.5266 - acc: 0.7391 Epoch 97/400 - 0s - loss: 1.5172 - acc: 0.6522 Epoch 98/400 - 0s - loss: 1.5146 - acc: 0.6522 Epoch 99/400 - 0s - loss: 1.5055 - acc: 0.6522 Epoch 100/400 - 0s - loss: 1.4920 - acc: 0.6957 Epoch 101/400 - 0s - loss: 1.4909 - acc: 0.7826 Epoch 102/400 - 0s - loss: 1.4820 - acc: 0.6957 Epoch 103/400 - 0s - loss: 1.4706 - acc: 0.6957 Epoch 104/400 - 0s - loss: 1.4739 - acc: 0.7391 Epoch 105/400 - 0s - loss: 1.4650 - acc: 0.6957 Epoch 106/400 - 0s - loss: 1.4545 - acc: 0.7391 Epoch 107/400 - 0s - loss: 1.4526 - acc: 0.7391 Epoch 108/400 - 0s - loss: 1.4383 - acc: 0.7391 Epoch 109/400 - 0s - loss: 1.4341 - acc: 0.6957 Epoch 110/400 - 0s - loss: 1.4214 - acc: 0.6957 Epoch 111/400 - 0s - loss: 1.4173 - acc: 0.7826 Epoch 112/400 - 0s - loss: 1.4146 - acc: 0.7391 Epoch 113/400 - 0s - loss: 1.4028 - acc: 0.6957 Epoch 114/400 - 0s - loss: 1.3965 - acc: 0.7391 Epoch 115/400 - 0s - loss: 1.3840 - acc: 0.6957 Epoch 116/400 - 0s - loss: 1.3815 - acc: 0.6957 Epoch 117/400 - 0s - loss: 1.3780 - acc: 0.6957 Epoch 118/400 - 0s - loss: 1.3642 - acc: 0.7826 Epoch 119/400 - 0s - loss: 1.3611 - acc: 0.6957 Epoch 120/400 - 0s - loss: 1.3554 - acc: 0.8261 Epoch 121/400 - 0s - loss: 1.3459 - acc: 0.7826 Epoch 122/400 - 0s - loss: 1.3397 - acc: 0.6957 Epoch 123/400 - 0s - loss: 1.3315 - acc: 0.7391 Epoch 124/400 - 0s - loss: 1.3299 - acc: 0.7391 Epoch 125/400 - 0s - loss: 1.3273 - acc: 0.6957 Epoch 126/400 - 0s - loss: 1.3126 - acc: 0.7391 Epoch 127/400 - 0s - loss: 1.3127 - acc: 0.8261 Epoch 128/400 - 0s - loss: 1.3052 - acc: 0.7826 Epoch 129/400 - 0s - loss: 1.3013 - acc: 0.7826 Epoch 130/400 - 0s - loss: 1.2956 - acc: 0.8261 Epoch 131/400 - 0s - loss: 1.2823 - acc: 0.8261 Epoch 132/400 - 0s - loss: 1.2840 - acc: 0.7826 Epoch 133/400 - 0s - loss: 1.2661 - acc: 0.7826 Epoch 134/400 - 0s - loss: 1.2652 - acc: 0.7826 Epoch 135/400 - 0s - loss: 1.2592 - acc: 0.8696 Epoch 136/400 - 0s - loss: 1.2529 - acc: 0.8261 Epoch 137/400 - 0s - loss: 1.2499 - acc: 0.8261 Epoch 138/400 - 0s - loss: 1.2379 - acc: 0.8261 Epoch 139/400 - 0s - loss: 1.2483 - acc: 0.8261 Epoch 140/400 - 0s - loss: 1.2352 - acc: 0.8261 Epoch 141/400 - 0s - loss: 1.2215 - acc: 0.8261 Epoch 142/400 - 0s - loss: 1.2234 - acc: 0.7826 Epoch 143/400 - 0s - loss: 1.2134 - acc: 0.8261 Epoch 144/400 - 0s - loss: 1.2076 - acc: 0.8261 Epoch 145/400 - 0s - loss: 1.2023 - acc: 0.8261 Epoch 146/400 - 0s - loss: 1.1932 - acc: 0.8261 Epoch 147/400 - 0s - loss: 1.1943 - acc: 0.8696 Epoch 148/400 - 0s - loss: 1.1852 - acc: 0.8696 Epoch 149/400 - 0s - loss: 1.1806 - acc: 0.7826 Epoch 150/400 - 0s - loss: 1.1755 - acc: 0.8261 Epoch 151/400 - 0s - loss: 1.1730 - acc: 0.8696 Epoch 152/400 - 0s - loss: 1.1625 - acc: 0.8261 Epoch 153/400 - 0s - loss: 1.1569 - acc: 0.9130 Epoch 154/400 - 0s - loss: 1.1530 - acc: 0.8261 Epoch 155/400 - 0s - loss: 1.1432 - acc: 0.8261 Epoch 156/400 - 0s - loss: 1.1481 - acc: 0.8261 Epoch 157/400 - 0s - loss: 1.1401 - acc: 0.8696 Epoch 158/400 - 0s - loss: 1.1241 - acc: 0.8696 Epoch 159/400 - 0s - loss: 1.1240 - acc: 0.9130 Epoch 160/400 - 0s - loss: 1.1125 - acc: 0.9130 Epoch 161/400 - 0s - loss: 1.1103 - acc: 0.8696 Epoch 162/400 - 0s - loss: 1.1038 - acc: 0.8696 Epoch 163/400 - 0s - loss: 1.0996 - acc: 0.8696 Epoch 164/400 - 0s - loss: 1.0889 - acc: 0.8696 Epoch 165/400 - 0s - loss: 1.0917 - acc: 0.8261 Epoch 166/400 - 0s - loss: 1.0825 - acc: 0.8261 Epoch 167/400 - 0s - loss: 1.0885 - acc: 0.8261 Epoch 168/400 - 0s - loss: 1.0763 - acc: 0.8696 Epoch 169/400 - 0s - loss: 1.0647 - acc: 0.8696 Epoch 170/400 - 0s - loss: 1.0602 - acc: 0.8696 Epoch 171/400 - 0s - loss: 1.0542 - acc: 0.8696 Epoch 172/400 - 0s - loss: 1.0479 - acc: 0.8261 Epoch 173/400 - 0s - loss: 1.0519 - acc: 0.8696 Epoch 174/400 - 0s - loss: 1.0456 - acc: 0.9130 Epoch 175/400 - 0s - loss: 1.0316 - acc: 0.9130 Epoch 176/400 - 0s - loss: 1.0308 - acc: 0.9130 Epoch 177/400 - 0s - loss: 1.0253 - acc: 0.9130 Epoch 178/400 - 0s - loss: 1.0219 - acc: 0.9130 Epoch 179/400 - 0s - loss: 1.0136 - acc: 0.9130 Epoch 180/400 - 0s - loss: 1.0060 - acc: 0.9130 Epoch 181/400 - 0s - loss: 1.0015 - acc: 0.9130 Epoch 182/400 - 0s - loss: 1.0028 - acc: 0.8696 Epoch 183/400 - 0s - loss: 0.9979 - acc: 0.8696 Epoch 184/400 - 0s - loss: 0.9935 - acc: 0.9130 Epoch 185/400 - 0s - loss: 0.9851 - acc: 0.9130 Epoch 186/400 - 0s - loss: 0.9750 - acc: 0.8696 Epoch 187/400 - 0s - loss: 0.9704 - acc: 0.8696 Epoch 188/400 - 0s - loss: 0.9661 - acc: 0.9130 Epoch 189/400 - 0s - loss: 0.9695 - acc: 0.8696 Epoch 190/400 - 0s - loss: 0.9577 - acc: 0.9130 Epoch 191/400 - 0s - loss: 0.9603 - acc: 0.9130 Epoch 192/400 - 0s - loss: 0.9503 - acc: 0.9130 Epoch 193/400 - 0s - loss: 0.9416 - acc: 0.8696 Epoch 194/400 - 0s - loss: 0.9378 - acc: 0.9130 Epoch 195/400 - 0s - loss: 0.9346 - acc: 0.8696 Epoch 196/400 - 0s - loss: 0.9361 - acc: 0.9130 Epoch 197/400 - 0s - loss: 0.9275 - acc: 0.8261 Epoch 198/400 - 0s - loss: 0.9279 - acc: 0.8696 Epoch 199/400 - 0s - loss: 0.9258 - acc: 0.9130 Epoch 200/400 - 0s - loss: 0.9116 - acc: 0.9130 Epoch 201/400 - 0s - loss: 0.9087 - acc: 0.9130 Epoch 202/400 - 0s - loss: 0.9065 - acc: 0.8696 Epoch 203/400 - 0s - loss: 0.8957 - acc: 0.9130 Epoch 204/400 - 0s - loss: 0.8991 - acc: 0.9130 Epoch 205/400 - 0s - loss: 0.8937 - acc: 0.9130 Epoch 206/400 - 0s - loss: 0.8840 - acc: 0.9130 Epoch 207/400 - 0s - loss: 0.8844 - acc: 0.9130 Epoch 208/400 - 0s - loss: 0.8731 - acc: 0.9130 Epoch 209/400 - 0s - loss: 0.8804 - acc: 0.9130 Epoch 210/400 - 0s - loss: 0.8659 - acc: 0.9565 Epoch 211/400 - 0s - loss: 0.8685 - acc: 0.9565 Epoch 212/400 - 0s - loss: 0.8635 - acc: 0.9130 Epoch 213/400 - 0s - loss: 0.8611 - acc: 0.9130 Epoch 214/400 - 0s - loss: 0.8532 - acc: 0.9130 Epoch 215/400 - 0s - loss: 0.8483 - acc: 0.8696 Epoch 216/400 - 0s - loss: 0.8428 - acc: 0.8696 Epoch 217/400 - 0s - loss: 0.8376 - acc: 0.9130 Epoch 218/400 - 0s - loss: 0.8372 - acc: 0.9130 Epoch 219/400 - 0s - loss: 0.8347 - acc: 0.9130 Epoch 220/400 - 0s - loss: 0.8289 - acc: 0.8696 Epoch 221/400 - 0s - loss: 0.8210 - acc: 0.9565 Epoch 222/400 - 0s - loss: 0.8175 - acc: 0.9565 Epoch 223/400 - 0s - loss: 0.8194 - acc: 0.9130 Epoch 224/400 - 0s - loss: 0.8044 - acc: 0.8696 Epoch 225/400 - 0s - loss: 0.8063 - acc: 0.8696 Epoch 226/400 - 0s - loss: 0.8011 - acc: 0.9130 Epoch 227/400 - 0s - loss: 0.7963 - acc: 0.9130 Epoch 228/400 - 0s - loss: 0.7921 - acc: 0.9130 Epoch 229/400 - 0s - loss: 0.7878 - acc: 0.9130 Epoch 230/400 - 0s - loss: 0.7911 - acc: 0.8696 Epoch 231/400 - 0s - loss: 0.7852 - acc: 0.9130 Epoch 232/400 - 0s - loss: 0.7812 - acc: 0.9130 Epoch 233/400 - 0s - loss: 0.7741 - acc: 0.9130 Epoch 234/400 - 0s - loss: 0.7719 - acc: 0.8696 Epoch 235/400 - 0s - loss: 0.7711 - acc: 0.9130 Epoch 236/400 - 0s - loss: 0.7593 - acc: 0.9565 Epoch 237/400 - 0s - loss: 0.7581 - acc: 0.9130 Epoch 238/400 - 0s - loss: 0.7562 - acc: 0.9130 Epoch 239/400 - 0s - loss: 0.7577 - acc: 0.9130 Epoch 240/400 - 0s - loss: 0.7453 - acc: 0.8696 Epoch 241/400 - 0s - loss: 0.7404 - acc: 0.9130 Epoch 242/400 - 0s - loss: 0.7340 - acc: 0.9130 Epoch 243/400 - 0s - loss: 0.7358 - acc: 0.9565 Epoch 244/400 - 0s - loss: 0.7353 - acc: 0.9130 Epoch 245/400 - 0s - loss: 0.7353 - acc: 0.9565 Epoch 246/400 - 0s - loss: 0.7292 - acc: 0.9130 Epoch 247/400 - 0s - loss: 0.7270 - acc: 0.9565 Epoch 248/400 - 0s - loss: 0.7298 - acc: 0.9130 Epoch 249/400 - 0s - loss: 0.7172 - acc: 0.9130 Epoch 250/400 - 0s - loss: 0.7166 - acc: 0.9130 Epoch 251/400 - 0s - loss: 0.7117 - acc: 0.9565 Epoch 252/400 - 0s - loss: 0.7037 - acc: 0.9130 Epoch 253/400 - 0s - loss: 0.7029 - acc: 0.9565 Epoch 254/400 - 0s - loss: 0.6932 - acc: 0.9565 Epoch 255/400 - 0s - loss: 0.6989 - acc: 0.9130 Epoch 256/400 - 0s - loss: 0.6965 - acc: 0.9130 Epoch 257/400 - 0s - loss: 0.6896 - acc: 0.9130 Epoch 258/400 - 0s - loss: 0.6913 - acc: 0.9565 Epoch 259/400 - 0s - loss: 0.6849 - acc: 0.9130 Epoch 260/400 - 0s - loss: 0.6786 - acc: 0.9565 Epoch 261/400 - 0s - loss: 0.6836 - acc: 0.8696 Epoch 262/400 - 0s - loss: 0.6725 - acc: 0.8696 Epoch 263/400 - 0s - loss: 0.6712 - acc: 0.9130 Epoch 264/400 - 0s - loss: 0.6651 - acc: 0.9130 Epoch 265/400 - 0s - loss: 0.6574 - acc: 0.9565 Epoch 266/400 - 0s - loss: 0.6620 - acc: 0.9130 Epoch 267/400 - 0s - loss: 0.6564 - acc: 0.9565 Epoch 268/400 - 0s - loss: 0.6523 - acc: 0.9565 Epoch 269/400 - 0s - loss: 0.6537 - acc: 0.9130 Epoch 270/400 - 0s - loss: 0.6547 - acc: 0.9565 Epoch 271/400 - 0s - loss: 0.6499 - acc: 0.9130 Epoch 272/400 - 0s - loss: 0.6469 - acc: 0.8696 Epoch 273/400 - 0s - loss: 0.6391 - acc: 0.9565 Epoch 274/400 - 0s - loss: 0.6390 - acc: 0.9565 Epoch 275/400 - 0s - loss: 0.6343 - acc: 0.9130 Epoch 276/400 - 0s - loss: 0.6300 - acc: 0.9130 Epoch 277/400 - 0s - loss: 0.6300 - acc: 0.9565 Epoch 278/400 - 0s - loss: 0.6331 - acc: 0.9130 Epoch 279/400 - 0s - loss: 0.6311 - acc: 0.9130 Epoch 280/400 - 0s - loss: 0.6272 - acc: 0.9130 Epoch 281/400 - 0s - loss: 0.6205 - acc: 0.9130 Epoch 282/400 - 0s - loss: 0.6135 - acc: 0.9130 Epoch 283/400 - 0s - loss: 0.6132 - acc: 0.9130 Epoch 284/400 - 0s - loss: 0.6079 - acc: 0.9565 Epoch 285/400 - 0s - loss: 0.6115 - acc: 0.9130 Epoch 286/400 - 0s - loss: 0.6090 - acc: 0.8696 Epoch 287/400 - 0s - loss: 0.6026 - acc: 0.9130 Epoch 288/400 - 0s - loss: 0.5981 - acc: 0.9130 Epoch 289/400 - 0s - loss: 0.5947 - acc: 0.9565 Epoch 290/400 - 0s - loss: 0.5904 - acc: 0.9130 Epoch 291/400 - 0s - loss: 0.5904 - acc: 0.9130 Epoch 292/400 - 0s - loss: 0.5871 - acc: 0.9130 Epoch 293/400 - 0s - loss: 0.5827 - acc: 0.9130 Epoch 294/400 - 0s - loss: 0.5773 - acc: 0.9130 Epoch 295/400 - 0s - loss: 0.5772 - acc: 0.9130 Epoch 296/400 - 0s - loss: 0.5729 - acc: 0.9565 Epoch 297/400 - 0s - loss: 0.5747 - acc: 0.9130 Epoch 298/400 - 0s - loss: 0.5716 - acc: 0.8696 Epoch 299/400 - 0s - loss: 0.5679 - acc: 0.9130 Epoch 300/400 - 0s - loss: 0.5679 - acc: 0.9565 Epoch 301/400 - 0s - loss: 0.5658 - acc: 0.9565 Epoch 302/400 - 0s - loss: 0.5644 - acc: 0.9565 Epoch 303/400 - 0s - loss: 0.5600 - acc: 0.9565 Epoch 304/400 - 0s - loss: 0.5549 - acc: 0.9565 Epoch 305/400 - 0s - loss: 0.5510 - acc: 0.9565 Epoch 306/400 - 0s - loss: 0.5513 - acc: 0.9565 Epoch 307/400 - 0s - loss: 0.5472 - acc: 0.9565 Epoch 308/400 - 0s - loss: 0.5464 - acc: 0.9130 Epoch 309/400 - 0s - loss: 0.5446 - acc: 0.8696 Epoch 310/400 - 0s - loss: 0.5411 - acc: 0.9565 Epoch 311/400 - 0s - loss: 0.5372 - acc: 0.9565 Epoch 312/400 - 0s - loss: 0.5379 - acc: 0.9130 Epoch 313/400 - 0s - loss: 0.5337 - acc: 0.9130 Epoch 314/400 - 0s - loss: 0.5371 - acc: 0.9130 Epoch 315/400 - 0s - loss: 0.5290 - acc: 0.9130 Epoch 316/400 - 0s - loss: 0.5274 - acc: 0.9130 Epoch 317/400 - 0s - loss: 0.5197 - acc: 0.8696 Epoch 318/400 - 0s - loss: 0.5299 - acc: 0.9130 Epoch 319/400 - 0s - loss: 0.5251 - acc: 0.9565 Epoch 320/400 - 0s - loss: 0.5215 - acc: 0.9130 Epoch 321/400 - 0s - loss: 0.5203 - acc: 0.9565 Epoch 322/400 - 0s - loss: 0.5182 - acc: 0.9130 Epoch 323/400 - 0s - loss: 0.5135 - acc: 0.9565 Epoch 324/400 - 0s - loss: 0.5142 - acc: 0.8696 Epoch 325/400 - 0s - loss: 0.5101 - acc: 0.9565 Epoch 326/400 - 0s - loss: 0.5012 - acc: 0.9565 Epoch 327/400 - 0s - loss: 0.5000 - acc: 0.9565 Epoch 328/400 - 0s - loss: 0.4999 - acc: 0.9565 Epoch 329/400 - 0s - loss: 0.4978 - acc: 0.9565 Epoch 330/400 - 0s - loss: 0.4955 - acc: 0.9130 Epoch 331/400 - 0s - loss: 0.4916 - acc: 0.9130 Epoch 332/400 - 0s - loss: 0.4904 - acc: 0.9565 Epoch 333/400 - 0s - loss: 0.4870 - acc: 0.9130 Epoch 334/400 - 0s - loss: 0.4878 - acc: 0.9130 Epoch 335/400 - 0s - loss: 0.4846 - acc: 0.9130 Epoch 336/400 - 0s - loss: 0.4838 - acc: 0.8696 Epoch 337/400 - 0s - loss: 0.4833 - acc: 0.9130 Epoch 338/400 - 0s - loss: 0.4807 - acc: 0.8696 Epoch 339/400 - 0s - loss: 0.4764 - acc: 0.9130 Epoch 340/400 - 0s - loss: 0.4760 - acc: 0.9565 Epoch 341/400 - 0s - loss: 0.4800 - acc: 0.9130 Epoch 342/400 - 0s - loss: 0.4741 - acc: 0.9565 Epoch 343/400 - 0s - loss: 0.4706 - acc: 1.0000 Epoch 344/400 - 0s - loss: 0.4670 - acc: 1.0000 Epoch 345/400 - 0s - loss: 0.4660 - acc: 0.9130 Epoch 346/400 - 0s - loss: 0.4626 - acc: 0.9130 Epoch 347/400 - 0s - loss: 0.4616 - acc: 0.9130 Epoch 348/400 - 0s - loss: 0.4610 - acc: 0.9565 Epoch 349/400 - 0s - loss: 0.4540 - acc: 0.9130 Epoch 350/400 - 0s - loss: 0.4575 - acc: 0.9565 Epoch 351/400 - 0s - loss: 0.4511 - acc: 0.9565 Epoch 352/400 - 0s - loss: 0.4551 - acc: 0.9130 Epoch 353/400 - 0s - loss: 0.4520 - acc: 0.9565 Epoch 354/400 - 0s - loss: 0.4468 - acc: 0.9565 Epoch 355/400 - 0s - loss: 0.4560 - acc: 0.9565 Epoch 356/400 - 0s - loss: 0.4442 - acc: 0.9565 Epoch 357/400 - 0s - loss: 0.4432 - acc: 0.9130 Epoch 358/400 - 0s - loss: 0.4408 - acc: 0.9130 Epoch 359/400 - 0s - loss: 0.4396 - acc: 0.9565 Epoch 360/400 - 0s - loss: 0.4364 - acc: 0.9565 Epoch 361/400 - 0s - loss: 0.4306 - acc: 0.9565 Epoch 362/400 - 0s - loss: 0.4337 - acc: 0.9565 Epoch 363/400 - 0s - loss: 0.4315 - acc: 0.9565 Epoch 364/400 - 0s - loss: 0.4252 - acc: 0.9565 Epoch 365/400 - 0s - loss: 0.4291 - acc: 0.9565 Epoch 366/400 - 0s - loss: 0.4274 - acc: 0.9130 Epoch 367/400 - 0s - loss: 0.4264 - acc: 0.9130 Epoch 368/400 - 0s - loss: 0.4245 - acc: 0.9130 Epoch 369/400 - 0s - loss: 0.4270 - acc: 0.9565 Epoch 370/400 - 0s - loss: 0.4252 - acc: 0.9130 Epoch 371/400 - 0s - loss: 0.4296 - acc: 1.0000 Epoch 372/400 - 0s - loss: 0.4262 - acc: 0.9565 Epoch 373/400 - 0s - loss: 0.4189 - acc: 0.9565 Epoch 374/400 - 0s - loss: 0.4171 - acc: 0.9130 Epoch 375/400 - 0s - loss: 0.4085 - acc: 0.9130 Epoch 376/400 - 0s - loss: 0.4077 - acc: 0.9565 Epoch 377/400 - 0s - loss: 0.4039 - acc: 0.9565 Epoch 378/400 - 0s - loss: 0.4024 - acc: 0.9565 Epoch 379/400 - 0s - loss: 0.4016 - acc: 0.9565 Epoch 380/400 - 0s - loss: 0.4024 - acc: 0.9130 Epoch 381/400 - 0s - loss: 0.3991 - acc: 1.0000 Epoch 382/400 - 0s - loss: 0.3974 - acc: 0.9565 Epoch 383/400 - 0s - loss: 0.3954 - acc: 0.9130 Epoch 384/400 - 0s - loss: 0.3988 - acc: 0.9565 Epoch 385/400 - 0s - loss: 0.3927 - acc: 0.9565 Epoch 386/400 - 0s - loss: 0.3928 - acc: 1.0000 Epoch 387/400 - 0s - loss: 0.3945 - acc: 1.0000 Epoch 388/400 - 0s - loss: 0.3926 - acc: 0.9565 Epoch 389/400 - 0s - loss: 0.3907 - acc: 0.9130 Epoch 390/400 - 0s - loss: 0.3883 - acc: 0.9565 Epoch 391/400 - 0s - loss: 0.3824 - acc: 0.9130 Epoch 392/400 - 0s - loss: 0.3811 - acc: 0.9565 Epoch 393/400 - 0s - loss: 0.3794 - acc: 0.9565 Epoch 394/400 - 0s - loss: 0.3830 - acc: 0.9565 Epoch 395/400 - 0s - loss: 0.3786 - acc: 1.0000 Epoch 396/400 - 0s - loss: 0.3767 - acc: 1.0000 Epoch 397/400 - 0s - loss: 0.3764 - acc: 0.9565 Epoch 398/400 - 0s - loss: 0.3751 - acc: 0.9565 Epoch 399/400 - 0s - loss: 0.3719 - acc: 1.0000 Epoch 400/400 - 0s - loss: 0.3684 - acc: 1.0000 23/23 [==============================] - 0s 4ms/step Model Accuracy: 100.00% ['W', 'B', 'C'] -> Z ['W', 'K', 'L'] -> Z ['W', 'T', 'U'] -> Z ['D', 'W', 'F'] -> I ['M', 'W', 'O'] -> Q ['V', 'W', 'W'] -> Y ['G', 'H', 'W'] -> J ['J', 'K', 'W'] -> M ['P', 'Q', 'W'] -> S