{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":71549,"databundleVersionId":8561470,"sourceType":"competition"},{"sourceId":8727685,"sourceType":"datasetVersion","datasetId":5236783},{"sourceId":8761420,"sourceType":"datasetVersion","datasetId":5264030},{"sourceId":187831381,"sourceType":"kernelVersion"},{"sourceId":187832564,"sourceType":"kernelVersion"},{"sourceId":67743,"sourceType":"modelInstanceVersion","modelInstanceId":56480}],"dockerImageVersionId":30674,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"## Make sure you have connected the GPU accelerator","metadata":{}},{"cell_type":"code","source":"import os\nimport gc\nimport sys\nimport cv2\nimport math, random\nimport numpy as np\nimport pandas as pd\nimport glob\nfrom tqdm import tqdm\nfrom sklearn.model_selection import KFold\n\nfrom collections import OrderedDict\n\nimport torch\nimport torch.nn.functional as F\nfrom torch import nn\nfrom torch.utils.data import DataLoader, Dataset\nfrom torch.optim import AdamW\n\nimport timm\nfrom timm.utils import ModelEmaV2\nfrom transformers import get_cosine_schedule_with_warmup\n\nimport albumentations as A\n\nimport re\nimport pydicom","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:34:46.240017Z","iopub.execute_input":"2024-07-11T13:34:46.240301Z","iopub.status.idle":"2024-07-11T13:34:56.142705Z","shell.execute_reply.started":"2024-07-11T13:34:46.240274Z","shell.execute_reply":"2024-07-11T13:34:56.141879Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"WORK_DIR = '/kaggle/input/rsna-2024-lumbar-spine-degenerative-classification'","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:34:56.144348Z","iopub.execute_input":"2024-07-11T13:34:56.144814Z","iopub.status.idle":"2024-07-11T13:34:56.148655Z","shell.execute_reply.started":"2024-07-11T13:34:56.144788Z","shell.execute_reply":"2024-07-11T13:34:56.147806Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Model 1","metadata":{}},{"cell_type":"code","source":"!cp /kaggle/usr/lib/rsna24_script_densenet161_lb_0_59/rsna24_script_densenet161_lb_0_59.py model_1.py\n!python model_1.py","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:34:56.149627Z","iopub.execute_input":"2024-07-11T13:34:56.149930Z","iopub.status.idle":"2024-07-11T13:35:27.992789Z","shell.execute_reply.started":"2024-07-11T13:34:56.149900Z","shell.execute_reply":"2024-07-11T13:35:27.991798Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!mv submission.csv submission_1.csv\ngc.collect()","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:35:27.995387Z","iopub.execute_input":"2024-07-11T13:35:27.995762Z","iopub.status.idle":"2024-07-11T13:35:29.291936Z","shell.execute_reply.started":"2024-07-11T13:35:27.995733Z","shell.execute_reply":"2024-07-11T13:35:29.290930Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Model 2","metadata":{}},{"cell_type":"code","source":"!cp /kaggle/usr/lib/rsna24_script_densenet201_lb_0_60/rsna24_script_densenet201_lb_0_60.py model_2.py\n!python model_2.py","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:35:29.293112Z","iopub.execute_input":"2024-07-11T13:35:29.293390Z","iopub.status.idle":"2024-07-11T13:35:54.946949Z","shell.execute_reply.started":"2024-07-11T13:35:29.293366Z","shell.execute_reply":"2024-07-11T13:35:54.945907Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!mv submission.csv submission_2.csv\ngc.collect()","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:35:54.948464Z","iopub.execute_input":"2024-07-11T13:35:54.948830Z","iopub.status.idle":"2024-07-11T13:35:56.220830Z","shell.execute_reply.started":"2024-07-11T13:35:54.948799Z","shell.execute_reply":"2024-07-11T13:35:56.219643Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Make Ensemble","metadata":{}},{"cell_type":"code","source":"sub_1 = pd.read_csv('submission_1.csv')","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:35:56.222204Z","iopub.execute_input":"2024-07-11T13:35:56.222660Z","iopub.status.idle":"2024-07-11T13:35:56.232774Z","shell.execute_reply.started":"2024-07-11T13:35:56.222603Z","shell.execute_reply":"2024-07-11T13:35:56.231854Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sub_1.head(10)","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:35:56.233912Z","iopub.execute_input":"2024-07-11T13:35:56.234162Z","iopub.status.idle":"2024-07-11T13:35:56.251492Z","shell.execute_reply.started":"2024-07-11T13:35:56.234140Z","shell.execute_reply":"2024-07-11T13:35:56.250648Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sub_2 = pd.read_csv('submission_2.csv')","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:35:56.252925Z","iopub.execute_input":"2024-07-11T13:35:56.253339Z","iopub.status.idle":"2024-07-11T13:35:56.259515Z","shell.execute_reply.started":"2024-07-11T13:35:56.253252Z","shell.execute_reply":"2024-07-11T13:35:56.258667Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sub_2.head(10)","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:35:56.262302Z","iopub.execute_input":"2024-07-11T13:35:56.262571Z","iopub.status.idle":"2024-07-11T13:35:56.273886Z","shell.execute_reply.started":"2024-07-11T13:35:56.262546Z","shell.execute_reply":"2024-07-11T13:35:56.272838Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sample_sub = pd.read_csv(f'{WORK_DIR}/sample_submission.csv')\nLABELS = list(sample_sub.columns[1:])","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:35:56.275133Z","iopub.execute_input":"2024-07-11T13:35:56.275404Z","iopub.status.idle":"2024-07-11T13:35:56.283818Z","shell.execute_reply.started":"2024-07-11T13:35:56.275382Z","shell.execute_reply":"2024-07-11T13:35:56.282801Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sub = pd.DataFrame()\nsub['row_id'] = sub_1['row_id']\nsub[LABELS] = sub_1[LABELS]*0.7 + sub_2[LABELS]*0.3","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:35:56.285023Z","iopub.execute_input":"2024-07-11T13:35:56.285439Z","iopub.status.idle":"2024-07-11T13:35:56.297201Z","shell.execute_reply.started":"2024-07-11T13:35:56.285407Z","shell.execute_reply":"2024-07-11T13:35:56.296271Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Submission","metadata":{}},{"cell_type":"code","source":"sub.to_csv('submission.csv', index=False)\npd.read_csv('submission.csv').head(10)","metadata":{"execution":{"iopub.status.busy":"2024-07-11T13:35:56.298332Z","iopub.execute_input":"2024-07-11T13:35:56.298609Z","iopub.status.idle":"2024-07-11T13:35:56.315295Z","shell.execute_reply.started":"2024-07-11T13:35:56.298572Z","shell.execute_reply":"2024-07-11T13:35:56.314421Z"},"trusted":true},"execution_count":null,"outputs":[]}]}