{"cells":[{"cell_type":"markdown","metadata":{"id":"CKeVGxZ5GG6o"},"source":["# Import needed modules"]},{"cell_type":"code","execution_count":2,"metadata":{"execution":{"iopub.execute_input":"2023-06-22T21:26:42.023360Z","iopub.status.busy":"2023-06-22T21:26:42.022918Z","iopub.status.idle":"2023-06-22T21:26:47.351352Z","shell.execute_reply":"2023-06-22T21:26:47.350341Z","shell.execute_reply.started":"2023-06-22T21:26:42.023318Z"},"id":"CeMcAy_5GG6s","outputId":"8e007371-6c2c-492c-99bb-172286922ae2","trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["modules loaded\n"]}],"source":["# import system libs\n","import os\n","import time\n","import shutil\n","import pathlib\n","import itertools\n","from PIL import Image\n","\n","# import data handling tools\n","import cv2\n","import numpy as np\n","import pandas as pd\n","import seaborn as sns\n","sns.set_style('darkgrid')\n","import matplotlib.pyplot as plt\n","from sklearn.model_selection import train_test_split\n","from sklearn.metrics import confusion_matrix, classification_report\n","\n","# import Deep learning Libraries\n","import tensorflow as tf\n","from tensorflow import keras\n","from tensorflow.keras.models import Sequential\n","from tensorflow.keras.optimizers import Adam, Adamax\n","from tensorflow.keras.preprocessing.image import ImageDataGenerator\n","from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Activation, Dropout, BatchNormalization\n","from tensorflow.keras import regularizers\n","\n","# Ignore Warnings\n","import warnings\n","warnings.filterwarnings(\"ignore\")\n","\n","print ('modules loaded')"]},{"cell_type":"markdown","metadata":{"id":"SA_gwvwnGG6v"},"source":["# **Data Preprocessing**"]},{"cell_type":"markdown","metadata":{"id":"e4reLHLHabWD"},"source":["### **Read data and store it in dataframe**"]},{"cell_type":"code","execution_count":3,"metadata":{"execution":{"iopub.execute_input":"2023-06-22T21:26:47.359457Z","iopub.status.busy":"2023-06-22T21:26:47.354879Z","iopub.status.idle":"2023-06-22T21:26:49.186693Z","shell.execute_reply":"2023-06-22T21:26:49.184713Z","shell.execute_reply.started":"2023-06-22T21:26:47.359415Z"},"trusted":true},"outputs":[],"source":["# Generate data paths with labels\n","data_dir = 'C:\\Users\\BlackShadow\\Projects\\BloodCancerProject\\Blood Cells'\n","filepaths = []\n","labels = []\n","\n","folds = os.listdir(data_dir)\n","for fold in folds:\n"," foldpath = os.path.join(data_dir, fold)\n"," filelist = os.listdir(foldpath)\n"," if fold in ['ig', 'neutrophil']:\n"," continue\n"," for file in filelist:\n"," fpath = os.path.join(foldpath, file)\n"," \n"," filepaths.append(fpath)\n"," labels.append(fold)\n","\n","# Concatenate data paths with labels into one dataframe\n","Fseries = pd.Series(filepaths, name= 'filepaths')\n","Lseries = pd.Series(labels, name='labels')\n","df = pd.concat([Fseries, Lseries], axis= 1)"]},{"cell_type":"code","execution_count":4,"metadata":{"execution":{"iopub.execute_input":"2023-06-22T21:26:49.198518Z","iopub.status.busy":"2023-06-22T21:26:49.198018Z","iopub.status.idle":"2023-06-22T21:26:49.245109Z","shell.execute_reply":"2023-06-22T21:26:49.243891Z","shell.execute_reply.started":"2023-06-22T21:26:49.198472Z"},"trusted":true},"outputs":[{"data":{"text/html":["
\n"," | filepaths | \n","labels | \n","
---|---|---|
0 | \n","/kaggle/input/blood-cells-image-dataset/bloodc... | \n","monocyte | \n","
1 | \n","/kaggle/input/blood-cells-image-dataset/bloodc... | \n","monocyte | \n","
2 | \n","/kaggle/input/blood-cells-image-dataset/bloodc... | \n","monocyte | \n","
3 | \n","/kaggle/input/blood-cells-image-dataset/bloodc... | \n","monocyte | \n","
4 | \n","/kaggle/input/blood-cells-image-dataset/bloodc... | \n","monocyte | \n","
... | \n","... | \n","... | \n","
10863 | \n","/kaggle/input/blood-cells-image-dataset/bloodc... | \n","platelet | \n","
10864 | \n","/kaggle/input/blood-cells-image-dataset/bloodc... | \n","platelet | \n","
10865 | \n","/kaggle/input/blood-cells-image-dataset/bloodc... | \n","platelet | \n","
10866 | \n","/kaggle/input/blood-cells-image-dataset/bloodc... | \n","platelet | \n","
10867 | \n","/kaggle/input/blood-cells-image-dataset/bloodc... | \n","platelet | \n","
10868 rows × 2 columns
\n","