diff --git a/Framework/Keras/Keras Assingment/PeddiAshrithKumar_Task1/PeddiAshrithKumar_ModelWithLogs.ipynb b/Framework/Keras/Keras Assingment/PeddiAshrithKumar_Task1/PeddiAshrithKumar_ModelWithLogs.ipynb new file mode 100644 index 0000000..10187c1 --- /dev/null +++ b/Framework/Keras/Keras Assingment/PeddiAshrithKumar_Task1/PeddiAshrithKumar_ModelWithLogs.ipynb @@ -0,0 +1,339 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 172, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from keras.models import Sequential\n", + "from keras.layers import Dense\n", + "from keras.datasets import mnist\n", + "from keras.utils import to_categorical\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": {}, + "outputs": [], + "source": [ + "#loading the data\n", + "(x_train, y_train), (x_test, y_test) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 174, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(60000, 28, 28)" + ] + }, + "execution_count": 174, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#checking the shape of data\n", + "x_train.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling from (0,255) to (0,1)\n", + "x_train = x_train / 255.0\n", + "x_test = x_test / 255.0" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Digit is 5\n" + ] + } + ], + "source": [ + "#sample picture of one digit\n", + "plt.figure(figsize = (5,5))\n", + "plt.imshow(x_train[0])\n", + "plt.colorbar()\n", + "plt.grid(False)\n", + "plt.show()\n", + "print(\"Digit is \",y_train[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#examples of digits\n", + "plt.figure(figsize=(10,10))\n", + "for i in range(25):\n", + " plt.subplot(5,5,i+1)\n", + " plt.xticks([])\n", + " plt.yticks([])\n", + " plt.grid(False)\n", + " plt.imshow(x_train[i])\n", + " plt.xlabel(y_train[i])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": {}, + "outputs": [], + "source": [ + "#initializing the model\n", + "model = Sequential()\n", + "\n", + "#adding the hidden layer\n", + "#using relu as activation function\n", + "model.add(Dense(512, input_dim=784, activation='relu'))\n", + "\n", + "#adding output layer\n", + "model.add(Dense(10, activation='softmax'))" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "dense_15 (Dense) (None, 512) 401920 \n", + "_________________________________________________________________\n", + "dense_16 (Dense) (None, 10) 5130 \n", + "=================================================================\n", + "Total params: 407,050\n", + "Trainable params: 407,050\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": {}, + "outputs": [], + "source": [ + "#Reshaping of data\n", + "x_train = x_train.reshape(x_train.shape[0],784)\n", + "x_test = x_test.reshape(x_test.shape[0], 784)" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(60000, 784)" + ] + }, + "execution_count": 181, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#checking shape after reshaping\n", + "x_train.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 182, + "metadata": {}, + "outputs": [], + "source": [ + "y_train = to_categorical(y_train)\n", + "y_test = to_categorical(y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", + "(10,)\n" + ] + } + ], + "source": [ + "print(y_train[0])\n", + "print(y_train[0].shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "metadata": {}, + "outputs": [], + "source": [ + "#compiling the model\n", + "model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/10\n", + "60000/60000 [==============================] - 15s 252us/step - loss: 0.1997 - acc: 0.9412\n", + "Epoch 2/10\n", + "60000/60000 [==============================] - 15s 243us/step - loss: 0.0797 - acc: 0.9756\n", + "Epoch 3/10\n", + "60000/60000 [==============================] - 12s 200us/step - loss: 0.0531 - acc: 0.9834\n", + "Epoch 4/10\n", + "60000/60000 [==============================] - 11s 189us/step - loss: 0.0368 - acc: 0.9877\n", + "Epoch 5/10\n", + "60000/60000 [==============================] - 11s 185us/step - loss: 0.0265 - acc: 0.9913\n", + "Epoch 6/10\n", + "60000/60000 [==============================] - 13s 221us/step - loss: 0.0209 - acc: 0.9935\n", + "Epoch 7/10\n", + "60000/60000 [==============================] - 12s 204us/step - loss: 0.0184 - acc: 0.9938\n", + "Epoch 8/10\n", + "60000/60000 [==============================] - 12s 206us/step - loss: 0.0141 - acc: 0.9952\n", + "Epoch 9/10\n", + "60000/60000 [==============================] - 12s 201us/step - loss: 0.0117 - acc: 0.9962\n", + "Epoch 10/10\n", + "60000/60000 [==============================] - 13s 215us/step - loss: 0.0119 - acc: 0.9961\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 185, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#fitting the model \n", + "model.fit(x_train, y_train, epochs=10, batch_size=32)" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 28us/step\n", + "Loss is = 0.09107388561827574\n", + "Test accuracy is = 0.98\n" + ] + } + ], + "source": [ + "#Evaluating the model\n", + "loss, accuracy = model.evaluate(x_test, y_test)\n", + "print(\"Loss is = \", loss)\n", + "print('Test accuracy is = %0.2f' % accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}