mirror of
https://github.com/Priyatham-sai-chand/canvas-recognition.git
synced 2026-10-05 08:11:33 -07:00
682 lines
79 KiB
Text
682 lines
79 KiB
Text
|
|
{
|
||
|
|
"cells": [
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"import tensorflow as tf\r\n",
|
||
|
|
"from scipy.io import loadmat\r\n",
|
||
|
|
"import numpy as np\r\n",
|
||
|
|
"import pandas as pd\r\n",
|
||
|
|
"import matplotlib.pyplot as plt\r\n",
|
||
|
|
"%matplotlib inline\r\n",
|
||
|
|
"from tensorflow.keras.layers import Dense,Flatten,Conv2D,MaxPooling2D,BatchNormalization,Dropout\r\n",
|
||
|
|
"from tensorflow.keras.models import Sequential\r\n",
|
||
|
|
"from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint,ReduceLROnPlateau\r\n",
|
||
|
|
"import pandas as pd\r\n",
|
||
|
|
"import cv2\r\n",
|
||
|
|
"import PIL\r\n",
|
||
|
|
"from PIL import Image, ImageEnhance, ImageDraw, ImageFont\r\n",
|
||
|
|
"from IPython.display import display\r\n",
|
||
|
|
"from sklearn.model_selection import train_test_split"
|
||
|
|
],
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": 3,
|
||
|
|
"metadata": {
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617550068009
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"# Load the data\r\n",
|
||
|
|
"train_data = pd.read_csv(\"emnist-balanced-train.csv\")\r\n",
|
||
|
|
"test_data = pd.read_csv(\"emnist-balanced-test.csv\")"
|
||
|
|
],
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": 4,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"outputs_hidden": false,
|
||
|
|
"source_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617550077895
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"print(train_data.shape)\r\n",
|
||
|
|
"print(test_data.shape)"
|
||
|
|
],
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"output_type": "stream",
|
||
|
|
"name": "stdout",
|
||
|
|
"text": [
|
||
|
|
"(112799, 785)\n",
|
||
|
|
"(18799, 785)\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"execution_count": 5,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617550078100
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"#training_letters\r\n",
|
||
|
|
"y1 = np.array(train_data.iloc[:,0].values)\r\n",
|
||
|
|
"x1 = np.array(train_data.iloc[:,1:].values)\r\n",
|
||
|
|
"#testing_labels\r\n",
|
||
|
|
"y2 = np.array(test_data.iloc[:,0].values)\r\n",
|
||
|
|
"x2 = np.array(test_data.iloc[:,1:].values)\r\n",
|
||
|
|
"print(y1.shape)\r\n",
|
||
|
|
"print(x1.shape)\r\n"
|
||
|
|
],
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"output_type": "stream",
|
||
|
|
"name": "stdout",
|
||
|
|
"text": [
|
||
|
|
"(112799,)\n",
|
||
|
|
"(112799, 784)\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"execution_count": 6,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617550078387
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"fig,axes = plt.subplots(3,5,figsize=(10,8))\r\n",
|
||
|
|
"for i,ax in enumerate(axes.flat):\r\n",
|
||
|
|
" ax.imshow(x1[i].reshape([28,28]))"
|
||
|
|
],
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"output_type": "display_data",
|
||
|
|
"data": {
|
||
|
|
"text/plain": "<Figure size 720x576 with 15 Axes>",
|
||
|
|
"image/png": "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
|
||
|
|
},
|
||
|
|
"metadata": {
|
||
|
|
"needs_background": "light"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"execution_count": 7,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617550079861
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"number_of_classes = 47\r\n",
|
||
|
|
"\r\n",
|
||
|
|
"y1 = tf.keras.utils.to_categorical(y1, number_of_classes)\r\n",
|
||
|
|
"y2 = tf.keras.utils.to_categorical(y2, number_of_classes)"
|
||
|
|
],
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": 26,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617550240254
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"# Normalise and reshape data\r\n",
|
||
|
|
"train_images = x1 / 255.0\r\n",
|
||
|
|
"test_images = x2 / 255.0\r\n",
|
||
|
|
"\r\n",
|
||
|
|
"train_images_number = train_images.shape[0]\r\n",
|
||
|
|
"train_images_height = 28\r\n",
|
||
|
|
"train_images_width = 28\r\n",
|
||
|
|
"train_images_size = train_images_height*train_images_width\r\n",
|
||
|
|
"\r\n",
|
||
|
|
"train_images = train_images.reshape(train_images_number, train_images_height, train_images_width, 1)\r\n",
|
||
|
|
"\r\n",
|
||
|
|
"test_images_number = test_images.shape[0]\r\n",
|
||
|
|
"test_images_height = 28\r\n",
|
||
|
|
"test_images_width = 28\r\n",
|
||
|
|
"test_images_size = test_images_height*test_images_width\r\n",
|
||
|
|
"\r\n",
|
||
|
|
"test_images = test_images.reshape(test_images_number, test_images_height, test_images_width, 1)"
|
||
|
|
],
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": 27,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617550242402
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"model = Sequential([\r\n",
|
||
|
|
"Conv2D(32,(5,5), input_shape=(28, 28, 1),activation=\"relu\"), \r\n",
|
||
|
|
"MaxPooling2D(pool_size = (2,2)),\r\n",
|
||
|
|
"Dropout(0.3),\r\n",
|
||
|
|
"Flatten(),\r\n",
|
||
|
|
"Dense(128,activation = \"relu\"),\r\n",
|
||
|
|
"Dense(number_of_classes,activation = \"softmax\")\r\n",
|
||
|
|
"\r\n",
|
||
|
|
"])\r\n",
|
||
|
|
"model.compile(optimizer='adam',\r\n",
|
||
|
|
" loss='categorical_crossentropy',\r\n",
|
||
|
|
" metrics=['accuracy'])\r\n",
|
||
|
|
"\r\n"
|
||
|
|
],
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": 32,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617550749703
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"train_x,test_x,train_y,test_y = train_test_split(train_images,y1,test_size=0.2,random_state = 42)"
|
||
|
|
],
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": 24,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617550230654
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"model.summary()"
|
||
|
|
],
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"output_type": "stream",
|
||
|
|
"name": "stdout",
|
||
|
|
"text": [
|
||
|
|
"Model: \"sequential_9\"\n",
|
||
|
|
"_________________________________________________________________\n",
|
||
|
|
"Layer (type) Output Shape Param # \n",
|
||
|
|
"=================================================================\n",
|
||
|
|
"conv2d_10 (Conv2D) (None, 24, 24, 32) 832 \n",
|
||
|
|
"_________________________________________________________________\n",
|
||
|
|
"max_pooling2d_10 (MaxPooling (None, 12, 12, 32) 0 \n",
|
||
|
|
"_________________________________________________________________\n",
|
||
|
|
"dropout_10 (Dropout) (None, 12, 12, 32) 0 \n",
|
||
|
|
"_________________________________________________________________\n",
|
||
|
|
"flatten_10 (Flatten) (None, 4608) 0 \n",
|
||
|
|
"_________________________________________________________________\n",
|
||
|
|
"dense_21 (Dense) (None, 128) 589952 \n",
|
||
|
|
"_________________________________________________________________\n",
|
||
|
|
"dense_22 (Dense) (None, 47) 6063 \n",
|
||
|
|
"=================================================================\n",
|
||
|
|
"Total params: 596,847\n",
|
||
|
|
"Trainable params: 596,847\n",
|
||
|
|
"Non-trainable params: 0\n",
|
||
|
|
"_________________________________________________________________\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"execution_count": 33,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617550766235
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"MCP = ModelCheckpoint('Best_points_nishanth.h5',verbose=1,save_best_only=True,monitor='val_accuracy',mode='max')\r\n",
|
||
|
|
"ES = EarlyStopping(monitor='val_accuracy',min_delta=0,verbose=0,restore_best_weights = True,patience=3,mode='max')\r\n",
|
||
|
|
"RLP = ReduceLROnPlateau(monitor='val_loss',patience=3,factor=0.2,min_lr=0.0001)\r\n"
|
||
|
|
],
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": 34,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617550779304
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"history = model.fit(train_x,train_y,epochs=10,validation_data=(test_x,test_y),callbacks=[MCP,ES,RLP])"
|
||
|
|
],
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"output_type": "stream",
|
||
|
|
"name": "stdout",
|
||
|
|
"text": [
|
||
|
|
"Train on 90239 samples, validate on 22560 samples\n",
|
||
|
|
"Epoch 1/10\n",
|
||
|
|
"90080/90239 [============================>.] - ETA: 0s - loss: 0.8049 - accuracy: 0.7548\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
|
||
|
|
"Epoch 00001: val_accuracy improved from -inf to 0.83076, saving model to Best_points_nishanth.h5\n",
|
||
|
|
"90239/90239 [==============================] - 30s 329us/sample - loss: 0.8043 - accuracy: 0.7549 - val_loss: 0.5012 - val_accuracy: 0.8308\n",
|
||
|
|
"Epoch 2/10\n",
|
||
|
|
"90208/90239 [============================>.] - ETA: 0s - loss: 0.4813 - accuracy: 0.8359\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
|
||
|
|
"Epoch 00002: val_accuracy improved from 0.83076 to 0.84592, saving model to Best_points_nishanth.h5\n",
|
||
|
|
"90239/90239 [==============================] - 28s 308us/sample - loss: 0.4814 - accuracy: 0.8359 - val_loss: 0.4382 - val_accuracy: 0.8459\n",
|
||
|
|
"Epoch 3/10\n",
|
||
|
|
"90080/90239 [============================>.] - ETA: 0s - loss: 0.4140 - accuracy: 0.8562\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
|
||
|
|
"Epoch 00003: val_accuracy improved from 0.84592 to 0.86002, saving model to Best_points_nishanth.h5\n",
|
||
|
|
"90239/90239 [==============================] - 28s 308us/sample - loss: 0.4140 - accuracy: 0.8561 - val_loss: 0.4062 - val_accuracy: 0.8600\n",
|
||
|
|
"Epoch 4/10\n",
|
||
|
|
"90048/90239 [============================>.] - ETA: 0s - loss: 0.3703 - accuracy: 0.8688\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
|
||
|
|
"Epoch 00004: val_accuracy improved from 0.86002 to 0.86427, saving model to Best_points_nishanth.h5\n",
|
||
|
|
"90239/90239 [==============================] - 27s 303us/sample - loss: 0.3704 - accuracy: 0.8688 - val_loss: 0.3914 - val_accuracy: 0.8643\n",
|
||
|
|
"Epoch 5/10\n",
|
||
|
|
"90144/90239 [============================>.] - ETA: 0s - loss: 0.3406 - accuracy: 0.8760\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
|
||
|
|
"Epoch 00005: val_accuracy did not improve from 0.86427\n",
|
||
|
|
"90239/90239 [==============================] - 27s 294us/sample - loss: 0.3405 - accuracy: 0.8760 - val_loss: 0.4003 - val_accuracy: 0.8617\n",
|
||
|
|
"Epoch 6/10\n",
|
||
|
|
"90048/90239 [============================>.] - ETA: 0s - loss: 0.3130 - accuracy: 0.8848\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
|
||
|
|
"Epoch 00006: val_accuracy improved from 0.86427 to 0.86454, saving model to Best_points_nishanth.h5\n",
|
||
|
|
"90239/90239 [==============================] - 26s 293us/sample - loss: 0.3131 - accuracy: 0.8848 - val_loss: 0.3933 - val_accuracy: 0.8645\n",
|
||
|
|
"Epoch 7/10\n",
|
||
|
|
"90016/90239 [============================>.] - ETA: 0s - loss: 0.2956 - accuracy: 0.8887\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
|
||
|
|
"Epoch 00007: val_accuracy improved from 0.86454 to 0.86817, saving model to Best_points_nishanth.h5\n",
|
||
|
|
"90239/90239 [==============================] - 27s 294us/sample - loss: 0.2956 - accuracy: 0.8887 - val_loss: 0.3872 - val_accuracy: 0.8682\n",
|
||
|
|
"Epoch 8/10\n",
|
||
|
|
"90176/90239 [============================>.] - ETA: 0s - loss: 0.2793 - accuracy: 0.8931\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
|
||
|
|
"Epoch 00008: val_accuracy did not improve from 0.86817\n",
|
||
|
|
"90239/90239 [==============================] - 26s 290us/sample - loss: 0.2793 - accuracy: 0.8931 - val_loss: 0.4142 - val_accuracy: 0.8623\n",
|
||
|
|
"Epoch 9/10\n",
|
||
|
|
"90112/90239 [============================>.] - ETA: 0s - loss: 0.2624 - accuracy: 0.8989\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
|
||
|
|
"Epoch 00009: val_accuracy did not improve from 0.86817\n",
|
||
|
|
"90239/90239 [==============================] - 26s 293us/sample - loss: 0.2626 - accuracy: 0.8989 - val_loss: 0.4085 - val_accuracy: 0.8641\n",
|
||
|
|
"Epoch 10/10\n",
|
||
|
|
"90080/90239 [============================>.] - ETA: 0s - loss: 0.2509 - accuracy: 0.9019\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
|
||
|
|
"Epoch 00010: val_accuracy did not improve from 0.86817\n",
|
||
|
|
"90239/90239 [==============================] - 26s 291us/sample - loss: 0.2509 - accuracy: 0.9020 - val_loss: 0.4091 - val_accuracy: 0.8633\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"execution_count": 35,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617551052423
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"import seaborn as sns\r\n",
|
||
|
|
"q = len(history.history['accuracy'])\r\n",
|
||
|
|
"\r\n",
|
||
|
|
"plt.figsize=(10,10)\r\n",
|
||
|
|
"sns.lineplot(x = range(1,1+q),y = history.history['accuracy'], label='Accuracy')\r\n",
|
||
|
|
"sns.lineplot(x = range(1,1+q),y = history.history['val_accuracy'], label='Val_Accuracy')\r\n",
|
||
|
|
"plt.xlabel('epochs')\r\n",
|
||
|
|
"plt.ylabel('Accuray')"
|
||
|
|
],
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"output_type": "execute_result",
|
||
|
|
"execution_count": 36,
|
||
|
|
"data": {
|
||
|
|
"text/plain": "Text(0, 0.5, 'Accuray')"
|
||
|
|
},
|
||
|
|
"metadata": {}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"output_type": "display_data",
|
||
|
|
"data": {
|
||
|
|
"text/plain": "<Figure size 432x288 with 1 Axes>",
|
||
|
|
"image/png": "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
|
||
|
|
},
|
||
|
|
"metadata": {
|
||
|
|
"needs_background": "light"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"execution_count": 36,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617551066655
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"test_loss, test_accuracy = model.evaluate(test_x,test_y)\r\n",
|
||
|
|
"print(f\"Test loss: {test_loss}\")\r\n",
|
||
|
|
"print(f\"Test accuracy: {test_accuracy}\")"
|
||
|
|
],
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"output_type": "stream",
|
||
|
|
"name": "stdout",
|
||
|
|
"text": [
|
||
|
|
"22560/22560 [==============================] - 2s 88us/sample - loss: 0.3872 - accuracy: 0.8682\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
|
||
|
|
"Test loss: 0.3871571917535988\n",
|
||
|
|
"Test accuracy: 0.8681737780570984\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"execution_count": 38,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617551079827
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"\r\n",
|
||
|
|
"my_lol_img = cv2.imread('A_img.png', cv2.IMREAD_GRAYSCALE)\r\n",
|
||
|
|
"my_lol_img = cv2.resize(my_lol_img, (28, 28))\r\n",
|
||
|
|
"my_img = my_lol_img[np.newaxis,...,np.newaxis]\r\n",
|
||
|
|
"my_img.shape"
|
||
|
|
],
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"output_type": "execute_result",
|
||
|
|
"execution_count": 42,
|
||
|
|
"data": {
|
||
|
|
"text/plain": "(1, 28, 28, 1)"
|
||
|
|
},
|
||
|
|
"metadata": {}
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"execution_count": 42,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617551169579
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"fig, axes = plt.subplots(1, 2,figsize = (4,4))\r\n",
|
||
|
|
"fig.subplots_adjust(hspace=-0.7, wspace= 0.2)\r\n",
|
||
|
|
"for i,ax in enumerate(axes.flat):\r\n",
|
||
|
|
" ax.imshow(np.squeeze(my_img))\r\n",
|
||
|
|
" ax.text(6., -1.0, f'Letter A',fontsize = 20)\r\n",
|
||
|
|
" ax.get_xaxis().set_visible(False)\r\n",
|
||
|
|
" ax.get_yaxis().set_visible(False)\r\n",
|
||
|
|
" \r\n",
|
||
|
|
" \r\n",
|
||
|
|
"plt.show()"
|
||
|
|
],
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"output_type": "display_data",
|
||
|
|
"data": {
|
||
|
|
"text/plain": "<Figure size 288x288 with 2 Axes>",
|
||
|
|
"image/png": "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\n"
|
||
|
|
},
|
||
|
|
"metadata": {
|
||
|
|
"needs_background": "light"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"execution_count": 43,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617551176446
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"predict = model.predict(my_img)\r\n",
|
||
|
|
"answer = np.argmax(predict)\r\n",
|
||
|
|
"class_mapping = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabdefghnqrt'\r\n",
|
||
|
|
"print(class_mapping[answer+1])\r\n"
|
||
|
|
],
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"output_type": "stream",
|
||
|
|
"name": "stdout",
|
||
|
|
"text": [
|
||
|
|
"R\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"execution_count": 44,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"gather": {
|
||
|
|
"logged": 1617551178605
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [],
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true,
|
||
|
|
"jupyter": {
|
||
|
|
"source_hidden": false,
|
||
|
|
"outputs_hidden": false
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"transient": {
|
||
|
|
"deleting": false
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"metadata": {
|
||
|
|
"kernel_info": {
|
||
|
|
"name": "python3"
|
||
|
|
},
|
||
|
|
"kernelspec": {
|
||
|
|
"name": "python3",
|
||
|
|
"language": "python",
|
||
|
|
"display_name": "Python 3"
|
||
|
|
},
|
||
|
|
"language_info": {
|
||
|
|
"name": "python",
|
||
|
|
"version": "3.6.9",
|
||
|
|
"mimetype": "text/x-python",
|
||
|
|
"codemirror_mode": {
|
||
|
|
"name": "ipython",
|
||
|
|
"version": 3
|
||
|
|
},
|
||
|
|
"pygments_lexer": "ipython3",
|
||
|
|
"nbconvert_exporter": "python",
|
||
|
|
"file_extension": ".py"
|
||
|
|
},
|
||
|
|
"microsoft": {
|
||
|
|
"host": {
|
||
|
|
"AzureML": {
|
||
|
|
"notebookHasBeenCompleted": true
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"nteract": {
|
||
|
|
"version": "nteract-front-end@1.0.0"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"nbformat": 4,
|
||
|
|
"nbformat_minor": 4
|
||
|
|
}
|