{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":59093,"databundleVersionId":7469972,"sourceType":"competition"},{"sourceId":7390331,"sourceType":"datasetVersion","datasetId":4293860}],"dockerImageVersionId":30635,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import os\nfrom pathlib import Path\n\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom sklearn.model_selection import train_test_split\n\nimport torch\nimport torch.nn as nn\nfrom torch.utils.data import Dataset, DataLoader\nimport pytorch_lightning as pl\nfrom torch.nn import functional as F\nfrom pytorch_lightning.callbacks.early_stopping import EarlyStopping","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-01-13T04:27:25.909612Z","iopub.execute_input":"2024-01-13T04:27:25.909998Z","iopub.status.idle":"2024-01-13T04:27:25.915960Z","shell.execute_reply.started":"2024-01-13T04:27:25.909967Z","shell.execute_reply":"2024-01-13T04:27:25.914761Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"BASE_DIR = Path(\"/kaggle/input/hms-harmful-brain-activity-classification\")\nMODEL_PATH = \"/kaggle/input/model-assets/outputs/seq_classification_model.pt\"\n\nEEG_SAMPLING_TIME = 50  #second\nEEG_SAMPLING_RATE = 200 #Hz\nEEG_DURATION = EEG_SAMPLING_RATE * EEG_SAMPLING_TIME\n\nSPECTROGRAM_TIME = 10   #minute\n\nN_CLASS = 6\nCHANNEL = 20\nBATCH_SIZE = 64","metadata":{"execution":{"iopub.status.busy":"2024-01-13T04:27:25.918235Z","iopub.execute_input":"2024-01-13T04:27:25.918585Z","iopub.status.idle":"2024-01-13T04:27:25.932254Z","shell.execute_reply.started":"2024-01-13T04:27:25.918557Z","shell.execute_reply":"2024-01-13T04:27:25.930681Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_df = pd.read_csv(BASE_DIR/\"test.csv\")\nsubmission = pd.read_csv(BASE_DIR/\"sample_submission.csv\").set_index(\"eeg_id\",drop=True)\ndevice = 'cuda' if torch.cuda.is_available() else 'cpu'\n\nlabel = submission.columns\ntransform = None","metadata":{"execution":{"iopub.status.busy":"2024-01-13T04:27:25.934771Z","iopub.execute_input":"2024-01-13T04:27:25.935931Z","iopub.status.idle":"2024-01-13T04:27:25.948404Z","shell.execute_reply.started":"2024-01-13T04:27:25.935867Z","shell.execute_reply":"2024-01-13T04:27:25.947408Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i, row in test_df.iterrows():\n    row = dict(row)\n    eeg_df = pd.read_parquet(BASE_DIR / f\"test_eegs/{row['eeg_id']}.parquet\")\n    predict = np.zeros(N_CLASS)\n    predict[0] = 1\n    if eeg_df.isna().sum().sum():\n        predict[999]\n    submission.loc[row['eeg_id'], :] = predict","metadata":{"execution":{"iopub.status.busy":"2024-01-13T04:27:25.951892Z","iopub.execute_input":"2024-01-13T04:27:25.952610Z","iopub.status.idle":"2024-01-13T04:27:25.967523Z","shell.execute_reply.started":"2024-01-13T04:27:25.952575Z","shell.execute_reply":"2024-01-13T04:27:25.965726Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission.to_csv(\"submission.csv\")","metadata":{"execution":{"iopub.status.busy":"2024-01-13T04:27:25.970298Z","iopub.execute_input":"2024-01-13T04:27:25.970966Z","iopub.status.idle":"2024-01-13T04:27:25.977760Z","shell.execute_reply.started":"2024-01-13T04:27:25.970926Z","shell.execute_reply":"2024-01-13T04:27:25.976349Z"},"trusted":true},"execution_count":null,"outputs":[]}]}