1275 lines (1274 with data), 199.3 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "03a843ab",
"metadata": {
"_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
"_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5",
"execution": {
"iopub.execute_input": "2024-03-13T16:53:09.228111Z",
"iopub.status.busy": "2024-03-13T16:53:09.227626Z",
"iopub.status.idle": "2024-03-13T16:53:10.338373Z",
"shell.execute_reply": "2024-03-13T16:53:10.336324Z"
},
"papermill": {
"duration": 1.124017,
"end_time": "2024-03-13T16:53:10.341435",
"exception": false,
"start_time": "2024-03-13T16:53:09.217418",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/images (4).jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/ircmj-17-3-13478-g001-preview.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/lip-cancer-and-symptoms.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_41457tn.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/949b9f09-aa54-454e-b631-b6d98e079f45.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/pract_oral_cancer.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/figure1.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_Carcinomaoftherighttongue_OCT-20161108085557163.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/d09a9b5c-a0b1-488f-9d50-2937fe578a7e.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/mouth-cancer-symptoms-1.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/download (4).jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/images.jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/oral-leukoplakia-br-image-credit-dermnet-new-zealand-br.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_mouth-cancer-symptoms-1.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/3-s2.0-B9780443100734500148-f10-07-9780443100734.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/Carcinomaoftherighttongue_OCT-20161108085557163.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/cancer 6.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/Tongue-cancer-symptoms.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/lip-reconstruction-gallery-skin-cancer-and-reconstructive-surgery-pertaining-to-lip-cancer-surgery.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/oral-cancer__ProtectWyJQcm90ZWN0Il0_FocusFillWzI5NCwyMjIsIngiLDIwXQ.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/18b79305-949e-4ed8-849c-ec5d5a794752.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/IMG_3506-e1564923599677.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/Lower_lip_cancer.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/ds01089_im00213_c7_lipcancerpicturethu_jpg.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_2-1080x675.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_mouth-photo-3.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/f063-001a-9781416025276.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_3-s2.0-B9780443100734500148-f10-07-9780443100734.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/download.jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/41457tn.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_1366.fig.1.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/C0235749-Mouth_cancer-SPL-20170511085515620.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/mouth-cancer.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_1200px-ZungenCa2a (1).jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/images (1).jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/skin-cancer-on-lips-treatment.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_41415_2000_Article_BF4800481_Fig1_HTML.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/mouth-photo-3.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_base-of-tongue-cancer-symptoms.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_oral-cancer-treatment-500x500.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/46e21e7be60567c4b9b2ca9018587f88_XL.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_1200px-ZungenCa2a.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_left_lateral_tongue_dysplasia_3.jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_oral-leukoplakia-br-image-credit-dermnet-new-zealand-br.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/oral-cancer-by-j-shah-33-728.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_oral-cancer-by-j-shah-33-728.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/lip_images_oct_2006.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/mouth-photo-4.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_oral-cancer__ProtectWyJQcm90ZWN0Il0_FocusFillWzI5NCwyMjIsIngiLDIwXQ.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/a-Frontal-view-of-patient-with-lower-lip-squamous-cell-carcinoma-b-Postoperative.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/oralcancer1.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/b2585c8d-65a0-4476-a4e6-a9f2d424cd60.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/41415_2000_Article_BF4800481_Fig1_HTML.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_Oral-cancer-Courtesy-of-Professor-Jan-Zapa1a-Chair-of-Cranio-Maxillofacial.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/is-lip-cancer-painful.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_cancer 6.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_Tongue-cancer-symptoms.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/skin-cancer-of-the-lip.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/oral-cancer-treatment-500x500.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/images (2).jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/images (5).jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/base-of-tongue-cancer-symptoms.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/Screenshot 2020-03-16 at 10.47.50 AM.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/Oral-cancer-Courtesy-of-Professor-Jan-Zapa1a-Chair-of-Cranio-Maxillofacial.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_650x350_oral_cancer_ref_guide.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/1200px-ZungenCa2a.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/images (3).jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_oral-cancer-screening.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/oral-cancer-screening.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/squamous-cell-carinoma-of-the-tongue.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/SRMJResDentSci_2013_4_1_35_116830_u1.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_figure1.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/lip-cancer-br-image-credit-national-cancer-institute-2003-br.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_squamous-cell-carinoma-of-the-tongue.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/324950_1100.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_pract_oral_cancer.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/lipreconstruction1.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/01960a64-cfe8-444d-bbc5-575c15389a21.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_280x190_tongue_cancer_facts_ref_guide.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/f45634f6-0b4a-4d7d-ac44-5ea1658f728e.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/download (2).jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/first-sign-lip-cancer_c3094f88d448d26b.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/a342a6a0-d3f6-4459-b99a-6a4d4313aa9f.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_mouth-photo-4.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/dataset_SRMJResDentSci_2013_4_1_35_116830_u1.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/Oral-Cancer-Screenings.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/lip-cancer-pictures-youtube-regarding-lip-cancer-pictures.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/close-up-of-spots-on-tongue.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/35556-m.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/download (3).jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/dataset__654-What_Does_Mouth_Cancer_Look-642x361-Side-2.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/images.jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20191129_1827192.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200302_1725362.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20190916_1420142.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/DSC_01992.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200314_1123332.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/IMG_20170301_1115506262.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/tongue.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200314_1124072.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200314_1129242.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200314_1130304.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/tongue (1).jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/download (1).jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/WP_20141029_18_42_38_Pro2.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/_tongue.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/69293_mouth-exam-child-iStock-510174422.jpg_ccba64ac-3050-4b37-9641-ca94b3db2c11.jpeg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/biopsy-oral-cancer.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/12654650-6954555-image-a-22_1556101508834-Edited.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/Screenshot 2020-03-15 at 9.58.58 PM.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200314_1130303.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200314_1117432.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200314_1129245.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/WP_20141221_0012.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20191129_1825022.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200314_1117132.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20191129_1750382.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200314_1125032.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/dataset_jlspo68f92i21.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/Normal-tongue-out--1296x728-gallery_slide1.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200314_1130302.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200314_1129243.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/DSC_02062.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/20200303_1146172.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/tongue-1.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/tongue-tingling-in-person-with-their-tongue-sticking-out.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/DSC_3536_2.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/388x210-White_Bumps_on_Lips.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/1366.fig.1.png\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/IMG_57592.jpg\n",
"/kaggle/input/oral-cancer-lips-and-tongue-images/OralCancer/non-cancer/DSC_02063.jpg\n"
]
}
],
"source": [
"# This Python 3 environment comes with many helpful analytics libraries installed\n",
"# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n",
"# For example, here's several helpful packages to load\n",
"\n",
"import numpy as np # linear algebra\n",
"import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",
"\n",
"# Input data files are available in the read-only \"../input/\" directory\n",
"# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n",
"\n",
"import os\n",
"for dirname, _, filenames in os.walk('/kaggle/input'):\n",
" for filename in filenames:\n",
" print(os.path.join(dirname, filename))\n",
"\n",
"# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n",
"# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "77445f66",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:10.359845Z",
"iopub.status.busy": "2024-03-13T16:53:10.359169Z",
"iopub.status.idle": "2024-03-13T16:53:12.141250Z",
"shell.execute_reply": "2024-03-13T16:53:12.139878Z"
},
"papermill": {
"duration": 1.794802,
"end_time": "2024-03-13T16:53:12.144451",
"exception": false,
"start_time": "2024-03-13T16:53:10.349649",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"# Importing Necessary Libraries\n",
"import cv2\n",
"import os\n",
"import shutil \n",
"import math\n",
"import random\n",
"import numpy as np\n",
"import pandas as pd \n",
"import matplotlib.pyplot as plt\n",
"from sklearn.metrics import mean_squared_error\n",
"\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "44848c19",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:12.162537Z",
"iopub.status.busy": "2024-03-13T16:53:12.161518Z",
"iopub.status.idle": "2024-03-13T16:53:24.098599Z",
"shell.execute_reply": "2024-03-13T16:53:24.097247Z"
},
"papermill": {
"duration": 11.94978,
"end_time": "2024-03-13T16:53:24.102093",
"exception": false,
"start_time": "2024-03-13T16:53:12.152313",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"libpng warning: iCCP: extra compressed data\n",
"libpng warning: iCCP: extra compressed data\n",
"[ WARN:0@8.854] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_26.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@9.089] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_50.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@9.411] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_58.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@9.642] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_82.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@9.869] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_18.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@10.420] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_35.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@10.882] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_29.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@11.319] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_68.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@11.525] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_60.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@11.730] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_79.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@11.782] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_2.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@12.059] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_4.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@12.332] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_72.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@12.383] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_13.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@12.507] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_84.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@12.558] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_65.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@12.610] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_75.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@12.810] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_10.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@12.934] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_51.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@13.129] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_11.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@13.248] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_66.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@13.506] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_46.jpg'): can't open/read file: check file path/integrity\n",
"[ WARN:0@13.554] global loadsave.cpp:248 findDecoder imread_('./OralCancer/cancer/img_cancer_87.jpg'): can't open/read file: check file path/integrity\n"
]
}
],
"source": [
"# Function to remove Duplicate Images in the Dataset\n",
"def findDelDuplImg(file_name , file_dir):\n",
" searchedImgPath = os.path.join(file_dir, file_name);\n",
" searchedImage = np.array(cv2.imread(searchedImgPath, 0));\n",
" # Start iterate over all images\n",
" for cmpImageName in os.listdir(file_dir):\n",
" if cmpImageName != file_name:\n",
" # If name is different\n",
" try:\n",
" # Concatenate path to image\n",
" cmpImagePath = os.path.join(file_dir, cmpImageName);\n",
" # Open image to be compared\n",
" cmpImage = np.array(cv2.imread(cmpImagePath, 0))\n",
" # Count root mean square between both images (RMS)\n",
" rms = math.sqrt(mean_squared_error(searchedImage, cmpImage))\n",
" except:\n",
" continue\n",
" # If RMS is smaller than 3 - this means that images are similar or the same\n",
" if rms < 3:\n",
" # Delete Same Image in Dir\n",
" os.remove(cmpImagePath);\n",
" \n",
"# Function for Image preprocessing\n",
"def processDataset(dataset_src, dataset_dest):\n",
" # Making a Copy of Dataset\n",
" shutil.copytree(src, dest)\n",
" for folder in os.listdir(dest):\n",
" for (index, file) in enumerate(os.listdir(os.path.join(dest, folder)), start = 1):\n",
" filename = f'img_{folder}_{index}.jpg';\n",
" img_src = os.path.join(dest, folder, file);\n",
" img_des = os.path.join(dest, folder, filename);\n",
" # Preprocess the Images\n",
" img = cv2.imread(img_src);\n",
" img = cv2.resize(img, (256, 256));\n",
" img = cv2.copyMakeBorder(img, 2, 2, 2, 2, cv2.BORDER_CONSTANT, value=0);\n",
" img = cv2.blur(img, (2, 2));\n",
" cv2.imwrite(img_des ,img);\n",
" os.remove(img_src);\n",
" for file in os.listdir(os.path.join(dest, folder)):\n",
" # Find duplicated images and delete duplicates.\n",
" findDelDuplImg(file, os.path.join(dest, folder));\n",
"\n",
"# Source Location for Dataset\n",
"src = '../input/oral-cancer-lips-and-tongue-images/OralCancer';\n",
"# Destination Location for Dataset\n",
"dest = './OralCancer';\n",
"# Image preprocessing\n",
"processDataset(src, dest);"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "2f1b61c4",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:24.123742Z",
"iopub.status.busy": "2024-03-13T16:53:24.123244Z",
"iopub.status.idle": "2024-03-13T16:53:24.132117Z",
"shell.execute_reply": "2024-03-13T16:53:24.130779Z"
},
"papermill": {
"duration": 0.023284,
"end_time": "2024-03-13T16:53:24.135074",
"exception": false,
"start_time": "2024-03-13T16:53:24.111790",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'non-cancer': 44, 'cancer': 64}\n"
]
}
],
"source": [
"def GetDatasetSize(path):\n",
" num_of_image = {}\n",
" for folder in os.listdir(path):\n",
" # Counting the Number of Files in the Folder\n",
" num_of_image[folder] = len(os.listdir(os.path.join(path, folder)));\n",
" return num_of_image;\n",
" \n",
"path = \"./OralCancer\"\n",
"DatasetSize = GetDatasetSize(path);\n",
"print(DatasetSize);"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "375b151d",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:24.157001Z",
"iopub.status.busy": "2024-03-13T16:53:24.156509Z",
"iopub.status.idle": "2024-03-13T16:53:24.190900Z",
"shell.execute_reply": "2024-03-13T16:53:24.189280Z"
},
"papermill": {
"duration": 0.048294,
"end_time": "2024-03-13T16:53:24.193602",
"exception": false,
"start_time": "2024-03-13T16:53:24.145308",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CANCER :\n",
"Total images: 64\n",
"Training: 44\n",
"Validation: 10\n",
"Testing: 10\n",
"\n",
"NON-CANCER :\n",
"Total images: 44\n",
"Training: 30\n",
"Validation: 7\n",
"Testing: 7\n",
"\n"
]
}
],
"source": [
"# Function for Creating Train / Validation / Test folders (One time use Only)\n",
" \n",
"def TrainValTestSplit(root_dir, classes_dir, val_ratio = 0.15, test_ratio = 0.15):\n",
" for cls in classes_dir:\n",
" # Creating Split Folders\n",
" os.makedirs('train/' + cls)\n",
" os.makedirs('val/' + cls)\n",
" os.makedirs('test/' + cls)\n",
"\n",
" # Folder to copy images from\n",
" src = root_dir + cls\n",
" \n",
" # Storing the Filenames\n",
" allFileNames = os.listdir(src)\n",
" np.random.shuffle(allFileNames)\n",
" # Spliting the Files in the Given ratio\n",
" train_FileNames, val_FileNames, test_FileNames = np.split(np.array(allFileNames), [int(len(allFileNames)* (1 - (val_ratio + test_ratio))), int(len(allFileNames)* (1 - test_ratio))])\n",
"\n",
" train_FileNames = [src+'/'+ name for name in train_FileNames.tolist()]\n",
" val_FileNames = [src+'/' + name for name in val_FileNames.tolist()]\n",
" test_FileNames = [src+'/' + name for name in test_FileNames.tolist()]\n",
"\n",
" # Printing the Split Details\n",
" print(cls.upper(),':')\n",
" print('Total images: ', len(allFileNames))\n",
" print('Training: ', len(train_FileNames))\n",
" print('Validation: ', len(val_FileNames))\n",
" print('Testing: ', len(test_FileNames))\n",
"\n",
" # Copy-pasting images\n",
" for name in train_FileNames:\n",
" shutil.copy(name, 'train/' + cls)\n",
"\n",
" for name in val_FileNames:\n",
" shutil.copy(name, 'val/' + cls)\n",
" \n",
" for name in test_FileNames:\n",
" shutil.copy(name, 'test/' + cls)\n",
" print();\n",
"\n",
"# Preforming Train / Validation / Test Split\n",
"root_dir = './OralCancer/' # Dataset Root Folder\n",
"classes_dir = ['cancer', 'non-cancer'] # Classes\n",
"TrainValTestSplit(root_dir, classes_dir);"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "8fc1d060",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:24.215288Z",
"iopub.status.busy": "2024-03-13T16:53:24.214826Z",
"iopub.status.idle": "2024-03-13T16:53:39.081572Z",
"shell.execute_reply": "2024-03-13T16:53:39.080533Z"
},
"papermill": {
"duration": 14.881296,
"end_time": "2024-03-13T16:53:39.084720",
"exception": false,
"start_time": "2024-03-13T16:53:24.203424",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2024-03-13 16:53:26.684870: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
"2024-03-13 16:53:26.685025: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
"2024-03-13 16:53:26.846147: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n"
]
}
],
"source": [
"# Importing Keras for Image Classification\n",
"import keras\n",
"from keras.layers import Dense,Conv2D, Flatten, MaxPool2D, Dropout\n",
"from keras.models import Sequential\n",
"from keras.preprocessing import image\n",
"from keras.callbacks import ModelCheckpoint\n",
"from keras.models import load_model"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "a6d0c6c6",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:39.107163Z",
"iopub.status.busy": "2024-03-13T16:53:39.106276Z",
"iopub.status.idle": "2024-03-13T16:53:39.441879Z",
"shell.execute_reply": "2024-03-13T16:53:39.440640Z"
},
"papermill": {
"duration": 0.349641,
"end_time": "2024-03-13T16:53:39.444282",
"exception": false,
"start_time": "2024-03-13T16:53:39.094641",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential\"</span>\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1mModel: \"sequential\"\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ conv2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">254</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">254</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">896</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">252</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">252</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">9,248</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">126</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">126</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">124</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">124</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">18,496</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">62</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">62</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_3 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">60</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">60</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">73,856</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">30</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">30</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">30</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">30</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ flatten (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Flatten</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">115200</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">7,372,864</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">65</span> │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
"</pre>\n"
],
"text/plain": [
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ conv2d (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m254\u001b[0m, \u001b[38;5;34m254\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m896\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_1 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m252\u001b[0m, \u001b[38;5;34m252\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m9,248\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m126\u001b[0m, \u001b[38;5;34m126\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_2 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m124\u001b[0m, \u001b[38;5;34m124\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m18,496\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d_1 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m62\u001b[0m, \u001b[38;5;34m62\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ conv2d_3 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m60\u001b[0m, \u001b[38;5;34m60\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m73,856\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ max_pooling2d_2 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m30\u001b[0m, \u001b[38;5;34m30\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m30\u001b[0m, \u001b[38;5;34m30\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ flatten (\u001b[38;5;33mFlatten\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m115200\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m7,372,864\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout_1 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m) │ \u001b[38;5;34m65\u001b[0m │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">7,475,425</span> (28.52 MB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m7,475,425\u001b[0m (28.52 MB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">7,475,425</span> (28.52 MB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m7,475,425\u001b[0m (28.52 MB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# CNN Model \n",
"\n",
"model = Sequential() \n",
"\n",
"# Convolutional Layer with input shape (256,256,3)\n",
"model.add(Conv2D(filters=32, kernel_size= (3,3), activation= 'relu', input_shape=(256,256,3)) )\n",
"\n",
"model.add(Conv2D(filters=32, kernel_size=(3,3), activation='relu' ))\n",
"model.add(MaxPool2D(pool_size=(2,2)))\n",
"\n",
"model.add(Conv2D(filters=64, kernel_size=(3,3), activation='relu' ))\n",
"model.add(MaxPool2D(pool_size=(2,2)))\n",
"\n",
"model.add(Conv2D(filters=128, kernel_size=(3,3), activation='relu' ))\n",
"model.add(MaxPool2D(pool_size=(2,2)))\n",
"\n",
"model.add(Dropout(rate=0.25))\n",
"\n",
"model.add(Flatten())\n",
"model.add(Dense(units=64, activation='relu'))\n",
"model.add(Dropout(rate=0.25))\n",
"model.add(Dense(units=1, activation='sigmoid'))\n",
"\n",
"model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'] )\n",
" \n",
"model.summary()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "9fc004c1",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:39.468582Z",
"iopub.status.busy": "2024-03-13T16:53:39.467653Z",
"iopub.status.idle": "2024-03-13T16:53:39.476358Z",
"shell.execute_reply": "2024-03-13T16:53:39.475115Z"
},
"papermill": {
"duration": 0.023899,
"end_time": "2024-03-13T16:53:39.478957",
"exception": false,
"start_time": "2024-03-13T16:53:39.455058",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"# Expand the size of dataset with new transformed images from the original dataset using ImageDataGenerator.\n",
"from tensorflow.keras.preprocessing import image\n",
"\n",
"train_datagen = image.ImageDataGenerator(zoom_range = 0.2, shear_range = 0.2 , rescale = 1./255 , horizontal_flip=True)\n",
"val_datagen = image.ImageDataGenerator(rescale = 1./255)\n",
"test_datagen = image.ImageDataGenerator(rescale = 1./255)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "044085b6",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:39.503939Z",
"iopub.status.busy": "2024-03-13T16:53:39.503146Z",
"iopub.status.idle": "2024-03-13T16:53:39.519572Z",
"shell.execute_reply": "2024-03-13T16:53:39.517947Z"
},
"papermill": {
"duration": 0.031988,
"end_time": "2024-03-13T16:53:39.522555",
"exception": false,
"start_time": "2024-03-13T16:53:39.490567",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 74 images belonging to 2 classes.\n"
]
}
],
"source": [
"train_data = train_datagen.flow_from_directory(directory= \"./train\", target_size=(256,256), batch_size=32, class_mode = 'binary')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "752fbc65",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:39.547564Z",
"iopub.status.busy": "2024-03-13T16:53:39.547054Z",
"iopub.status.idle": "2024-03-13T16:53:39.555043Z",
"shell.execute_reply": "2024-03-13T16:53:39.553614Z"
},
"papermill": {
"duration": 0.023539,
"end_time": "2024-03-13T16:53:39.557714",
"exception": false,
"start_time": "2024-03-13T16:53:39.534175",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"{'cancer': 0, 'non-cancer': 1}"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_data.class_indices"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "551a071d",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:39.584631Z",
"iopub.status.busy": "2024-03-13T16:53:39.583383Z",
"iopub.status.idle": "2024-03-13T16:53:39.595558Z",
"shell.execute_reply": "2024-03-13T16:53:39.594467Z"
},
"papermill": {
"duration": 0.02913,
"end_time": "2024-03-13T16:53:39.598389",
"exception": false,
"start_time": "2024-03-13T16:53:39.569259",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 17 images belonging to 2 classes.\n"
]
}
],
"source": [
"val_data = val_datagen.flow_from_directory(directory= \"./val\", target_size=(256,256), batch_size=32, class_mode = 'binary')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "60bb95e7",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:39.623804Z",
"iopub.status.busy": "2024-03-13T16:53:39.622661Z",
"iopub.status.idle": "2024-03-13T16:53:39.634644Z",
"shell.execute_reply": "2024-03-13T16:53:39.633615Z"
},
"papermill": {
"duration": 0.027554,
"end_time": "2024-03-13T16:53:39.637392",
"exception": false,
"start_time": "2024-03-13T16:53:39.609838",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 17 images belonging to 2 classes.\n"
]
}
],
"source": [
"test_data = test_datagen.flow_from_directory(directory= \"./test\", target_size=(256,256), batch_size=32, class_mode = 'binary')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "9e410b75",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:39.663142Z",
"iopub.status.busy": "2024-03-13T16:53:39.662197Z",
"iopub.status.idle": "2024-03-13T16:53:39.668356Z",
"shell.execute_reply": "2024-03-13T16:53:39.667234Z"
},
"papermill": {
"duration": 0.021308,
"end_time": "2024-03-13T16:53:39.670622",
"exception": false,
"start_time": "2024-03-13T16:53:39.649314",
"status": "completed"
},
"tags": []
},
"outputs": [],
"source": [
"# Adding Model check point Callback\n",
"mc = ModelCheckpoint(filepath=\"oral_cancer_best_model.keras\", monitor='val_accuracy', verbose=1, save_best_only=True, mode='auto')\n",
"call_back = [ mc ];"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "0586f3ac",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:53:39.695839Z",
"iopub.status.busy": "2024-03-13T16:53:39.694990Z",
"iopub.status.idle": "2024-03-13T16:58:22.680737Z",
"shell.execute_reply": "2024-03-13T16:58:22.679363Z"
},
"papermill": {
"duration": 283.001771,
"end_time": "2024-03-13T16:58:22.683972",
"exception": false,
"start_time": "2024-03-13T16:53:39.682201",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.4531 - loss: 0.8107\n",
"Epoch 1: val_accuracy improved from -inf to 0.41176, saving model to oral_cancer_best_model.keras\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m15s\u001b[0m 6s/step - accuracy: 0.4688 - loss: 0.8489 - val_accuracy: 0.4118 - val_loss: 0.7533\n",
"Epoch 2/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m1s\u001b[0m 2s/step - accuracy: 0.5000 - loss: 0.8099\n",
"Epoch 2: val_accuracy did not improve from 0.41176\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 36ms/step - accuracy: 0.5000 - loss: 0.6075 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 3/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.5881 - loss: 0.6836\n",
"Epoch 3: val_accuracy did not improve from 0.41176\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5s/step - accuracy: 0.5508 - loss: 0.6911 - val_accuracy: 0.4118 - val_loss: 0.7138\n",
"Epoch 4/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m4s\u001b[0m 5s/step - accuracy: 0.2500 - loss: 0.7468\n",
"Epoch 4: val_accuracy did not improve from 0.41176\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5s/step - accuracy: 0.2500 - loss: 0.5601 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 5/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1s/step - accuracy: 0.5707 - loss: 0.6967\n",
"Epoch 5: val_accuracy improved from 0.41176 to 0.58824, saving model to oral_cancer_best_model.keras\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3s/step - accuracy: 0.5630 - loss: 0.6987 - val_accuracy: 0.5882 - val_loss: 0.6811\n",
"Epoch 6/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m4s\u001b[0m 5s/step - accuracy: 0.6562 - loss: 0.6542\n",
"Epoch 6: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 21ms/step - accuracy: 0.6562 - loss: 0.4907 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 7/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.4095 - loss: 0.7730 \n",
"Epoch 7: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m15s\u001b[0m 5s/step - accuracy: 0.4794 - loss: 0.7595 - val_accuracy: 0.5882 - val_loss: 0.6819\n",
"Epoch 8/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m5s\u001b[0m 5s/step - accuracy: 0.5625 - loss: 0.6879\n",
"Epoch 8: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 28ms/step - accuracy: 0.5625 - loss: 0.5159 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 9/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.5938 - loss: 0.6850\n",
"Epoch 9: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 5s/step - accuracy: 0.5938 - loss: 0.6847 - val_accuracy: 0.5882 - val_loss: 0.6788\n",
"Epoch 10/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m1s\u001b[0m 1s/step - accuracy: 0.6000 - loss: 0.6667\n",
"Epoch 10: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 19ms/step - accuracy: 0.6000 - loss: 0.5000 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 11/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.5238 - loss: 0.6830 \n",
"Epoch 11: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 5s/step - accuracy: 0.5317 - loss: 0.6824 - val_accuracy: 0.5882 - val_loss: 0.6698\n",
"Epoch 12/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m5s\u001b[0m 5s/step - accuracy: 0.6562 - loss: 0.6396\n",
"Epoch 12: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 5s/step - accuracy: 0.6562 - loss: 0.4797 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 13/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.5625 - loss: 0.6711\n",
"Epoch 13: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m14s\u001b[0m 5s/step - accuracy: 0.5729 - loss: 0.6643 - val_accuracy: 0.5882 - val_loss: 0.6770\n",
"Epoch 14/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m1s\u001b[0m 2s/step - accuracy: 0.6000 - loss: 0.7027\n",
"Epoch 14: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 23ms/step - accuracy: 0.6000 - loss: 0.5270 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 15/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2s/step - accuracy: 0.6220 - loss: 0.6354\n",
"Epoch 15: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 2s/step - accuracy: 0.6210 - loss: 0.6345 - val_accuracy: 0.5882 - val_loss: 0.6553\n",
"Epoch 16/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m4s\u001b[0m 5s/step - accuracy: 0.5625 - loss: 0.6395\n",
"Epoch 16: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4s/step - accuracy: 0.5625 - loss: 0.4796 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 17/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.6875 - loss: 0.6122\n",
"Epoch 17: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m14s\u001b[0m 5s/step - accuracy: 0.6667 - loss: 0.6325 - val_accuracy: 0.5882 - val_loss: 0.6474\n",
"Epoch 18/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m1s\u001b[0m 2s/step - accuracy: 0.4000 - loss: 0.6631\n",
"Epoch 18: val_accuracy did not improve from 0.58824\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 19ms/step - accuracy: 0.4000 - loss: 0.4973 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 19/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.3500 - loss: 0.7159\n",
"Epoch 19: val_accuracy improved from 0.58824 to 0.64706, saving model to oral_cancer_best_model.keras\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 6s/step - accuracy: 0.4000 - loss: 0.7115 - val_accuracy: 0.6471 - val_loss: 0.6876\n",
"Epoch 20/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m4s\u001b[0m 5s/step - accuracy: 0.6250 - loss: 0.6829\n",
"Epoch 20: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4s/step - accuracy: 0.6250 - loss: 0.5122 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 21/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.5976 - loss: 0.6878\n",
"Epoch 21: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 5s/step - accuracy: 0.5968 - loss: 0.6876 - val_accuracy: 0.4706 - val_loss: 0.6937\n",
"Epoch 22/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m4s\u001b[0m 5s/step - accuracy: 0.4688 - loss: 0.6897\n",
"Epoch 22: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 23ms/step - accuracy: 0.4688 - loss: 0.5173 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 23/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.5833 - loss: 0.6888\n",
"Epoch 23: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 6s/step - accuracy: 0.6111 - loss: 0.6882 - val_accuracy: 0.5882 - val_loss: 0.6895\n",
"Epoch 24/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m4s\u001b[0m 5s/step - accuracy: 0.5000 - loss: 0.6732\n",
"Epoch 24: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 24ms/step - accuracy: 0.5000 - loss: 0.5049 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 25/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2s/step - accuracy: 0.6183 - loss: 0.6504 \n",
"Epoch 25: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m15s\u001b[0m 2s/step - accuracy: 0.6265 - loss: 0.6478 - val_accuracy: 0.5882 - val_loss: 0.7106\n",
"Epoch 26/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m4s\u001b[0m 5s/step - accuracy: 0.5312 - loss: 0.7315\n",
"Epoch 26: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 5s/step - accuracy: 0.5312 - loss: 0.5486 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 27/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.5976 - loss: 0.6103\n",
"Epoch 27: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 5s/step - accuracy: 0.5968 - loss: 0.6157 - val_accuracy: 0.5882 - val_loss: 0.6886\n",
"Epoch 28/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m4s\u001b[0m 5s/step - accuracy: 0.5938 - loss: 0.6358\n",
"Epoch 28: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 5s/step - accuracy: 0.5938 - loss: 0.4769 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 29/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2s/step - accuracy: 0.5908 - loss: 0.6450\n",
"Epoch 29: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 2s/step - accuracy: 0.6002 - loss: 0.6356 - val_accuracy: 0.6471 - val_loss: 0.6830\n",
"Epoch 30/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m4s\u001b[0m 5s/step - accuracy: 0.5625 - loss: 0.6031\n",
"Epoch 30: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4s/step - accuracy: 0.5625 - loss: 0.4523 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n",
"Epoch 31/32\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5s/step - accuracy: 0.6250 - loss: 0.6062\n",
"Epoch 31: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m14s\u001b[0m 5s/step - accuracy: 0.6250 - loss: 0.6090 - val_accuracy: 0.4118 - val_loss: 0.6954\n",
"Epoch 32/32\n",
"\u001b[1m1/2\u001b[0m \u001b[32m━━━━━━━━━━\u001b[0m\u001b[37m━━━━━━━━━━\u001b[0m \u001b[1m1s\u001b[0m 1s/step - accuracy: 0.8000 - loss: 0.5670\n",
"Epoch 32: val_accuracy did not improve from 0.64706\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 28ms/step - accuracy: 0.8000 - loss: 0.4252 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00\n"
]
}
],
"source": [
"# Fitting the Model\n",
"cnn = model.fit(train_data, \n",
" steps_per_epoch = 2, \n",
" epochs = 32, \n",
" validation_data = val_data, \n",
" validation_steps = 1,\n",
" callbacks = call_back )"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "70ce2c8a",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:58:22.736411Z",
"iopub.status.busy": "2024-03-13T16:58:22.735948Z",
"iopub.status.idle": "2024-03-13T16:58:23.534319Z",
"shell.execute_reply": "2024-03-13T16:58:23.532868Z"
},
"papermill": {
"duration": 0.827694,
"end_time": "2024-03-13T16:58:23.536864",
"exception": false,
"start_time": "2024-03-13T16:58:22.709170",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 717ms/step - accuracy: 0.8235 - loss: 0.5642\n",
"The accuracy of the model is = 82.35294222831726 %\n"
]
}
],
"source": [
"# Checking the Accuracy of the Model \n",
"accuracy = model.evaluate(test_data)[1]\n",
"print(f\"The accuracy of the model is = {accuracy * 100} %\")"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "698b42da",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:58:23.592926Z",
"iopub.status.busy": "2024-03-13T16:58:23.592150Z",
"iopub.status.idle": "2024-03-13T16:58:23.598447Z",
"shell.execute_reply": "2024-03-13T16:58:23.597611Z"
},
"papermill": {
"duration": 0.037289,
"end_time": "2024-03-13T16:58:23.600748",
"exception": false,
"start_time": "2024-03-13T16:58:23.563459",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"dict_keys(['accuracy', 'loss', 'val_accuracy', 'val_loss'])"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"h = cnn.history\n",
"h.keys()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "5468e750",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:58:23.655613Z",
"iopub.status.busy": "2024-03-13T16:58:23.654667Z",
"iopub.status.idle": "2024-03-13T16:58:23.997098Z",
"shell.execute_reply": "2024-03-13T16:58:23.995918Z"
},
"papermill": {
"duration": 0.373655,
"end_time": "2024-03-13T16:58:24.000307",
"exception": false,
"start_time": "2024-03-13T16:58:23.626652",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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/PEhloZvfvOb2LJlC1599dUh+xA+/81vfhNdXV34wx/+EHGbaMybNw+tra14+umnsWXLliAXDQAcP358yGemTp0KAHA6nZL2/8knn2DVqlXo6uoK2n91dTUaGxuDfgD+/IQeP8dx+N3vfhe07/Lycpx99tlYtWoVWlpagt4TPms0GnHllVfi3//+Nz7//PMhxyflHBEEER4DR3cQQaQsN9xwA/72t79h8eLFmDRpEtavX4933nkHAwMDuOyyywLuiP7+fsycORO7du3C9773PUybNg3Hjx/H66+/jieffBINDQ3wer1obGzEunXrcM0112DOnDmw2+145513cOutt+KKK66IeiyDg4OoqKgAADgcDrS2tgb+B4Af/ehHeP/993HppZdi5MiR6OjowBNPPAGDwYBt27ahqKgo6v6PHDmCESNGID8/H2azGW1tbTCbzVE/43a7MXHiRPT29uKOO+5AYWEh/vnPf+LEiRPYsmULnn32Wdx4440AgC1btuCss86C1WrFLbfcglGjRuHgwYN44403sHnzZgB8jZHp06fDZrPhlltuwcSJE3Hs2DG89NJL+PDDDwNBugRByEQ3mwxBEAlz4sQJbsGCBVxZWRmXn5/PzZ07l9u5cyc3cuTIIDcGx3Fcd3c3t3jxYq62tpazWCzc8OHDuRtuuIHr6uoKbONwOLh77rmHGzVqFGc2m7mqqiru6quv5vbt2yfpeK6//noOANfY2DjkvebmZu6KK67gampqOIvFwtXU1HDXXnstt3v3bsnf98wzz+QAcDfffLPkz3z11VdcY2Mjl5+fz5WVlXELFy7ktmzZEuSmEdi2bRt31VVXccXFxVx2djY3fvx47t577w3a5tChQ9z8+fO58vJyzmq1cqNHj+Zuu+02zul0Sj4mgiCCIcsIQRAEQRC6QjEjBEEQBEHoCikjBEEQBEHoCikjBEEQBEHoCikjBEEQBEHoCikjBEEQBEHoCikjBEEQBEHoivyOWDrg8/nQ2tqKgoIC6oxJEARBECkCx3Ho6+tDTU0NjMbI9o+UUEZaW1tRV1en92EQBEEQBBEHhw8fxvDhwyO+nxLKSEFBAQD+yxQWFup8NARBEARBSMFms6Guri6wjkciJZQRwTVTWFhIyghBEARBpBixQiwogJUgCIIgCF0hZYQgCIIgCF0hZYQgCIIgCF0hZYQgCIIg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54PT6UztMaR3BK1evPDCC5zVauWee+457quvvuJuueUWrri4mGtra9P70JKCH//4x9y6deu4AwcOcB999BHX2NjIlZWVcR0dHXofmi709fVxX3zxBffFF19wALgVK1ZwX3zxBXfo0CGO4zjuwQcf5IqLi7l//etf3NatW7krrriCGzVqFDcwMKDzkWtHtHPU19fH/eQnP+HWr1/PHThwgHvnnXe40047jTvppJO4wcFBvQ9dExYtWsQVFRVx69at444dOxb4cTgcgW2+//3vcyNGjODeffdd7vPPP+dmzZrFzZo1S8ej1pZY52jv3r3cfffdx33++efcgQMHuH/961/c6NGjubPPPlvnI9eOu+66i3vvvfe4AwcOcFu3buXuuusuzmAwcGvXruU4LnXHUMYqIxzHcY8//jg3YsQIzmKxcDNmzOA++eQTvQ8paZg3bx5XXV3NWSwWrra2lps3bx63d+9evQ9LN/73v/9xAIb83HDDDRzH8em99957L1dZWclZrVbu/PPP53bt2qXvQWtMtHPkcDi4Cy+8kCsvL+fMZjM3cuRIbuHChRml/Ic7NwC4Z599NrDNwMAAd+utt3IlJSVcbm4ud9VVV3HHjh3T76A1JtY5amlp4c4++2xu2LBhnNVq5caOHcv99Kc/5Xp7e/U9cA353ve+x40cOZKzWCxceXk5d/755wcUEY5L3TFk4DiO084OQxAEQRAEEUxGxowQBEEQBJE8kDJCEARBEISukDJCEARBEISukDJCEARBEISukDJCEARBEISukDJCEARBEISukDJCEARBEISukDJCEARBEISukDJCEARBEISukDJCEARBEISukDJCEARBEISu/H9B2QSldmvdGgAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Ploting Accuracy In Training Set & Validation Set\n",
"plt.plot(h['accuracy'])\n",
"plt.plot(h['val_accuracy'] , c = \"red\")\n",
"plt.title(\"acc vs v-acc\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "3d70fd18",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:58:24.057016Z",
"iopub.status.busy": "2024-03-13T16:58:24.056522Z",
"iopub.status.idle": "2024-03-13T16:58:24.351509Z",
"shell.execute_reply": "2024-03-13T16:58:24.349755Z"
},
"papermill": {
"duration": 0.327137,
"end_time": "2024-03-13T16:58:24.354894",
"exception": false,
"start_time": "2024-03-13T16:58:24.027757",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Ploting Loss In Training Set & Validation Set\n",
"plt.plot(h['loss'])\n",
"plt.plot(h['val_loss'] , c = \"red\")\n",
"plt.title(\"loss vs v-loss\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "0d1a74c5",
"metadata": {
"execution": {
"iopub.execute_input": "2024-03-13T16:58:24.433023Z",
"iopub.status.busy": "2024-03-13T16:58:24.431343Z",
"iopub.status.idle": "2024-03-13T16:58:24.700684Z",
"shell.execute_reply": "2024-03-13T16:58:24.699578Z"
},
"papermill": {
"duration": 0.3133,
"end_time": "2024-03-13T16:58:24.703373",
"exception": false,
"start_time": "2024-03-13T16:58:24.390073",
"status": "completed"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 147ms/step\n",
"Non-Cancer\n"
]
}
],
"source": [
"def cancerPrediction(path):\n",
" # Loading Image\n",
" img = image.load_img(path, target_size=(256,256))\n",
" # Normalizing Image\n",
" norm_img = image.img_to_array(img)/255\n",
" # Converting Image to Numpy Array\n",
" input_arr_img = np.array([norm_img])\n",
" # Getting Predictions\n",
" pred = (model.predict(input_arr_img) > 0.5).astype(int)[0][0]\n",
" # Printing Model Prediction\n",
" if pred == 0:\n",
" print(\"Cancer\")\n",
" else:\n",
" print(\"Non-Cancer\")\n",
" \n",
"# Path for the image to get predictions \n",
"path = \"../input/oral-cancer-lips-and-tongue-images/OralCancer/cancer/01960a64-cfe8-444d-bbc5-575c15389a21.jpg\"\n",
"cancerPrediction(path)"
]
}
],
"metadata": {
"kaggle": {
"accelerator": "none",
"dataSources": [
{
"datasetId": 908874,
"sourceId": 1541124,
"sourceType": "datasetVersion"
}
],
"dockerImageVersionId": 30664,
"isGpuEnabled": false,
"isInternetEnabled": true,
"language": "python",
"sourceType": "notebook"
},
"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.10.13"
},
"papermill": {
"default_parameters": {},
"duration": 321.451502,
"end_time": "2024-03-13T16:58:27.372455",
"environment_variables": {},
"exception": null,
"input_path": "__notebook__.ipynb",
"output_path": "__notebook__.ipynb",
"parameters": {},
"start_time": "2024-03-13T16:53:05.920953",
"version": "2.5.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}