{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":11848,"databundleVersionId":862157,"sourceType":"competition"},{"sourceId":13560628,"sourceType":"datasetVersion","datasetId":8613629}],"dockerImageVersionId":30787,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"From [SJM] Histopathologic Cancer Submission","metadata":{}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport matplotlib.image as mpimg\nfrom sklearn.model_selection import train_test_split\nimport tifffile as tiff\nimport pickle\nimport tensorflow as tf\nfrom tensorflow import keras\nfrom tensorflow.keras import layers\nfrom tensorflow.keras.callbacks import EarlyStopping\nfrom tensorflow.keras.models import Sequential, load_model\nfrom tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, Dropout, BatchNormalization\nfrom tensorflow.keras.preprocessing.image import ImageDataGenerator","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2025-10-30T20:43:33.613776Z","iopub.execute_input":"2025-10-30T20:43:33.614314Z","iopub.status.idle":"2025-10-30T20:43:56.833956Z","shell.execute_reply.started":"2025-10-30T20:43:33.614248Z","shell.execute_reply":"2025-10-30T20:43:56.831814Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"with open('/kaggle/input/model-5/Cancer_Detection_model_5.pk1', 'rb') as file: \n    history = pickle.load(file)\n    \ncnn = load_model('/kaggle/input/model-5/Cancer_Detection_cnn_model_5.h5')","metadata":{"execution":{"iopub.status.busy":"2025-10-30T20:44:01.242627Z","iopub.execute_input":"2025-10-30T20:44:01.243018Z","iopub.status.idle":"2025-10-30T20:44:05.236034Z","shell.execute_reply.started":"2025-10-30T20:44:01.242963Z","shell.execute_reply":"2025-10-30T20:44:05.234920Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_datagen = ImageDataGenerator(rescale=1/255)","metadata":{"execution":{"iopub.status.busy":"2025-10-30T20:44:10.644022Z","iopub.execute_input":"2025-10-30T20:44:10.644478Z","iopub.status.idle":"2025-10-30T20:44:10.650251Z","shell.execute_reply.started":"2025-10-30T20:44:10.644440Z","shell.execute_reply":"2025-10-30T20:44:10.648738Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test = pd.read_csv(\"/kaggle/input/histopathologic-cancer-detection/sample_submission.csv\")\ntest['id'] = test['id'].apply(lambda x:f'{x}.tif')\n\ntest_generator = test_datagen.flow_from_dataframe(\n    dataframe = test,\n    directory = '/kaggle/input/histopathologic-cancer-detection/test',\n    x_col = \"id\",\n    y_col = None,\n    batch_size = 100,\n    seed = 1,\n    shuffle = False,\n    class_mode = None,\n    target_size = (260,260)\n)","metadata":{"execution":{"iopub.status.busy":"2025-10-30T20:48:11.169555Z","iopub.execute_input":"2025-10-30T20:48:11.170121Z","iopub.status.idle":"2025-10-30T20:48:48.209523Z","shell.execute_reply.started":"2025-10-30T20:48:11.170080Z","shell.execute_reply":"2025-10-30T20:48:48.207642Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_pred = np.argmax(cnn.predict(test_generator), axis=-1)","metadata":{"execution":{"iopub.status.busy":"2025-10-30T20:48:53.887375Z","iopub.execute_input":"2025-10-30T20:48:53.887758Z","iopub.status.idle":"2025-10-30T22:15:06.046228Z","shell.execute_reply.started":"2025-10-30T20:48:53.887725Z","shell.execute_reply":"2025-10-30T22:15:06.044292Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"Submission = test\nSubmission['label'] = test_pred\nSubmission['id'] = Submission['id'].str.replace(r'.tif$', '',regex=True)","metadata":{"execution":{"iopub.status.busy":"2025-10-30T22:15:44.423529Z","iopub.execute_input":"2025-10-30T22:15:44.424179Z","iopub.status.idle":"2025-10-30T22:15:44.539234Z","shell.execute_reply.started":"2025-10-30T22:15:44.424132Z","shell.execute_reply":"2025-10-30T22:15:44.537887Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"Submission","metadata":{"execution":{"iopub.status.busy":"2025-10-30T22:16:14.832019Z","iopub.execute_input":"2025-10-30T22:16:14.832502Z","iopub.status.idle":"2025-10-30T22:16:14.880211Z","shell.execute_reply.started":"2025-10-30T22:16:14.832462Z","shell.execute_reply":"2025-10-30T22:16:14.878612Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"Submission.to_csv('submission.csv',index=False,header=True)","metadata":{"execution":{"iopub.status.busy":"2025-10-30T22:16:20.542524Z","iopub.execute_input":"2025-10-30T22:16:20.542974Z","iopub.status.idle":"2025-10-30T22:16:20.660339Z","shell.execute_reply.started":"2025-10-30T22:16:20.542927Z","shell.execute_reply":"2025-10-30T22:16:20.658669Z"},"trusted":true},"outputs":[],"execution_count":null}]}