Extend Digits network to hhandwritten characters
Use NIST dataset: EMNIST Letters: 145,600 characters. 26 balanced classes. https://www.nist.gov/itl/products-and-services/emnist-dataset
Play with NN configurations -- number of layers, ssize of layers Please try to break it Throw in some random noise Replace tangent with another function (logit/ sigmioid???)
# Mount data drive
from google.colab import drive
drive.mount('/data/')
data_dir = '/data/My Drive/EMSE 6575/NeuralNetworkHomework'
Drive already mounted at /data/; to attempt to forcibly remount, call drive.mount("/data/", force_remount=True).
Import the custom built classes that Maks made in last class
import sys
sys.path.append(data_dir)
#import util as maksNN
from util import Network, FCLayer, ActivationLayer, FCLayer, ActivationLayer, mse, mse_prime
import numpy as np
import pandas as pd
x_train = np.array([[[0,0]], [[0,1]], [[1,0]], [[1,1]]])
y_train = np.array([[[0]], [[1]], [[1]], [[0]]])
net = Network()
net.add(FCLayer(2,5))
net.add(ActivationLayer())
net.add(FCLayer(5,1))
net.add(ActivationLayer())
net.use(mse, mse_prime)
err = net.fit(x_train, y_train, epochs=1000, learning_rate=0.1)
epoch 1/1000 error=1.582005 epoch 2/1000 error=1.205938 epoch 3/1000 error=1.151335 epoch 4/1000 error=1.136419 epoch 5/1000 error=1.129774 epoch 6/1000 error=1.125437 epoch 7/1000 error=1.121853 epoch 8/1000 error=1.118520 epoch 9/1000 error=1.115250 epoch 10/1000 error=1.111960 epoch 11/1000 error=1.108613 epoch 12/1000 error=1.105192 epoch 13/1000 error=1.101689 epoch 14/1000 error=1.098100 epoch 15/1000 error=1.094424 epoch 16/1000 error=1.090662 epoch 17/1000 error=1.086817 epoch 18/1000 error=1.082892 epoch 19/1000 error=1.078891 epoch 20/1000 error=1.074818 epoch 21/1000 error=1.070680 epoch 22/1000 error=1.066483 epoch 23/1000 error=1.062233 epoch 24/1000 error=1.057938 epoch 25/1000 error=1.053605 epoch 26/1000 error=1.049243 epoch 27/1000 error=1.044859 epoch 28/1000 error=1.040462 epoch 29/1000 error=1.036062 epoch 30/1000 error=1.031665 epoch 31/1000 error=1.027280 epoch 32/1000 error=1.022916 epoch 33/1000 error=1.018579 epoch 34/1000 error=1.014277 epoch 35/1000 error=1.010016 epoch 36/1000 error=1.005803 epoch 37/1000 error=1.001642 epoch 38/1000 error=0.997538 epoch 39/1000 error=0.993495 epoch 40/1000 error=0.989516 epoch 41/1000 error=0.985604 epoch 42/1000 error=0.981760 epoch 43/1000 error=0.977986 epoch 44/1000 error=0.974281 epoch 45/1000 error=0.970646 epoch 46/1000 error=0.967080 epoch 47/1000 error=0.963581 epoch 48/1000 error=0.960149 epoch 49/1000 error=0.956780 epoch 50/1000 error=0.953473 epoch 51/1000 error=0.950226 epoch 52/1000 error=0.947034 epoch 53/1000 error=0.943896 epoch 54/1000 error=0.940807 epoch 55/1000 error=0.937765 epoch 56/1000 error=0.934766 epoch 57/1000 error=0.931807 epoch 58/1000 error=0.928883 epoch 59/1000 error=0.925993 epoch 60/1000 error=0.923131 epoch 61/1000 error=0.920295 epoch 62/1000 error=0.917480 epoch 63/1000 error=0.914684 epoch 64/1000 error=0.911903 epoch 65/1000 error=0.909132 epoch 66/1000 error=0.906370 epoch 67/1000 error=0.903611 epoch 68/1000 error=0.900853 epoch 69/1000 error=0.898091 epoch 70/1000 error=0.895323 epoch 71/1000 error=0.892545 epoch 72/1000 error=0.889752 epoch 73/1000 error=0.886942 epoch 74/1000 error=0.884110 epoch 75/1000 error=0.881252 epoch 76/1000 error=0.878366 epoch 77/1000 error=0.875446 epoch 78/1000 error=0.872490 epoch 79/1000 error=0.869492 epoch 80/1000 error=0.866448 epoch 81/1000 error=0.863355 epoch 82/1000 error=0.860208 epoch 83/1000 error=0.857003 epoch 84/1000 error=0.853734 epoch 85/1000 error=0.850397 epoch 86/1000 error=0.846987 epoch 87/1000 error=0.843499 epoch 88/1000 error=0.839928 epoch 89/1000 error=0.836268 epoch 90/1000 error=0.832513 epoch 91/1000 error=0.828657 epoch 92/1000 error=0.824694 epoch 93/1000 error=0.820618 epoch 94/1000 error=0.816420 epoch 95/1000 error=0.812096 epoch 96/1000 error=0.807635 epoch 97/1000 error=0.803032 epoch 98/1000 error=0.798276 epoch 99/1000 error=0.793360 epoch 100/1000 error=0.788273 epoch 101/1000 error=0.783007 epoch 102/1000 error=0.777549 epoch 103/1000 error=0.771890 epoch 104/1000 error=0.766018 epoch 105/1000 error=0.759920 epoch 106/1000 error=0.753584 epoch 107/1000 error=0.746995 epoch 108/1000 error=0.740139 epoch 109/1000 error=0.733002 epoch 110/1000 error=0.725567 epoch 111/1000 error=0.717817 epoch 112/1000 error=0.709737 epoch 113/1000 error=0.701307 epoch 114/1000 error=0.692511 epoch 115/1000 error=0.683328 epoch 116/1000 error=0.673741 epoch 117/1000 error=0.663730 epoch 118/1000 error=0.653277 epoch 119/1000 error=0.642363 epoch 120/1000 error=0.630972 epoch 121/1000 error=0.619087 epoch 122/1000 error=0.606694 epoch 123/1000 error=0.593782 epoch 124/1000 error=0.580343 epoch 125/1000 error=0.566371 epoch 126/1000 error=0.551867 epoch 127/1000 error=0.536839 epoch 128/1000 error=0.521298 epoch 129/1000 error=0.505266 epoch 130/1000 error=0.488773 epoch 131/1000 error=0.471858 epoch 132/1000 error=0.454571 epoch 133/1000 error=0.436971 epoch 134/1000 error=0.419130 epoch 135/1000 error=0.401127 epoch 136/1000 error=0.383052 epoch 137/1000 error=0.365001 epoch 138/1000 error=0.347073 epoch 139/1000 error=0.329371 epoch 140/1000 error=0.311996 epoch 141/1000 error=0.295045 epoch 142/1000 error=0.278605 epoch 143/1000 error=0.262755 epoch 144/1000 error=0.247560 epoch 145/1000 error=0.233070 epoch 146/1000 error=0.219321 epoch 147/1000 error=0.206335 epoch 148/1000 error=0.194119 epoch 149/1000 error=0.182666 epoch 150/1000 error=0.171963 epoch 151/1000 error=0.161985 epoch 152/1000 error=0.152700 epoch 153/1000 error=0.144075 epoch 154/1000 error=0.136071 epoch 155/1000 error=0.128648 epoch 156/1000 error=0.121766 epoch 157/1000 error=0.115387 epoch 158/1000 error=0.109473 epoch 159/1000 error=0.103988 epoch 160/1000 error=0.098897 epoch 161/1000 error=0.094169 epoch 162/1000 error=0.089774 epoch 163/1000 error=0.085684 epoch 164/1000 error=0.081875 epoch 165/1000 error=0.078324 epoch 166/1000 error=0.075008 epoch 167/1000 error=0.071910 epoch 168/1000 error=0.069011 epoch 169/1000 error=0.066295 epoch 170/1000 error=0.063748 epoch 171/1000 error=0.061357 epoch 172/1000 error=0.059109 epoch 173/1000 error=0.056993 epoch 174/1000 error=0.054999 epoch 175/1000 error=0.053119 epoch 176/1000 error=0.051343 epoch 177/1000 error=0.049664 epoch 178/1000 error=0.048076 epoch 179/1000 error=0.046571 epoch 180/1000 error=0.045144 epoch 181/1000 error=0.043789 epoch 182/1000 error=0.042503 epoch 183/1000 error=0.041279 epoch 184/1000 error=0.040114 epoch 185/1000 error=0.039005 epoch 186/1000 error=0.037947 epoch 187/1000 error=0.036937 epoch 188/1000 error=0.035973 epoch 189/1000 error=0.035052 epoch 190/1000 error=0.034171 epoch 191/1000 error=0.033327 epoch 192/1000 error=0.032519 epoch 193/1000 error=0.031744 epoch 194/1000 error=0.031001 epoch 195/1000 error=0.030288 epoch 196/1000 error=0.029603 epoch 197/1000 error=0.028945 epoch 198/1000 error=0.028312 epoch 199/1000 error=0.027702 epoch 200/1000 error=0.027116 epoch 201/1000 error=0.026551 epoch 202/1000 error=0.026006 epoch 203/1000 error=0.025481 epoch 204/1000 error=0.024974 epoch 205/1000 error=0.024485 epoch 206/1000 error=0.024012 epoch 207/1000 error=0.023556 epoch 208/1000 error=0.023114 epoch 209/1000 error=0.022687 epoch 210/1000 error=0.022274 epoch 211/1000 error=0.021874 epoch 212/1000 error=0.021486 epoch 213/1000 error=0.021111 epoch 214/1000 error=0.020747 epoch 215/1000 error=0.020394 epoch 216/1000 error=0.020052 epoch 217/1000 error=0.019720 epoch 218/1000 error=0.019397 epoch 219/1000 error=0.019084 epoch 220/1000 error=0.018780 epoch 221/1000 error=0.018484 epoch 222/1000 error=0.018197 epoch 223/1000 error=0.017917 epoch 224/1000 error=0.017645 epoch 225/1000 error=0.017381 epoch 226/1000 error=0.017123 epoch 227/1000 error=0.016873 epoch 228/1000 error=0.016628 epoch 229/1000 error=0.016390 epoch 230/1000 error=0.016158 epoch 231/1000 error=0.015932 epoch 232/1000 error=0.015712 epoch 233/1000 error=0.015497 epoch 234/1000 error=0.015287 epoch 235/1000 error=0.015082 epoch 236/1000 error=0.014883 epoch 237/1000 error=0.014687 epoch 238/1000 error=0.014497 epoch 239/1000 error=0.014311 epoch 240/1000 error=0.014129 epoch 241/1000 error=0.013951 epoch 242/1000 error=0.013778 epoch 243/1000 error=0.013608 epoch 244/1000 error=0.013442 epoch 245/1000 error=0.013279 epoch 246/1000 error=0.013120 epoch 247/1000 error=0.012965 epoch 248/1000 error=0.012813 epoch 249/1000 error=0.012664 epoch 250/1000 error=0.012518 epoch 251/1000 error=0.012375 epoch 252/1000 error=0.012235 epoch 253/1000 error=0.012098 epoch 254/1000 error=0.011964 epoch 255/1000 error=0.011832 epoch 256/1000 error=0.011703 epoch 257/1000 error=0.011577 epoch 258/1000 error=0.011453 epoch 259/1000 error=0.011331 epoch 260/1000 error=0.011212 epoch 261/1000 error=0.011095 epoch 262/1000 error=0.010980 epoch 263/1000 error=0.010867 epoch 264/1000 error=0.010757 epoch 265/1000 error=0.010648 epoch 266/1000 error=0.010542 epoch 267/1000 error=0.010437 epoch 268/1000 error=0.010334 epoch 269/1000 error=0.010233 epoch 270/1000 error=0.010134 epoch 271/1000 error=0.010037 epoch 272/1000 error=0.009941 epoch 273/1000 error=0.009847 epoch 274/1000 error=0.009755 epoch 275/1000 error=0.009664 epoch 276/1000 error=0.009574 epoch 277/1000 error=0.009487 epoch 278/1000 error=0.009400 epoch 279/1000 error=0.009315 epoch 280/1000 error=0.009232 epoch 281/1000 error=0.009149 epoch 282/1000 error=0.009069 epoch 283/1000 error=0.008989 epoch 284/1000 error=0.008911 epoch 285/1000 error=0.008834 epoch 286/1000 error=0.008758 epoch 287/1000 error=0.008683 epoch 288/1000 error=0.008610 epoch 289/1000 error=0.008537 epoch 290/1000 error=0.008466 epoch 291/1000 error=0.008396 epoch 292/1000 error=0.008327 epoch 293/1000 error=0.008259 epoch 294/1000 error=0.008192 epoch 295/1000 error=0.008126 epoch 296/1000 error=0.008060 epoch 297/1000 error=0.007996 epoch 298/1000 error=0.007933 epoch 299/1000 error=0.007871 epoch 300/1000 error=0.007809 epoch 301/1000 error=0.007749 epoch 302/1000 error=0.007689 epoch 303/1000 error=0.007630 epoch 304/1000 error=0.007572 epoch 305/1000 error=0.007515 epoch 306/1000 error=0.007459 epoch 307/1000 error=0.007403 epoch 308/1000 error=0.007348 epoch 309/1000 error=0.007294 epoch 310/1000 error=0.007240 epoch 311/1000 error=0.007188 epoch 312/1000 error=0.007136 epoch 313/1000 error=0.007084 epoch 314/1000 error=0.007034 epoch 315/1000 error=0.006984 epoch 316/1000 error=0.006934 epoch 317/1000 error=0.006886 epoch 318/1000 error=0.006838 epoch 319/1000 error=0.006790 epoch 320/1000 error=0.006743 epoch 321/1000 error=0.006697 epoch 322/1000 error=0.006651 epoch 323/1000 error=0.006606 epoch 324/1000 error=0.006562 epoch 325/1000 error=0.006518 epoch 326/1000 error=0.006474 epoch 327/1000 error=0.006431 epoch 328/1000 error=0.006389 epoch 329/1000 error=0.006347 epoch 330/1000 error=0.006306 epoch 331/1000 error=0.006265 epoch 332/1000 error=0.006224 epoch 333/1000 error=0.006184 epoch 334/1000 error=0.006145 epoch 335/1000 error=0.006106 epoch 336/1000 error=0.006067 epoch 337/1000 error=0.006029 epoch 338/1000 error=0.005992 epoch 339/1000 error=0.005954 epoch 340/1000 error=0.005918 epoch 341/1000 error=0.005881 epoch 342/1000 error=0.005845 epoch 343/1000 error=0.005810 epoch 344/1000 error=0.005775 epoch 345/1000 error=0.005740 epoch 346/1000 error=0.005705 epoch 347/1000 error=0.005671 epoch 348/1000 error=0.005638 epoch 349/1000 error=0.005605 epoch 350/1000 error=0.005572 epoch 351/1000 error=0.005539 epoch 352/1000 error=0.005507 epoch 353/1000 error=0.005475 epoch 354/1000 error=0.005443 epoch 355/1000 error=0.005412 epoch 356/1000 error=0.005381 epoch 357/1000 error=0.005351 epoch 358/1000 error=0.005321 epoch 359/1000 error=0.005291 epoch 360/1000 error=0.005261 epoch 361/1000 error=0.005232 epoch 362/1000 error=0.005203 epoch 363/1000 error=0.005174 epoch 364/1000 error=0.005146 epoch 365/1000 error=0.005118 epoch 366/1000 error=0.005090 epoch 367/1000 error=0.005062 epoch 368/1000 error=0.005035 epoch 369/1000 error=0.005008 epoch 370/1000 error=0.004981 epoch 371/1000 error=0.004955 epoch 372/1000 error=0.004929 epoch 373/1000 error=0.004903 epoch 374/1000 error=0.004877 epoch 375/1000 error=0.004851 epoch 376/1000 error=0.004826 epoch 377/1000 error=0.004801 epoch 378/1000 error=0.004777 epoch 379/1000 error=0.004752 epoch 380/1000 error=0.004728 epoch 381/1000 error=0.004704 epoch 382/1000 error=0.004680 epoch 383/1000 error=0.004656 epoch 384/1000 error=0.004633 epoch 385/1000 error=0.004610 epoch 386/1000 error=0.004587 epoch 387/1000 error=0.004564 epoch 388/1000 error=0.004542 epoch 389/1000 error=0.004519 epoch 390/1000 error=0.004497 epoch 391/1000 error=0.004475 epoch 392/1000 error=0.004454 epoch 393/1000 error=0.004432 epoch 394/1000 error=0.004411 epoch 395/1000 error=0.004390 epoch 396/1000 error=0.004369 epoch 397/1000 error=0.004348 epoch 398/1000 error=0.004327 epoch 399/1000 error=0.004307 epoch 400/1000 error=0.004287 epoch 401/1000 error=0.004267 epoch 402/1000 error=0.004247 epoch 403/1000 error=0.004227 epoch 404/1000 error=0.004208 epoch 405/1000 error=0.004188 epoch 406/1000 error=0.004169 epoch 407/1000 error=0.004150 epoch 408/1000 error=0.004131 epoch 409/1000 error=0.004112 epoch 410/1000 error=0.004094 epoch 411/1000 error=0.004075 epoch 412/1000 error=0.004057 epoch 413/1000 error=0.004039 epoch 414/1000 error=0.004021 epoch 415/1000 error=0.004003 epoch 416/1000 error=0.003986 epoch 417/1000 error=0.003968 epoch 418/1000 error=0.003951 epoch 419/1000 error=0.003933 epoch 420/1000 error=0.003916 epoch 421/1000 error=0.003899 epoch 422/1000 error=0.003883 epoch 423/1000 error=0.003866 epoch 424/1000 error=0.003849 epoch 425/1000 error=0.003833 epoch 426/1000 error=0.003817 epoch 427/1000 error=0.003800 epoch 428/1000 error=0.003784 epoch 429/1000 error=0.003768 epoch 430/1000 error=0.003753 epoch 431/1000 error=0.003737 epoch 432/1000 error=0.003721 epoch 433/1000 error=0.003706 epoch 434/1000 error=0.003691 epoch 435/1000 error=0.003676 epoch 436/1000 error=0.003661 epoch 437/1000 error=0.003646 epoch 438/1000 error=0.003631 epoch 439/1000 error=0.003616 epoch 440/1000 error=0.003601 epoch 441/1000 error=0.003587 epoch 442/1000 error=0.003572 epoch 443/1000 error=0.003558 epoch 444/1000 error=0.003544 epoch 445/1000 error=0.003530 epoch 446/1000 error=0.003516 epoch 447/1000 error=0.003502 epoch 448/1000 error=0.003488 epoch 449/1000 error=0.003475 epoch 450/1000 error=0.003461 epoch 451/1000 error=0.003448 epoch 452/1000 error=0.003434 epoch 453/1000 error=0.003421 epoch 454/1000 error=0.003408 epoch 455/1000 error=0.003395 epoch 456/1000 error=0.003382 epoch 457/1000 error=0.003369 epoch 458/1000 error=0.003356 epoch 459/1000 error=0.003343 epoch 460/1000 error=0.003331 epoch 461/1000 error=0.003318 epoch 462/1000 error=0.003305 epoch 463/1000 error=0.003293 epoch 464/1000 error=0.003281 epoch 465/1000 error=0.003269 epoch 466/1000 error=0.003257 epoch 467/1000 error=0.003244 epoch 468/1000 error=0.003233 epoch 469/1000 error=0.003221 epoch 470/1000 error=0.003209 epoch 471/1000 error=0.003197 epoch 472/1000 error=0.003186 epoch 473/1000 error=0.003174 epoch 474/1000 error=0.003163 epoch 475/1000 error=0.003151 epoch 476/1000 error=0.003140 epoch 477/1000 error=0.003129 epoch 478/1000 error=0.003117 epoch 479/1000 error=0.003106 epoch 480/1000 error=0.003095 epoch 481/1000 error=0.003084 epoch 482/1000 error=0.003073 epoch 483/1000 error=0.003063 epoch 484/1000 error=0.003052 epoch 485/1000 error=0.003041 epoch 486/1000 error=0.003031 epoch 487/1000 error=0.003020 epoch 488/1000 error=0.003010 epoch 489/1000 error=0.002999 epoch 490/1000 error=0.002989 epoch 491/1000 error=0.002979 epoch 492/1000 error=0.002969 epoch 493/1000 error=0.002958 epoch 494/1000 error=0.002948 epoch 495/1000 error=0.002938 epoch 496/1000 error=0.002928 epoch 497/1000 error=0.002919 epoch 498/1000 error=0.002909 epoch 499/1000 error=0.002899 epoch 500/1000 error=0.002889 epoch 501/1000 error=0.002880 epoch 502/1000 error=0.002870 epoch 503/1000 error=0.002861 epoch 504/1000 error=0.002851 epoch 505/1000 error=0.002842 epoch 506/1000 error=0.002832 epoch 507/1000 error=0.002823 epoch 508/1000 error=0.002814 epoch 509/1000 error=0.002805 epoch 510/1000 error=0.002796 epoch 511/1000 error=0.002787 epoch 512/1000 error=0.002778 epoch 513/1000 error=0.002769 epoch 514/1000 error=0.002760 epoch 515/1000 error=0.002751 epoch 516/1000 error=0.002742 epoch 517/1000 error=0.002733 epoch 518/1000 error=0.002725 epoch 519/1000 error=0.002716 epoch 520/1000 error=0.002708 epoch 521/1000 error=0.002699 epoch 522/1000 error=0.002691 epoch 523/1000 error=0.002682 epoch 524/1000 error=0.002674 epoch 525/1000 error=0.002665 epoch 526/1000 error=0.002657 epoch 527/1000 error=0.002649 epoch 528/1000 error=0.002641 epoch 529/1000 error=0.002633 epoch 530/1000 error=0.002624 epoch 531/1000 error=0.002616 epoch 532/1000 error=0.002608 epoch 533/1000 error=0.002600 epoch 534/1000 error=0.002593 epoch 535/1000 error=0.002585 epoch 536/1000 error=0.002577 epoch 537/1000 error=0.002569 epoch 538/1000 error=0.002561 epoch 539/1000 error=0.002554 epoch 540/1000 error=0.002546 epoch 541/1000 error=0.002538 epoch 542/1000 error=0.002531 epoch 543/1000 error=0.002523 epoch 544/1000 error=0.002516 epoch 545/1000 error=0.002508 epoch 546/1000 error=0.002501 epoch 547/1000 error=0.002494 epoch 548/1000 error=0.002486 epoch 549/1000 error=0.002479 epoch 550/1000 error=0.002472 epoch 551/1000 error=0.002465 epoch 552/1000 error=0.002458 epoch 553/1000 error=0.002450 epoch 554/1000 error=0.002443 epoch 555/1000 error=0.002436 epoch 556/1000 error=0.002429 epoch 557/1000 error=0.002422 epoch 558/1000 error=0.002415 epoch 559/1000 error=0.002409 epoch 560/1000 error=0.002402 epoch 561/1000 error=0.002395 epoch 562/1000 error=0.002388 epoch 563/1000 error=0.002381 epoch 564/1000 error=0.002375 epoch 565/1000 error=0.002368 epoch 566/1000 error=0.002361 epoch 567/1000 error=0.002355 epoch 568/1000 error=0.002348 epoch 569/1000 error=0.002342 epoch 570/1000 error=0.002335 epoch 571/1000 error=0.002329 epoch 572/1000 error=0.002322 epoch 573/1000 error=0.002316 epoch 574/1000 error=0.002309 epoch 575/1000 error=0.002303 epoch 576/1000 error=0.002297 epoch 577/1000 error=0.002291 epoch 578/1000 error=0.002284 epoch 579/1000 error=0.002278 epoch 580/1000 error=0.002272 epoch 581/1000 error=0.002266 epoch 582/1000 error=0.002260 epoch 583/1000 error=0.002254 epoch 584/1000 error=0.002248 epoch 585/1000 error=0.002242 epoch 586/1000 error=0.002236 epoch 587/1000 error=0.002230 epoch 588/1000 error=0.002224 epoch 589/1000 error=0.002218 epoch 590/1000 error=0.002212 epoch 591/1000 error=0.002206 epoch 592/1000 error=0.002200 epoch 593/1000 error=0.002194 epoch 594/1000 error=0.002189 epoch 595/1000 error=0.002183 epoch 596/1000 error=0.002177 epoch 597/1000 error=0.002172 epoch 598/1000 error=0.002166 epoch 599/1000 error=0.002160 epoch 600/1000 error=0.002155 epoch 601/1000 error=0.002149 epoch 602/1000 error=0.002144 epoch 603/1000 error=0.002138 epoch 604/1000 error=0.002133 epoch 605/1000 error=0.002127 epoch 606/1000 error=0.002122 epoch 607/1000 error=0.002116 epoch 608/1000 error=0.002111 epoch 609/1000 error=0.002106 epoch 610/1000 error=0.002100 epoch 611/1000 error=0.002095 epoch 612/1000 error=0.002090 epoch 613/1000 error=0.002084 epoch 614/1000 error=0.002079 epoch 615/1000 error=0.002074 epoch 616/1000 error=0.002069 epoch 617/1000 error=0.002064 epoch 618/1000 error=0.002059 epoch 619/1000 error=0.002053 epoch 620/1000 error=0.002048 epoch 621/1000 error=0.002043 epoch 622/1000 error=0.002038 epoch 623/1000 error=0.002033 epoch 624/1000 error=0.002028 epoch 625/1000 error=0.002023 epoch 626/1000 error=0.002018 epoch 627/1000 error=0.002013 epoch 628/1000 error=0.002009 epoch 629/1000 error=0.002004 epoch 630/1000 error=0.001999 epoch 631/1000 error=0.001994 epoch 632/1000 error=0.001989 epoch 633/1000 error=0.001984 epoch 634/1000 error=0.001980 epoch 635/1000 error=0.001975 epoch 636/1000 error=0.001970 epoch 637/1000 error=0.001965 epoch 638/1000 error=0.001961 epoch 639/1000 error=0.001956 epoch 640/1000 error=0.001951 epoch 641/1000 error=0.001947 epoch 642/1000 error=0.001942 epoch 643/1000 error=0.001938 epoch 644/1000 error=0.001933 epoch 645/1000 error=0.001929 epoch 646/1000 error=0.001924 epoch 647/1000 error=0.001920 epoch 648/1000 error=0.001915 epoch 649/1000 error=0.001911 epoch 650/1000 error=0.001906 epoch 651/1000 error=0.001902 epoch 652/1000 error=0.001897 epoch 653/1000 error=0.001893 epoch 654/1000 error=0.001889 epoch 655/1000 error=0.001884 epoch 656/1000 error=0.001880 epoch 657/1000 error=0.001876 epoch 658/1000 error=0.001871 epoch 659/1000 error=0.001867 epoch 660/1000 error=0.001863 epoch 661/1000 error=0.001859 epoch 662/1000 error=0.001854 epoch 663/1000 error=0.001850 epoch 664/1000 error=0.001846 epoch 665/1000 error=0.001842 epoch 666/1000 error=0.001838 epoch 667/1000 error=0.001834 epoch 668/1000 error=0.001829 epoch 669/1000 error=0.001825 epoch 670/1000 error=0.001821 epoch 671/1000 error=0.001817 epoch 672/1000 error=0.001813 epoch 673/1000 error=0.001809 epoch 674/1000 error=0.001805 epoch 675/1000 error=0.001801 epoch 676/1000 error=0.001797 epoch 677/1000 error=0.001793 epoch 678/1000 error=0.001789 epoch 679/1000 error=0.001785 epoch 680/1000 error=0.001781 epoch 681/1000 error=0.001778 epoch 682/1000 error=0.001774 epoch 683/1000 error=0.001770 epoch 684/1000 error=0.001766 epoch 685/1000 error=0.001762 epoch 686/1000 error=0.001758 epoch 687/1000 error=0.001754 epoch 688/1000 error=0.001751 epoch 689/1000 error=0.001747 epoch 690/1000 error=0.001743 epoch 691/1000 error=0.001739 epoch 692/1000 error=0.001736 epoch 693/1000 error=0.001732 epoch 694/1000 error=0.001728 epoch 695/1000 error=0.001725 epoch 696/1000 error=0.001721 epoch 697/1000 error=0.001717 epoch 698/1000 error=0.001714 epoch 699/1000 error=0.001710 epoch 700/1000 error=0.001706 epoch 701/1000 error=0.001703 epoch 702/1000 error=0.001699 epoch 703/1000 error=0.001696 epoch 704/1000 error=0.001692 epoch 705/1000 error=0.001689 epoch 706/1000 error=0.001685 epoch 707/1000 error=0.001682 epoch 708/1000 error=0.001678 epoch 709/1000 error=0.001675 epoch 710/1000 error=0.001671 epoch 711/1000 error=0.001668 epoch 712/1000 error=0.001664 epoch 713/1000 error=0.001661 epoch 714/1000 error=0.001657 epoch 715/1000 error=0.001654 epoch 716/1000 error=0.001651 epoch 717/1000 error=0.001647 epoch 718/1000 error=0.001644 epoch 719/1000 error=0.001641 epoch 720/1000 error=0.001637 epoch 721/1000 error=0.001634 epoch 722/1000 error=0.001631 epoch 723/1000 error=0.001627 epoch 724/1000 error=0.001624 epoch 725/1000 error=0.001621 epoch 726/1000 error=0.001617 epoch 727/1000 error=0.001614 epoch 728/1000 error=0.001611 epoch 729/1000 error=0.001608 epoch 730/1000 error=0.001605 epoch 731/1000 error=0.001601 epoch 732/1000 error=0.001598 epoch 733/1000 error=0.001595 epoch 734/1000 error=0.001592 epoch 735/1000 error=0.001589 epoch 736/1000 error=0.001586 epoch 737/1000 error=0.001582 epoch 738/1000 error=0.001579 epoch 739/1000 error=0.001576 epoch 740/1000 error=0.001573 epoch 741/1000 error=0.001570 epoch 742/1000 error=0.001567 epoch 743/1000 error=0.001564 epoch 744/1000 error=0.001561 epoch 745/1000 error=0.001558 epoch 746/1000 error=0.001555 epoch 747/1000 error=0.001552 epoch 748/1000 error=0.001549 epoch 749/1000 error=0.001546 epoch 750/1000 error=0.001543 epoch 751/1000 error=0.001540 epoch 752/1000 error=0.001537 epoch 753/1000 error=0.001534 epoch 754/1000 error=0.001531 epoch 755/1000 error=0.001528 epoch 756/1000 error=0.001525 epoch 757/1000 error=0.001522 epoch 758/1000 error=0.001519 epoch 759/1000 error=0.001516 epoch 760/1000 error=0.001514 epoch 761/1000 error=0.001511 epoch 762/1000 error=0.001508 epoch 763/1000 error=0.001505 epoch 764/1000 error=0.001502 epoch 765/1000 error=0.001499 epoch 766/1000 error=0.001497 epoch 767/1000 error=0.001494 epoch 768/1000 error=0.001491 epoch 769/1000 error=0.001488 epoch 770/1000 error=0.001485 epoch 771/1000 error=0.001483 epoch 772/1000 error=0.001480 epoch 773/1000 error=0.001477 epoch 774/1000 error=0.001474 epoch 775/1000 error=0.001472 epoch 776/1000 error=0.001469 epoch 777/1000 error=0.001466 epoch 778/1000 error=0.001463 epoch 779/1000 error=0.001461 epoch 780/1000 error=0.001458 epoch 781/1000 error=0.001455 epoch 782/1000 error=0.001453 epoch 783/1000 error=0.001450 epoch 784/1000 error=0.001447 epoch 785/1000 error=0.001445 epoch 786/1000 error=0.001442 epoch 787/1000 error=0.001440 epoch 788/1000 error=0.001437 epoch 789/1000 error=0.001434 epoch 790/1000 error=0.001432 epoch 791/1000 error=0.001429 epoch 792/1000 error=0.001427 epoch 793/1000 error=0.001424 epoch 794/1000 error=0.001422 epoch 795/1000 error=0.001419 epoch 796/1000 error=0.001416 epoch 797/1000 error=0.001414 epoch 798/1000 error=0.001411 epoch 799/1000 error=0.001409 epoch 800/1000 error=0.001406 epoch 801/1000 error=0.001404 epoch 802/1000 error=0.001401 epoch 803/1000 error=0.001399 epoch 804/1000 error=0.001396 epoch 805/1000 error=0.001394 epoch 806/1000 error=0.001392 epoch 807/1000 error=0.001389 epoch 808/1000 error=0.001387 epoch 809/1000 error=0.001384 epoch 810/1000 error=0.001382 epoch 811/1000 error=0.001379 epoch 812/1000 error=0.001377 epoch 813/1000 error=0.001375 epoch 814/1000 error=0.001372 epoch 815/1000 error=0.001370 epoch 816/1000 error=0.001367 epoch 817/1000 error=0.001365 epoch 818/1000 error=0.001363 epoch 819/1000 error=0.001360 epoch 820/1000 error=0.001358 epoch 821/1000 error=0.001356 epoch 822/1000 error=0.001353 epoch 823/1000 error=0.001351 epoch 824/1000 error=0.001349 epoch 825/1000 error=0.001346 epoch 826/1000 error=0.001344 epoch 827/1000 error=0.001342 epoch 828/1000 error=0.001340 epoch 829/1000 error=0.001337 epoch 830/1000 error=0.001335 epoch 831/1000 error=0.001333 epoch 832/1000 error=0.001330 epoch 833/1000 error=0.001328 epoch 834/1000 error=0.001326 epoch 835/1000 error=0.001324 epoch 836/1000 error=0.001322 epoch 837/1000 error=0.001319 epoch 838/1000 error=0.001317 epoch 839/1000 error=0.001315 epoch 840/1000 error=0.001313 epoch 841/1000 error=0.001310 epoch 842/1000 error=0.001308 epoch 843/1000 error=0.001306 epoch 844/1000 error=0.001304 epoch 845/1000 error=0.001302 epoch 846/1000 error=0.001300 epoch 847/1000 error=0.001297 epoch 848/1000 error=0.001295 epoch 849/1000 error=0.001293 epoch 850/1000 error=0.001291 epoch 851/1000 error=0.001289 epoch 852/1000 error=0.001287 epoch 853/1000 error=0.001285 epoch 854/1000 error=0.001283 epoch 855/1000 error=0.001280 epoch 856/1000 error=0.001278 epoch 857/1000 error=0.001276 epoch 858/1000 error=0.001274 epoch 859/1000 error=0.001272 epoch 860/1000 error=0.001270 epoch 861/1000 error=0.001268 epoch 862/1000 error=0.001266 epoch 863/1000 error=0.001264 epoch 864/1000 error=0.001262 epoch 865/1000 error=0.001260 epoch 866/1000 error=0.001258 epoch 867/1000 error=0.001256 epoch 868/1000 error=0.001254 epoch 869/1000 error=0.001252 epoch 870/1000 error=0.001250 epoch 871/1000 error=0.001248 epoch 872/1000 error=0.001246 epoch 873/1000 error=0.001244 epoch 874/1000 error=0.001242 epoch 875/1000 error=0.001240 epoch 876/1000 error=0.001238 epoch 877/1000 error=0.001236 epoch 878/1000 error=0.001234 epoch 879/1000 error=0.001232 epoch 880/1000 error=0.001230 epoch 881/1000 error=0.001228 epoch 882/1000 error=0.001226 epoch 883/1000 error=0.001224 epoch 884/1000 error=0.001222 epoch 885/1000 error=0.001220 epoch 886/1000 error=0.001219 epoch 887/1000 error=0.001217 epoch 888/1000 error=0.001215 epoch 889/1000 error=0.001213 epoch 890/1000 error=0.001211 epoch 891/1000 error=0.001209 epoch 892/1000 error=0.001207 epoch 893/1000 error=0.001205 epoch 894/1000 error=0.001203 epoch 895/1000 error=0.001202 epoch 896/1000 error=0.001200 epoch 897/1000 error=0.001198 epoch 898/1000 error=0.001196 epoch 899/1000 error=0.001194 epoch 900/1000 error=0.001192 epoch 901/1000 error=0.001191 epoch 902/1000 error=0.001189 epoch 903/1000 error=0.001187 epoch 904/1000 error=0.001185 epoch 905/1000 error=0.001183 epoch 906/1000 error=0.001181 epoch 907/1000 error=0.001180 epoch 908/1000 error=0.001178 epoch 909/1000 error=0.001176 epoch 910/1000 error=0.001174 epoch 911/1000 error=0.001173 epoch 912/1000 error=0.001171 epoch 913/1000 error=0.001169 epoch 914/1000 error=0.001167 epoch 915/1000 error=0.001165 epoch 916/1000 error=0.001164 epoch 917/1000 error=0.001162 epoch 918/1000 error=0.001160 epoch 919/1000 error=0.001158 epoch 920/1000 error=0.001157 epoch 921/1000 error=0.001155 epoch 922/1000 error=0.001153 epoch 923/1000 error=0.001152 epoch 924/1000 error=0.001150 epoch 925/1000 error=0.001148 epoch 926/1000 error=0.001146 epoch 927/1000 error=0.001145 epoch 928/1000 error=0.001143 epoch 929/1000 error=0.001141 epoch 930/1000 error=0.001140 epoch 931/1000 error=0.001138 epoch 932/1000 error=0.001136 epoch 933/1000 error=0.001135 epoch 934/1000 error=0.001133 epoch 935/1000 error=0.001131 epoch 936/1000 error=0.001130 epoch 937/1000 error=0.001128 epoch 938/1000 error=0.001126 epoch 939/1000 error=0.001125 epoch 940/1000 error=0.001123 epoch 941/1000 error=0.001121 epoch 942/1000 error=0.001120 epoch 943/1000 error=0.001118 epoch 944/1000 error=0.001117 epoch 945/1000 error=0.001115 epoch 946/1000 error=0.001113 epoch 947/1000 error=0.001112 epoch 948/1000 error=0.001110 epoch 949/1000 error=0.001109 epoch 950/1000 error=0.001107 epoch 951/1000 error=0.001105 epoch 952/1000 error=0.001104 epoch 953/1000 error=0.001102 epoch 954/1000 error=0.001101 epoch 955/1000 error=0.001099 epoch 956/1000 error=0.001098 epoch 957/1000 error=0.001096 epoch 958/1000 error=0.001094 epoch 959/1000 error=0.001093 epoch 960/1000 error=0.001091 epoch 961/1000 error=0.001090 epoch 962/1000 error=0.001088 epoch 963/1000 error=0.001087 epoch 964/1000 error=0.001085 epoch 965/1000 error=0.001084 epoch 966/1000 error=0.001082 epoch 967/1000 error=0.001081 epoch 968/1000 error=0.001079 epoch 969/1000 error=0.001078 epoch 970/1000 error=0.001076 epoch 971/1000 error=0.001075 epoch 972/1000 error=0.001073 epoch 973/1000 error=0.001072 epoch 974/1000 error=0.001070 epoch 975/1000 error=0.001069 epoch 976/1000 error=0.001067 epoch 977/1000 error=0.001066 epoch 978/1000 error=0.001064 epoch 979/1000 error=0.001063 epoch 980/1000 error=0.001061 epoch 981/1000 error=0.001060 epoch 982/1000 error=0.001058 epoch 983/1000 error=0.001057 epoch 984/1000 error=0.001055 epoch 985/1000 error=0.001054 epoch 986/1000 error=0.001052 epoch 987/1000 error=0.001051 epoch 988/1000 error=0.001049 epoch 989/1000 error=0.001048 epoch 990/1000 error=0.001047 epoch 991/1000 error=0.001045 epoch 992/1000 error=0.001044 epoch 993/1000 error=0.001042 epoch 994/1000 error=0.001041 epoch 995/1000 error=0.001040 epoch 996/1000 error=0.001038 epoch 997/1000 error=0.001037 epoch 998/1000 error=0.001035 epoch 999/1000 error=0.001034 epoch 1000/1000 error=0.001032
pd.DataFrame(err).plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f9b851f9690>
out = net.predict(x_train)
print(x_train, out)
[[[0 0]] [[0 1]] [[1 0]] [[1 1]]] [array([[0.00077615]]), array([[0.97744331]]), array([[0.97686514]]), array([[-0.00192492]])]
from keras.datasets import mnist
from keras.utils import np_utils
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape[0], 1, 28*28).astype('float32')/255
y_train = np_utils.to_categorical(y_train)
x_test = x_test.reshape(x_test.shape[0], 1, 28*28).astype('float32')/255
y_test = np_utils.to_categorical(y_test)
net = Network()
net.add(FCLayer(28*28, 100))
net.add(ActivationLayer())
net.add(FCLayer(100, 50))
net.add(ActivationLayer())
net.add(FCLayer(50, 10))
net.add(ActivationLayer())
net.use(mse, mse_prime)
errors = net.fit(x_train[0:5000], y_train[0:5000], epochs=35, learning_rate=0.1)
epoch 1/35 error=566.724942 epoch 2/35 error=260.354678 epoch 3/35 error=193.446988 epoch 4/35 error=156.475195 epoch 5/35 error=132.408712 epoch 6/35 error=116.610002 epoch 7/35 error=104.013661 epoch 8/35 error=94.216744 epoch 9/35 error=85.762633 epoch 10/35 error=78.746741 epoch 11/35 error=72.836185 epoch 12/35 error=67.864431 epoch 13/35 error=63.404471 epoch 14/35 error=59.213118 epoch 15/35 error=55.701315 epoch 16/35 error=52.567835 epoch 17/35 error=49.948048 epoch 18/35 error=47.599637 epoch 19/35 error=45.246757 epoch 20/35 error=43.319814 epoch 21/35 error=41.587987 epoch 22/35 error=40.430929 epoch 23/35 error=38.700389 epoch 24/35 error=37.469956 epoch 25/35 error=35.925683 epoch 26/35 error=35.044230 epoch 27/35 error=33.750856 epoch 28/35 error=33.149231 epoch 29/35 error=32.035628 epoch 30/35 error=31.672004 epoch 31/35 error=30.374019 epoch 32/35 error=30.145715 epoch 33/35 error=29.162458 epoch 34/35 error=28.668528 epoch 35/35 error=28.126894
errors=[]
for i in range(1000):
out=sum((net.predict(x_test[i]) - y_test[i])[0][0])
errors.append(0 if out<0.5 else 1)
np.mean(errors)
0.038
import pandas as pd
testing_letter = pd.read_csv(data_dir + '/emnist-letters-test.csv')
training_letter = pd.read_csv(data_dir + '/emnist-letters-train.csv')
print(training_letter.shape)
print(testing_letter.shape)
(88799, 785) (14799, 785)
#training_letters
y1 = np.array(training_letter.iloc[:,0].values)
x1 = np.array(training_letter.iloc[:,1:].values)
#testing_labels
y2 = np.array(testing_letter.iloc[:,0].values)
x2 = np.array(testing_letter.iloc[:,1:].values)
print(y1.shape)
print(x1.shape)
(88799,) (88799, 784)
import matplotlib.pyplot as plt
fig,axes = plt.subplots(3,5,figsize=(10,8))
for i,ax in enumerate(axes.flat):
ax.imshow(x1[i].reshape([28,28]))
import tensorflow as tf
# Normalise and reshape data
train_images = x1 / 255.0
test_images = x2 / 255.0
train_images_number = train_images.shape[0]
train_images_height = 28
train_images_width = 28
train_images_size = train_images_height*train_images_width
train_images = train_images.reshape(train_images_number, train_images_height, train_images_width, 1)
test_images_number = test_images.shape[0]
test_images_height = 28
test_images_width = 28
test_images_size = test_images_height*test_images_width
test_images = test_images.reshape(test_images_number, test_images_height, test_images_width, 1)
# Transform labels
number_of_classes = 37
y1 = tf.keras.utils.to_categorical(y1, number_of_classes)
y2 = tf.keras.utils.to_categorical(y2, number_of_classes)
from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau,ModelCheckpoint
from sklearn.model_selection import train_test_split
train_x,test_x,train_y,test_y = train_test_split(train_images,y1,test_size=0.2,random_state = 42)
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32,3,input_shape=(28,28,1)),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Flatten(input_shape=(28,28,1)),
tf.keras.layers.Dense(512,activation='relu'),
tf.keras.layers.Dense(128,activation='relu'),
tf.keras.layers.Dense(number_of_classes,activation='softmax')
])
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])
MCP = ModelCheckpoint('Best_points.h5',verbose=1,save_best_only=True,monitor='val_accuracy',mode='max')
ES = EarlyStopping(monitor='val_accuracy',min_delta=0,verbose=0,restore_best_weights = True,patience=3,mode='max')
RLP = ReduceLROnPlateau(monitor='val_loss',patience=3,factor=0.2,min_lr=0.0001)
history = model.fit(train_x,train_y,epochs=10,validation_data=(test_x,test_y),callbacks=[MCP,ES,RLP])
Epoch 1/10 2220/2220 [==============================] - 106s 47ms/step - loss: 0.8956 - accuracy: 0.7322 - val_loss: 0.3438 - val_accuracy: 0.8902 Epoch 00001: val_accuracy improved from -inf to 0.89020, saving model to Best_points.h5 Epoch 2/10 2220/2220 [==============================] - 104s 47ms/step - loss: 0.2892 - accuracy: 0.9054 - val_loss: 0.3492 - val_accuracy: 0.8941 Epoch 00002: val_accuracy improved from 0.89020 to 0.89409, saving model to Best_points.h5 Epoch 3/10 2220/2220 [==============================] - 104s 47ms/step - loss: 0.2145 - accuracy: 0.9277 - val_loss: 0.3322 - val_accuracy: 0.8988 Epoch 00003: val_accuracy improved from 0.89409 to 0.89876, saving model to Best_points.h5 Epoch 4/10 2220/2220 [==============================] - 107s 48ms/step - loss: 0.1805 - accuracy: 0.9395 - val_loss: 0.3638 - val_accuracy: 0.8962 Epoch 00004: val_accuracy did not improve from 0.89876 Epoch 5/10 2220/2220 [==============================] - 105s 47ms/step - loss: 0.1672 - accuracy: 0.9432 - val_loss: 0.3687 - val_accuracy: 0.8984 Epoch 00005: val_accuracy did not improve from 0.89876 Epoch 6/10 2220/2220 [==============================] - 106s 48ms/step - loss: 0.1581 - accuracy: 0.9466 - val_loss: 0.6642 - val_accuracy: 0.8886 Epoch 00006: val_accuracy did not improve from 0.89876
import seaborn as sns
q = len(history.history['accuracy'])
plt.figsize=(10,10)
sns.lineplot(x = range(1,1+q),y = history.history['accuracy'], label='Accuracy')
sns.lineplot(x = range(1,1+q),y = history.history['val_accuracy'], label='Val_Accuracy')
plt.xlabel('epochs')
plt.ylabel('Accuray')
Text(0, 0.5, 'Accuray')
https://www.tensorflow.org/api_docs/python/tf/keras/activations
Changed the middle activation functions from relu to tanh Changed the final activation function from softmax to sigmoid.
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32,3,input_shape=(28,28,1)),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Flatten(input_shape=(28,28,1)),
tf.keras.layers.Dense(512,activation='tanh'),
tf.keras.layers.Dense(128,activation='tanh'),
tf.keras.layers.Dense(number_of_classes,activation='sigmoid')
])
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])
MCP = ModelCheckpoint('Best_points.h5',verbose=1,save_best_only=True,monitor='val_accuracy',mode='max')
ES = EarlyStopping(monitor='val_accuracy',min_delta=0,verbose=0,restore_best_weights = True,patience=3,mode='max')
RLP = ReduceLROnPlateau(monitor='val_loss',patience=3,factor=0.2,min_lr=0.0001)
history = model.fit(train_x,train_y,epochs=10,validation_data=(test_x,test_y),callbacks=[MCP,ES,RLP])
Epoch 1/10 2220/2220 [==============================] - 103s 46ms/step - loss: 0.8980 - accuracy: 0.7351 - val_loss: 0.3919 - val_accuracy: 0.8739 Epoch 00001: val_accuracy improved from -inf to 0.87387, saving model to Best_points.h5 Epoch 2/10 2220/2220 [==============================] - 103s 46ms/step - loss: 0.3119 - accuracy: 0.8962 - val_loss: 0.3087 - val_accuracy: 0.8992 Epoch 00002: val_accuracy improved from 0.87387 to 0.89916, saving model to Best_points.h5 Epoch 3/10 2220/2220 [==============================] - 103s 46ms/step - loss: 0.2266 - accuracy: 0.9247 - val_loss: 0.2862 - val_accuracy: 0.9088 Epoch 00003: val_accuracy improved from 0.89916 to 0.90878, saving model to Best_points.h5 Epoch 4/10 2220/2220 [==============================] - 103s 47ms/step - loss: 0.1772 - accuracy: 0.9380 - val_loss: 0.3258 - val_accuracy: 0.8936 Epoch 00004: val_accuracy did not improve from 0.90878 Epoch 5/10 2220/2220 [==============================] - 103s 47ms/step - loss: 0.1430 - accuracy: 0.9503 - val_loss: 0.3208 - val_accuracy: 0.8991 Epoch 00005: val_accuracy did not improve from 0.90878 Epoch 6/10 2220/2220 [==============================] - 103s 47ms/step - loss: 0.1156 - accuracy: 0.9587 - val_loss: 0.3003 - val_accuracy: 0.9082 Epoch 00006: val_accuracy did not improve from 0.90878