{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "6f315eb9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From C:\\Users\\Hussnain Khalid\\anaconda3\\Lib\\site-packages\\keras\\src\\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead.\n", "\n" ] } ], "source": [ "from keras.utils import to_categorical\n", "from keras.preprocessing.image import load_img\n", "from keras.models import Sequential\n", "from keras.layers import Dense, Conv2D, Dropout, Flatten, MaxPooling2D\n", "import os\n", "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "id": "935ca020", "metadata": {}, "outputs": [], "source": [ "TRAIN_DIR = 'train/'\n", "TEST_DIR = 'test/'" ] }, { "cell_type": "code", "execution_count": 3, "id": "332e0c3d", "metadata": {}, "outputs": [], "source": [ "def createdataframe(dir):\n", " image_paths = []\n", " labels = []\n", " for label in os.listdir(dir):\n", " for imagename in os.listdir(os.path.join(dir,label)):\n", " image_paths.append(os.path.join(dir,label,imagename))\n", " labels.append(label)\n", " print(label, \"completed\")\n", " return image_paths,labels" ] }, { "cell_type": "code", "execution_count": 4, "id": "01a141b2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "angry completed\n", "disgust completed\n", "fear completed\n", "happy completed\n", "neutral completed\n", "sad completed\n", "surprise completed\n" ] } ], "source": [ "train = pd.DataFrame()\n", "train['image'], train['label'] = createdataframe(TRAIN_DIR)" ] }, { "cell_type": "code", "execution_count": 5, "id": "c511fc80", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " image label\n", "0 train/angry\\Training_10118481.jpg angry\n", "1 train/angry\\Training_10120469.jpg angry\n", "2 train/angry\\Training_10131352.jpg angry\n", "3 train/angry\\Training_10161559.jpg angry\n", "4 train/angry\\Training_1021836.jpg angry\n", "... ... ...\n", "28704 train/surprise\\Training_99916297.jpg surprise\n", "28705 train/surprise\\Training_99924420.jpg surprise\n", "28706 train/surprise\\Training_99937001.jpg surprise\n", "28707 train/surprise\\Training_99951755.jpg surprise\n", "28708 train/surprise\\Training_99984132.jpg surprise\n", "\n", "[28709 rows x 2 columns]\n" ] } ], "source": [ "print(train)" ] }, { "cell_type": "code", "execution_count": 6, "id": "b3513e60", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "angry completed\n", "disgust completed\n", "fear completed\n", "happy completed\n", "neutral completed\n", "sad completed\n", "surprise completed\n" ] } ], "source": [ "test = pd.DataFrame()\n", "test['image'], test['label'] = createdataframe(TEST_DIR)" ] }, { "cell_type": "code", "execution_count": 7, "id": "ebf2655c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " image label\n", "0 test/angry\\PrivateTest_10131363.jpg angry\n", "1 test/angry\\PrivateTest_10304478.jpg angry\n", "2 test/angry\\PrivateTest_1054527.jpg angry\n", "3 test/angry\\PrivateTest_10590091.jpg angry\n", "4 test/angry\\PrivateTest_1109992.jpg angry\n", "... ... ...\n", "7173 test/surprise\\PublicTest_98089595.jpg surprise\n", "7174 test/surprise\\PublicTest_98567249.jpg surprise\n", "7175 test/surprise\\PublicTest_98972870.jpg surprise\n", "7176 test/surprise\\PublicTest_99242645.jpg surprise\n", "7177 test/surprise\\PublicTest_99446963.jpg surprise\n", "\n", "[7178 rows x 2 columns]\n", "0 test/angry\\PrivateTest_10131363.jpg\n", "1 test/angry\\PrivateTest_10304478.jpg\n", "2 test/angry\\PrivateTest_1054527.jpg\n", "3 test/angry\\PrivateTest_10590091.jpg\n", "4 test/angry\\PrivateTest_1109992.jpg\n", " ... \n", "7173 test/surprise\\PublicTest_98089595.jpg\n", "7174 test/surprise\\PublicTest_98567249.jpg\n", "7175 test/surprise\\PublicTest_98972870.jpg\n", "7176 test/surprise\\PublicTest_99242645.jpg\n", "7177 test/surprise\\PublicTest_99446963.jpg\n", "Name: image, Length: 7178, dtype: object\n" ] } ], "source": [ "print(test)\n", "print(test['image'])" ] }, { "cell_type": "code", "execution_count": 8, "id": "0a2560d4", "metadata": {}, "outputs": [], "source": [ "from tqdm.notebook import tqdm" ] }, { "cell_type": "code", "execution_count": 9, "id": "cc33ae75", "metadata": {}, "outputs": [], "source": [ "def extract_features(images):\n", " features = []\n", " for image in tqdm(images):\n", " img = load_img(image,grayscale = True )\n", " img = np.array(img)\n", " features.append(img)\n", " features = np.array(features)\n", " features = features.reshape(len(features),48,48,1)\n", " return features\n", " " ] }, { "cell_type": "code", "execution_count": 10, "id": "8f225635", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "fde4e5ad7d6348eb84d8cc1db55a7ce9", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/28709 [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Hussnain Khalid\\anaconda3\\Lib\\site-packages\\keras\\src\\utils\\image_utils.py:409: UserWarning: grayscale is deprecated. Please use color_mode = \"grayscale\"\n", " warnings.warn(\n" ] } ], "source": [ "train_features = extract_features(train['image']) " ] }, { "cell_type": "code", "execution_count": 11, "id": "3a1aeb79", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4c3223b79e024df2984d83dde895a82f", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/7178 [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "test_features = extract_features(test['image'])" ] }, { "cell_type": "code", "execution_count": 12, "id": "cee402d1", "metadata": {}, "outputs": [], "source": [ "x_train = train_features/255.0\n", "x_test = test_features/255.0" ] }, { "cell_type": "code", "execution_count": 13, "id": "f0748fb7", "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import LabelEncoder" ] }, { "cell_type": "code", "execution_count": 14, "id": "7123f988", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
LabelEncoder()In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
LabelEncoder()