diff --git a/shashiraj0308@gmail.com/Hand-Written-digit-keras (Paper).pdf b/shashiraj0308@gmail.com/Hand-Written-digit-keras (Paper).pdf new file mode 100644 index 000000000..1b2f4df4e Binary files /dev/null and b/shashiraj0308@gmail.com/Hand-Written-digit-keras (Paper).pdf differ diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.gitattributes b/shashiraj0308@gmail.com/Project-Code/Code/.gitattributes new file mode 100644 index 000000000..dfe077042 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adadelta and categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adadelta and categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..be1eab73b --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adadelta and categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:36:05.063632 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:36:06.329416 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adadelta',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:36:08.024629 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:36:08.079515 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:36:08.141324 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:36:08.598738 16696 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:36:08.733417 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 7s 122us/step - loss: 0.3209 - acc: 0.9105\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 81us/step - loss: 0.1700 - acc: 0.9506\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 80us/step - loss: 0.1272 - acc: 0.9628\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 32us/step\n", + "Loss : 0.12973509001508354\n", + "Accuracy : 0.9627\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adadelta and kullback-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adadelta and kullback-checkpoint.ipynb new file mode 100644 index 000000000..87ee8fd1b --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adadelta and kullback-checkpoint.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:39:54.376752 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:39:54.411724 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adadelta',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:39:56.796614 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:39:56.816612 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:39:56.861471 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:39:56.964164 2396 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:39:57.036011 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 87us/step - loss: 0.3221 - acc: 0.9095\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 80us/step - loss: 0.1664 - acc: 0.9510\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 72us/step - loss: 0.1239 - acc: 0.9645\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 28us/step\n", + "Loss : 0.12528126298710704\n", + "Accuracy : 0.9626\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD4CAYAAAAq5pAIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAMcElEQVR4nO3dX4xcZR3G8edpu7SwoFJqobYVECFKjFazFBOMAYmI3BQuVJpIakIsiZBIwoUEE+WSGAG5MJhFGqtRCAkQGtMotSEiicEupLbFogVSYOmm5U+EgrTdbX9e7MGs7c6Z7Zwzc6b7+36Szcycd845v5zdZ9+Zec+c1xEhALPfnKYLANAbhB1IgrADSRB2IAnCDiQxr5c7O8nzY4EGe7lLIJUDek+H4qCna6sUdttXSrpH0lxJv4yIO8qev0CDutiXV9klgBJPx+aWbR2/jLc9V9LPJX1d0oWSVtu+sNPtAeiuKu/ZV0p6ISJeiohDkh6UtKqesgDUrUrYl0p6dcrj0WLZ/7G91vaI7ZFxHaywOwBVVAn7dB8CHHPubUQMR8RQRAwNaH6F3QGookrYRyUtn/J4maQ91coB0C1Vwr5F0vm2z7V9kqRrJW2opywAdet46C0iJmzfJOmPmhx6WxcRz9VWGYBaVRpnj4iNkjbWVAuALuJ0WSAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5KoNIsr0M7cCy9o2fbi6jNK1x3cU75tHy5vXzT81/InJFMp7LZ3S9ov6bCkiYgYqqMoAPWro2e/LCLeqGE7ALqI9+xAElXDHpIet/2M7bXTPcH2WtsjtkfGdbDi7gB0qurL+EsiYo/txZI22X4+Ip6c+oSIGJY0LEkf8sKouD8AHarUs0fEnuJ2n6RHJa2soygA9es47LYHbZ/2wX1JV0jaUVdhAOpV5WX8mZIetf3Bdn4XEX+opSqcMOacckpp+9hXFpW0lr+r+9b3/lTa/oMzdpW2f214RWl7Nh2HPSJekvS5GmsB0EUMvQFJEHYgCcIOJEHYgSQIO5AEX3FFJT57aWn7+GDn2/7FXy4rbf/zzz7bZgsvdr7zWYieHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSYJwd5ebMLW1+86Kyr7BW8/GN5e2H/8U4+vGgZweSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJBhnR6l5HzurtP39Re542z5Svu6C3/+t423jWPTsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AE4+wodeCC8nH2Kk57uXzKZtSrbc9ue53tfbZ3TFm20PYm27uK29O7WyaAqmbyMv5Xkq48atmtkjZHxPmSNhePAfSxtmGPiCclvXXU4lWS1hf310u6uua6ANSs0w/ozoyIMUkqbhe3eqLttbZHbI+M62CHuwNQVdc/jY+I4YgYioihAc3v9u4AtNBp2PfaXiJJxe2++koC0A2dhn2DpDXF/TWSHqunHADd0nac3fYDki6VtMj2qKQfS7pD0kO2r5f0iqRvdLNINOe9jw1UWt9HWrct3vRq6boTlfaMo7UNe0SsbtF0ec21AOgiTpcFkiDsQBKEHUiCsANJEHYgCb7imty85ctK2/+zuFp/MGe8ddvEq6OVto3jQ88OJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kwzp7cxJLuXhj4jB1ciqxf0LMDSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKMsyd3YPHJldafe6i8fcHICy3bDlfaM44XPTuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJME4+yw379yzS9vf/kS1P4E5h6K0/fC/3660fdSnbc9ue53tfbZ3TFl2u+3XbG8tfq7qbpkAqprJy/hfSbpymuV3R8SK4mdjvWUBqFvbsEfEk5Le6kEtALqoygd0N9neVrzMb3khM9trbY/YHhkX1yMDmtJp2O+VdJ6kFZLGJN3Z6okRMRwRQxExNKD5He4OQFUdhT0i9kbE4Yg4Iuk+SSvrLQtA3ToKu+0lUx5eI2lHq+cC6A9tB1ltPyDpUkmLbI9K+rGkS22vkBSSdku6oYs1ooI4ZUF5u6tt/7TRiWobQM+0DXtErJ5m8f1dqAVAF3G6LJAEYQeSIOxAEoQdSIKwA0nwFddZ7p1PfaTS+u0uFT24bU9pOwNz/YOeHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSYJx9Fpi3fFnLtn9/cm7punMPtNn2e+WXip4Yfa18A+gb9OxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kATj7LPA2xcvbd1Y8VLRH97NlF2zBT07kARhB5Ig7EAShB1IgrADSRB2IAnCDiTBOPsscODDnf/Pnneg/PvqA08/X9p+pOM9o9fa/pXYXm77Cds7bT9n+/vF8oW2N9neVdye3v1yAXRqJl3ChKRbIuLTkr4o6UbbF0q6VdLmiDhf0ubiMYA+1TbsETEWEc8W9/dL2ilpqaRVktYXT1sv6epuFQmguuN6s2f7HEmfl/S0pDMjYkya/IcgaXGLddbaHrE9Mi7OswaaMuOw2z5V0sOSbo6Id2a6XkQMR8RQRAwNaH4nNQKowYzCbntAk0H/bUQ8Uizea3tJ0b5E0r7ulAigDm2H3mxb0v2SdkbEXVOaNkhaI+mO4vaxrlSItt686HDLtsHd5b/igTaXij7y/vsd1YT+M5Nx9kskXSdpu+2txbLbNBnyh2xfL+kVSd/oTokA6tA27BHxlFpfAuHyessB0C2cLgskQdiBJAg7kARhB5Ig7EASfMX1BPCjl54tbb9p+6dato3vXli6rlsP0U+K8nF4nDjo2YEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcbZTwDf3nRDafu8t1v/GttdG2j+O+0G2jFb0LMDSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKMs58ALrhhS2n7vGVLW7btH2rdJkkL9pZfF55vs88e9OxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kMRM5mdfLunXks6SdETScETcY/t2Sd+V9Hrx1NsiYmO3CkVrE6OvtWw7uaRNYhw9k5mcVDMh6ZaIeNb2aZKesb2paLs7In7avfIA1GUm87OPSRor7u+3vVNS+WlZAPrOcb1nt32OpM9LerpYdJPtbbbX2T69xTprbY/YHhnXwUrFAujcjMNu+1RJD0u6OSLekXSvpPMkrdBkz3/ndOtFxHBEDEXE0EDbK6IB6JYZhd32gCaD/tuIeESSImJvRByOiCOS7pO0sntlAqiqbdhtW9L9knZGxF1Tli+Z8rRrJO2ovzwAdZnJp/GXSLpO0nbbW4tlt0labXuFJkdvdksqv94xgEbN5NP4pyR5mibG1IETCGfQAUkQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHknBE7y4mbPt1SS9PWbRI0hs9K+D49Gtt/VqXRG2dqrO2syPio9M19DTsx+zcHomIocYKKNGvtfVrXRK1dapXtfEyHkiCsANJNB324Yb3X6Zfa+vXuiRq61RPamv0PTuA3mm6ZwfQI4QdSKKRsNu+0vY/bb9g+9YmamjF9m7b221vtT3ScC3rbO+zvWPKsoW2N9neVdxOO8deQ7Xdbvu14thttX1VQ7Utt/2E7Z22n7P9/WJ5o8eupK6eHLeev2e3PVfSvyR9VdKopC2SVkfEP3paSAu2d0saiojGT8Cw/WVJ70r6dUR8plj2E0lvRcQdxT/K0yPiB31S2+2S3m16Gu9itqIlU6cZl3S1pO+owWNXUtc31YPj1kTPvlLSCxHxUkQckvSgpFUN1NH3IuJJSW8dtXiVpPXF/fWa/GPpuRa19YWIGIuIZ4v7+yV9MM14o8eupK6eaCLsSyW9OuXxqPprvveQ9LjtZ2yvbbqYaZwZEWPS5B+PpMUN13O0ttN499JR04z3zbHrZPrzqpoI+3RTSfXT+N8lEfEFSV+XdGPxchUzM6NpvHtlmmnG+0Kn059X1UTYRyUtn/J4maQ9DdQxrYjYU9zuk/So+m8q6r0fzKBb3O5ruJ7/6adpvKebZlx9cOyanP68ibBvkXS+7XNtnyTpWkkbGqjjGLYHiw9OZHtQ0hXqv6moN0haU9xfI+mxBmv5P/0yjXeracbV8LFrfPrziOj5j6SrNPmJ/IuSfthEDS3q+oSkvxc/zzVdm6QHNPmyblyTr4iul3SGpM2SdhW3C/uott9I2i5pmyaDtaSh2r6kybeG2yRtLX6uavrYldTVk+PG6bJAEpxBByRB2IEkCDuQBGEHkiDsQBKEHUiCsANJ/BcWmK9wr/GvwQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adadelta and sparse_categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adadelta and sparse_categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..2e1b76944 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adadelta and sparse_categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:41:34.981910 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:41:35.007836 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adadelta',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:41:37.319833 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:41:37.336752 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:41:37.373651 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:41:37.532268 20376 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:41:37.589115 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 78us/step - loss: 0.3151 - acc: 0.9110\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 75us/step - loss: 0.1607 - acc: 0.9534\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 77us/step - loss: 0.1204 - acc: 0.9650\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 31us/step\n", + "Loss : 0.11560967290923\n", + "Accuracy : 0.9651\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adagrad and categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adagrad and categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..7c8c5be55 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adagrad and categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:27:51.593372 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:27:52.009342 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adagrad',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:27:52.819982 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:27:53.105577 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:27:53.344715 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:27:53.559557 20612 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:27:53.650754 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 79us/step - loss: 0.2997 - acc: 0.9148\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 68us/step - loss: 0.2018 - acc: 0.9432\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 68us/step - loss: 0.1742 - acc: 0.9508\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 30us/step\n", + "Loss : 0.1719752870887518\n", + "Accuracy : 0.9518\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adagrad and kullback-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adagrad and kullback-checkpoint.ipynb new file mode 100644 index 000000000..56db4b38e --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adagrad and kullback-checkpoint.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:30:21.684118 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:30:21.923519 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adagrad',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:30:23.951068 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:30:24.420133 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:30:24.474022 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:30:24.907800 27556 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:30:24.957668 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 82us/step - loss: 0.3142 - acc: 0.9116\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 67us/step - loss: 0.2159 - acc: 0.9390\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 66us/step - loss: 0.1866 - acc: 0.9469\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 29us/step\n", + "Loss : 0.18269367492198943\n", + "Accuracy : 0.9475\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adagrad and sparse_categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adagrad and sparse_categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..10ce81bc7 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adagrad and sparse_categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:32:23.368407 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:32:23.402316 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adagrad',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:32:24.909364 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:32:24.926835 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:32:24.965763 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:32:25.090432 22704 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:32:25.151057 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 4s 75us/step - loss: 0.3131 - acc: 0.9119\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 69us/step - loss: 0.2115 - acc: 0.9405\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 71us/step - loss: 0.1806 - acc: 0.9492\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 23us/step\n", + "Loss : 0.17886015945374967\n", + "Accuracy : 0.9491\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adamax and categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adamax and categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..9d47b6956 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adamax and categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:46:47.304043 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:46:47.333965 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adamax',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:46:48.648477 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:46:48.666429 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:46:48.707359 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:46:48.873913 17864 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:46:48.927188 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 4s 74us/step - loss: 0.3617 - acc: 0.9028\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 69us/step - loss: 0.2003 - acc: 0.9432\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 70us/step - loss: 0.1526 - acc: 0.9564\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 29us/step\n", + "Loss : 0.14775633548945188\n", + "Accuracy : 0.9555\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adamax and kullback-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adamax and kullback-checkpoint.ipynb new file mode 100644 index 000000000..423b4f212 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adamax and kullback-checkpoint.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:48:34.347083 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:48:34.377002 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adamax',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:48:37.327433 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:48:37.345421 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:48:37.389267 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:48:37.557904 13144 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:48:37.584832 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 4s 71us/step - loss: 0.3637 - acc: 0.9008\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 69us/step - loss: 0.1971 - acc: 0.9440\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 69us/step - loss: 0.1484 - acc: 0.9576\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 28us/step\n", + "Loss : 0.1410951664865017\n", + "Accuracy : 0.9577\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adamax and sparse_categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adamax and sparse_categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..b63e7b54e --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Adamax and sparse_categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:49:47.554641 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:49:47.581595 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adamax',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:49:49.649076 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:49:49.667022 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:49:49.707882 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:49:49.860472 16504 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:49:49.889393 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 4s 71us/step - loss: 0.3572 - acc: 0.9031\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 68us/step - loss: 0.1942 - acc: 0.9447\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 68us/step - loss: 0.1488 - acc: 0.9575\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 32us/step\n", + "Loss : 0.14077735255807639\n", + "Accuracy : 0.9586\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Nadam and categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Nadam and categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..dee97611a --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Nadam and categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:53:23.915151 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:53:23.941080 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Nadam',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:53:25.387317 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:53:25.404221 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:53:25.443164 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:53:25.606253 408 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:53:25.659651 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 82us/step - loss: 0.2551 - acc: 0.9273\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 78us/step - loss: 0.1081 - acc: 0.9672\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 81us/step - loss: 0.0747 - acc: 0.9770\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 27us/step\n", + "Loss : 0.08645319114979357\n", + "Accuracy : 0.9754\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Nadam and kullback-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Nadam and kullback-checkpoint.ipynb new file mode 100644 index 000000000..109aa6697 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Nadam and kullback-checkpoint.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:54:35.934505 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:54:35.962432 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Nadam',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:54:37.481840 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:54:37.498795 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:54:37.546668 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:54:37.703247 22088 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:54:37.726186 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 7s 112us/step - loss: 0.2486 - acc: 0.9292\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 77us/step - loss: 0.1055 - acc: 0.9676\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - ETA: 0s - loss: 0.0719 - acc: 0.977 - 5s 79us/step - loss: 0.0719 - acc: 0.9779\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 30us/step\n", + "Loss : 0.10322229944784195\n", + "Accuracy : 0.9679\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Nadam and sparse_categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Nadam and sparse_categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..3d0b21c9d --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/Nadam and sparse_categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:56:01.888793 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:56:01.993737 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Nadam',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:56:08.710401 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:56:08.727388 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:56:08.773231 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:56:08.975076 21164 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:56:09.004544 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 6s 96us/step - loss: 0.2518 - acc: 0.9279\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 78us/step - loss: 0.1059 - acc: 0.9677\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 80us/step - loss: 0.0705 - acc: 0.9781\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 32us/step\n", + "Loss : 0.0884659024335444\n", + "Accuracy : 0.9736\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/RMSprop and categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/RMSprop and categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..b684d93f5 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/RMSprop and categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:20:53.481513 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:20:53.506445 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='RMSprop',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:20:55.066884 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:20:55.083831 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:20:55.193535 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:20:55.289287 6052 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:20:55.349130 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 90us/step - loss: 0.3077 - acc: 0.9144\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 69us/step - loss: 0.1504 - acc: 0.9562\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 71us/step - loss: 0.1109 - acc: 0.9672\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 30us/step\n", + "Loss : 0.11531054184697569\n", + "Accuracy : 0.9667\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/RMSprop and kullback-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/RMSprop and kullback-checkpoint.ipynb new file mode 100644 index 000000000..b30ca7a7d --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/RMSprop and kullback-checkpoint.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:23:38.176280 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:23:38.195192 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='RMSprop',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:23:39.359616 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:23:39.370584 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:23:39.413471 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:23:39.594984 23156 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:23:39.641858 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 76us/step - loss: 0.3136 - acc: 0.9135\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 75us/step - loss: 0.1553 - acc: 0.9545\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 77us/step - loss: 0.1128 - acc: 0.9672\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 39us/step\n", + "Loss : 0.11629472138825804\n", + "Accuracy : 0.9665\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/RMSprop and sparse_categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/RMSprop and sparse_categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..ca94fc2ca --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/RMSprop and sparse_categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0809 10:16:56.500693 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0809 10:16:56.527974 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='sgd',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0809 10:17:08.739080 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0809 10:17:08.752942 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0809 10:17:08.795526 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0809 10:17:09.030250 22136 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0809 10:17:09.071861 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 6s 94us/step - loss: 1.1481 - acc: 0.7507\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 84us/step - loss: 0.4869 - acc: 0.8738\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 84us/step - loss: 0.3943 - acc: 0.8912\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 41us/step\n", + "Loss : 0.3552831846117973\n", + "Accuracy : 0.9038\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/adam and categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/adam and categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..0e645e55d --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/adam and categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,261 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### optimizer 'adam' and loss function 'categorical_crossentropy'" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0809 09:28:27.482859 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0809 09:28:27.504352 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='adam',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0809 09:28:29.782780 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0809 09:28:29.798922 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0809 09:28:29.978999 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0809 09:28:30.143224 26680 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0809 09:28:30.219883 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 7s 115us/step - loss: 0.3116 - acc: 0.9139\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 7s 109us/step - loss: 0.1400 - acc: 0.9584\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 7s 110us/step - loss: 0.0961 - acc: 0.9714\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 40us/step\n", + "Loss : 0.09852424093633891\n", + "Accuracy : 0.969\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/adam and kullback_leibler_divergence-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/adam and kullback_leibler_divergence-checkpoint.ipynb new file mode 100644 index 000000000..7363a6648 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/adam and kullback_leibler_divergence-checkpoint.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0809 09:52:09.003685 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0809 09:52:09.025937 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='adam',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0809 09:52:23.724141 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0809 09:52:23.737282 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0809 09:52:23.781199 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0809 09:52:24.017474 18084 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0809 09:52:24.083696 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 9s 149us/step - loss: 0.3121 - acc: 0.9129\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 7s 109us/step - loss: 0.1387 - acc: 0.9588\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 6s 105us/step - loss: 0.0953 - acc: 0.9723\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 41us/step\n", + "Loss : 0.10315677959099412\n", + "Accuracy : 0.969\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/hand digit recognition in keras-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/hand digit recognition in keras-checkpoint.ipynb new file mode 100644 index 000000000..606b08bfc --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/hand digit recognition in keras-checkpoint.ipynb @@ -0,0 +1,258 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Implement hand digit recognition in Keras with dataset at https://keras.io/examples/mnist_dataset_api/ with a simple 3-layer FFNN with fully connected layers (no convolution or other operations)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "import tensorflow as tf\n", + "from tensorflow.nn import relu,softmax" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0730 12:34:40.611266 18928 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0730 12:34:40.635203 18928 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='adam',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0730 12:34:40.713134 18928 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0730 12:34:40.723106 18928 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0730 12:34:40.764033 18928 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0730 12:34:40.850765 18928 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0730 12:34:40.877728 18928 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 89us/step - loss: 0.3119 - acc: 0.9132\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 6s 105us/step - loss: 0.1420 - acc: 0.9582\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 6s 105us/step - loss: 0.0977 - acc: 0.9708\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# training the model\n", + "model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "flatten_1 (Flatten) (None, 784) 0 \n", + "_________________________________________________________________\n", + "dense_1 (Dense) (None, 128) 100480 \n", + "_________________________________________________________________\n", + "dense_2 (Dense) (None, 10) 1290 \n", + "=================================================================\n", + "Total params: 101,770\n", + "Trainable params: 101,770\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "#trained model summary\n", + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 28us/step\n", + "Loss : 0.106505593823269\n", + "Accuracy : 0.9693\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + } + ], + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/sgd and categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/sgd and categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..2fd64429b --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/sgd and categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/sgd and kullback-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/sgd and kullback-checkpoint.ipynb new file mode 100644 index 000000000..2fd64429b --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/sgd and kullback-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/sgd and sparse_categorical_crossentropy-checkpoint.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/sgd and sparse_categorical_crossentropy-checkpoint.ipynb new file mode 100644 index 000000000..ca94fc2ca --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/.ipynb_checkpoints/sgd and sparse_categorical_crossentropy-checkpoint.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0809 10:16:56.500693 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0809 10:16:56.527974 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='sgd',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0809 10:17:08.739080 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0809 10:17:08.752942 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0809 10:17:08.795526 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0809 10:17:09.030250 22136 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0809 10:17:09.071861 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 6s 94us/step - loss: 1.1481 - acc: 0.7507\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 84us/step - loss: 0.4869 - acc: 0.8738\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 84us/step - loss: 0.3943 - acc: 0.8912\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 41us/step\n", + "Loss : 0.3552831846117973\n", + "Accuracy : 0.9038\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Adadelta and categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Adadelta and categorical_crossentropy.ipynb new file mode 100644 index 000000000..be1eab73b --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Adadelta and categorical_crossentropy.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:36:05.063632 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:36:06.329416 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adadelta',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:36:08.024629 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:36:08.079515 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:36:08.141324 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:36:08.598738 16696 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:36:08.733417 16696 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 7s 122us/step - loss: 0.3209 - acc: 0.9105\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 81us/step - loss: 0.1700 - acc: 0.9506\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 80us/step - loss: 0.1272 - acc: 0.9628\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 32us/step\n", + "Loss : 0.12973509001508354\n", + "Accuracy : 0.9627\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Adadelta and kullback.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Adadelta and kullback.ipynb new file mode 100644 index 000000000..87ee8fd1b --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Adadelta and kullback.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:39:54.376752 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:39:54.411724 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adadelta',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:39:56.796614 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:39:56.816612 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:39:56.861471 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:39:56.964164 2396 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:39:57.036011 2396 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 87us/step - loss: 0.3221 - acc: 0.9095\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 80us/step - loss: 0.1664 - acc: 0.9510\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 72us/step - loss: 0.1239 - acc: 0.9645\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 28us/step\n", + "Loss : 0.12528126298710704\n", + "Accuracy : 0.9626\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Adadelta and sparse_categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Adadelta and sparse_categorical_crossentropy.ipynb new file mode 100644 index 000000000..2e1b76944 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Adadelta and sparse_categorical_crossentropy.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:41:34.981910 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:41:35.007836 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adadelta',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:41:37.319833 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:41:37.336752 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:41:37.373651 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:41:37.532268 20376 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:41:37.589115 20376 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 78us/step - loss: 0.3151 - acc: 0.9110\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 75us/step - loss: 0.1607 - acc: 0.9534\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 77us/step - loss: 0.1204 - acc: 0.9650\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 31us/step\n", + "Loss : 0.11560967290923\n", + "Accuracy : 0.9651\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Adagrad and categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Adagrad and categorical_crossentropy.ipynb new file mode 100644 index 000000000..7c8c5be55 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Adagrad and categorical_crossentropy.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:27:51.593372 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:27:52.009342 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adagrad',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:27:52.819982 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:27:53.105577 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:27:53.344715 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:27:53.559557 20612 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:27:53.650754 20612 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 79us/step - loss: 0.2997 - acc: 0.9148\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 68us/step - loss: 0.2018 - acc: 0.9432\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 68us/step - loss: 0.1742 - acc: 0.9508\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 30us/step\n", + "Loss : 0.1719752870887518\n", + "Accuracy : 0.9518\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Adagrad and kullback.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Adagrad and kullback.ipynb new file mode 100644 index 000000000..56db4b38e --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Adagrad and kullback.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:30:21.684118 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:30:21.923519 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adagrad',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:30:23.951068 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:30:24.420133 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:30:24.474022 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:30:24.907800 27556 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:30:24.957668 27556 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 82us/step - loss: 0.3142 - acc: 0.9116\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 67us/step - loss: 0.2159 - acc: 0.9390\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 66us/step - loss: 0.1866 - acc: 0.9469\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 29us/step\n", + "Loss : 0.18269367492198943\n", + "Accuracy : 0.9475\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Adagrad and sparse_categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Adagrad and sparse_categorical_crossentropy.ipynb new file mode 100644 index 000000000..10ce81bc7 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Adagrad and sparse_categorical_crossentropy.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:32:23.368407 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:32:23.402316 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adagrad',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:32:24.909364 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:32:24.926835 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:32:24.965763 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:32:25.090432 22704 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:32:25.151057 22704 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 4s 75us/step - loss: 0.3131 - acc: 0.9119\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 69us/step - loss: 0.2115 - acc: 0.9405\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 71us/step - loss: 0.1806 - acc: 0.9492\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 23us/step\n", + "Loss : 0.17886015945374967\n", + "Accuracy : 0.9491\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Adamax and categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Adamax and categorical_crossentropy.ipynb new file mode 100644 index 000000000..9d47b6956 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Adamax and categorical_crossentropy.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:46:47.304043 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:46:47.333965 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adamax',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:46:48.648477 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:46:48.666429 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:46:48.707359 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:46:48.873913 17864 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:46:48.927188 17864 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 4s 74us/step - loss: 0.3617 - acc: 0.9028\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 69us/step - loss: 0.2003 - acc: 0.9432\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 70us/step - loss: 0.1526 - acc: 0.9564\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 29us/step\n", + "Loss : 0.14775633548945188\n", + "Accuracy : 0.9555\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Adamax and kullback.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Adamax and kullback.ipynb new file mode 100644 index 000000000..423b4f212 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Adamax and kullback.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:48:34.347083 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:48:34.377002 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adamax',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:48:37.327433 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:48:37.345421 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:48:37.389267 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:48:37.557904 13144 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:48:37.584832 13144 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 4s 71us/step - loss: 0.3637 - acc: 0.9008\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 69us/step - loss: 0.1971 - acc: 0.9440\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 69us/step - loss: 0.1484 - acc: 0.9576\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 28us/step\n", + "Loss : 0.1410951664865017\n", + "Accuracy : 0.9577\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEICAYAAABRSj9aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3deXxV5Z348c83+0ISkhu2JGRDZJVFFkEWcUesW5latVo3oJsz7cx05qdjf9OOM/3pzLS/af21nQ4g1WpdWltbbG3dkSAgi4oioEB29iQQsq/f3x/nJNxscENy701uvu/XK6+ce89z7v3eJyffe57nOec5oqoYY4wJXWHBDsAYY4x/WaI3xpgQZ4neGGNCnCV6Y4wJcZbojTEmxFmiN8aYEGeJ3hhjQpwlejOkiUihiFwV7DiM8SdL9MYYE+Is0RvTDRFZKSIHRKRCRNaLSJr7vIjIf4nIcRGpFJGPRGSqu26ZiOwRkSoROSQi3w7upzDGYYnemE5E5ArgUeBWYAxQBDzvrr4GWAxcCAwHvgiUu+ueAL6iqgnAVOCtAIZtTI8igh2AMQPQl4B1qvo+gIg8BJwUkWygCUgAJgLbVHWv13ZNwGQR2aWqJ4GTAY3amB7YEb0xXaXhHMUDoKrVOEft6ar6FvAT4KfAMRFZLSKJbtHlwDKgSETeEZH5AY7bmG5Zojemq8NAVtsDEYkHPMAhAFV9XFVnAVNwunD+wX1+u6reBIwEfg/8OsBxG9MtS/TGQKSIxLT94CToe0VkhohEA/8HeE9VC0VkjohcIiKRQA1QD7SISJSIfElEklS1CTgNtATtExnjxRK9MfAKUOf1swj438BvgSPAOOA2t2wisAan/70Ip0vnB+66u4BCETkNfBW4M0DxG3NWYjceMcaY0GZH9MYYE+Is0RtjTIizRG+MMSHOEr0xxoS4AXdlbGpqqmZnZwc7DGOMGVR27txZpqojuls34BJ9dnY2O3bsCHYYxhgzqIhIUU/rrOvGGGNCXEgl+oZmuxDRGGM6C5lEf7q+iQWPvc0/vfQxBWU1wQ7HGGMGjAHXR3++GptbuXryKF7cWcpz24q5ZvIoVi0ex6ys5GCHZowJgKamJkpLS6mvrw92KH4VExNDRkYGkZGRPm8z4KZAmD17tvZlMPZEVQNPbS7k6a1FVNY1MTsrmVWLc7lq0ijCwqQfIzXGDCQFBQUkJCTg8XgQCc3/dVWlvLycqqoqcnJyOqwTkZ2qOru77UKm66bNiIRovn3tBDY/eAXfu2EyR0/Xs+rpnVz1X+/w3LZi6pusH9+YUFRfXx/SSR5ARPB4PL1utYRcom8THx3BPQty2PDtJfy/22cSHxXBQ7/7mIX//hY/eWs/p2obgx2iMaafhXKSb3M+nzFk+uh7EhEexg3T0/jctDFsyS9n9cZ8fvDaZ/xsw0FunT2W+xfmMDYlLthhGmOM34TsEX1nIsKl41J58t65vPqtxVw3dQy/eq+IJT/YwF8/9wEfl1YGO0RjzCB26tQpfvazn/V6u2XLlnHq1Ck/RHTGkEn03iaMTuCHt04n7x+vYMXCHDbsO84NP9nE7au38vanxxloA9TGmIGvp0Tf0nL2ccFXXnmF4cOH+yssYIgm+jajk2J4aNkk3n3oCv5p2UQKymq49xfbWfqjPF7cWUpjc2uwQzTGDBIPPvggBw8eZMaMGcyZM4fLL7+cO+64g4suugiAm2++mVmzZjFlyhRWr17dvl12djZlZWUUFhYyadIkVq5cyZQpU7jmmmuoq6vrl9hC7vTKvmhsbuXlXYdZk5fPvqNVjE6M4d4F2dx+SSaJMb6fs2qMCby9e/cyadIkAP7l5U/Yc/h0v77+5LREvnvDlB7XFxYW8rnPfY7du3ezYcMGrr/+enbv3t1+GmRFRQUpKSnU1dUxZ84c3nnnHTweT/v8XtXV1VxwwQXs2LGDGTNmcOutt3LjjTdy551d70jp/VnbDKnTK/siKiKM5bMy+PM3F/HkvXPIHRHPo3/ex6WPvsX/eWUvRyr759vVGBP65s6d2+Fc98cff5zp06czb948SkpK2L9/f5dtcnJymDFjBgCzZs2isLCwX2IJ+bNuzoeIsGTCSJZMGMnuQ5Ws3pjPE5sKWLepgBtnpLFqcS4TRycGO0xjTA/OduQdKPHx8e3LGzZs4I033mDLli3ExcWxZMmSbs+Fj46Obl8ODw/vt64bO6I/h6npSTx++0w2fHsJd83P4i+7j7L0R3ncvW4bmw+U2cCtMQaAhIQEqqqqul1XWVlJcnIycXFx7Nu3j61btwY0Njui99HYlDi+e8MUvnnleJ7ZWsSTm4u4Y+17TE1PZNXicSybOpqIcPveNGao8ng8LFiwgKlTpxIbG8uoUaPa1y1dupSf//znTJs2jQkTJjBv3ryAxmaDseepvqmF339wiNV5+eSfqCEjOZb7F+Zw6+yxxEfb96cxgdbdAGWossHYAImJDOe2uZm88beXsebLsxmTFMO/vLyHSx97i/98dR/Hq0J7Bj1jzOBhh559FBYmXD15FFdPHsX7xSdZ/U4+P9twkDV5BXx+ZjorF+cybsSwYIdpjBnCLNH3o4szk/n5XbMoKKthbV4+L+4s5fntJVw1aRRfuSyX2VnJQ2LSJWOCRVVD/n/sfLrbrevGD3JS4/n+LRfx7oNX8DdXjmdnUQVf+PkWPv/fm/nL7iO0tA6scRFjQkFMTAzl5eUhfSZc23z0MTExvdrOBmMDoK6xhd/sLGFtXgHFFbXkpMZz/8Ic/mpWBjGR4cEOz5iQMNTvMHW2wVhL9AHU0qr8ZfdRVm88yK7SSjzxUXx5fjZ3zc8iJT4q2OEZYwYxS/QDjKryXkEFqzfm89a+48REhnHr7LGsWJhLpsfmxjfG9N7ZEr0NxgaBiDAv18O8XA/7j1WxJi+f57eV8MzWIq6bOoZVi3OZPta/05YaY4YOO6IfII6frucXmwt5ZmsRVfXNzM1J4auX5bLkwpF2U3NjzDn57YIpEVkqIp+KyAERebCb9V8VkY9F5EMR2SQik/vyfqFsZGIM/2vpRLY8dCXfuX4SpRW13PfkDq790UZ+vaOEhma7qbkx5vyc9xG9iIQDnwFXA6XAduB2Vd3jVSZRVU+7yzcCX1fVpWd73aF6RN9ZU0srf/roCP+zMZ+9R04zMiGaexZk86VLskiKtbnxjTEd+euIfi5wQFXzVbUReB64ybtAW5J3xQMDq59oAIsMD+Pmmem88jcLefr+uUwYncB//OVTLn30Tf71j3s4dMrmxjfG+KYvg7HpQInX41Lgks6FROQbwN8BUcAV3b2QiKwCVgFkZmb2IaTQIyIsGj+CReNH8MnhStZszOfJzYU8tbmQz00bw6rF45icZnPjG2N61peumy8A16rqCvfxXcBcVf3rHsrf4Za/+2yva10353boVB3rNhXw/LZiahpbWDQ+lVWLc1l4QWrIX/5tjOmev7puSoGxXo8zgMNnKf88cHMf3s+40ofH8r8/N5nND13JPy6dwL6jVdz1xDauf3wTv//gEE0tdlNzY8wZfUn024HxIpIjIlHAbcB67wIiMt7r4fVA15skmvOWFBvJ15dcwKb/dTn/sXwajS2tfOuFD1nynxtYm5dPdUNzsEM0xgwAfTqPXkSWAT8CwoF1qvp9EXkE2KGq60Xkx8BVQBNwEnhAVT8522ta1835a21V3v70OKs35vNeQQWJMRF8aV4W916azcjE3k2CZIwZXGwKhCHow5JTrN54kL/sPkpEWBg3z3Ruan7ByIRgh2aM8QNL9ENYUXkNa/MK+M3OEuqbWrly4khWLs7lkpwUG7g1JoRYojdU1DTy9JYintpSSEVNI9Mzkli1eBxLp44m3KZYMGbQs0Rv2tU3tfDizlLW5uVTWF5LZkocKxbl8IVZY4mNsrnxjRmsLNGbLlpaldf3HOV/NubzQfEpkuMiuWt+NnfPz8IzLDrY4RljeskSvemRqrKj6CT/804+b+w9RnREGH81K4OVi3LJTo0PdnjGGB/ZfPSmRyLCnOwU5mSncOB4NWvz8vnNjlKe3VbMtZNHs+qyXC7OTA52mMaYPrAjetPF8ap6ntpcyDNbi6msa2JOdjKrFo/jyok2N74xA5V13ZjzUtPQzAvbS3hiUwGHTtUxbkQ8KxflcvPMdLupuTEDjCV60yfNLa386eMjrN6YzyeHT5M6LJp7F2Rz5yVZJMXZ3PjGDASW6E2/UFU2Hyxn9cZ83vnsBHFR4XxxzljuX5hDRrLd1NyYYLJEb/rdvqOnWb0xn/UfHkaB6y9ybmo+NT0p2KEZMyRZojd+c6Syjl+8W8iz7xVT3dDMggs8rFyUy2UXjrApFowJIEv0xu9O1zfx3HvFrHu3gGOnG5g4OoGVi3K5YXoaURF9uge9McYHluhNwDQ2t7J+12HWbMzn02NVjE6M4b6F2dw+N5OEGBu4NcZfLNGbgFNVNnx2gtXv5LMlv5yE6AjuuCSTexfkMDrJ5sY3pr9ZojdB9VHpKVZvzOeVj48QHibcOD2dVYtzmTDa5sY3pr9YojcDQklFLU9sKuCF7SXUNbWwZMIIVi3OZX6uxwZujekjS/RmQDlZ08gzW5258cuqG7koPYlVi3O5bupoIsJt4NaY82GJ3gxI9U0tvPTBIdZszCe/rIaM5FhWLMzh1jljiYuy+faM6Q1L9GZAa21VXt97jNUb89lZdJLhcZHcNS+LL8/PZkSCzY1vjC8s0ZtBY2dRBas35vPanmNEhoex/OIMVizKYdyIYcEOzZgBzRK9GXTyT1SzdlMBL+4spamllasmjeIri3OZnZ0S7NCMGZAs0ZtBq6y6gV9uLuSXW4s4VdvExZnDWbV4HNdMHmVz4xvjxRK9GfRqG5v5zY5S1m7Kp6SijpzUeFYsymH5xRk2N74xWKI3IaS5pZW/fHKU1Rvz+ai0Ek98FHdfms1d87JIjo8KdnjGBI0lehNyVJWt+RWs3niQtz89QWxkOLfOzmDFolzGptjc+GbosZuDm5AjIswf52H+OA+fHati9cZ8nt1WzNNbi7juojF8ZXEu0zKGBztMYwYEO6I3IeNoZT2/2FzAs1uLqWpoZl5uCl9ZPI4lE2xufBP6rOvGDClV9U08v62Ede8WcKSyngtHDWPlolxumpFuc+ObkGWJ3gxJTS2tvLzrMKs35rPvaBWjEqO5d0EOd1ySSaLNjW9CjCV6M6SpKnn7y1i9MZ9NB8oYFh3B7XPHcu+CHNKGxwY7PGP6hSV6Y1y7D1WyJi+fP350BAFunJ7GysW5TBqTGOzQjOkTS/TGdFJ6spZ1mwp5fnsxtY0tLBqfylcWj2PBBTY3vhmc/JboRWQp8GMgHFirqo91Wv93wAqgGTgB3KeqRWd7TUv0JpAqa5t45r0intxcyImqBqakJbJqcS7XXzTG5sY3g4pfEr2IhAOfAVcDpcB24HZV3eNV5nLgPVWtFZGvAUtU9Ytne11L9CYYGppb+P0Hh1i9MZ+DJ2pIHx7LfQtzuG3OWOKj7XITM/CdLdH35ZBlLnBAVfNVtRF4HrjJu4Cqvq2qte7DrUBGH97PGL+Jjgjni3Myef1vL2Ptl2eTPjyWf/3jHuY/+ib/8Zd9HK+qD3aIxpy3vhyqpAMlXo9LgUvOUv5+4M/drRCRVcAqgMzMzD6EZEzfhIUJV00exVWTR/FB8UlWb8znv985yNq8Am6Zmc41U0aR5YkjIznOJlMzg0ZfEn13I1bd9gOJyJ3AbOCy7tar6mpgNThdN32IyZh+MzMzmf++cxaFZTWs3ZTPb3aU8sKOM8c2oxKjyUyJIzMl3vntiSUzJY6xKXGMGBZtg7pmwOhLoi8Fxno9zgAOdy4kIlcBDwOXqWpDH97PmKDITo3n326+iH9cOpGDx6sprqiluLzW+V1Ry5aDZfzug3q8h7tiI8Pbk77zZRBLpsf5UshIjrXWgAmoviT67cB4EckBDgG3AXd4FxCRmcD/AEtV9Xgf3suYoEuMiWRmZjIzM5O7rKtvauHQqTqKK2opcb8IitzlzQfLqG1s6VB+dGJM+xdBlieuw5dC6rAoaw2YfnXeiV5Vm0XkAeBVnNMr16nqJyLyCLBDVdcD/wkMA37j7rjFqnpjP8RtzIASExnOuBHDur23rapSXtPYpSVQ7H4J/Pb9jgO9ba2BTE9bayCu/XH6cGsNmN6zC6aMCbL6phZKT9Y5LQH3p6i8tv1xXdOZ1oCI0xoY6/UFkOU50xrwxFtrYKiy+eiNGcBiIsO5YOQwLhjZfWugrNptDVTUUFx+pnto0/4yjp7u2BqIiwrv0gpo+xLISI4lOsJaA0ORJXpjBjARYURCNCMSopmV1f3YQOnJWq9uIeeLoLC8ho37T1Df1Or1WjCmU2vAu3soxVoDIcsSvTGDmNMaSOCCkQld1qkqJ6ob2ruAitzxgZKKWjbuP8Gx0x1PgouPCm//Eug8QJxurYFBzRK9MSFKRBiZEMPIhBhmZaV0WV/f1NJhXKCtVVBQVsM7n52gobljayAtKZaxKbHtLQDnjCHnGoLkuEhrDQxgluiNGaJiIsMZPyqB8aN6aA1UNXRpCRRX1LLh0xMcr+rYGhgWHeEe/ceS5Ynv0D2UPjzW7uwVZJbojTFdiAgjE2MYmRjD7OyurYG6xhZKTnY8XbSkopaDJ2rY8GnH1kCYwJik2G4HiLNS4hhurQG/s0RvjOm12KhwLhyVwIXdtAZaW52xgeJOF44VV9Ty1qfHOdGpNZDQ3hroeu1AmrUG+oUlemNMvwoLE0YlxjAqMYY53bQGahubKXHPDmprCRSV17D/eBVvfXqcxm5aA50Hh9sGjJNirTXgC0v0xpiAiouKYMLoBCaM7r41cNwdG3BaBDXty2/sPU5ZdafWQExEhxaA95QSacNjibSbxwCW6I0xA0hYmDA6KYbRSTHMzenaGqhpaO4wNtDWJfTpsSre3HucxpaOrYG04bFdrh5u+xkeFxXIjxZUluiNMYNGfHQEE0cnMnF015u5t7Yqx6rqu8wnVFxRy+t7jlFW3dihfGJMRPuYwJnBYed00THDY0KqNWCJ3hgTEsLChDFJsYxJiuWSXE+X9TUNzR3GBdpOHd13pIo39nRsDYSHCWnDYzreb8DrJykuMpAfrc8s0RtjhoT46AgmjUlk0piurYGWVuXY6foOF461Lb/2yVHKa7q2BtouFus8QDwmKWbA3VjeEr0xZshzjuBjSRsey7xuWgPVDc1dxgWKK2rZc+Q0r+05SlOLdnit9OGxXQaH2x4nxQa+NWCJ3hhjzmFYdAST0xKZnNZ9a+DoaWdsoKSilqKKmvbJ5V795CgVnVoDSbGR3Q4OZ6b4rzVgid4YY/qg7Qg+fXgs88d1bQ1U1Td1aQkUV9TxyaFKXt19lObWM62BKWmJ/OlvFvV7jJbojTHGjxJiIpmSlsSUtKQu61palSOVZ+4x4K+rgC3RG2NMkISHCRnJcWQkx8E4/73PwBoaNsYY0+8s0RtjTIgbcDcHF5ETQFEfXiIVKOuncPqTxdU7FlfvWFy9E4pxZanqiO5WDLhE31cisqOnO6EHk8XVOxZX71hcvTPU4rKuG2OMCXGW6I0xJsSFYqJfHewAemBx9Y7F1TsWV+8MqbhCro/eGGNMR6F4RG+GKBHZICInRSQ62LEYM5BYojchQUSygUWAAjcG8H3t6nIz4A2aRC8iS0XkUxE5ICIPdrM+WkRecNe/5/7jt617yH3+UxG5NsBx/Z2I7BGRj0TkTRHJ8lrXIiIfuj/rAxzXPSJywuv9V3itu1tE9rs/dwc4rv/yiukzETnlte5s9fVlYCvwJHC31zaxIvJDESkSkUoR2SQise66hSKyWUROiUi1iJwWkd1uy8C7Pu5xt3vcjVtF5DER2Q/sd+vrpIg0iUidiOwUkUVe24eLyD+JyEERqXLXjxWRn4rIDzt9/pdF5Ftej9eJyHER2d1DfX7J3bc+cj/LdK91hSLysVtfO871t+kNH+Ja4tZ329/rn73WnXUf8HNc/+AV0253n0px1/mzvsaKyNsisldEPhGRb3ZTRrz2sY9E5GKvdX37n1TVAf8DhAMHgVwgCtgFTO5U5uvAz93l24AX3OXJbvloIMd9nfAAxnU5EOcuf60tLvdxdRDr6x7gJ91smwLku7+T3eXkQMXVqfxfA+t8qS/ggLsPzAKagFHu8z8FNgDp7vtf6u4LmUAVcDsQCXzO3W92u+VXdKqrT4A/A4LTaqh06yjNraOvuJ8rH/gOcBSIcbf/B+BjYIK7/XTAA8wFDgNhbrlUoLYtdve5xcDFwO4ePvelbX8f4DrgPa91hUCqn/axc8W1BPhjX/eB/o6rU9kbgLcCVF9jgIvd5QTgs27+J5d57WPz2v6W/fE/OViO6OcCB1Q1X1UbgeeBmzqVuQl4yl1+EbhSRMR9/nlVbVDVApyEMDdQcanq26pa6z7cCmT003v3Ka6zuBZ4XVUrVPUk8DqwNEhx3Q48d64XFZGFQBbwa1XdiZNI7hCRMOA+4JuqekhVW1R1s6o2AF8C3lDV51S1SVX/iPP36UkK8Et1//OA0zhfGJfh1Nf/qGo+Tn0ddNdNcMuuAL6jqp+qY5eqlqvqNpwvjCvdcrcBG1T1WNubqupGoKKnoNzPc9J9GKj965xxnUVf9s3+jsun/as/qOoRVX3fXa4C9uIcfHi7CXcfU9WtwHARGUM//E8OlkSfDpR4PS6layW1l1HVZpx/II+P2/ozLm/343xjt4kRkR0islVEbu6nmHoT13K3ifiiiIzt5bb+jAtxurhygLe8nu6pvu4GXlPVtkvHn3WfSwVicBJvZ2N7eL4n0Z1iL3FjTwdKROTvRWSv+77rgCT3/c/1Xk8Bd7rLdwJP9yKmzjrvXwq85nYVrerD656v+SKyS0T+LCJT3Of8uX/5TETicJLlb72eDkh9idOtPBN4r9Oqnuqmz3U2WAaSpJvnOp8X2lMZX7Y9Xz6/tojcCczGOQJsk6mqh0UkF3hLRD5W1d4kn77E9TLwnKo2iMhXcRLOFT5u68+42twGvKiqLV7PdakvnK6PW4FwETnqlosGhuM0l+txJoDd1en1S+i5ZVcDxHk9Ht1Dubb9KwvnaOxK4BZ3++9w5vOWuDF012/8DLDb7VufBPy+h/c6KxG5HCfRL/R6eoFbXyOB10Vkn3vEGwjv48y9Ui0iy3A+13j8u3/1xg3Au6rqffTv9/oSkWE4Xy7fUtXTnVd3s0m/5LDBckRfinNU1CYD5x+82zLinAmRhNOE82Vbf8aFiFwFPAzc6HYbAKCqh93f+Tj9wjMDFZfbddAWyxqcvm2ftvVnXF5uo1Ozuof6uhlowRmLmeH+TALycAZo1wH/V0TS3EHR+eKcfvkr4CoRuVVEIkTE474GwIfA50UkTkQuwEmgDZ1iH+3G3nZ01QyccMvMA7zvObcW+FcRGe8OuE1z3w9VLQW24xzJ/1ZV685Wgd0RkWnue9ykquXd1Ndx4CX6r8vynFT1tKpWu8uvAJEikop/96/eONv+5Zf6EpFInCT/K1X9XTdFeqqbvteZPwYe+vsHp+WRj9OUbxvAmdKpzDfoOBj7a3d5Ch0HY/Ppv8FYX+KaidNsH9/p+WQg2l1OBfbTT4NSPsY1xmv5FmCrnhn4KXDjS3aXUwIVl1tuAs7AmJyrvoC/AD/s5jVuxRkQTQB+BBzC6c7bCMS6ZRbhNJ9P4xx1/z3OUXcq8BrOYO27wPfoOhi7q1N9Pe2+TjPwXTf+q9wy4ThH+AXua24HMrxivdN9zct7qLdseh70zMQZd7q00/PxQILX8mZgaT//X54trtFtfz+chFns1p1P+4C/4nLXtx0ExgeqvtzP/kvgR2cpcz0dB2O39df/ZL9Vrr9/cEakP8NJmg+7zz2Cc5QMTl/sb9ydfhuQ67Xtw+52nwLXBTiuN4BjOEeJHwLr3ecvxTkTY5f7+/4Ax/UoTvLaBbwNTPTa9j63Hg8A9wYyLvfx94DHOm3n7/p6DjiCc8ZOKc5R/FeBr7rrBecMnoPu+8/ur/rCOVOkGPfsm17GtRY46bV/7XCfz3Xrapf7d344wPX1gNf+tRWvL6Lu9oFAxeWWuQfnBA3v7fxdXwtxvsw/8vpbLQvUPmZTIBgTRG5z/nmcFsIjwY7HhCaf+ujPdYGDiGSJczHQR+JcbJLhtS5TRF5zLxTYI14XMhkzlInIJOAUzqDxj4Icjglh5zyiF5FwnGbW1ThNoe3A7aq6x6vMb3AujnhKRK7AaVrc5a7bAHxfVV93R5xb9cx55cYYY/zMlyN6Xy5wmAy86S6/3bZeRCYDEar6OoCqVluSN8aYwPLlPPruTta/pFOZXcBy4Mc4Z3AkuKePXQicEpHf4YyyvwE8qB3Pje4gNTVVs7Ozff4AxhhjYOfOnWXawz1jfUn0vpys/23gJyJyD87pa4dwTjOLwDmFbSbOWQUv4Ix4P9HhDZyr0FYBZGZmsmNHv84nZIwxIU9Einpa50vXjS8X3xxW1c+r6kycUxlR1Up32w/cbp9mnKvjLqYTVV2tqrNVdfaIEd1+IRljjDlPviT67cB4EckRkSici5E6TBErIqnuBFIAD+Fcjdi2bbKItGXvK4A9GGOMAZxrmcqqG9hZVMF7+eXn3uA8nLPrRlWbReQB4FWcK/zWqeonIvIIzsUZ63GmJH1URBSn6+Yb7rYtIvJt4E13JsmdOJfbG2PMkKGqnKhuoKi8loKyGorKaygsr6WovIaislqqGpoBmJaRxPoHFp7j1XpvwF0wNXv2bO3cR9/U1ERpaSn19fVBiipwYmJiyMjIIDIyMtihGGN6QVU5XtXQJZEXlDm/axvPnIMSHiaMTY4lOzWebE88WZ44sj3x5I6IJ8sTf17vLyI7VXV2d+sGxeyVpaWlJCQkkJ2djdMwCE2qSnl5OaWlpeTk5AQ7HGNMJ62tyrGqejeZ11LoHpEXljuP65rOJPPIcGFschzZqfHMy01pT+g5qfGkDY8lMjxwc0oOikRfX18f8kkeQETweDycOHEi2KEYM2S1tipHTtdTWFbTnsC9lxuaW9vLRoWHMTYllpzUeBZckEq2Jz8ALFAAABiGSURBVK79KH1MUgwRAUzmZzMoEj0Q8km+zVD5nMYEU0urcvhUHYVtXSxuIi8sr6W4opZG72QeEUZWipPAL7twBFmeeHJSnaPzMUmxhIcN/P/ZQZPojTGmN5pbWjl0qq69r7zQ7WIpLK+hpKKWppYz45MxkWFke+IZNyKeKyeOJMsTT3aq028+OjGGsEGQzM/GEr2PTp06xbPPPsvXv/71Xm23bNkynn32WYYPH+6nyIwZuppaWik9Wef2lTtH5G1dLCUVtTS3nknmcVHhZHnimTAqgWsmj+7QzTIyIXrQJ/OzsUTvo1OnTvGzn/2sS6JvaWkhPDy8x+1eeeUVf4dmTEhrbG6l5GTno3LncenJOlq8knl8VDjZqfFMHpPIdVNHk+2Jd5N5HCMSoods1+igS/T/8vIn7Dnc+VaLfTM5LZHv3jDlrGUefPBBDh48yIwZM4iMjGTYsGGMGTOGDz/8kD179nDzzTdTUlJCfX093/zmN1m1yrm3cHZ2Njt27KC6uprrrruOhQsXsnnzZtLT0/nDH/5AbGxsv34WYwaj+qYWSk/WduheaTur5dDJOrxyOQnREWSnxnNRehI3TEtrT+RZnnhSh0UN2WR+NoMu0QfLY489xu7du/nwww/ZsGED119/Pbt3724/DXLdunWkpKRQV1fHnDlzWL58OR6Pp8Nr7N+/n+eee441a9Zw66238tvf/pY777wzGB/HmICrb2qhuMI5g6WovJaC8pr2o/TDlXV4X9KTGBNBTmo8M8cmc8uMdLJTnfPLsz1xpMRbMu+tQZfoz3XkHShz587tcK77448/zksvvQRASUkJ+/fv75Loc3JymDFjBgCzZs2isLAwYPEaEwh1jS0UVZzpYmlL5EXlNRw5Xd8hmQ+PiyTbE8+c7GSyPBntZ7Jke+JJjo8K3ocIQYMu0Q8U8fFnrl7bsGEDb7zxBlu2bCEuLo4lS5Z0exVvdHR0+3J4eDh1dXUBidWY/lTT0ExR21WfnS4YOnq6437viY8iyxPHvFxPhzNZsjxxDI+zZB4oluh9lJCQQFVVVbfrKisrSU5OJi4ujn379rF169YAR2dM/6qqb3KTudtn7tXdcqKqoUPZ1GHRZHviulwwlOmJIynWpvIYCCzR+8jj8bBgwQKmTp1KbGwso0aNal+3dOlSfv7znzNt2jQmTJjAvHnzghipMb45Xd9EUZnbV1525kyWwvIayqobO5QdmRBNtieeJReO6DA/S5YnjoQYS+YD3aCY1Gzv3r1MmjQpSBEF3lD7vMZ/Kmub2s9iaesrbzs9saKmYzIfnRjT3kfufSZLlieO+Gg7JhzoBv2kZsaY7qkqp7pJ5gXu0fmp2qYO5dOSYsjyxHPtlFHuUbnTb56ZEkdclKWDUGV/WWMGOFWloqax01H5mb7z0/XN7WVFIC0pluzUOJZdNIactilwU+PJTIkjJrLni/tM6Bo0iV5Vh8S5swOtK80EhnOXocYOA5/tFw553ZgCIEwgPTmWbE88N85Ic7pa3CPzsSlxREdYMjcdDYpEHxMTQ3l5OR6PJ6STfdt89DExMcEOxfiBqnKi/cYUZ05JbLtRRU2nG1NkJMeS5YlnVmZyexdLlieesclxREUMjOlvzeAwKBJ9RkYGpaWlQ2Ke9rY7TJnBqe3GFB26WLzmMve+MUVEmDA2xTlzZW5OijP46Z7RkpEc2BtTmNA2KBJ9ZGSk3XHJDBhtN6bwPiWx7Si9qKKG+qYzc5lHhjvJPNsTz6XjUtuPyrM9caQPjx0wN6YwoW1QJHpjgu3j0kqe3FzIR6WnKOp8Y4rwMDI9cWR74lg0PtU9KneSe9rwwXFjChPaLNEb04PWVuXNfcdZm5fPewUVDIuOYP44D5dPHNnhfPPRiTGWzM2AZonemE7qGlv47fulrNtUQH5ZDWlJMTy8bBJfnDuWRLsK1AxCluiNcZ2oauDpLYU8vbWIk7VNTMtI4vHbZ3Ld1NE2MGoGNZ8SvYgsBX4MhANrVfWxTuuzgHXACKACuFNVS73WJwJ7gZdU9YF+it2YfrH/WBVr8wp46cNDNLW0cuXEUaxclMPcnJSQPp3XDB3nTPQiEg78FLgaKAW2i8h6Vd3jVewHwC9V9SkRuQJ4FLjLa/2/Au/0X9jG9I2q8u6BctZuymfDpyeIjgjjC7MyuH9hDrkjhgU7PGP6lS9H9HOBA6qaDyAizwM3Ad6JfjLwt+7y28Dv21aIyCxgFPAXoNsJd4wJlMbmVl7edZi1mwrYe+Q0qcOi+LurL+TOeVmk2M0uTIjyJdGnAyVej0uBSzqV2QUsx+neuQVIEBEPcBL4Ic7R/ZU9vYGIrAJWAWRmZvoauzE+q6xt4lfbinhqcyHHTjcwfuQw/mP5NG6ckWbzv5iQ50ui766TsvOELN8GfiIi9wAbgUNAM/B14BVVLTlbX6eqrgZWgzNNsQ8xGeOTovIa1m0q4Nc7SqlramHhBan8+/JpXHbhCOt/N0OGL4m+FBjr9TgDOOxdQFUPA58HEJFhwHJVrRSR+cAiEfk6MAyIEpFqVX2wX6I3pgc7iypYs7GAV/ccJSJMuGF6GisW5jI5LTHYoRkTcL4k+u3AeBHJwTlSvw24w7uAiKQCFaraCjyEcwYOqvolrzL3ALMtyRt/aW5p5bU9x1iTl88HxadIio3ka5eN4+5LsxmVaBPFmaHrnIleVZtF5AHgVZzTK9ep6ici8giwQ1XXA0uAR0VEcbpuvuHHmI3poLqhmV9vL+EXmwsoqagjMyWOf7lxCn81K8PujGQMg+RWgsZ050hlHU9uLuTZ94qpqm9mVlYyKxflcPXk0TYlgRly7FaCJqR8criStXkFvLzrMK2qXDd1DPcvyuHizORgh2bMgGSJ3gwKra3KO5+dYE1ePpsPlhMXFc5d87O4b0EOY1Pigh2eMQOaJXozoNU3tfDSB4d4YlMBB45XMzoxhgevm8jtczNJirUJxozxhSV6MyCVVzfw9NYint5SRHlNI5PHJPJfX5zO9Rel2W30jOklS/RmQDlwvJonNhXwu/dLaWhu5YqJI1mxKIf5uaF9v2Bj/MkSvQk6VWVLfjlP5BXw5r7jREWEsfzidO5fmMMFIxOCHZ4xg54lehM0TS2t/OmjI6zdlM/uQ6dJiY/im1eO5675WaQOiw52eMaEDEv0JuAq65p4flsxT24u5EhlPeNGxPPo5y/ilpnpNsGYMX5gid4ETElFLb94t5AXthdT09jC/FwP379lKksuHEmYXeBkjN9Yojd+90HxSdZuKuDPHx8hTITPTRvDikW5TE1PCnZoxgwJluiNX7S0Kq/vOcbavHx2FJ0kISaClYtzuefSbMYkxQY7PGOGFEv0pl/VNjbz4s5S1m0qoLC8lozkWP75c5O5dc5YhtkEY8YEhf3nmX5x/HQ9T20p5JmtxVTWNTFj7HB+eu1Erp0yiohwu8DJmGCyRG/6ZO+R06zNK2D9rkM0tyrXTh7NikU5zMpKtgucjBkgLNGbXlNVNu4vY21ePnn7y4iNDOeOuZnctzCHLE98sMMzxnRiid74rKG5hT98eJgn8gr49FgVIxOi+YdrJ/ClSzIZHhcV7PCMMT2wRG/O6WRNI89sLeKpLUWUVTcwcXQCP/jCdG6cbhOMGTMYWKI3PSooq+GJTfm8uLOU+qZWLrtwBCsX5bLgAptgzJjBxBK96UBV2V54kjV5+byx9xiRYWHcPDONFYtyuXCUTTBmzGBkid4A0NzSyp93H2VtXj67SitJjovkgcsv4K75WYxMiAl2eMaYPrBEP8RV1TfxwvYSfvFuIYdO1ZGTGs+/3TyV5RdnEBtlE4wZEwos0Q9Rh07V8eS7BTy/rYSqhmbm5qTwvRuncOVEm2DMmFBjiX6I+aj0FGvzCvjTx0cAWHbRGFYuymFaxvAgR2aM8RefEr2ILAV+DIQDa1X1sU7rs4B1wAigArhTVUtFZAbw30Ai0AJ8X1Vf6Mf4jQ9aW5U39x1nTV4+2woqGBYdwb2XZnPvwhzSh9sEY8aEunMmehEJB34KXA2UAttFZL2q7vEq9gPgl6r6lIhcATwK3AXUAl9W1f0ikgbsFJFXVfVUv38S00VdYwu/fd+ZYCy/rIb04bF85/pJfHHOWBJiIoMdnjEmQHw5op8LHFDVfAAReR64CfBO9JOBv3WX3wZ+D6Cqn7UVUNXDInIc56jfEr0fnahq4OkthTy9tYiTtU1My0ji8dtnsmzqaJtgzJghyJdEnw6UeD0uBS7pVGYXsByne+cWIEFEPKpa3lZAROYCUcDBzm8gIquAVQCZmZm9id94+exYFU/kFfDSh4doamnlyomjWLkoh7k5KXaBkzFDmC+JvrsMoZ0efxv4iYjcA2wEDgHN7S8gMgZ4GrhbVVu7vJjqamA1wOzZszu/tjkLVeXdA+Wsycvnnc9OEBMZxq2zM7hvQQ65I4YFOzxjzADgS6IvBcZ6Pc4ADnsXUNXDwOcBRGQYsFxVK93HicCfgO+o6tb+CNpAY3MrL+86zNpNBew9cprUYdH8/dUX8qV5WaTE2wRjxpgzfEn024HxIpKDc6R+G3CHdwERSQUq3KP1h3DOwEFEooCXcAZqf9OfgQ9VlbVN/GpbEU9tLuTY6QYuHDWM/1g+jRtnpBETaRc4GWO6OmeiV9VmEXkAeBXn9Mp1qvqJiDwC7FDV9cAS4FERUZyum2+4m98KLAY8brcOwD2q+mH/fozQV1Rew7pNBfx6Ryl1TS0sGp/Kvy+fxmUXjrD+d2PMWYnqwOoSnz17tu7YsSPYYQwYO4sqWLOxgFf3HCUiTLhxejorFuUwaUxisEMzxgwgIrJTVWd3t86ujB2AmltaeW3PMdbk5fNB8SmSYiP52mXjuPvSbEYl2gRjxpjesUQ/gFQ3NPPr7SX8YnMBJRV1ZHnieOSmKfzVrAziouxPZYw5P5Y9BoAjlXU8ubmQZ98rpqq+mdlZyTy8bDJXTx5FuE0wZozpI0v0QfTJ4UrW5hXw8q7DtKpy3dQxrFiUw8zM5GCHZowJIZboA6y1VXnnsxOsyctn88Fy4qPCuWt+FvctyGFsSlywwzPGhCBL9AFS39TCSx8c4olNBRw4Xs3oxBgeum4it83NJCnWJhgzxviPJXo/K69u4OmtRTy9pYjymkampCXyoy/O4PppY4i0CcaMMQFgid5PDhyv5olNBfzu/VIamlu5YuJIVizKYX6uxy5wMsYElCX6fqSqbMkv54m8At7cd5yoiDCWX5zO/QtzuGBkQrDDM8YMUZbo+0FTSyt/+ugIazfls/vQaTzxUXzrqvHcOS+L1GHRwQ7PGDPEWaLvg8q6Jp7fVsyTmws5UlnPuBHxPPr5i7hlZrpNMGaMGTAs0Z+HkopafvFuIS9sL6amsYX5uR6+f8tUllw4kjC7wMkYM8BYou+FD4pPsnZTAX/++AhhItwwPY37F+YwNT0p2KEZY0yPLNGfQ0ur8vqeY6zNy2dH0UkSYiJYuTiXey7NZkxSbLDDM8aYc7JE34PaxmZe3FnKuk0FFJbXkpEcyz9/bjK3zhnLsGirNmPM4GEZq5Pjp+t5akshz2wtprKuiZmZw/nHpRO5ZvIoIuwCJ2PMIGSJ3rX3yGnW5hWwftchmluVayePZuXiHGZlpQQ7NGOM6ZMhnehVlY37y1ibl0/e/jJiI8O5Y24m9y3MIcsTH+zwjDGmXwzJRN/Q3MIfPjjM2k35fHasmpEJ0fzj0gncMTeT4XFRwQ7PGGP61ZBK9CdrGnlmaxFPbSmirLqBiaMT+OEXpnPD9DSiIqz/3RgTmoZEoi8oq+GJTfm8uLOU+qZWLrtwBCsX5bLgAptgzBgT+kI20asq2wtPsiYvnzf2HiMyLIybZ6axYlEuF46yCcaMMUOHT4leRJYCPwbCgbWq+lin9VnAOmAEUAHcqaql7rq7ge+4Rf9NVZ/qp9i71dzSyiu7j7I2L5+PSitJjovkry+/gDvnZzEyIcafb22MMQPSORO9iIQDPwWuBkqB7SKyXlX3eBX7AfBLVX1KRK4AHgXuEpEU4LvAbECBne62J/v7g9Q0NPPctmJ+8W4hh07VkZsaz7/dPJXlF2cQG2UTjBljhi5fjujnAgdUNR9ARJ4HbgK8E/1k4G/d5beB37vL1wKvq2qFu+3rwFLgub6H3lFNQzP//pd9zMxM5ns3TuHKiTbBmDHGgG+JPh0o8XpcClzSqcwuYDlO984tQIKIeHrYNv28oz2LkYkxvP3tJWQk2w22jTHGmy/nFHZ3WKydHn8buExEPgAuAw4BzT5ui4isEpEdIrLjxIkTPoTUPUvyxhjTlS+JvhQY6/U4AzjsXUBVD6vq51V1JvCw+1ylL9u6ZVer6mxVnT1ixIhefgRjjDFn40ui3w6MF5EcEYkCbgPWexcQkVQRaXuth3DOwAF4FbhGRJJFJBm4xn3OGGNMgJyzj15Vm0XkAZwEHQ6sU9VPROQRYIeqrgeWAI+KiAIbgW+421aIyL/ifFkAPNI2MNuTnTt3lolI0Xl/IkgFyvqwvb9YXL1jcfWOxdU7oRhXVk8rRLVLl/mgJiI7VHV2sOPozOLqHYurdyyu3hlqcdkEL8YYE+Is0RtjTIgLxUS/OtgB9MDi6h2Lq3csrt4ZUnGFXB+9McaYjkLxiN4YY4wXS/TGGBPiBk2iF5GlIvKpiBwQkQe7WR8tIi+4698TkWyvdQ+5z38qItcGOK6/E5E9IvKRiLzpTunctq5FRD50f9Z33tbPcd0jIie83n+F17q7RWS/+3N3gOP6L6+YPhORU17r/Flf60TkuIjs7mG9iMjjbtwficjFXuv8WV/niutLbjwfichmEZnuta5QRD5262tHgONaIiKVXn+vf/Zad9Z9wM9x/YNXTLvdfSrFXefP+horIm+LyF4R+UREvtlNGf/tY6o64H9wLtQ6COQCUTiTqE3uVObrwM/d5duAF9zlyW75aCDHfZ3wAMZ1ORDnLn+tLS73cXUQ6+se4CfdbJsC5Lu/k93l5EDF1an8X+NcoOfX+nJfezFwMbC7h/XLgD/jzN80D3jP3/XlY1yXtr0fcF1bXO7jQiA1SPW1BPhjX/eB/o6rU9kbgLcCVF9jgIvd5QTgs27+J/22jw2WI/r2qZJVtRFomyrZ201A201NXgSuFBFxn39eVRtUtQA44L5eQOJS1bdVtdZ9uBVnvh9/86W+etI+tbQ69w1om1o6GHHdjh+mtO6Oqm7EuWlOT27CueeCqupWYLiIjMG/9XXOuFR1s565v0Og9i9f6qsnfdk3+zuuQO5fR1T1fXe5CthL15l8/baPDZZE78t0x+1lVLUZqAT8PVVyb1/7fpxv7DYx4szauVVEbu6nmHoT13K3ifiiiLRNPjcg6svt4soB3vJ62l/15YueYg/YVNw+6Lx/KfCaiOwUkVVBiGe+iOwSkT+LyBT3uQFRXyISh5Msf+v1dEDqS5xu5ZnAe51W+W0fGyz3jPVluuOeyvg0VfJ58vm1ReROnDttXeb1dKaqHhaRXOAtEflYVQ8GKK6XgedUtUFEvorTGrrCx239GVeb24AXVbXF6zl/1ZcvgrF/+UxELsdJ9Au9nl7g1tdI4HUR2ece8QbC+0CWqlaLyDKcmxGNZ4DUF063zbvace4tv9eXiAzD+XL5lqqe7ry6m036ZR8bLEf0vkx33F5GRCKAJJwmnE9TJfsxLkTkKpzpm29U1Ya251X1sPs7H9iA8y0fkLhUtdwrljXALF+39WdcXm6jU7Paj/Xli55i92d9+UREpgFrgZtUtbztea/6Og68RP91WZ6Tqp5W1Wp3+RUgUkRSGQD15Trb/uWX+hKRSJwk/ytV/V03Rfy3j/lj4MEPAxkROAMQOZwZwJnSqcw36DgY+2t3eQodB2Pz6b/BWF/imokz+DS+0/PJQLS7nArsp58GpXyMa4zX8i3AVj0z8FPgxpfsLqcEKi633AScgTEJRH15vUc2PQ8uXk/HgbJt/q4vH+PKxBl3urTT8/FAgtfyZmBpAOMa3fb3w0mYxW7d+bQP+Csud33bQWB8oOrL/ey/BH50ljJ+28f6rXL9/YMzIv0ZTtJ82H3uEZyjZIAY4DfuTr8NyPXa9mF3u0+B6wIc1xvAMeBD92e9+/ylwMfujv4xcH+A43oU+MR9/7eBiV7b3ufW4wHg3kDG5T7+HvBYp+38XV/PAUeAJpwjqPuBrwJfddcL8FM37o+B2QGqr3PFtRY46bV/7XCfz3Xrapf7d344wHE94LV/bcXri6i7fSBQcbll7sE5QcN7O3/X10Kc7paPvP5WywK1j9kUCMYYE+IGSx+9McaY82SJ3hhjQpwlemOMCXGW6I0xJsRZojfGmBBnid4YY0KcJXpjjAlx/x+rGBLTQyANFgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Adamax and sparse_categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Adamax and sparse_categorical_crossentropy.ipynb new file mode 100644 index 000000000..b63e7b54e --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Adamax and sparse_categorical_crossentropy.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:49:47.554641 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:49:47.581595 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Adamax',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:49:49.649076 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:49:49.667022 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:49:49.707882 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:49:49.860472 16504 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:49:49.889393 16504 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 4s 71us/step - loss: 0.3572 - acc: 0.9031\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 68us/step - loss: 0.1942 - acc: 0.9447\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 68us/step - loss: 0.1488 - acc: 0.9575\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 32us/step\n", + "Loss : 0.14077735255807639\n", + "Accuracy : 0.9586\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Nadam and categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Nadam and categorical_crossentropy.ipynb new file mode 100644 index 000000000..dee97611a --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Nadam and categorical_crossentropy.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:53:23.915151 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:53:23.941080 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Nadam',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:53:25.387317 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:53:25.404221 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:53:25.443164 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:53:25.606253 408 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:53:25.659651 408 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 82us/step - loss: 0.2551 - acc: 0.9273\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 78us/step - loss: 0.1081 - acc: 0.9672\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 81us/step - loss: 0.0747 - acc: 0.9770\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 27us/step\n", + "Loss : 0.08645319114979357\n", + "Accuracy : 0.9754\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Nadam and kullback.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Nadam and kullback.ipynb new file mode 100644 index 000000000..109aa6697 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Nadam and kullback.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:54:35.934505 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:54:35.962432 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Nadam',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:54:37.481840 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:54:37.498795 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:54:37.546668 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:54:37.703247 22088 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:54:37.726186 22088 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 7s 112us/step - loss: 0.2486 - acc: 0.9292\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 77us/step - loss: 0.1055 - acc: 0.9676\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - ETA: 0s - loss: 0.0719 - acc: 0.977 - 5s 79us/step - loss: 0.0719 - acc: 0.9779\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 30us/step\n", + "Loss : 0.10322229944784195\n", + "Accuracy : 0.9679\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/Nadam and sparse_categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/Nadam and sparse_categorical_crossentropy.ipynb new file mode 100644 index 000000000..3d0b21c9d --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/Nadam and sparse_categorical_crossentropy.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:56:01.888793 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:56:01.993737 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='Nadam',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:56:08.710401 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:56:08.727388 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:56:08.773231 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:56:08.975076 21164 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:56:09.004544 21164 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 6s 96us/step - loss: 0.2518 - acc: 0.9279\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 78us/step - loss: 0.1059 - acc: 0.9677\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 80us/step - loss: 0.0705 - acc: 0.9781\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 32us/step\n", + "Loss : 0.0884659024335444\n", + "Accuracy : 0.9736\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/RMSprop and categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/RMSprop and categorical_crossentropy.ipynb new file mode 100644 index 000000000..b684d93f5 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/RMSprop and categorical_crossentropy.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:20:53.481513 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:20:53.506445 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='RMSprop',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:20:55.066884 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:20:55.083831 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:20:55.193535 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:20:55.289287 6052 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:20:55.349130 6052 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 90us/step - loss: 0.3077 - acc: 0.9144\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 69us/step - loss: 0.1504 - acc: 0.9562\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 71us/step - loss: 0.1109 - acc: 0.9672\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 30us/step\n", + "Loss : 0.11531054184697569\n", + "Accuracy : 0.9667\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/RMSprop and kullback.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/RMSprop and kullback.ipynb new file mode 100644 index 000000000..b30ca7a7d --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/RMSprop and kullback.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:23:38.176280 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:23:38.195192 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='RMSprop',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:23:39.359616 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:23:39.370584 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:23:39.413471 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:23:39.594984 23156 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:23:39.641858 23156 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 76us/step - loss: 0.3136 - acc: 0.9135\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 75us/step - loss: 0.1553 - acc: 0.9545\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 77us/step - loss: 0.1128 - acc: 0.9672\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 39us/step\n", + "Loss : 0.11629472138825804\n", + "Accuracy : 0.9665\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/RMSprop and sparse_categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/RMSprop and sparse_categorical_crossentropy.ipynb new file mode 100644 index 000000000..93e37264a --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/RMSprop and sparse_categorical_crossentropy.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0810 01:17:32.877946 24500 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0810 01:17:33.517409 24500 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='RMSprop',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0810 01:17:34.758946 24500 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0810 01:17:35.195405 24500 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0810 01:17:35.242278 24500 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0810 01:17:35.425364 24500 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0810 01:17:35.475232 24500 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 5s 83us/step - loss: 0.3100 - acc: 0.9140\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 4s 68us/step - loss: 0.1512 - acc: 0.9555\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 4s 67us/step - loss: 0.1121 - acc: 0.9674\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 30us/step\n", + "Loss : 0.11368506491184234\n", + "Accuracy : 0.9682\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEICAYAAABRSj9aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3de3xV5Zn3/89FEnKAAEk4h4STioqlqBFtRQUPT1GnYsuMVWtHnTqMWqdOZ9p57GOfmY7Pb346M+2vHR+1nkqrnVbb0Wptaw9aQayIGCwqggrhYEJQgZAESAI5XL8/1tqws9mBhOxD9s73/XrllbXXutfe176zcu2173Xf9zJ3R0REsteQdAcgIiLJpUQvIpLllOhFRLKcEr2ISJZTohcRyXJK9CIiWU6JXkQkyynRy6BmZlvM7MJ0xyGSTEr0IiJZToleJA4z+2sz22hmDWb2jJlNDNebmX3HzD4ysyYze9PMTgm3XWJm68xsj5ltM7OvpvddiASU6EVimNn5wJ3AFcAEYCvweLj5fwDnAicAo4DPAbvCbd8H/sbdi4FTgBdSGLZIj3LTHYDIAPR5YIm7vw5gZl8HdpvZFKAdKAZOBFa5+/qo/dqBk83sDXffDexOadQiPdAZvcjhJhKcxQPg7nsJztrL3f0F4B7gXuBDM3vQzEaERRcBlwBbzexFM/tEiuMWiUuJXuRw9cDkyAMzGwaUAdsA3P1udz8dmEnQhPO1cP1r7r4QGAs8DfwsxXGLxKVELwJ5ZlYQ+SFI0Neb2Wwzywf+X+BVd99iZmeY2ZlmlgfsA9qATjMbamafN7OR7t4ONAOdaXtHIlGU6EXgWaA16ucc4H8DTwLbgenAlWHZEcBDBO3vWwmadL4VbvsCsMXMmoEbgWtSFL/IEZluPCIikt10Ri8ikuWU6EVEspwSvYhIllOiFxHJcgNuZOzo0aN9ypQp6Q5DRCSjrF69eqe7j4m3bcAl+ilTplBdXZ3uMEREMoqZbe1pm5puRESyXFYl+v0dGogoIhIraxJ9c1s7Z9+1lG88/Ra1DS3pDkdEZMAYcG30x+pARxcXnjSWn75Wy2Orarns4xO5ad50ThhXnO7QRCQF2tvbqauro62tLd2hJFVBQQGTJk0iLy+v1/v0awoEM1sA/CeQAzzs7nfFbL8R+BLB5E57gcXuvu5Iz1lVVeX9uRj7QVMbD7+0iZ+sep+WA51ceNI4bp4/ndMqS475OUVk4Nu8eTPFxcWUlZVhZukOJyncnV27drFnzx6mTp3abZuZrXb3qnj7HXOiN7Mc4D3gIqAOeA24KjqRm9kId28Oly8Dbnb3BUd63v4m+ojd+w7wwxVb+OGKLTS1tvOJaWXcPH86c48bnbUHgchgtn79ek488cSs//92d9555x1OOumkbuuPlOj700Y/B9jo7pvc/QDBrdYWxgTUHPVwGJCyGdRKhg3lKxedwIrbzucbl57Epp17+cL3V3HZPS/z27Xb6erSZG4i2Sbbkzwc23vsT6IvB2qjHteF67oxsy+ZWQ3w78CX4z2RmS02s2ozq96xY0c/QjrcsPxcbjhnGsv/cT53fvZjNLe1c+N/vc5F33mR/66upb2zK6GvJyIy0PQn0cf7WDnsNNnd73X36cD/BL4R74nc/UF3r3L3qjFj4g7s6rf83ByumlPJC/8wj/971akMzc3ha0+8yXn/vpQfvryZ1gPqmikix66xsZH77ruvz/tdcsklNDY2JiGiQ/qT6OuAiqjHkwhuwdaTx4HL+/F6CZEzxPj0xyfy7Jfn8oPrzqC8pJBv/nIdc//tBe55YQNNre3pDlFEMlBPib6z88gnkc8++yyjRo1KVlhA/7pXvgYcb2ZTCe6leSVwdXQBMzve3TeEDy8FNjBAmBnzTxzL/BPHsmpzA/ct28i3fv8e97+4iWvOmsxfzZ3C2OKCdIcpIhnitttuo6amhtmzZ5OXl8fw4cOZMGECa9asYd26dVx++eXU1tbS1tbGrbfeyuLFi4FD077s3buXiy++mLlz57JixQrKy8v5xS9+QWFhYb9jO+ZE7+4dZnYL8DuC7pVL3P1tM7sDqHb3Z4BbzOxCoJ3g1mvX9jviJJgztZQ5U+fwdn0T31tWw4PLa1jy8mauqJrE35w7nYrSonSHKCJ98C+/fJt19c1HL9gHJ08cwT9/emaP2++66y7Wrl3LmjVrWLZsGZdeeilr16492A1yyZIllJaW0trayhlnnMGiRYsoKyvr9hwbNmzgscce46GHHuKKK67gySef5Jpr+n9Hyn4NmHL3Zwnutxm97p+ilm/tz/On2syJI7nn6tPYvHMfD7xYo8FXInLM5syZ062v+913381TTz0FQG1tLRs2bDgs0U+dOpXZs2cDcPrpp7Nly5aExJI1I2MTaeroYdy1aBZ/d+EJBwdfPfWnbRp8JZIhjnTmnSrDhg07uLxs2TKef/55XnnlFYqKipg3b17cEbz5+fkHl3NycmhtbU1ILFkz100yjB9ZwDf+7GRe/p/nc+sFx/PalgY+e98KrnpwJS9t2IFurC4iEcXFxezZsyfutqamJkpKSigqKuKdd95h5cqVKY1NZ/S9EBl8tfjcaTy26n0eemkTX/j+Kj5WPpKb503nUzPHM2RI9g/UEJGelZWVcfbZZ3PKKadQWFjIuHHjDm5bsGAB999/P7NmzWLGjBmcddZZKY2tX3PdJEOipkBIpv0dnfz89W088GINW3a1MH3MMG48bzqXn1pOXo6+JImkw/r16w+bFiBbxXuvyZoCYdCKDL76Q5zBVz/Q4CsRGWCU6Puh2+Cr64PBV//yy3WcrcFXIjKAqI0+AcyM+TPGMn/GWF7b0sB9Sw8Nvvr8WZV8ce5UDb4SSQF3z/qJzY6luV1n9Al2xpRSfnD9HH795bnMmzGGh5ZvYu6/6c5XIslWUFDArl27sro3XGQ++oKCvp046mJskm3ZuY8Hltfw5OptdLrz6VkTuGneccwYr8FXIok02O8wlZQbjyRLtiX6CN35SkSSSYl+ANm97wCPvBLc+aqxpZ2zppVy87zjOOd43flKRI6dEv0AtG9/x8HBVx8279fgKxHpFyX6AWx/RydPvb6N+8PBV9Mig69mlzM0V9fKRaR3lOgzQGeX8+xb27lvWQ3rtzczcWQBf33uNK48o5LCoTnpDk9EBjgl+gzi7ix7bwffW1rDqi0NlA4byvWfnMJffmIKI4vyjv4EIjIoKdFnqMjgq6Xv7mB4fq4GX4lIj5ToM9y6+ma+92INv36zntycIfzF6cGdryrLdOcrEQko0WcJDb4SkZ4o0WeZD5uDwVc/fjUy+GosN88/ToOvRAYxJfospcFXIhKhRJ/lIoOvHn5pMx80t2nwlcggpEQ/SGjwlcjgpUQ/yHR2Ob9Zu537ltawToOvRAYFJfpBSoOvRAYPJXqheksD9y2r4YV3PtLgK5EspEQvB2nwlUh2UqKXwwSDrzbx5Oo6Db4SyQJK9NKjeIOvbpp3HKdP1uArkUyiRC9H1dhygEdWbOUHKzZr8JVIBlKil16LN/jqpnDwVY4GX4kMWEr00mf7Ozp5+k/buP/FTWzeuU+Dr0QGOCV6OWbxBl/dcM40rpxTQdHQ3HSHJyIhJXrpN3fnxfd2cN+yGlZt1uArkYFGiV4S6rDBV2eGg69GaPCVSLoo0UtSrN/ezPeW1fArDb4SSTslekmq2MFXfzZrAjfNm86J40ekOzSRQUOJXlJCg69E0udIib5f/eTMbIGZvWtmG83stjjb/97M1pnZm2b2BzOb3J/Xk4Ft3IgCbr/0ZFbcdj5fufAEqrfuZtH3VvC5B15h+Xs7GGgnFSKDxTGf0ZtZDvAecBFQB7wGXOXu66LKzAdedfcWM7sJmOfunzvS8+qMPnvEDr46pXwEN887ToOvRJIgWWf0c4CN7r7J3Q8AjwMLowu4+1J3bwkfrgQm9eP1JMMMy8/lhnOm8eI/zuPfFn2Mffs7ufnHr3PRd17kZ9W1HOjoSneIIoNCfxJ9OVAb9bguXNeTLwK/ibfBzBabWbWZVe/YsaMfIclAlJ+bw+fOqOT5vz+Pe64+lYLcHP7xiTc57z+WsuSPm2k50JHuEEWyWn8Sfbzv3nHbgczsGqAK+I942939QXevcveqMWPG9CMkGchyhhh/Nmsiv/7yXH54/RlUlBZxx6/WMffflvJ//7CBppb2dIcokpX6M4a9DqiIejwJqI8tZGYXArcD57n7/n68nmQJM2PejLHMmzH24OCrbz/3Hve/WMM1Z03W4CuRBOvPxdhcgouxFwDbCC7GXu3ub0eVORV4Aljg7ht687y6GDs4xQ6++vPTJ3GjBl+J9FrS+tGb2SXAd4EcYIm7/6uZ3QFUu/szZvY88DFge7jL++5+2ZGeU4l+cNu6Kxh89UR1HR1dXXz64xM1+EqkFzRgSjLOh81tfP+Pm/nxyq3sO9DJBSeO5eb5Gnwl0hMleslYjS0HePSVrfzg5c3sbmnnzKml3Dz/OM7Vna9EulGil4zXcqCDx1bV8tDyTRp8JRKHEr1kjQMdXTz9p21878Wa4M5Xo8M7X52qO1/J4KZEL1mns8v57doPuG/ZRt6ub2bCyAL+Wne+kkFMiV6ylruzfMNO7l26kVWbGygpyuP6s6dyre58JYOMEr0MCqu3NnDf0hr+8M5HDBuao8FXMqgo0cugosFXMhgp0cugpMFXMpgo0cugFn/w1XROn1ya7tBEEkaJXgQNvpLspkQvEiUy+OrhlzaxvSkYfHXTecex4BQNvpLMpUQvEkdk8NX9L9awSYOvJMMp0YscQbzBVzecM42rNPhKMogSvUgvRAZf3bd0I69q8JVkGCV6kT6KHXz1+bMmc4MGX8kApkQvcoze+SAYfPXLN+rJHTKE2ZWjmDSqkAmjCpg4qpCJowopD38Pz1czj6SPEr1IP23dtY8fvLyFt+ubqG9s44PmNjq7uv/vjCjI7Zb4g59DHwjjivPJzdFFXkmOIyV6nYKI9MLksmF887KZBx93dHaxY+9+6htb2dbYRn1j68GfbY1tVG/dTVNre7fnGGIwfkRB1IdAIeVRHwQTRxYyojBXffol4ZToRY5Bbs4QJowsZMLIQk6fHL/Mvv0dbG/q/kGwLfy9praR36zdTntn928Fw4bm9PhBUD6qkHEjCtT1U/pMiV4kSYbl53Lc2GKOG1scd3tXl7Nz7362Nbayvamt2wdBfWMba7c1sWvfgW77mMGY4flRTUSHXysoKcrTtwLpRoleJE2GDDHGjihg7IgCTu2hTFt758HEX9/UGtVE1Mb67c08v/5D9nd0ddunIG/IwaageB8EE0YWUJCXk/w3KAOGEr3IAFaQl8O0McOZNmZ43O3uTsO+A9Q3th38NrC9qfXg42Xv7uCjPfsP22/08KFRHwbdPxAmjipg9LB8hmg6iKyhRC+SwcyMsuH5lA3P52OTRsYts7+jkw+b9kc1C7VSHzYV1ezYy/INO2g50Nltn6E5Q4IupCMPXSuYEHPdQKOGM4f+UiJZLj83h8qyoh5vvOLuNLd2HPogaIpcK2hje2Mrr9Ts5IPmNmJ6kzKqKK/bB0Fsl9KxxQWaJG6AUKIXGeTMjJFFeYwsyuPkifFvytLR2cWHe/Yf1nuovrGNut0trNq8i+a2jm775A4xxo0o6PGi8YRRBYwo0NQSqaBELyJHlZszhPIwSfdkT1s725vaujcRhdcKqrfu5oM3t9MR87WgOD/3sGsE5VHfDMaNKCBPg8z6TYleRBKiuCCP4oI8ThgXvztpZ1R30tgPgsjYgt0thw8yGzeigAkjC+KOOi4fVcjIQnUnPRolehFJiZywKWfciAJOqyyJW6blQMfBMQWxo47Xbmvi9+s+5EBMd9Ki6EFmIwsO+yAYP7KA/NzB3Z1UiV5EBoyioblMHzOc6T10J+3qcnbtOxB2IT18+ol19c3s3Ht4d9IxxfmHeg/FuYBcNmxoVn8rUKIXkYwxZIgxpjifMcX5zJo0Km6ZtvZOPoh8K2jqPv3Eux/sYek7O2ht796dND93yKFrBSMPXSs4OEvpyEIKh2butwIlehHJKgV5OUwZPYwpo4fF3e7uNLa0d7tWEH0R+aUNO/lwTxuxE/uWDht62AdB9IXkMcMH7iAzJXoRGVTMjJJhQykZNpRTyuMPMmvv7Ir6VhBOQRF+EGzd1cKKml3s3d+9O2lejjF+ZPBBEO+i8YQ03rNAiV5EJEZezhAqSouoKI0/yAygua097kXj7Y1tvLq5oU/3LIg8HpukexYo0YuIHIMRBXmMGJ/HiePjDzLr7HI+2tMW96LxtsY2Vr+/m8aY7qSnlI/gV397TsJjVaIXEUmCnCHW53sWFOQlZ3CYEr2ISJoc7Z4FiaKxxSIiWU6JXkQky5nHdhZNMzPbAWztx1OMBnYmKJxEUlx9o7j6RnH1TTbGNdndx8TbMOASfX+ZWbW7V6U7jliKq28UV98orr4ZbHGp6UZEJMsp0YuIZLlsTPQPpjuAHiiuvlFcfaO4+mZQxZV1bfQiItJdNp7RyyBlZsvMbLeZ5ac7FpGBRIlesoKZTQHOARy4LIWvq9HlMuBlTKI3swVm9q6ZbTSz2+Jszzezn4bbXw3/8SPbvh6uf9fMPpXiuP7ezNaZ2Ztm9gczmxy1rdPM1oQ/z6Q4ruvMbEfU698Qte1aM9sQ/lyb4ri+ExXTe2bWGLXtSPX1l8BK4IfAtVH7FJrZt81sq5k1mdkfzaww3DbXzFaYWaOZ7TWzZjNbG34ziK6P68L97g7jdjO7y8w2ABvC+tptZu1m1mpmq83snKj9c8zsf5lZjZntCbdXmNm9ZvbtmPf/SzP7u6jHS8zsIzNb20N9fj48tt4M38vHo7ZtMbO3wvqqPtrfpi96Ede8sL4jf69/itp2xGMgyXF9LSqmteExVRpuS2Z9VZjZUjNbb2Zvm9mtccpY1DH2ppmdFrWtf/+T7j7gf4AcoAaYBgwF3gBOjilzM3B/uHwl8NNw+eSwfD4wNXyenBTGNR8oCpdvisQVPt6bxvq6Drgnzr6lwKbwd0m4XJKquGLK/y2wpDf1BWwMj4HTgXZgXLj+XmAZUB6+/ifDY6ES2ANcBeQBfxYeN2vD8jfE1NXbwG8AI/jW0BTW0cSwjv4mfF+bgG8AHwAF4f5fA94CZoT7fxwoA+YA9cCQsNxooCUSe7juXOA0YG0P7/uTkb8PcDHwatS2LcDoJB1jR4trHvCr/h4DiY4rpuyngRdSVF8TgNPC5WLgvTj/k5dEHWNnRf6WififzJQz+jnARnff5O4HgMeBhTFlFgKPhMtPABeYmYXrH3f3/e6+mSAhzElVXO6+1N1bwocrgUkJeu1+xXUEnwKec/cGd98NPAcsSFNcVwGPHe1JzWwuMBn4mbuvJkgkV5vZEOCvgFvdfZu7d7r7CnffD3weeN7dH3P3dnf/FcHfpyelwKMe/ucBzQQfGOcR1NcD7r6JoL5qwm0zwrI3AN9w93c98Ia773L3VQQfGBeE5a4Elrn7h5EXdfflQENPQYXvZ3f4MFXH11HjOoL+HJuJjqtXx1ciuPt2d389XN4DrCc4+Yi2kPAYc/eVwCgzm0AC/iczJdGXA7VRj+s4vJIOlnH3DoJ/oLJe7pvMuKJ9keATO6LAzKrNbKWZXZ6gmPoS16LwK+ITZlbRx32TGRcWNHFNBV6IWt1TfV0L/N7dI0PHfxKuGw0UECTeWBU9rO9JfkzstWHs5UCtmf2Dma0PX3cJMDJ8/aO91iPANeHyNcCP+hBTrNjjy4Hfh01Fi/vxvMfqE2b2hpn9xsxmhuuSeXz1mpkVESTLJ6NWp6S+LGhWPhV4NWZTT3XT7zrLlAtJ8W7EGNsvtKcyvdn3WPX6uc3sGqCK4AwwotLd681sGvCCmb3l7n1JPv2J65fAY+6+38xuJEg45/dy32TGFXEl8IS7R9/F+bD6Imj6uALIMbMPwnL5wCiCr8ttwHSCJoJotfT8zW4fEH1rofE9lIscX5MJzsYuAD4T7v8NDr3f2jCGeO3G/wWsDdvWTwKe7uG1jsjM5hMk+rlRq88O62ss8JyZvROe8abC6wRzr+w1s0sI3tfxJPf46otPAy+7e/TZf9Lry8yGE3y4/J27N8dujrNLQnJYppzR1xGcFUVMIvgHj1vGgp4QIwm+wvVm32TGhZldCNwOXBY2GwDg7vXh700E7cKnpiqusOkgEstDBG3bvdo3mXFFuZKYr9U91NflQCfBtZjZ4c9JwEsEF2iXAP+fmU0ML4p+woLulz8GLjSzK8ws18zKwucAWAN81syKzOw4ggS6Pyb28WHskbOrDmBHWOYsIPq2Qw8D/8fMjg8vuM0KXw93rwNeIziTf9LdW49UgfGY2azwNRa6+6449fUR8BSJa7I8Kndvdve94fKzQJ6ZjSa5x1dfHOn4Skp9mVkeQZL/sbv/PE6Rnuqm/3WWjAsPif4h+OaxieCrfOQCzsyYMl+i+8XYn4XLM+l+MXYTibsY25u4TiX42n58zPoSID9cHg1sIEEXpXoZ14So5c8AK/3QhZ/NYXwl4XJpquIKy80guDBmR6sv4LfAt+M8xxUEF0SLge8C2wia85YDhWGZcwi+PjcTnHX/A8FZ92jg9wQXa18GvsnhF2PfiKmvH4XP0wH8cxj/hWGZHIIz/M3hc74GTIqK9ZrwOef3UG9T6PmiZyXBdadPxqwfBhRHLa8AFiT4//JIcY2P/P0IEub7Yd316hhIVlzh9shJ4LBU1Vf43h8FvnuEMpfS/WLsqkT9TyascpP9Q3BF+j2CpHl7uO4OgrNkCNpi/zs86FcB06L2vT3c713g4hTH9TzwIcFZ4hrgmXD9Jwl6YrwR/v5iiuO6kyB5vQEsBU6M2vevwnrcCFyfyrjCx98E7orZL9n19RiwnaDHTh3BWfyNwI3hdiPowVMTvn5VouqLoKfI+4S9b/oY18PA7qjjqzpcPy2sqzfCv/PtKa6vW6KOr5VEfRDFOwZSFVdY5jqCDhrR+yW7vuYSfJi/GfW3uiRVx5imQBBJo/Dr/OME3xDuSHc8kp0ypY1eJOuY2UlAI8FF4++mORzJYjqjFxHJcjqjFxHJcgOuH/3o0aN9ypQp6Q5DRCSjrF69eqf3cM/YAZfop0yZQnV1QucTEhHJema2tadtaroREclyA+6MXkRkMOnqcnbs3c/7DS10dTlnTitL+Gso0YuIJNm+/R3U7m7h/V0tvN/QQm1D+Ht3K7UNLezv6AJg1qSRPHPL3KM8W99lRKJvb2+nrq6Otra2dIeSdAUFBUyaNIm8vLx0hyIivdTZ5WxvauX9hhbqGoLfkZ/ahhZ27TvQrfzw/FwqS4s4bsxw5s8YQ2VpERWlRUwpG5aU+DIi0dfV1VFcXMyUKVMIppjPTu7Orl27qKurY+rUqekOR0SiNLW2HzwT73ZW3tDCtsZW2jsPjUnKGWJMHFVAZWkR/2PmOCpKi6goKaKyNPgZVZSX0lyWEYm+ra0t65M8gJlRVlbGjh070h2KyKDT3tlFfePhZ+PB71aaWtu7lS8pyqOitIiZ5SO5+GMTDibxipIiJowqIC9n4PR1yYhED2R9ko8YLO9TJNXcnYZ9Bw4m8brdrQfbzN9vaGF7UytdURMFDM0ZwqSSQipKi5hdMepQIg9/RhRkTvNqxiR6EZGjaWvvpC68wBmviWXfgc5u5UcPz6eytJAzppRQWVp+MIlXlhYxbkQBOUOy48RLib6XGhsb+clPfsLNN9/cp/0uueQSfvKTnzBq1KgkRSYyeES6IkYn8kgSr21o5YPm7h02CvKGHGxOOWta2cGz8sqyIiaVFFI0dHCkwMHxLhOgsbGR++6777BE39nZSU5OTo/7Pfvss8kOTSSrRHdFrI1zdh7pighgBuNHFFBRWsTc40eHTSuFB5tYxgzPV3MoGZjo/+WXb7OuPvZWi/1z8sQR/POnZx6xzG233UZNTQ2zZ88mLy+P4cOHM2HCBNasWcO6deu4/PLLqa2tpa2tjVtvvZXFi4N7C0emdNi7dy8XX3wxc+fOZcWKFZSXl/OLX/yCwsLChL4XkYGus8v5oLktSOTRSXx38Hjn3sO7IlaUFjF9zLBuXRErSosoH1VIQV7PJ1oSyLhEny533XUXa9euZc2aNSxbtoxLL72UtWvXHuwGuWTJEkpLS2ltbeWMM85g0aJFlJV1H+G2YcMGHnvsMR566CGuuOIKnnzySa655pp0vB2RpIp0RYzXxHKkrogXnjTuYBt5uroiZqNeJXozWwD8J8G9Lx9297titk8muAnzGIJ7MV7jwU2PMbNKgtudVRDcSusSd99yrAEf7cw7VebMmdOtr/vdd9/NU089BUBtbS0bNmw4LNFPnTqV2bNnA3D66aezZcuWlMUrkkixXRFrG7o3scR2RRxVlEdlTFfESL/ygdYVMRsdNdGbWQ7BfQwvIrgH42tm9oy7r4sq9i3gUXd/xMzOJ7gf6RfCbY8C/+ruz5nZcKCLLDBs2KERbMuWLeP555/nlVdeoaioiHnz5sUdxZufn39wOScnh9bW1pTEKtJX7s7ulvbuPVd2Bc0r7ze0UN/YvStiXo4xqSRoTvl4xciM7oqYjXpzRj8H2OjumwDM7HFgIRCd6E8GvhIuLwWeDsueDOS6+3MA7r43QXGnXHFxMXv27Im7rampiZKSEoqKinjnnXdYuXJliqMT6bvorojR87AcrSti1eQSKk4t79bEkk1dEbNRbxJ9OVAb9bgOODOmzBvAIoLmnc8AxWZWBpwANJrZz4GpwPPAbe7e7Qgys8XAYoDKyspjeBvJV1ZWxtlnn80pp5xCYWEh48aNO7htwYIF3H///cyaNYsZM2Zw1llnpTFSkYC7s2PP/pg28kNNLLFdEfNzhxxM3JGuiBUHz8wHT1fEbHTUe8aa2V8An3L3G8LHXwDmuPvfRpWZCNxDkMyXEyT9mQTNPd8HTgXeB34KPOvu3+/p9aqqqjz2xiPr16/npJNO6vOby1SD7f3KsWs50EFtQ2vcwUG1u1toa4/TFbHkUAKvLFNXxGxhZqvdvSrett58RNcRXEiNmATURxdw93rgs+GLDbCCBGcAAA5oSURBVAcWuXuTmdUBf4pq9nkaOIsg+YvIUXTriri75bA+5T11RZw2ZhjzZozpNtJTXREHr94k+teA481sKrANuBK4OrqAmY0GGty9C/g6QQ+cyL4lZjbG3XcA5wO6T6BIlOa29jh9yoMmlrrdLYd1RZwwMn5XxIrSIkrUFVHiOGqid/cOM7sF+B1B98ol7v62md0BVLv7M8A84E4zc4Kmmy+F+3aa2VeBP1hw9K0GHjqWQN19UBzAR2tKk8wT6YoYt4lldwuNLfG7Ip48cQSfmjm+W59ydUWUY3HUNvpUi9dGv3nzZoqLiykrK8vqZB+Zj37Pnj2ajz6DxOuKGH12fqSuiJWR4folh7oijixUV0Tpu/620afdpEmTqKurGxTztEfuMCUDz4fNbazb3hzTpzxoYtm7v6Nb2dHD86koLeT0ySV8Rl0RJc0yItHn5eXpDFfSZu22Jh5cvolfv7WdzvDUPLor4plTS7sl8kklhQzLz4h/LRkkdDSKxOHuvLRhJw8u38QfN+5keH4uX5w7lYtOHsfk0iLGFKsromQOJXqRKO2dXfzqzXoeXL6Z9dubGTcin9suPpGrz6zUMH7JWEr0IsDe/R08vup9lvxxM/VNbRw/djj//uezWDh7Ivm56nsumU2JXga1j/a08cOXt/BfK7fS3NbBmVNL+X8+cwrzThjLEF0wlSyhRC+D0saP9vLQ8k089adtdHR1seCU8Sw+dzqzK3TLR8k+SvQyqFRvaeD+Fzfx/PoPyc8dwhVnTOKGudOYMnrY0XcWyVBK9JL1Oruc59Z9yIPLa3j9/UZKivL48gXHc+0nJlM2PP/oTyCS4ZToJWu1tXfy89e38dBLm9i8cx+VpUXcsXAmf3F6BYVDdYFVBg8lesk6jS0H+NErW3nklS3s3HuAWZNGcs/Vp7Jg5nhyNU+MDEJK9JI1ahta+P4fN/Oz6lpaDnQyb8YY/ubc6Zw1rVSDm2RQU6KXjBc9RYEBC2eXs/jcacwYX5zu0EQGBCV6yUiRKQoeWF7Dyxt3HZyi4PqzpzBhZGG6wxMZUJToJaNoigKRvlOil4ygKQpEjp0SvQxomqJApP+U6GVA0hQFIomjRC8DiqYoEEk8JXpJu3hTFNx6wfH8paYoEEkIJXpJm7b2Tp58vY6HX9qsKQpEkkiJXlJOUxSIpJYSvaSMpigQSQ8lekk6TVEgkl69SvRmtgD4TyAHeNjd74rZPhlYAowBGoBr3L0uavsIYD3wlLvfkqDYZQDTFAUiA8dRE72Z5QD3AhcBdcBrZvaMu6+LKvYt4FF3f8TMzgfuBL4Qtf3/AC8mLmwZqDRFgcjA05sz+jnARnffBGBmjwMLgehEfzLwlXB5KfB0ZIOZnQ6MA34LVCUgZhmA4k1R8B9/PouFs8sZmqsLrCLp1JtEXw7URj2uA86MKfMGsIigeeczQLGZlQG7gW8TnN1f0O9oZcD5qLmNH6zYwo81RYHIgNWbRB/vv9VjHn8VuMfMrgOWA9uADuBm4Fl3rz1SrwozWwwsBqisrOxFSJJumqJAJHP0JtHXARVRjycB9dEF3L0e+CyAmQ0HFrl7k5l9AjjHzG4GhgNDzWyvu98Ws/+DwIMAVVVVsR8iMkC4O9Vbd/OApigQySi9SfSvAceb2VSCM/UrgaujC5jZaKDB3buArxP0wMHdPx9V5jqgKjbJy8AXmaLggeU1/ElTFIhknKMmenfvMLNbgN8RdK9c4u5vm9kdQLW7PwPMA+40MydouvlSEmOWFNEUBSLZwdwHVktJVVWVV1dXpzuMQS3eFAWLz52mKQpEBjAzW+3ucXs2amSsHBSZouCnr9XS2t7J/BljWKwpCkQynhK9sHZbEw8s38Szb21niMFlH9cUBSLZRIl+kHJ3lm/YyYOaokAk6ynRDzKaokBk8FGiHyQ0RYHI4KVEn+U0RYGIKNFnKU1RICIRSvRZRFMUiEg8SvRZQFMUiMiRKNFnME1RICK9oUSfgeJNUXDP1adqigIRiUuJPoNoigIRORZK9BlAUxSISH8o0Q9QmqJARBJFiX6AiUxR8MCLm3jngz2aokBE+k2JfoCInaLghHGaokBEEkOJPs0iUxT818qt7NEUBSKSBEr0aaIpCkQkVZToUyjeFAWfO6OCG86ZyuQyTVEgIsmhRJ8CmqJARNJJiT6JNEWBiAwESvRJEJmi4IcrtrBrn6YoEJH0UqJPIE1RICIDkRJ9AmiKAhEZyJToj5GmKBCRTNGrRG9mC4D/BHKAh939rpjtk4ElwBigAbjG3evMbDbwPWAE0An8q7v/NIHxp1y8KQq+fvGJXKUpCkRkgDpqojezHOBe4CKgDnjNzJ5x93VRxb4FPOruj5jZ+cCdwBeAFuAv3X2DmU0EVpvZ79y9MeHvJMk0RYGIZKrenNHPATa6+yYAM3scWAhEJ/qTga+Ey0uBpwHc/b1IAXevN7OPCM76MybRa4oCEcl0vUn05UBt1OM64MyYMm8Aiwiadz4DFJtZmbvvihQwsznAUKAm9gXMbDGwGKCysrIv8SeNpigQkWzRm0Qf77TVYx5/FbjHzK4DlgPbgI6DT2A2AfgRcK27dx32ZO4PAg8CVFVVxT53yhyaoqCG59d/pCkKRCQr9CbR1wEVUY8nAfXRBdy9HvgsgJkNBxa5e1P4eATwa+Ab7r4yEUEnWjBFwQc8sHyTpigQkazTm0T/GnC8mU0lOFO/Erg6uoCZjQYawrP1rxP0wMHMhgJPEVyo/e9EBp4ImqJARAaDoyZ6d+8ws1uA3xF0r1zi7m+b2R1Atbs/A8wD7jQzJ2i6+VK4+xXAuUBZ2KwDcJ27r0ns2+ib3fsO8KOVW3kkaoqCe68+jQWnjCdHF1hFJMuYe9qaxOOqqqry6urqpDy3pigQkWxlZqvdvSretkExMlZTFIjIYJa1iV5TFIiIBLIu0WuKAhGR7rIm0e/b38FjmqJAROQwWZXo//2373Jq5ShNUSAiEiVrEv3YEQW88NXzmFRSlO5QREQGlKxq01CSFxE5XFYlehEROZwSvYhIlhtwI2PNbAewtR9PMRrYmaBwEklx9Y3i6hvF1TfZGNdkdx8Tb8OAS/T9ZWbVPQ0DTifF1TeKq28UV98MtrjUdCMikuWU6EVEslw2JvoH0x1ADxRX3yiuvlFcfTOo4sq6NnoREekuG8/oRUQkihK9iEiWy5hEb2YLzOxdM9toZrfF2Z5vZj8Nt79qZlOitn09XP+umX0qxXH9vZmtM7M3zewPZjY5alunma0Jf55JcVzXmdmOqNe/IWrbtWa2Ify5NsVxfScqpvfMrDFqWzLra4mZfWRma3vYbmZ2dxj3m2Z2WtS2ZNbX0eL6fBjPm2a2wsw+HrVti5m9FdZXQm/b1ou45plZU9Tf65+ith3xGEhyXF+LimlteEyVhtuSWV8VZrbUzNab2dtmdmucMsk7xtx9wP8Q3Ku2BpgGDAXeAE6OKXMzcH+4fCXw03D55LB8PjA1fJ6cFMY1HygKl2+KxBU+3pvG+roOuCfOvqXApvB3Sbhckqq4Ysr/LcE9ipNaX+FznwucBqztYfslwG8AA84CXk12ffUyrk9GXg+4OBJX+HgLMDpN9TUP+FV/j4FExxVT9tPACymqrwnAaeFyMfBenP/JpB1jmXJGPwfY6O6b3P0A8DiwMKbMQuCRcPkJ4AIzs3D94+6+3903AxvD50tJXO6+1N1bwocrgUkJeu1+xXUEnwKec/cGd98NPAcsSFNcVwGPJei1j8jdlwMNRyiyEHjUAyuBUWY2geTW11HjcvcV4etC6o6v3tRXT/pzbCY6rlQeX9vd/fVweQ+wHiiPKZa0YyxTEn05UBv1uI7DK+lgGXfvAJqAsl7um8y4on2R4BM7osDMqs1spZldnqCY+hLXovAr4hNmVtHHfZMZF2ET11TghajVyaqv3ugp9mTWV1/FHl8O/N7MVpvZ4jTE8wkze8PMfmNmM8N1A6K+zKyIIFk+GbU6JfVlQbPyqcCrMZuSdoxlynz08e4gEtsvtKcyvdn3WPX6uc3sGqAKOC9qdaW715vZNOAFM3vL3WtSFNcvgcfcfb+Z3Ujwbej8Xu6bzLgirgSecPfOqHXJqq/eSMfx1WtmNp8g0c+NWn12WF9jgefM7J3wjDcVXieYe2WvmV0CPA0czwCpL4Jmm5fdPfrsP+n1ZWbDCT5c/s7dm2M3x9klIcdYppzR1wEVUY8nAfU9lTGzXGAkwVe43uybzLgwswuB24HL3H1/ZL2714e/NwHLCD7lUxKXu++KiuUh4PTe7pvMuKJcSczX6iTWV2/0FHsy66tXzGwW8DCw0N13RdZH1ddHwFMkrsnyqNy92d33hsvPAnlmNpoBUF+hIx1fSakvM8sjSPI/dvefxymSvGMsGRceknAhI5fgAsRUDl3AmRlT5kt0vxj7s3B5Jt0vxm4icRdjexPXqQQXn46PWV8C5IfLo4ENJOiiVC/jmhC1/BlgpR+68LM5jK8kXC5NVVxhuRkEF8YsFfUV9RpT6Pni4qV0v1C2Ktn11cu4KgmuO30yZv0woDhqeQWwIIVxjY/8/QgS5vth3fXqGEhWXOH2yEngsFTVV/jeHwW+e4QySTvGEla5yf4huCL9HkHSvD1cdwfBWTJAAfDf4UG/CpgWte/t4X7vAhenOK7ngQ+BNeHPM+H6TwJvhQf6W8AXUxzXncDb4esvBU6M2vevwnrcCFyfyrjCx98E7orZL9n19RiwHWgnOIP6InAjcGO43YB7w7jfAqpSVF9Hi+thYHfU8VUdrp8W1tUb4d/59hTHdUvU8bWSqA+ieMdAquIKy1xH0EEjer9k19dcguaWN6P+Vpek6hjTFAgiIlkuU9roRUTkGCnRi4hkOSV6EZEsp0QvIpLllOhFRLKcEr2ISJZTohcRyXL/P1OJ+M+uZ9L0AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/adam and categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/adam and categorical_crossentropy.ipynb new file mode 100644 index 000000000..0e645e55d --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/adam and categorical_crossentropy.ipynb @@ -0,0 +1,261 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### optimizer 'adam' and loss function 'categorical_crossentropy'" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0809 09:28:27.482859 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0809 09:28:27.504352 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='adam',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0809 09:28:29.782780 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0809 09:28:29.798922 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0809 09:28:29.978999 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0809 09:28:30.143224 26680 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0809 09:28:30.219883 26680 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 7s 115us/step - loss: 0.3116 - acc: 0.9139\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 7s 109us/step - loss: 0.1400 - acc: 0.9584\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 7s 110us/step - loss: 0.0961 - acc: 0.9714\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 40us/step\n", + "Loss : 0.09852424093633891\n", + "Accuracy : 0.969\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/adam and kullback_leibler_divergence.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/adam and kullback_leibler_divergence.ipynb new file mode 100644 index 000000000..7363a6648 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/adam and kullback_leibler_divergence.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0809 09:52:09.003685 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0809 09:52:09.025937 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='adam',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0809 09:52:23.724141 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0809 09:52:23.737282 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0809 09:52:23.781199 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0809 09:52:24.017474 18084 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0809 09:52:24.083696 18084 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 9s 149us/step - loss: 0.3121 - acc: 0.9129\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 7s 109us/step - loss: 0.1387 - acc: 0.9588\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 6s 105us/step - loss: 0.0953 - acc: 0.9723\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 41us/step\n", + "Loss : 0.10315677959099412\n", + "Accuracy : 0.969\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/hand digit recognition in keras.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/hand digit recognition in keras.ipynb new file mode 100644 index 000000000..8895caf01 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/hand digit recognition in keras.ipynb @@ -0,0 +1,250 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Implement hand digit recognition in Keras with dataset at https://keras.io/examples/mnist_dataset_api/ with a simple 3-layer FFNN with fully connected layers (no convolution or other operations)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Opitimizer 'adam' and loss function 'sparse_categorical_crossentropy'" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='adam',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 8s 140us/step - loss: 0.3175 - acc: 0.9119\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 7s 108us/step - loss: 0.1422 - acc: 0.9578\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 6s 108us/step - loss: 0.0966 - acc: 0.9710\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "flatten_2 (Flatten) (None, 784) 0 \n", + "_________________________________________________________________\n", + "dense_3 (Dense) (None, 128) 100480 \n", + "_________________________________________________________________\n", + "dense_4 (Dense) (None, 10) 1290 \n", + "=================================================================\n", + "Total params: 101,770\n", + "Trainable params: 101,770\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "#trained model summary\n", + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 41us/step\n", + "Loss : 0.10255768429301679\n", + "Accuracy : 0.9692\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + } + ], + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/sgd and categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/sgd and categorical_crossentropy.ipynb new file mode 100644 index 000000000..32c376a12 --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/sgd and categorical_crossentropy.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0809 10:10:42.337410 11744 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0809 10:10:42.362914 11744 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='sgd',\n", + " loss='categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0809 10:10:54.682659 11744 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0809 10:10:54.693359 11744 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0809 10:10:54.733964 11744 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0809 10:10:54.980892 11744 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0809 10:10:55.065901 11744 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 6s 106us/step - loss: 1.1406 - acc: 0.7587\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 88us/step - loss: 0.4841 - acc: 0.8748\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 86us/step - loss: 0.3910 - acc: 0.8925\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 41us/step\n", + "Loss : 0.35191330649852753\n", + "Accuracy : 0.9064\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/sgd and kullback.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/sgd and kullback.ipynb new file mode 100644 index 000000000..726d3575d --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/sgd and kullback.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "from keras.utils import to_categorical\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()\n", + "\n", + "ytrain= to_categorical(ytrain)\n", + "ytest= to_categorical(ytest)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0809 10:28:12.763304 15188 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0809 10:28:12.783288 15188 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='sgd',\n", + " loss='kullback_leibler_divergence',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0809 10:28:21.613856 15188 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0809 10:28:21.631637 15188 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0809 10:28:21.682727 15188 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:1521: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0809 10:28:21.932633 15188 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0809 10:28:21.993745 15188 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 6s 92us/step - loss: 1.1251 - acc: 0.7591\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 84us/step - loss: 0.4784 - acc: 0.8749\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 84us/step - loss: 0.3879 - acc: 0.8935\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 42us/step\n", + "Loss : 0.3485983126282692\n", + "Accuracy : 0.9058\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[5]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(xtest[5])\n", + "plt.show()" + ] + }, + { + "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 +} diff --git a/shashiraj0308@gmail.com/Project-Code/Code/sgd and sparse_categorical_crossentropy.ipynb b/shashiraj0308@gmail.com/Project-Code/Code/sgd and sparse_categorical_crossentropy.ipynb new file mode 100644 index 000000000..ca94fc2ca --- /dev/null +++ b/shashiraj0308@gmail.com/Project-Code/Code/sgd and sparse_categorical_crossentropy.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "#importing required modules\n", + "\n", + "import keras\n", + "import numpy as np\n", + "from keras.datasets import mnist \n", + "from keras.models import Sequential\n", + "from keras.layers import Flatten,Dense\n", + "from keras.utils import normalize\n", + "from tensorflow.nn import relu,softmax\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#spliting dataset into training data and teting data\n", + "\n", + "(xtrain,ytrain),(xtest,ytest) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#scaling the pixel values between 0-1\n", + "xtrain = normalize(xtrain,axis=1)\n", + "xtest = normalize(xtest,axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Logging before flag parsing goes to stderr.\n", + "W0809 10:16:56.500693 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", + "\n", + "W0809 10:16:56.527974 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", + "\n" + ] + } + ], + "source": [ + "#defining model and adding layers\n", + "\n", + "model = Sequential()\n", + "model.add(Flatten())\n", + "model.add(Dense(128,activation=relu))\n", + "model.add(Dense(10,activation=softmax))\n", + "\n", + "model.compile(optimizer='sgd',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "W0809 10:17:08.739080 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", + "\n", + "W0809 10:17:08.752942 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", + "\n", + "W0809 10:17:08.795526 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3341: The name tf.log is deprecated. Please use tf.math.log instead.\n", + "\n", + "W0809 10:17:09.030250 22136 deprecation.py:323] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "W0809 10:17:09.071861 22136 deprecation_wrapper.py:119] From c:\\users\\ravin\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "60000/60000 [==============================] - 6s 94us/step - loss: 1.1481 - acc: 0.7507\n", + "Epoch 2/3\n", + "60000/60000 [==============================] - 5s 84us/step - loss: 0.4869 - acc: 0.8738\n", + "Epoch 3/3\n", + "60000/60000 [==============================] - 5s 84us/step - loss: 0.3943 - acc: 0.8912\n" + ] + } + ], + "source": [ + "# training the model\n", + "history=model.fit(xtrain,ytrain,epochs=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 0s 41us/step\n", + "Loss : 0.3552831846117973\n", + "Accuracy : 0.9038\n" + ] + } + ], + "source": [ + "# calculating the accuracy and loss\n", + "\n", + "loss,accuracy= model.evaluate(xtest,ytest) \n", + "print(\"Loss :\",loss)\n", + "print(\"Accuracy : \",accuracy)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.subplot(211)\n", + "plt.title('Loss')\n", + "plt.plot(history.history['loss'], label='train')\n", + "plt.legend()\n", + "# plot accuracy during training\n", + "plt.subplot(212)\n", + "plt.title('Accuracy')\n", + "plt.plot(history.history['acc'], label='train')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "#prediction\n", + "\n", + "predict = model.predict([xtest])\n", + "print(np.argmax(predict[1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "plt.imshow(xtest[1])\n", + "plt.show()" + ] + }, + { + "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 +}