{"cells":[{"metadata":{"id":"view-in-github"},"cell_type":"markdown","source":"<a href=\"https://colab.research.google.com/github/AmitHasanShuvo/Machine-Learning-Projects/blob/master/CIFAR_Images_classification_using_CNN.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"},{"metadata":{},"cell_type":"markdown","source":"Author: Kazi Amit Hasan <br>\nDepartment of Computer Science & Engineering, <br>\nRajshahi University of Engineering & Technology (RUET) <br>\nWebsite: https://amithasanshuvo.github.io/ <br>\nLinkedin: https://www.linkedin.com/in/kazi-amit-hasan-514443140/ <br>\nEmail: kaziamithasan89@gmail.com"},{"metadata":{"id":"BJOTtc0h-KBW","trusted":true},"cell_type":"code","source":"import tensorflow as tf\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport pandas as pd\nfrom tensorflow.keras import datasets,models,layers","execution_count":null,"outputs":[]},{"metadata":{"id":"_0XntK-9-Xni","trusted":true},"cell_type":"code","source":"data = tf.keras.datasets.cifar10\n# The CIFAR10 dataset contains 60,000 color images in 10 classes, \n# with 6,000 images in each class. The dataset is divided into 50,000 training\n# images and 10,000 testing images.\n","execution_count":null,"outputs":[]},{"metadata":{"id":"w4E5rpfa-rHw","trusted":true},"cell_type":"code","source":"(train_images, train_labels), (test_images, test_labels) = data.load_data()","execution_count":null,"outputs":[]},{"metadata":{"id":"cjRHOlA7-3Xs","outputId":"3c63159c-622f-4d9b-9395-011d320a1dfb","trusted":true},"cell_type":"code","source":"train_images.shape","execution_count":null,"outputs":[]},{"metadata":{"id":"sKrZe-hG_Zg5","outputId":"8c0638c2-cb24-4f7c-873e-3a0689db3636","trusted":true},"cell_type":"code","source":"test_images.shape\n","execution_count":null,"outputs":[]},{"metadata":{"id":"UOifud8SCCe2","outputId":"411891af-9655-41de-f6be-6108542c537d","trusted":true},"cell_type":"code","source":"print(train_labels[0])","execution_count":null,"outputs":[]},{"metadata":{"id":"LQ-xHbc-AdbQ","outputId":"0a48ed00-04f4-4650-d41f-d0de9326e6d4","trusted":true},"cell_type":"code","source":"\nprint(train_images[1])","execution_count":null,"outputs":[]},{"metadata":{"id":"y-ZX9DWRBQuT","outputId":"db846712-ab51-492c-8cd2-267e359e630b","trusted":true},"cell_type":"code","source":"plt.figure()\nplt.imshow(train_images[1])\nplt.colorbar()\nplt.grid(False)\n\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"id":"gK5dO_UCBagS","outputId":"65af6c9d-baea-4bb9-959e-f6a4e998fa2e","trusted":true},"cell_type":"code","source":"for i in range(6):\n\t# define subplot\n\tplt.subplot(330 + 1 + i)\n\t# plot raw pixel data\n\tplt.imshow(train_images[i])\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"id":"8-UvlUONFRuv","trusted":true},"cell_type":"code","source":"#Normalize\n\ntrain_images, test_images = train_images / 255.0, test_images / 255.0\n","execution_count":null,"outputs":[]},{"metadata":{"id":"YcxRj8L1H1Qq","trusted":true},"cell_type":"code","source":"model = tf.keras.models.Sequential([\n                        tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),\n                        tf.keras.layers.MaxPooling2D(2, 2),\n                        tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),\n                        tf.keras.layers.MaxPooling2D(2, 2),\n                        tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),\n                        tf.keras.layers.Flatten(),\n                        tf.keras.layers.Dense(128, activation='relu'),\n                        tf.keras.layers.Dense(10, activation='softmax')])\n\n","execution_count":null,"outputs":[]},{"metadata":{"id":"uayWzDZLJI9R","outputId":"a6a9f26d-5351-4cd1-d552-5d0902b4fe7e","trusted":true},"cell_type":"code","source":"model.summary()","execution_count":null,"outputs":[]},{"metadata":{"id":"MhW57kW8JKxL","outputId":"9f5b5379-89eb-4721-e65b-69b289ca1eea","trusted":true},"cell_type":"code","source":"model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])\n\nhistory = model.fit(train_images, train_labels, epochs=20, \n                    validation_data=(test_images, test_labels))","execution_count":null,"outputs":[]},{"metadata":{"id":"LKsXT41rJ5Kg","outputId":"753524fb-ec08-49c3-82f4-b911601fbd37","trusted":true},"cell_type":"code","source":"\nplt.plot(history.history['accuracy'], label='accuracy')\nplt.plot(history.history['val_accuracy'], label = 'val_accuracy')\nplt.xlabel('Epoch')\nplt.ylabel('Accuracy')\nplt.ylim([0.5, 1])\nplt.legend(loc='lower right')","execution_count":null,"outputs":[]}],"metadata":{"colab":{"name":"CIFAR Images classification using CNN.ipynb","provenance":[],"authorship_tag":"ABX9TyNkXSKkZdHjFq5x3sXD54+p","include_colab_link":true},"kernelspec":{"name":"python3","display_name":"Python 3"}},"nbformat":4,"nbformat_minor":4}