| import numpy as np
|
| import pandas as pd
|
| import tensorflow as tf
|
| import matplotlib.pyplot as plt
|
| import seaborn as sb
|
| import splitfolders
|
| import cv2
|
| import random
|
| from keras.models import Sequential
|
| from keras.layers import Conv2D, MaxPooling2D, Dropout, Flatten, Dense, BatchNormalization
|
| from tensorflow.keras.utils import plot_model
|
| from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay, classification_report, accuracy_score
|
| from sklearn.utils.class_weight import compute_class_weight
|
| from imutils import paths
|
| from keras.applications import VGG16
|
| from keras.applications import ResNet50
|
| from keras.applications import DenseNet121
|
| from tensorflow.keras.preprocessing.image import ImageDataGenerator
|
| import os
|
| from tensorflow.keras.callbacks import ModelCheckpoint
|
| import shutil
|
|
|
|
|
|
|
| IMGSIZE = 224
|
| BATCH_SIZE = 64
|
| classes = ['Normal', 'Cyst', 'Tumor', 'Stone']
|
| inputFolder = '/content/CT-KIDNEY-DATASET-Normal-Cyst-Tumor-Stone/CT-KIDNEY-DATASET-Normal-Cyst-Tumor-Stone'
|
| outputFolder = '/content/CT_dataset'
|
| class_to_index = {cls: i for i, cls in enumerate(classes)}
|
|
|
|
|
|
|
| splitfolders.ratio(inputFolder, outputFolder, seed=42, ratio=(0.7, 0.15, 0.15))
|
| imgPaths = list(paths.list_images(outputFolder))
|
| random.shuffle(imgPaths) |