{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":14774,"databundleVersionId":875431,"sourceType":"competition"},{"sourceId":13626185,"sourceType":"datasetVersion","datasetId":8660375}],"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import os, cv2, torch, numpy as np, pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom tqdm import tqdm\nimport time, threading\n\nimport torch.nn as nn\nfrom torch.utils.data import Dataset, DataLoader, WeightedRandomSampler\n\nimport albumentations as A\nfrom albumentations.pytorch import ToTensorV2\n\nimport timm\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import cohen_kappa_score, confusion_matrix, classification_report\n\nfrom torch.cuda.amp import autocast, GradScaler\n\ndevice = 'cuda' if torch.cuda.is_available() else 'cpu'\nprint('Using device:', device)\n\n# 🔄 Keep Kaggle session alive\ndef keep_alive():\n    while True:\n        print(\"⏳ Notebook alive...\", flush=True)\n        time.sleep(120)\n\nt = threading.Thread(target=keep_alive)\nt.daemon = True\nt.start()\n","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}