{"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,"isSourceIdPinned":false,"sourceType":"competition"},{"sourceId":11484844,"sourceType":"datasetVersion","datasetId":7198309},{"sourceId":349989,"sourceType":"modelInstanceVersion","isSourceIdPinned":false,"modelInstanceId":292122,"modelId":312776},{"sourceId":351618,"sourceType":"modelInstanceVersion","isSourceIdPinned":true,"modelInstanceId":286627,"modelId":307445}],"dockerImageVersionId":30918,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\n#for dirname, _, filenames in os.walk('/kaggle/input'):\n    #for filename in filenames:\n        #print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:09.842419Z","iopub.execute_input":"2025-04-22T10:23:09.842852Z","iopub.status.idle":"2025-04-22T10:23:10.840004Z","shell.execute_reply.started":"2025-04-22T10:23:09.842817Z","shell.execute_reply":"2025-04-22T10:23:10.839069Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Importing libraries\n\nfrom pathlib import Path\nimport re\n\nimport matplotlib.pyplot as plt\n\nimport json","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:10.841202Z","iopub.execute_input":"2025-04-22T10:23:10.841643Z","iopub.status.idle":"2025-04-22T10:23:10.845832Z","shell.execute_reply.started":"2025-04-22T10:23:10.841617Z","shell.execute_reply":"2025-04-22T10:23:10.844886Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Setting the seed for np\n\nnp.random.seed(42)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:10.847232Z","iopub.execute_input":"2025-04-22T10:23:10.847538Z","iopub.status.idle":"2025-04-22T10:23:10.863340Z","shell.execute_reply.started":"2025-04-22T10:23:10.847511Z","shell.execute_reply":"2025-04-22T10:23:10.862613Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Overview","metadata":{}},{"cell_type":"markdown","source":"This project is based on the Kaggle competetion to detect and classify seizures and other types of harmful brain activity.\nHere the main goal is to develop a model trained on electroencephalography (EEG) signals recorded from critically ill hospital patients.","metadata":{}},{"cell_type":"markdown","source":"**What is EEG?**\n\n**Electroencephalography**, commonly referred to as **EEG**, is a non-invasive method used to record electrical activity in the brain. This technique involves placing electrodes on the scalp, which detect tiny electrical charges that result from the activity of brain cells. The signals captured by these electrodes are amplified and recorded, typically resulting in a series of wavy lines that are analyzed by specialists","metadata":{}},{"cell_type":"markdown","source":"**Patterns for classification**\n\nThere are six patterns of interest for this competition: seizure (SZ), generalized periodic discharges (GPD), lateralized periodic discharges (LPD), lateralized rhythmic delta activity (LRDA), generalized rhythmic delta activity (GRDA), or “other","metadata":{}},{"cell_type":"markdown","source":"The EEG segments used in this competition have been annotated, or classified, by a group of experts. \nIn some cases experts completely agree about the correct label.On other cases the experts disagree. \n\n* We call segments where there are high levels of agreement **“idealized” patterns**.\n* Cases where ~1/2 of experts give a label as “other” and ~1/2 give one of the remaining five labels, we call **“proto patterns”**.\n* Cases where experts are approximately split between 2 of the 5 named patterns, we call **“edge cases”**.","metadata":{}},{"cell_type":"markdown","source":"# Exploring the Data","metadata":{}},{"cell_type":"code","source":"#exploring the  files\ncurrent_path=Path(os.getcwd())\ninput_path=Path('/kaggle/input/hms-harmful-brain-activity-classification')\n\nos.listdir(input_path)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:15.575778Z","iopub.execute_input":"2025-04-22T10:23:15.576111Z","iopub.status.idle":"2025-04-22T10:23:15.583852Z","shell.execute_reply.started":"2025-04-22T10:23:15.576084Z","shell.execute_reply":"2025-04-22T10:23:15.582993Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Defing the spectrograms and eegs dir\ntrain_spectrogram_dir=input_path/'train_spectrograms'\ntrain_eegs_dir=input_path/'train_eegs'\n\ntest_spectrogram_dir=input_path/'test_spectrograms'\ntest_eegs_dir=input_path/'test_eegs'","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:15.721163Z","iopub.execute_input":"2025-04-22T10:23:15.721482Z","iopub.status.idle":"2025-04-22T10:23:15.725355Z","shell.execute_reply.started":"2025-04-22T10:23:15.721456Z","shell.execute_reply":"2025-04-22T10:23:15.724670Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Checking the train data\ntrain_data=pd.read_csv('/kaggle/input/hms-harmful-brain-activity-classification/train.csv')\ntrain_data","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:15.813059Z","iopub.execute_input":"2025-04-22T10:23:15.813354Z","iopub.status.idle":"2025-04-22T10:23:16.051573Z","shell.execute_reply.started":"2025-04-22T10:23:15.813332Z","shell.execute_reply":"2025-04-22T10:23:16.050537Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data.columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:16.052610Z","iopub.execute_input":"2025-04-22T10:23:16.052847Z","iopub.status.idle":"2025-04-22T10:23:16.058095Z","shell.execute_reply.started":"2025-04-22T10:23:16.052826Z","shell.execute_reply":"2025-04-22T10:23:16.057396Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"**Columns of dataset:**\n\n**eeg_id** - A unique identifier for the entire EEG recording.\n\n**eeg_sub_id** - An ID for the specific 50 second long subsample this row's labels apply to.\n\n**eeg_label_offset_seconds** - The time between the beginning of the consolidated EEG and this subsample.\n\n**spectrogram_id** - A unique identifier for the entire EEG recording.\n\n**spectrogram_sub_id** - An ID for the specific 10 minute subsample this row's labels apply to.\n\n**spectogram_label_offset_seconds** - The time between the beginning of the consolidated spectrogram and this subsample.\n\n**label_id** - An ID for this set of labels.\n\n**patient_id** - An ID for the patient who donated the data.\n\n**expert_consensus** - The consensus annotator label. Provided for convenience only.\n\n**seizure/lpd/gpd/lrda/grda/other_vote** - The count of annotator votes for a given brain activity class. The full names of the activity classes are as follows: lpd: lateralized periodic discharges, gpd: generalized periodic discharges, lrd: lateralized rhythmic delta activity, and grda: generalized rhythmic delta activity \n","metadata":{}},{"cell_type":"code","source":"train_data.info()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:19.751366Z","iopub.execute_input":"2025-04-22T10:23:19.751730Z","iopub.status.idle":"2025-04-22T10:23:19.780805Z","shell.execute_reply.started":"2025-04-22T10:23:19.751701Z","shell.execute_reply":"2025-04-22T10:23:19.779956Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(f\"No of patients:{train_data['patient_id'].nunique()}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:19.879799Z","iopub.execute_input":"2025-04-22T10:23:19.880093Z","iopub.status.idle":"2025-04-22T10:23:19.886848Z","shell.execute_reply.started":"2025-04-22T10:23:19.880071Z","shell.execute_reply":"2025-04-22T10:23:19.885916Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['expert_consensus'].value_counts().plot(kind='bar')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:23.292196Z","iopub.execute_input":"2025-04-22T10:23:23.292507Z","iopub.status.idle":"2025-04-22T10:23:23.509336Z","shell.execute_reply.started":"2025-04-22T10:23:23.292482Z","shell.execute_reply":"2025-04-22T10:23:23.508612Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"vote_columns=['seizure_vote', 'lpd_vote','gpd_vote', 'lrda_vote', 'grda_vote', 'other_vote']\ntrain_data[vote_columns].value_counts()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:23.510287Z","iopub.execute_input":"2025-04-22T10:23:23.510624Z","iopub.status.idle":"2025-04-22T10:23:23.530903Z","shell.execute_reply.started":"2025-04-22T10:23:23.510589Z","shell.execute_reply":"2025-04-22T10:23:23.530046Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"We can see that there are various combinations of types of votes, and we will classify and add a column based on whether they are :\n* idealized- high levels of agreement\n* proto- Cases where ~1/2 of experts give a label as “other” and ~1/2 give one of the remaining five labels\n* edge-Cases where experts are approximately split between 2 of the 5 named patterns,\n","metadata":{}},{"cell_type":"code","source":"\n#Calculating total votes\ntrain_data['total_vote']=train_data[vote_columns].sum(axis=1)\n\n#Calculating the normalized vote for each\nfor col in vote_columns:\n    train_data[col+'_n']=train_data[col]/train_data['total_vote']\n\ntrain_data\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:23.893849Z","iopub.execute_input":"2025-04-22T10:23:23.894180Z","iopub.status.idle":"2025-04-22T10:23:24.000150Z","shell.execute_reply.started":"2025-04-22T10:23:23.894151Z","shell.execute_reply":"2025-04-22T10:23:23.998967Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"vote_columns_n=[x+'_n' for x in vote_columns]\ntrain_data[vote_columns_n].value_counts()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:24.001671Z","iopub.execute_input":"2025-04-22T10:23:24.002018Z","iopub.status.idle":"2025-04-22T10:23:24.026145Z","shell.execute_reply.started":"2025-04-22T10:23:24.001987Z","shell.execute_reply":"2025-04-22T10:23:24.025457Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Defining a function to classify eeg data according to vote distribution\n\ndef classify_pattern(x):\n    named_columns=['seizure_vote_n',  'lpd_vote_n',  'gpd_vote_n',  'lrda_vote_n',  'grda_vote_n']\n    #Agreeing on one type\n    if np.any(x[vote_columns_n]>0.95):\n        pattern='idealized'\n    #Agreeing on other and named\n    elif np.any(x[named_columns]>0.45) and x['other_vote_n']>0.45:\n        pattern='proto'\n    else:\n        pattern= 'edge'\n    return pattern","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:25.630171Z","iopub.execute_input":"2025-04-22T10:23:25.630481Z","iopub.status.idle":"2025-04-22T10:23:25.635150Z","shell.execute_reply.started":"2025-04-22T10:23:25.630458Z","shell.execute_reply":"2025-04-22T10:23:25.634327Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['pattern']=train_data.apply(lambda x:classify_pattern(x),axis=1)\ntrain_data\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:15:06.272995Z","iopub.execute_input":"2025-04-22T12:15:06.273344Z","iopub.status.idle":"2025-04-22T12:16:13.928485Z","shell.execute_reply.started":"2025-04-22T12:15:06.273322Z","shell.execute_reply":"2025-04-22T12:16:13.927650Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Visualizing distribution of pattern\ntrain_data['pattern'].value_counts().plot(kind='bar')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:16:37.022873Z","iopub.execute_input":"2025-04-22T12:16:37.023205Z","iopub.status.idle":"2025-04-22T12:16:37.233976Z","shell.execute_reply.started":"2025-04-22T12:16:37.023181Z","shell.execute_reply":"2025-04-22T12:16:37.232932Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Checking the test data\ntest_data=pd.read_csv('/kaggle/input/hms-harmful-brain-activity-classification/test.csv')\ntest_data","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:26.220964Z","iopub.execute_input":"2025-04-22T10:23:26.221234Z","iopub.status.idle":"2025-04-22T10:23:26.234361Z","shell.execute_reply.started":"2025-04-22T10:23:26.221213Z","shell.execute_reply":"2025-04-22T10:23:26.233392Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## EEG Data","metadata":{}},{"cell_type":"code","source":"print(f'Nos. of train eeg files:{len(os.listdir(train_eegs_dir))}')\neegs_list=os.listdir(train_eegs_dir)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:26.787395Z","iopub.execute_input":"2025-04-22T10:23:26.787764Z","iopub.status.idle":"2025-04-22T10:23:26.956108Z","shell.execute_reply.started":"2025-04-22T10:23:26.787735Z","shell.execute_reply":"2025-04-22T10:23:26.955304Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sample_eeg=train_eegs_dir/eegs_list[2]\nsample_eeg","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:26.957184Z","iopub.execute_input":"2025-04-22T10:23:26.957476Z","iopub.status.idle":"2025-04-22T10:23:26.962627Z","shell.execute_reply.started":"2025-04-22T10:23:26.957453Z","shell.execute_reply":"2025-04-22T10:23:26.961877Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"eeg_id=re.search(r'[0-9]+',str(sample_eeg)).group()\ntrain_data[train_data['eeg_id']==int(eeg_id)]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:26.977409Z","iopub.execute_input":"2025-04-22T10:23:26.977662Z","iopub.status.idle":"2025-04-22T10:23:26.997129Z","shell.execute_reply.started":"2025-04-22T10:23:26.977640Z","shell.execute_reply":"2025-04-22T10:23:26.996433Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Reading a sample eeg file\n\npd.read_parquet(sample_eeg)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:27.239189Z","iopub.execute_input":"2025-04-22T10:23:27.239535Z","iopub.status.idle":"2025-04-22T10:23:27.380079Z","shell.execute_reply.started":"2025-04-22T10:23:27.239507Z","shell.execute_reply":"2025-04-22T10:23:27.379187Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"**EEG data from one or more overlapping samples.** \nThe column names are the names of the individual electrode locations for EEG leads, with one exception. The EKG column is for an electrocardiogram lead that records data from the heart. All of the EEG data (for both train and test) was collected at a frequency of 200 samples per second.","metadata":{}},{"cell_type":"markdown","source":"There are 20 columns of 10000 rows.\n\nNo of seconds for which data was collected=10000/200 sec=50 sec","metadata":{}},{"cell_type":"code","source":"#Defining a function to plot EEG\n\ndef plot_eeg(eeg_path):\n    sample_eeg=pd.read_parquet(eeg_path)\n\n    for i,col in enumerate(sample_eeg.columns):\n        fig=plt.figure(figsize=(5,30))\n        ax=plt.subplot(20,1,i+1)\n        ax.plot(sample_eeg[col])\n        ax.set_xlabel(col)\n        plt.grid()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:30.129817Z","iopub.execute_input":"2025-04-22T10:23:30.130119Z","iopub.status.idle":"2025-04-22T10:23:30.135317Z","shell.execute_reply.started":"2025-04-22T10:23:30.130096Z","shell.execute_reply":"2025-04-22T10:23:30.134227Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_eeg(eeg_path=sample_eeg)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:30.262895Z","iopub.execute_input":"2025-04-22T10:23:30.263213Z","iopub.status.idle":"2025-04-22T10:23:33.255531Z","shell.execute_reply.started":"2025-04-22T10:23:30.263184Z","shell.execute_reply":"2025-04-22T10:23:33.254758Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"**Insights from the plot:**\n* Data has a lot of peaks and troughs\n* Most of variation is within -100 to +100 except EKG","metadata":{}},{"cell_type":"code","source":"#Checking the test eeg\nprint(f'Nos. of test eeg files:{len(os.listdir(test_eegs_dir))}')\ntest_eegs_list=os.listdir(test_eegs_dir)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:38.246250Z","iopub.execute_input":"2025-04-22T10:23:38.246606Z","iopub.status.idle":"2025-04-22T10:23:38.256886Z","shell.execute_reply.started":"2025-04-22T10:23:38.246546Z","shell.execute_reply":"2025-04-22T10:23:38.255969Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## Spectrogram data\n\n","metadata":{}},{"cell_type":"code","source":"print(f'Nos. of spectrogram files:{len(os.listdir(train_spectrogram_dir))}')\nspg_list=os.listdir(train_spectrogram_dir)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:38.615152Z","iopub.execute_input":"2025-04-22T10:23:38.615496Z","iopub.status.idle":"2025-04-22T10:23:38.715911Z","shell.execute_reply.started":"2025-04-22T10:23:38.615467Z","shell.execute_reply":"2025-04-22T10:23:38.715125Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Reading a sample spectrogram file\nsample_spectrogram=train_spectrogram_dir/spg_list[2]\npd.read_parquet(sample_spectrogram)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:38.795977Z","iopub.execute_input":"2025-04-22T10:23:38.796270Z","iopub.status.idle":"2025-04-22T10:23:38.854515Z","shell.execute_reply.started":"2025-04-22T10:23:38.796247Z","shell.execute_reply":"2025-04-22T10:23:38.853758Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"Spectrograms assembled EEG data. The **column names indicate the frequency in hertz** and the recording regions of the EEG electrodes. The latter are abbreviated as LL = left lateral; RL = right lateral; LP = left parasagittal; RP = right parasagittal.","metadata":{}},{"cell_type":"code","source":"def plot_spectrogram(spectrogram_path):\n    sample_spect = pd.read_parquet(spectrogram_path)\n    \n    split_spect = {\n        \"LL\": sample_spect.filter(regex='^LL', axis=1),\n        \"RL\": sample_spect.filter(regex='^RL', axis=1),\n        \"RP\": sample_spect.filter(regex='^RP', axis=1),\n        \"LP\": sample_spect.filter(regex='^LP', axis=1),\n    }\n    \n    fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(15, 12))\n    axes = axes.flatten()\n    label_interval = 5\n    for i, split_name in enumerate(split_spect.keys()):\n        ax = axes[i]\n        img = ax.imshow(np.log(split_spect[split_name]).T, cmap='viridis', aspect='auto', origin='lower')\n        cbar = fig.colorbar(img, ax=ax)\n        cbar.set_label('Log(Value)')\n        ax.set_title(split_name)\n        ax.set_ylabel(\"Frequency (Hz)\")\n        ax.set_xlabel(\"Time\")\n\n        ax.set_yticks(np.arange(len(split_spect[split_name].columns)))\n        ax.set_yticklabels([column_name[3:] for column_name in split_spect[split_name].columns])\n        frequencies = [column_name[3:] for column_name in split_spect[split_name].columns]\n        ax.set_yticks(np.arange(0, len(split_spect[split_name].columns), label_interval))\n        ax.set_yticklabels(frequencies[::label_interval])\n    plt.tight_layout()\n    plt.show()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:39.165255Z","iopub.execute_input":"2025-04-22T10:23:39.165622Z","iopub.status.idle":"2025-04-22T10:23:39.173389Z","shell.execute_reply.started":"2025-04-22T10:23:39.165554Z","shell.execute_reply":"2025-04-22T10:23:39.172448Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_spectrogram(sample_spectrogram)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:23:39.263760Z","iopub.execute_input":"2025-04-22T10:23:39.264017Z","iopub.status.idle":"2025-04-22T10:23:41.441605Z","shell.execute_reply.started":"2025-04-22T10:23:39.263995Z","shell.execute_reply":"2025-04-22T10:23:41.440672Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Understanding the data ","metadata":{}},{"cell_type":"code","source":"#Getting the first eeg_id and spectogram_id\nsample_eeg_id=train_data['eeg_id'][0]\nsample_spectogram_id=train_data['spectrogram_id'][0]\n\nsample_data=train_data[train_data['eeg_id']==sample_eeg_id]\nsample_data","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:20.941960Z","iopub.execute_input":"2025-04-22T10:24:20.942299Z","iopub.status.idle":"2025-04-22T10:24:20.967478Z","shell.execute_reply.started":"2025-04-22T10:24:20.942272Z","shell.execute_reply":"2025-04-22T10:24:20.966510Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Reading eeg data\nsample_eeg=train_eegs_dir/(str(sample_eeg_id)+'.parquet')\npd.read_parquet(sample_eeg)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:20.970692Z","iopub.execute_input":"2025-04-22T10:24:20.970965Z","iopub.status.idle":"2025-04-22T10:24:21.021805Z","shell.execute_reply.started":"2025-04-22T10:24:20.970943Z","shell.execute_reply":"2025-04-22T10:24:21.020883Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Visualizing eeg data\nplot_eeg(sample_eeg)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:21.026320Z","iopub.execute_input":"2025-04-22T10:24:21.026581Z","iopub.status.idle":"2025-04-22T10:24:24.159330Z","shell.execute_reply.started":"2025-04-22T10:24:21.026544Z","shell.execute_reply":"2025-04-22T10:24:24.158335Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"* From the above EEG data, we can observe that the training data consists of several sub ids which are each 50 sec long.\n* On the other hand, EEG is a consolidated data where each 2000 samples represent a second.\n* It is important to note that **test data only contains 50 secs of non-overlapping  EEG data**\n\n","metadata":{}},{"cell_type":"code","source":"#Reading spectogram data\nsample_spg=train_spectrogram_dir/(str(sample_spectogram_id)+'.parquet')\npd.read_parquet(sample_spg)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:24.160436Z","iopub.execute_input":"2025-04-22T10:24:24.160707Z","iopub.status.idle":"2025-04-22T10:24:24.236343Z","shell.execute_reply.started":"2025-04-22T10:24:24.160685Z","shell.execute_reply":"2025-04-22T10:24:24.235660Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_spectrogram(sample_spg)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:24.253724Z","iopub.execute_input":"2025-04-22T10:24:24.253964Z","iopub.status.idle":"2025-04-22T10:24:26.318183Z","shell.execute_reply.started":"2025-04-22T10:24:24.253944Z","shell.execute_reply":"2025-04-22T10:24:26.316946Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"* From the above Spectrogram data, we can observe that the training data consists of several sub ids which are each 10 mins long.\n* On the other hand, Spectrogram is a consolidated data where each row represents 2 secs \n* It is important to note that **test data only contains 10 mins of non-overlapping  Spectrogram data**","metadata":{}},{"cell_type":"code","source":"#Checking the occurence of spectrograms against eeg\ntrain_data.groupby(['eeg_id'])['spectrogram_id'].nunique().unique()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:26.319870Z","iopub.execute_input":"2025-04-22T10:24:26.320274Z","iopub.status.idle":"2025-04-22T10:24:26.334449Z","shell.execute_reply.started":"2025-04-22T10:24:26.320242Z","shell.execute_reply":"2025-04-22T10:24:26.333619Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"Hence,each eeg is associated with a unique spectrogram data","metadata":{}},{"cell_type":"code","source":"train_data.groupby(['spectrogram_id'])['eeg_id'].nunique().unique()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:26.336319Z","iopub.execute_input":"2025-04-22T10:24:26.336549Z","iopub.status.idle":"2025-04-22T10:24:26.352958Z","shell.execute_reply.started":"2025-04-22T10:24:26.336530Z","shell.execute_reply":"2025-04-22T10:24:26.352025Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"There may be multiple EEGs for a single Spectrogram","metadata":{}},{"cell_type":"code","source":"#Each spectrogram ID may have multiple expert_consensus\ntrain_data.groupby(['spectrogram_id'])['expert_consensus'].nunique().value_counts()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:26.354556Z","iopub.execute_input":"2025-04-22T10:24:26.354896Z","iopub.status.idle":"2025-04-22T10:24:26.373791Z","shell.execute_reply.started":"2025-04-22T10:24:26.354874Z","shell.execute_reply":"2025-04-22T10:24:26.372986Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Each eeg ID may have multiple expert_consensus\ntrain_data.groupby(['eeg_id'])['expert_consensus'].nunique().value_counts()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:26.374752Z","iopub.execute_input":"2025-04-22T10:24:26.375005Z","iopub.status.idle":"2025-04-22T10:24:26.392855Z","shell.execute_reply.started":"2025-04-22T10:24:26.374984Z","shell.execute_reply":"2025-04-22T10:24:26.392120Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"From the above, we can see that both for spectrogram and EEG, there is usually a common expert consensus though a few may vary","metadata":{}},{"cell_type":"code","source":"train_data","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:26.393591Z","iopub.execute_input":"2025-04-22T10:24:26.393837Z","iopub.status.idle":"2025-04-22T10:24:26.442495Z","shell.execute_reply.started":"2025-04-22T10:24:26.393815Z","shell.execute_reply":"2025-04-22T10:24:26.441524Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"In the train data, each **eeg_sub_id** is associated with **50 sec of EEG data** and each **spectrogram_sub_id** is associated with **10 min of Spectrogram data**","metadata":{}},{"cell_type":"markdown","source":"# Extracting data corresponding to EEG Data","metadata":{}},{"cell_type":"code","source":"sample_eeg_id=train_data['eeg_id'][0]\nsample_eeg=train_eegs_dir/(str(sample_eeg_id)+'.parquet')\nsample_df=pd.read_parquet(sample_eeg)\nsample_df","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:26.443484Z","iopub.execute_input":"2025-04-22T10:24:26.443828Z","iopub.status.idle":"2025-04-22T10:24:26.471454Z","shell.execute_reply.started":"2025-04-22T10:24:26.443796Z","shell.execute_reply":"2025-04-22T10:24:26.470619Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sample_train_data=train_data[train_data['eeg_id']==sample_eeg_id]\nsample_train_data","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:26.472408Z","iopub.execute_input":"2025-04-22T10:24:26.472778Z","iopub.status.idle":"2025-04-22T10:24:26.496175Z","shell.execute_reply.started":"2025-04-22T10:24:26.472744Z","shell.execute_reply":"2025-04-22T10:24:26.495286Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"All of the EEG data (for both train and test) was collected at a frequency of 200 samples per second.\nhence for 18000 rows, time provided for this **EEG data =18000/200 =90 sec**","metadata":{}},{"cell_type":"markdown","source":"## Creating and Loading Datset for EEG","metadata":{}},{"cell_type":"code","source":"import torch\nfrom torch.utils.data import Dataset,DataLoader,Subset","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:26.498167Z","iopub.execute_input":"2025-04-22T10:24:26.498425Z","iopub.status.idle":"2025-04-22T10:24:30.137758Z","shell.execute_reply.started":"2025-04-22T10:24:26.498402Z","shell.execute_reply":"2025-04-22T10:24:30.136991Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"device='cuda' if torch.cuda.is_available() else 'cpu'","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:30.139061Z","iopub.execute_input":"2025-04-22T10:24:30.139509Z","iopub.status.idle":"2025-04-22T10:24:30.197334Z","shell.execute_reply.started":"2025-04-22T10:24:30.139486Z","shell.execute_reply":"2025-04-22T10:24:30.196422Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"class EEGDataset(Dataset):\n    \n    def __init__(self,data,eeg_dir_path):\n        self.data=data\n        self.eeg_dir_path=eeg_dir_path\n        self.targets=['seizure_vote',\t'lpd_vote',\t'gpd_vote',\t'lrda_vote',\t'grda_vote',\t'other_vote']\n        \n    def __len__(self):\n        return len(self.data)\n\n    def __getitem__(self,index):\n        sample_eeg_id=self.data.iloc[index]['eeg_id'] #Getting the id\n        sample_eeg_offset=self.data.iloc[index]['eeg_label_offset_seconds']  #Getting the offset\n\n        #Getting the  targets\n        sample_eeg_target=self.data.iloc[index][self.targets]\n\n        sample_eeg=self.eeg_dir_path/(str(sample_eeg_id)+'.parquet')  #Getting the EEG file \n        sample_eeg_df=pd.read_parquet(sample_eeg)  #Reading the parquet\n\n        #Imputing values\n        \n        #sample_eeg_df=sample_eeg_df.bfill(axis=0) #Filling null values across rows\n        #sample_eeg_df=sample_eeg_df.ffill(axis=0)\n\n        #Getting the EEG data\n        X=self.get_features(eeg_df=sample_eeg_df,eeg_offset=sample_eeg_offset).T #Transposing to get in the shape of (Channel,Timesteps)\n        \n        y=np.array(sample_eeg_target.values.astype('float32')) \n        y=torch.tensor(y)\n        y=y.softmax(dim=-1)  #Since we want probability distribution\n        \n\n        return torch.tensor(X),y\n\n\n    def get_features(self,eeg_df,eeg_offset):\n\n        #Each row in eeg_df contains 1 of 200 samples per second\n        \n        #Checking for existence of atleast 50 secs or 10000 rows of data\n        #if int(eeg_offset)*200+50*200<=len(eeg_df):\n        truncated_df=eeg_df.iloc[int(eeg_offset)*200:int(eeg_offset)*200+50*200] #Collecting 50 secs of data\n        eeg_array=truncated_df.to_numpy()  #Shape:(timesteps,features)\n        \n            \n        #else:/\n            #truncated_df=eeg_df.iloc[int(eeg_offset)*200:] #Collecting till last\n            #eeg_array=truncated_df.to_numpy()\n\n            #Padding to 10000 time steps\n            #rows_to_add = 10000 - eeg_array.shape[0]\n            #padding = ((0, rows_to_add), (0, 0))  # Pad rows at the end, no padding for columns\n            #eeg_array = np.pad(eeg_array, padding, mode='mean')\n        return eeg_array\n\n    \n\n    def target_dict(self):\n        return {i:t for (i,t) in enumerate(self.targets)}\n        \n            \n            \n            \n        \n\n        \n ","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:30.198258Z","iopub.execute_input":"2025-04-22T10:24:30.198499Z","iopub.status.idle":"2025-04-22T10:24:30.209002Z","shell.execute_reply.started":"2025-04-22T10:24:30.198477Z","shell.execute_reply":"2025-04-22T10:24:30.208311Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### Checking for null indexes","metadata":{}},{"cell_type":"code","source":"#Defining a function to get null indexes\ndef get_null_indexes(data,eeg_dir_path):\n    null_index_list=[]\n    for index in range(len(data)):\n        eeg_id=data.iloc[index]['eeg_id'] #Getting the id\n        eeg_offset=data.iloc[index]['eeg_label_offset_seconds']  #Getting the offset\n\n        eeg_file=eeg_dir_path/(str(eeg_id)+'.parquet')  #Getting the EEG file \n        eeg_df=pd.read_parquet(eeg_file)  #Reading the parquet\n\n\n        truncated_df=eeg_df.iloc[int(eeg_offset)*200:int(eeg_offset)*200+50*200] #Collecting 50 secs of data\n        eeg_array=truncated_df.to_numpy()  #Shape:(timesteps,features).T #Transposing to get in the shape of (Channel,Timesteps)\n\n        if np.isnan(eeg_array).any():\n            null_index_list.append(index)\n\n    return null_index_list\n                ","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:30.209970Z","iopub.execute_input":"2025-04-22T10:24:30.210275Z","iopub.status.idle":"2025-04-22T10:24:30.227379Z","shell.execute_reply.started":"2025-04-22T10:24:30.210246Z","shell.execute_reply":"2025-04-22T10:24:30.226647Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Getting null indices\n\n#null_index_list=get_null_indexes(data=train_data,eeg_dir_path=train_eegs_dir)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:30.229226Z","iopub.execute_input":"2025-04-22T10:24:30.229428Z","iopub.status.idle":"2025-04-22T10:24:30.244241Z","shell.execute_reply.started":"2025-04-22T10:24:30.229410Z","shell.execute_reply":"2025-04-22T10:24:30.243399Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Null list location\nnull_index_dir=Path('/kaggle/working')\nnull_index_path=null_index_dir/'null_index.json'","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:30.245101Z","iopub.execute_input":"2025-04-22T10:24:30.245296Z","iopub.status.idle":"2025-04-22T10:24:30.258466Z","shell.execute_reply.started":"2025-04-22T10:24:30.245278Z","shell.execute_reply":"2025-04-22T10:24:30.257649Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Null index download path\nnull_index_download_path=Path('/kaggle/input')/'null-index-json/null_index.json'","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:32.109341Z","iopub.execute_input":"2025-04-22T10:24:32.109816Z","iopub.status.idle":"2025-04-22T10:24:32.113686Z","shell.execute_reply.started":"2025-04-22T10:24:32.109776Z","shell.execute_reply":"2025-04-22T10:24:32.112787Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Storing files in an object\n'''\nwith open(null_index_path,'w') as f:\n    json.dump(null_index_list,f)\n'''","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:32.295655Z","iopub.execute_input":"2025-04-22T10:24:32.295927Z","iopub.status.idle":"2025-04-22T10:24:32.301328Z","shell.execute_reply.started":"2025-04-22T10:24:32.295905Z","shell.execute_reply":"2025-04-22T10:24:32.300496Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Loading the list\nwith open(null_index_download_path,'r') as f:\n    null_list=json.load(f)\n    ","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:32.600234Z","iopub.execute_input":"2025-04-22T10:24:32.600554Z","iopub.status.idle":"2025-04-22T10:24:32.609969Z","shell.execute_reply.started":"2025-04-22T10:24:32.600529Z","shell.execute_reply":"2025-04-22T10:24:32.609289Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(f'No of null index:{len(null_list)}')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:32.681765Z","iopub.execute_input":"2025-04-22T10:24:32.682044Z","iopub.status.idle":"2025-04-22T10:24:32.686921Z","shell.execute_reply.started":"2025-04-22T10:24:32.682022Z","shell.execute_reply":"2025-04-22T10:24:32.685934Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### Splitting data into train & val","metadata":{}},{"cell_type":"code","source":"#Getting the non-null indices\nnon_null_indices=list(set(range(len(train_data)))-set(null_list))\nprint(f'All indices:{len(train_data)}')\nprint(f'Non null indices:{len(non_null_indices)}')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:34.601311Z","iopub.execute_input":"2025-04-22T10:24:34.601703Z","iopub.status.idle":"2025-04-22T10:24:34.615992Z","shell.execute_reply.started":"2025-04-22T10:24:34.601668Z","shell.execute_reply":"2025-04-22T10:24:34.615158Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Splitting the indices\ntrain_split=0.8\n\ntrain_indices=np.random.choice(non_null_indices,int((len(non_null_indices)*train_split)),replace=False).tolist()\nval_indices=list(set(non_null_indices)-set(train_indices))\n\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:34.749708Z","iopub.execute_input":"2025-04-22T10:24:34.750047Z","iopub.status.idle":"2025-04-22T10:24:34.778177Z","shell.execute_reply.started":"2025-04-22T10:24:34.750020Z","shell.execute_reply":"2025-04-22T10:24:34.777182Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Splitting the data based on indices\n\ntrain_set=train_data.iloc[train_indices]\nval_set=train_data.iloc[val_indices]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:35.051222Z","iopub.execute_input":"2025-04-22T10:24:35.051550Z","iopub.status.idle":"2025-04-22T10:24:35.080401Z","shell.execute_reply.started":"2025-04-22T10:24:35.051526Z","shell.execute_reply":"2025-04-22T10:24:35.079660Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Initialializing the dataset\ntrain_eeg_ds=EEGDataset(data=train_set,eeg_dir_path=train_eegs_dir)\nval_eeg_ds=EEGDataset(data=val_set,eeg_dir_path=train_eegs_dir)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:35.102636Z","iopub.execute_input":"2025-04-22T10:24:35.102905Z","iopub.status.idle":"2025-04-22T10:24:35.106873Z","shell.execute_reply.started":"2025-04-22T10:24:35.102884Z","shell.execute_reply":"2025-04-22T10:24:35.106096Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Checking length of dataset\nprint(f'Length of train dataset:{len(train_eeg_ds)}')\nprint(f'Length of val dataset:{len(val_eeg_ds)}')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:35.285974Z","iopub.execute_input":"2025-04-22T10:24:35.286270Z","iopub.status.idle":"2025-04-22T10:24:35.290902Z","shell.execute_reply.started":"2025-04-22T10:24:35.286248Z","shell.execute_reply":"2025-04-22T10:24:35.289919Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Checking shape of dataset\nprint(f'Shape of X in dataset:{train_eeg_ds[0][0].shape}')\nprint(f'Shape of y in dataset:{train_eeg_ds[0][1].shape}')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:24:38.308707Z","iopub.execute_input":"2025-04-22T10:24:38.309059Z","iopub.status.idle":"2025-04-22T10:24:38.376502Z","shell.execute_reply.started":"2025-04-22T10:24:38.309032Z","shell.execute_reply":"2025-04-22T10:24:38.375555Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"Hence we get the dataset in which  **feature** in the shape of **(channels,timesteps)** and **target** in the shape of (labels)","metadata":{}},{"cell_type":"code","source":"#Creating a subdataset for research purpose\n\ntrain_sub_size=30000\nval_sub_size=5000\n\ntrain_sub_indices=np.random.choice(range(len(train_eeg_ds)),train_sub_size,replace=False)\nval_sub_indices=np.random.choice(range(len(val_eeg_ds)),val_sub_size,replace=False)\n\ntrain_sub_ds=Subset(train_eeg_ds,indices=train_sub_indices)\nval_sub_ds=Subset(val_eeg_ds,indices=val_sub_indices)\nprint(f'Length of sub dataset:{len(train_sub_ds)}')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:25:59.206470Z","iopub.execute_input":"2025-04-22T10:25:59.206872Z","iopub.status.idle":"2025-04-22T10:25:59.224093Z","shell.execute_reply.started":"2025-04-22T10:25:59.206839Z","shell.execute_reply":"2025-04-22T10:25:59.223287Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"batch_size=32\n#Creating a sub dataloader\ntrain_sub_dl=DataLoader(train_sub_ds,batch_size=batch_size,shuffle=True)\nval_sub_dl=DataLoader(val_sub_ds,batch_size=batch_size,shuffle=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:26:01.788396Z","iopub.execute_input":"2025-04-22T10:26:01.788764Z","iopub.status.idle":"2025-04-22T10:26:01.792940Z","shell.execute_reply.started":"2025-04-22T10:26:01.788735Z","shell.execute_reply":"2025-04-22T10:26:01.792059Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(f'Shape of X in dataloader:{next(iter(train_sub_dl))[0].shape}')\nprint(f'Shape of y in dataloader:{next(iter(train_sub_dl))[1].shape}')\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:26:05.537417Z","iopub.execute_input":"2025-04-22T10:26:05.537817Z","iopub.status.idle":"2025-04-22T10:26:08.219076Z","shell.execute_reply.started":"2025-04-22T10:26:05.537783Z","shell.execute_reply":"2025-04-22T10:26:08.217893Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sample_dl_X=next(iter(train_sub_dl))[0].to(device)\nprint(f'Shape of sample_dl={sample_dl_X.shape}')\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:26:08.220267Z","iopub.execute_input":"2025-04-22T10:26:08.220596Z","iopub.status.idle":"2025-04-22T10:26:09.372977Z","shell.execute_reply.started":"2025-04-22T10:26:08.220547Z","shell.execute_reply":"2025-04-22T10:26:09.372114Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Getting full validation dataloader\nval_eeg_dl=DataLoader(val_eeg_ds,batch_size=64)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:26:09.374468Z","iopub.execute_input":"2025-04-22T10:26:09.375267Z","iopub.status.idle":"2025-04-22T10:26:09.379871Z","shell.execute_reply.started":"2025-04-22T10:26:09.375220Z","shell.execute_reply":"2025-04-22T10:26:09.378782Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Getting the dict\n\ntarget_dict=val_eeg_ds.target_dict()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:13:19.525907Z","iopub.execute_input":"2025-04-22T12:13:19.526269Z","iopub.status.idle":"2025-04-22T12:13:19.530159Z","shell.execute_reply.started":"2025-04-22T12:13:19.526239Z","shell.execute_reply":"2025-04-22T12:13:19.529345Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Defining the model","metadata":{}},{"cell_type":"markdown","source":"## Defining Utility functions","metadata":{}},{"cell_type":"code","source":"import torch\nfrom torch import nn\nfrom torch.nn import functional as F\n\nimport torchinfo","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:25:15.095053Z","iopub.execute_input":"2025-04-22T10:25:15.095430Z","iopub.status.idle":"2025-04-22T10:25:15.109410Z","shell.execute_reply.started":"2025-04-22T10:25:15.095397Z","shell.execute_reply":"2025-04-22T10:25:15.108426Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import gc\n\ngc.collect()\n\ntorch.cuda.empty_cache()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:25:15.333109Z","iopub.execute_input":"2025-04-22T10:25:15.333445Z","iopub.status.idle":"2025-04-22T10:25:15.461236Z","shell.execute_reply.started":"2025-04-22T10:25:15.333421Z","shell.execute_reply":"2025-04-22T10:25:15.460215Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def train_model(train_dl,val_dl,model,loss_fn,optimizer,epochs,model_path=None,scheduler=None,best_loss=None):\n    epoch_train_loss=[]\n    epoch_val_loss=[]\n    if best_loss:\n        best_loss=best_loss\n    else:\n        best_loss=np.inf\n    \n    for i in range(epochs):\n        #Training the model\n        model.train()\n        train_loss=0\n        for n,(X,y) in enumerate(train_dl):\n            X,y=X.to(device),y.to(device)\n            y_pred=model(X)  #y_pred is softmax\n            \n            loss=loss_fn(torch.log(y_pred),y)  \n    \n            train_loss+=loss*y.shape[0]\n            #Zero grad the optimizer\n            optimizer.zero_grad()\n            #Backpropagate\n            loss.backward()\n            #Updating parameters\n            optimizer.step()\n            #Tuning the scheduler\n            if scheduler:\n                scheduler.step()\n            if n%10==0:\n                print(f'Batch:{i}_{n} | Batch loss:{loss.item():.2f}')\n\n           \n\n        train_loss=(train_loss/len(train_dl.dataset)).item()\n        print(f'Epoch:{i} | Train loss:{train_loss:.2f}')\n        epoch_train_loss.append(train_loss)\n\n        #Evaluating model\n        model.eval()\n        val_loss=0\n        with torch.no_grad():\n            for X,y in val_dl:\n                X,y=X.to(device),y.to(device)\n                y_pred=model(X)  #y_pred is softmax\n                loss=loss_fn(torch.log(y_pred),y)\n                val_loss+=loss*y.shape[0]\n            val_loss=(val_loss/len(val_dl.dataset)).item()\n            \n            print(f'Epoch:{i} | Val loss:{val_loss:.2f}')\n            epoch_val_loss.append(val_loss)\n        #Saving model\n        if model_path:\n            model_path.parent.mkdir(parents=True,exist_ok=True)\n            if val_loss<best_loss:\n                torch.save(model.state_dict(),model_path)  #saving the state dict\n                best_loss=val_loss\n                \n                \n            \n    return epoch_train_loss,epoch_val_loss\n\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:25:17.088538Z","iopub.execute_input":"2025-04-22T10:25:17.088965Z","iopub.status.idle":"2025-04-22T10:25:17.097373Z","shell.execute_reply.started":"2025-04-22T10:25:17.088933Z","shell.execute_reply":"2025-04-22T10:25:17.096523Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Defining evaluation function\n\ndef eval_model(model,val_dl,loss_fn):\n    model.eval()\n    val_loss=0\n    with torch.no_grad():\n        for (X,y) in val_dl:\n            X,y=X.to(device),y.to(device)\n            y_pred=model(X)\n            loss=loss_fn(torch.log(y_pred),y)\n            val_loss+=loss*y.shape[0]\n        val_loss=(val_loss/len(val_dl.dataset)).item()\n    return val_loss\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:25:18.548313Z","iopub.execute_input":"2025-04-22T10:25:18.548660Z","iopub.status.idle":"2025-04-22T10:25:18.553746Z","shell.execute_reply.started":"2025-04-22T10:25:18.548633Z","shell.execute_reply":"2025-04-22T10:25:18.552847Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Defining a function to  get prediction\ndef predict_labels(model,eeg_data,target_dict):\n    model.eval()\n    pred=model(eeg_data).detach().cpu().numpy()\n    return pd.DataFrame(pred,columns=target_dict.values())\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:25:18.711156Z","iopub.execute_input":"2025-04-22T10:25:18.711491Z","iopub.status.idle":"2025-04-22T10:25:18.716001Z","shell.execute_reply.started":"2025-04-22T10:25:18.711462Z","shell.execute_reply":"2025-04-22T10:25:18.715176Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Defining a function to  get load pre-trained models\ndef load_pretrained(model,state_dict_path):\n    if torch.cuda.is_available()==False:\n        map_location=torch.device('cpu')\n    else:\n        map_location=torch.device('cuda')\n    \n    model.load_state_dict(torch.load(state_dict_path,weights_only=True,map_location=map_location))\n    return model","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:25:19.126071Z","iopub.execute_input":"2025-04-22T10:25:19.126430Z","iopub.status.idle":"2025-04-22T10:25:19.131085Z","shell.execute_reply.started":"2025-04-22T10:25:19.126398Z","shell.execute_reply":"2025-04-22T10:25:19.129995Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Paths for pretrained model\neeg_model_dir=Path('/kaggle/input')\neeg_simple_state=eeg_model_dir/'eeg-simple-model'/'pytorch'/'default'/'3'/'eeg_model.pth'\neeg_resnet_state=eeg_model_dir/'eeg-resnet-model'/'pytorch'/'default'/'2'/'eeg_r_model.pth'","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:06:38.697931Z","iopub.execute_input":"2025-04-22T12:06:38.698311Z","iopub.status.idle":"2025-04-22T12:06:38.702668Z","shell.execute_reply.started":"2025-04-22T12:06:38.698284Z","shell.execute_reply":"2025-04-22T12:06:38.701671Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## EEGNet + LSTM","metadata":{}},{"cell_type":"markdown","source":"There may be several options of using CNN based or LSTM based architecture.\n\n\nWe will consider implementing the EEGNet architecture, defined in the following publication:\n\n**EEGNet: A Compact Convolutional Neural Network\nfor EEG-based Brain-Computer Interfaces**\nhttps://arxiv.org/pdf/1611.08024\n\nIn addition to the Temporal Convolution,Spatial Convolution and Separable Convolution layers,an **LSTM layer** is also added to better capture the temporal variation of data before passing into the Linear layers \n\nFollowing is the overall view of the EEGNet architecture:\n![image.png](attachment:2b54126a-7c27-44c4-8505-78480f4f36b1.png)","metadata":{},"attachments":{"2b54126a-7c27-44c4-8505-78480f4f36b1.png":{"image/png":"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/v9ixz8YzXJWsEAuFJFQUeCnQjcampdffpnQ0FBz3elll11GeHg4DoeD7t27c+zYMfMIPrmDlgUSHBxMdHQ02dnZzJw5k2+++Ya7776bfv36NYjT5rfTq1cvrr32WhYsWMD+/fsZM2YMTZs2xev1kpubS9u2bdF1nb/97W98//33FBYW8vTTT9OuXTvy8/NJTEwkLCyMO++802wQhX6IhkT+LetUYGAgAwcOZNGiRWajetFFF+Hr62saTqtXr0bTNFwuF5999hmff/65mfYePXrw+uuvm+F5jOPZPvvsM6qqqigsLMTr9dK8eXMeffRR84UsWPTZ5n9HGOji+8svv2TJkiVUV1dTUlKCx+MhIiKCu+66i+bNm6MoCv369aNVq1YkJyfz8ssvmzMBRUVFVFVV8fjjj9OuXTvTCPUYb9Zct26duZwiMDCQK6+80vQjTv7YsGEDJ0+epH///tx9990N0irKXtZFYfCoqkrXrl356aefKCsrQ1EUunfvjq+vL926dWPTpk2UlJSgGKdkWNtHEZamaXz22WcUFBTQvn17HA6HuTG4R48eOJ1OrrrqKlasWMGJEyd4/vnn6datG263m/z8fAIDAxk9ejRhYWFceumlbNu2jb1797Jx40YOHz5MaGgodXV1FBYWct555+Hn58fVV1/NoUOHOHbsGC+++CJNmzYlKyuLvLw8mjZtysiRIxuk85d+i/9NmjShU6dOHDhwwHzQvvDCC816vnv3bo4dO4ZiTG/PnTvXbAc0TWPo0KHmkZ+KMRshjumtrKw0Zdy+fXvuuecenMaxvkizGWcKijGyuGzZMmbPnk1sbCxhYWHkGeeDBwQEMGrUKAIDA7nqqqvMYxAfeeQRevfujWJstlQUhVdeecU8hQrjXRHjx4/ns88+Iycnh4qKCuLi4rjqqqsICgqiefPmHDlyhC+//JLS0lIOHjzI3r17zbSdqvwAWrRoQUBAAAUFBUycOJHu3buzevVqcybIqsO+vr5s3bqVRx55BD8/P1JSUvDx8eH22283DXhrHerfvz9du3Zl7969jB492hztzs3NpaysjJdeeolu3brRsWNHbrrpJr744guSk5N59tlnzc2wOTk5NGvWjLvuuourrrqKb7/9lszMTMaMGUPbtm0pLS3l6NGjhIaGcu+99zaovwLdMligSAOJor9JTEw0l+MMHjzY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bds2SkpKGDBggJmX08HpXOMv2vJNmzZx7Ngxrr76ar799luWL1/OM888w4UXXmjWQV3XOXLkCOPGjeObb74x2/vExES6du1qtgmLFy9m2rRpVFRU8O6777J06VKioqLo3Lkzo0ePJjs7m127djF16lRzFlTTNLNP0HWdqqoq5syZw3vvvcfKlStZvXo169evJygoyKwj5eXlLFmyhLZt23LBBRectvL5LXi9Xl577TXCw8MZM2ZMg9kJUT+8Xi/Lli2jdevW9OrVi5SUFJ544glCQkLo1asXitG3LF++nOeff56LL74Yp9PJ22+/zYYNGygvLzf3LTmdTvr06cPBgwcZN24cgYGBTJkyhYULF7Js2TLWrFlDVFSU2Tfl5OTwz3/+E0VRzP0SmqaxZcsW/vnPf3LRRRcRGhrKxIkTWbFiBWVlZRw7doy1a9fi8Xi44IILGuTnl9DsNf5nPWf2cJWNieigZbxeL/PmzTM7AdG4ikbh5MmTjBs3jnbt2vHNN9+wbNkynnjiCebNm8eCBQtMf3V1dezfv5+1a9fyyiuvMH36dDp27IjX66Wuro4PPviAoKAgpkyZwsyZMwkODmbixIlUVlaajd3777/Pli1bGDt2LBs2bGDWrFkEBQXx8ssvU1BQgP4L0/6nG4/HQ1ZWFhEREcTHx5vucvr8/Pxo2bIlpaWlVFRUoOs6NTU15myJyLfX68XlcpkjwDfeeCMffvghADfeeCNz5szh9ddfN2dhPB4P3333Hbt372by5MnMmzePm2++mS+++IKffvoJDEPN5XJRW1vbQFaapjVYM3vFFVcwZ84cnE4nI0aMYO7cuYwfP9580DpTOZUe7Nixgy+++ILhw4dz7bXX4uPjY14rLy9nypQp1NTU8Nprr7Fo0SLGjBlDeno677//vhmWy+UiLy+PBQsWcO211zJp0iQuu+wyMMp948aN7Nmzh9GjRzNp0iT69+/PN998w+HDh01jeMuWLcycOZNRo0bx+eefM3PmTHr06MFHH33EgQMHGqTbmoczkYqKCsrKymjdujUBAQFmXZTLITo6moCAAHOEXzP248izg4rxwCP2NgQHB/PII49w2223ERgYyD//+U/efvttbrnlFjOMyspKZsyYQatWrZg4cSITJ04kOjqajz/+2Byt93g8eDwe6urqGqRJuHu9Xnx9fXnggQe4//77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"}}},{"cell_type":"code","source":"class EEGNet(nn.Module):\n\n    def __init__(self,num_features,num_targets,num_temp_filters=40,num_spatial_filters=40,dropout_rate_cn=0.1,dropout_rate_fc=0.3):\n        super().__init__()\n        self.dropout_rate_cn=dropout_rate_cn\n        self.dropout_rate_fc=dropout_rate_fc\n        self.num_targets=num_targets\n        #Normalizing across channels\n        self.bn1=nn.BatchNorm1d(num_features=num_features) \n        \n        #Using a filter to convolve across temporal direction\n        self.temp_conv=nn.Conv2d(in_channels=1,out_channels=num_temp_filters,kernel_size=(1,64),bias=False)\n        #Normalizing across temporal features\n        self.bn2=nn.BatchNorm2d(num_features=num_temp_filters)\n        \n        #Using a filter to convolve across spatial direction\n        self.depth_conv=nn.Conv2d(in_channels=num_temp_filters,out_channels=num_spatial_filters,kernel_size=(num_features,1),bias=False)\n        #Normalizing across spatial features\n        self.bn3=nn.BatchNorm2d(num_features=num_spatial_filters)\n        #Average pooling\n        self.avgpool1=nn.AvgPool2d(kernel_size=(1,8))\n        \n        \n        \n        #Using a filter to convolve across features\n        self.sep_conv=nn.Conv2d(in_channels=num_spatial_filters,out_channels=num_spatial_filters,kernel_size=(1,16),bias=False)\n        #Normalizing across  features\n        self.bn4=nn.BatchNorm2d(num_features=num_spatial_filters) \n        #Average pooling\n        self.avgpool2=nn.AvgPool2d(kernel_size=(1,16))\n        \n        #Applying LSTM\n        self.lstm=None\n\n        #Normalizing across  features\n        self.bn5=None \n\n        \n        #Linear layer 1\n        self.linear1=None\n        #Applying batch norm\n        self.bn6=None\n        #Linear layer 2\n        self.linear2=None\n        #Applying batch norm\n        self.bn7=None\n\n        #Dropout\n        self.dropout_cn=nn.Dropout(p=dropout_rate_cn)\n        self.dropout_fc=nn.Dropout(p=dropout_rate_fc)\n    \n    \n    \n\n    def forward(self,x):\n        x=self.bn1(x)     #Input shape (batch_size,features,timesteps)\n        x=torch.unsqueeze(x,1)  #Output shape (batch_size,1,features,timesteps)\n        \n        x=self.temp_conv(x)     #Output shape (batch_size,filters,features,timesteps)\n        x=self.bn2(x)           \n        x=F.elu(x)\n        \n        x=self.depth_conv(x)    #Output shape (batch_size,features,1,timesteps)\n        x=self.bn3(x)\n        x=F.elu(x)\n        x=self.avgpool1(x)\n        \n       \n        \n        x=self.sep_conv(x)     #Output shape (batch_size,features,1,timesteps)\n        x=self.bn4(x)\n        x=F.elu(x)\n        x=self.avgpool2(x)\n       \n        \n       \n        x=x.squeeze(-2)        #Output shape (batch_size,features,timesteps)\n        \n        lstm_in=x.permute(0,2,1)     #Output shape (batch_size,timesteps,features)\n\n        lstm_in=self.dropout_cn(lstm_in)\n        \n        \n\n        if self.lstm==None:\n            features=lstm_in.shape[-1]\n            self.lstm=nn.LSTM(input_size=features, hidden_size=features, num_layers=1, bias=True, \n                              batch_first=True, dropout=0.0, bidirectional=False).to(device)\n\n        \n        lstm_out=self.lstm(lstm_in)[0][:,-1,:]   #Output shape (batch_size,features) \n        \n        \n        if self.bn5==None:\n            in_features = lstm_out.shape[1]\n            self.bn5 = nn.BatchNorm1d(num_features=in_features).to(device)\n        lstm_out=self.bn5(lstm_out)\n\n       \n        x=nn.Flatten()(x)  #Output shape (batch_size,features)\n        #Concatenating lsmtm output with original features\n        x=torch.cat([x,lstm_out],dim=-1)\n        x=self.dropout_fc(x)\n       \n        if self.linear1==None:\n            in_features = x.shape[1]\n            self.linear1 = nn.Linear(in_features,in_features//10 ).to(device)\n        x=self.linear1(x)\n        if self.bn6==None:\n            in_features = x.shape[1]\n            self.bn6 = nn.BatchNorm1d(num_features=in_features).to(device)\n        x=self.bn6(x)\n        x=F.elu(x)\n        x=self.dropout_fc(x)\n            \n        if self.linear2==None:\n            in_features = x.shape[1]\n            self.linear2 = nn.Linear(in_features,self.num_targets ).to(device)\n        x=self.linear2(x)\n\n\n        \n        x=F.softmax(x,dim=-1)      \n        \n        return x\n        \n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:06:42.639957Z","iopub.execute_input":"2025-04-22T12:06:42.640261Z","iopub.status.idle":"2025-04-22T12:06:42.671792Z","shell.execute_reply.started":"2025-04-22T12:06:42.640238Z","shell.execute_reply":"2025-04-22T12:06:42.670971Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Initililizing the model\neegnet=EEGNet(num_features=20,num_targets=6,num_temp_filters=20,num_spatial_filters=40,dropout_rate_cn=0.1,dropout_rate_fc=0.3).to(device)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:06:46.029446Z","iopub.execute_input":"2025-04-22T12:06:46.029794Z","iopub.status.idle":"2025-04-22T12:06:46.037535Z","shell.execute_reply.started":"2025-04-22T12:06:46.029768Z","shell.execute_reply":"2025-04-22T12:06:46.036558Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"out=eegnet(sample_dl_X)\nprint(f'Shape of output:{out.shape}')\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:06:47.068518Z","iopub.execute_input":"2025-04-22T12:06:47.068866Z","iopub.status.idle":"2025-04-22T12:06:47.117826Z","shell.execute_reply.started":"2025-04-22T12:06:47.068839Z","shell.execute_reply":"2025-04-22T12:06:47.117081Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"torchinfo.summary(eegnet,input_data=sample_dl_X)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:06:50.433497Z","iopub.execute_input":"2025-04-22T12:06:50.433895Z","iopub.status.idle":"2025-04-22T12:06:50.446147Z","shell.execute_reply.started":"2025-04-22T12:06:50.433860Z","shell.execute_reply":"2025-04-22T12:06:50.445099Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Loading pre-trained model\neegnet=load_pretrained(model=eegnet,state_dict_path=eeg_simple_state)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:06:55.112505Z","iopub.execute_input":"2025-04-22T12:06:55.112973Z","iopub.status.idle":"2025-04-22T12:06:55.234275Z","shell.execute_reply.started":"2025-04-22T12:06:55.112928Z","shell.execute_reply":"2025-04-22T12:06:55.233305Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Defining the hyperparameters\nconfig_eegnet={\n    'train_dl':train_sub_dl,\n    'val_dl':val_sub_dl,\n    'model':eegnet,\n    'model_path':Path('/kaggle/working')/'model_dir'/'eeg_model.pth',\n    'epochs':5,\n    'best_loss':np.inf\n}\n\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T11:27:18.220500Z","iopub.execute_input":"2025-04-22T11:27:18.220845Z","iopub.status.idle":"2025-04-22T11:27:18.224987Z","shell.execute_reply.started":"2025-04-22T11:27:18.220819Z","shell.execute_reply":"2025-04-22T11:27:18.224202Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Defining loss and optimization functions\nloss_fn=nn.KLDivLoss(reduction=\"batchmean\")\n\noptimizer=torch.optim.AdamW(eegnet.parameters(), lr=0.001)\n\nscheduler=torch.optim.lr_scheduler.OneCycleLR(\n        optimizer,\n        max_lr=1e-3,\n        epochs=config_eegnet['epochs'],\n        steps_per_epoch=len(config_eegnet['train_dl']),\n        pct_start=0.1,\n        anneal_strategy=\"cos\",\n        final_div_factor=1000,\n    )","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T11:27:21.037355Z","iopub.execute_input":"2025-04-22T11:27:21.037726Z","iopub.status.idle":"2025-04-22T11:27:21.043559Z","shell.execute_reply.started":"2025-04-22T11:27:21.037694Z","shell.execute_reply":"2025-04-22T11:27:21.042903Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_model(train_dl=config_eegnet['train_dl'],\n            val_dl=config_eegnet['val_dl'],\n            model=eegnet,loss_fn=loss_fn,optimizer=optimizer,\n            epochs=config_eegnet['epochs'],\n            scheduler=scheduler,\n            model_path=config_eegnet['model_path'],\n            best_loss=config_eegnet['best_loss'])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T11:27:27.627153Z","iopub.execute_input":"2025-04-22T11:27:27.627474Z","iopub.status.idle":"2025-04-22T12:01:45.794824Z","shell.execute_reply.started":"2025-04-22T11:27:27.627448Z","shell.execute_reply":"2025-04-22T12:01:45.793857Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Evaluating model\neval_model(model=eegnet,val_dl=val_eeg_dl,loss_fn=loss_fn)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:07:05.582933Z","iopub.execute_input":"2025-04-22T12:07:05.583289Z","iopub.status.idle":"2025-04-22T12:11:19.562358Z","shell.execute_reply.started":"2025-04-22T12:07:05.583257Z","shell.execute_reply":"2025-04-22T12:11:19.561350Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### The **Kullback Leibler Divergence Loss** for entire val dataset with the trained model is **0.98**.","metadata":{}},{"cell_type":"markdown","source":"## EEGNet with Resnet","metadata":{}},{"cell_type":"markdown","source":"In this model,instead of using a fixed size kernel for temporal convolution, we have used **different sizes of kernel**,which would **undergo separate  convolutions in parallel**,before concatenation.\nFurther instead of a single convolution layers, **multiple residual blocks of convolution layer** have been used,which allows for deeper networks with more feature extraction.\n\n","metadata":{}},{"cell_type":"code","source":"class ResNet_1D_Block(nn.Module):\n\n    def __init__(self, in_channels, out_channels, kernel_size, stride,dropout, downsampling):\n        super().__init__()\n        self.bn1 = nn.BatchNorm1d(num_features=in_channels)\n        self.relu = nn.ReLU(inplace=False)\n        self.dropout = nn.Dropout(p=dropout, inplace=False)\n        self.conv1 = nn.Conv1d(in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size,\n                               stride=stride, padding='same', bias=False)\n        self.bn2 = nn.BatchNorm1d(num_features=out_channels)\n        self.conv2 = nn.Conv1d(in_channels=out_channels, out_channels=out_channels, kernel_size=kernel_size,\n                               stride=stride, padding='same', bias=False)\n        self.maxpool = nn.MaxPool1d(kernel_size=2, stride=2, padding=0)\n        self.downsampling = downsampling\n\n    def forward(self, x):\n        identity = x\n\n        out = self.bn1(x)\n        out = self.relu(out)\n        out = self.dropout(out)\n        out = self.conv1(out)\n        out = self.bn2(out)\n        out = self.relu(out)\n        out = self.dropout(out)\n        out = self.conv2(out)\n\n        out = self.maxpool(out)\n        identity = self.downsampling(x)\n\n        out += identity\n        return out\n\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:25:30.828679Z","iopub.execute_input":"2025-04-22T10:25:30.829040Z","iopub.status.idle":"2025-04-22T10:25:30.836225Z","shell.execute_reply.started":"2025-04-22T10:25:30.829011Z","shell.execute_reply":"2025-04-22T10:25:30.835353Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"class EEGNet_resnet(nn.Module):\n    def __init__(self, num_features, num_targets, temporal_filter_lengths, num_temp_filters=24, dropout_rate_cn=0.1,dropout_rate_fc=0.3,res_blocks=6):\n        super().__init__()\n        self.num_temp_filters=num_temp_filters\n        \n        self.dropout_rate_cn = dropout_rate_cn\n        self.dropout_rate_fc = dropout_rate_fc\n        self.num_targets = num_targets\n        self.temporal_filter_lengths = temporal_filter_lengths  # Store filter lengths\n        self.res_blocks=res_blocks\n\n        # Normalizing across channels\n        self.bn1 = nn.BatchNorm1d(num_features=num_features)\n\n        # Parallel convolutions with multiple filter lengths\n        self.parallel_convs = nn.ModuleList()\n        for filter_length in temporal_filter_lengths:\n            self.parallel_convs.append(\n                nn.Sequential(\n                    #Using a filter to convolve across temporal direction\n                    nn.Conv1d(in_channels=num_features, out_channels=num_temp_filters, kernel_size=filter_length,padding='same',bias=False),\n                    nn.BatchNorm1d(num_features=num_temp_filters),\n                    nn.ReLU(),\n                    nn.AvgPool1d(kernel_size=4, stride=2, padding=0)\n                     )\n                    )\n       \n        # Using a filter to convolve across features\n        self.sep_conv = nn.Conv1d(in_channels=num_temp_filters*len(temporal_filter_lengths), out_channels=num_temp_filters*len(temporal_filter_lengths), kernel_size=8,stride=2,bias=False)\n        # Normalizing across  features\n        self.bn4 = nn.BatchNorm1d(num_features=num_temp_filters*len(temporal_filter_lengths))\n        # Average pooling\n        self.avgpool2 = nn.AvgPool1d(kernel_size=2, stride=2, padding=0)\n\n        #Making resnet block\n        self.block = self._make_resnet_layer(kernel_size=16, stride=1,blocks=res_blocks, dropout=dropout_rate_cn)\n\n        # Applying LSTM\n        self.lstm = None\n\n        # Normalizing across  features\n        self.bn5 = None\n\n        # Linear layer 1\n        self.linear1 = None\n        # Applying batch norm\n        self.bn6 = None\n        # Linear layer 2\n        self.linear2 = None\n        # Applying batch norm\n        self.bn7 = None\n        # Linear layer 3\n        self.linear3 = None\n        # Applying batch norm\n        self.bn8= None\n\n        #Dropout\n        self.dropout_cn=nn.Dropout(p=dropout_rate_cn)\n        self.dropout_fc=nn.Dropout(p=dropout_rate_fc)\n\n        #ReLU\n        self.relu=nn.ReLU()\n    \n    #Function to make resnet layers\n    def _make_resnet_layer(self, kernel_size, stride, blocks,dropout):\n        planes=self.num_temp_filters*len(self.temporal_filter_lengths)\n        layers = []\n        downsample = None\n       \n\n        for i in range(blocks):\n            downsampling = nn.Sequential(\n                    nn.AvgPool1d(kernel_size=2, stride=2, padding=0)\n                )\n            layers.append(ResNet_1D_Block(in_channels=planes, out_channels=planes, kernel_size=kernel_size,\n                                       stride=stride, dropout=dropout, downsampling=downsampling))\n\n        return nn.Sequential(*layers)\n        \n\n    def forward(self, x):\n        x = self.bn1(x)  # Input shape (batch_size, features, timesteps)\n        \n        # Apply each temporal convolution in parallel and concatenate the results\n        temp_outputs = []\n        for parallel_conv in self.parallel_convs:\n            temp_output=parallel_conv(x)\n            temp_outputs.append(temp_output)\n          \n        x = torch.cat(temp_outputs, dim=1)  # Output shape (batch_size,features*temporal_length, timesteps)\n\n        \n        x = self.sep_conv(x)  # Output shape (batch_size, features, timesteps)\n        x = self.bn4(x)\n        \n        #Apply resnet convolution blocks\n        x = self.block(x)  # Output shape (batch_size, features, timesteps)\n        \n        if self.bn5 is None:\n            in_features = x.shape[1]\n            self.bn5 = nn.BatchNorm1d(num_features=in_features).to(device)\n        x = self.bn5(x)  # Output shape (batch_size, features, timesteps)\n        \n        #Apply LSTM \n        lstm_in = x.permute(0, 2, 1)  # Output shape (batch_size, timesteps, features)\n         \n        if self.lstm is None:\n            lstm_features = lstm_in.shape[-1]\n            self.lstm = nn.LSTM(input_size=lstm_features, hidden_size=lstm_features , num_layers=1, bias=True,\n                                        batch_first=True, bidirectional=False).to(device)\n\n        #taking last timestep\n        lstm_out = self.lstm(lstm_in)[0][:,-1,:]  # Output shape (batch_size, features)\n\n        if self.bn6 is None:\n            in_features = lstm_out.shape[1]\n            self.bn6 = nn.BatchNorm1d(num_features=in_features).to(device)\n        lstm_out = self.bn6(lstm_out)\n\n        #Flattening resnet output\n        x = nn.Flatten()(x)  # Output shape (batch_size, features)\n        \n        #Concatenating resnet  and lstm output\n        x=torch.cat([x,lstm_out],dim=-1)    \n        x = self.dropout_fc(x)\n       \n        #Applying linear layer\n        if self.linear1 is None:\n            in_features = x.shape[1]\n            self.linear1 = nn.Linear(in_features,in_features//8 ).to(device)\n        x = self.linear1(x)\n        if self.bn7 is None:\n            in_features = x.shape[1]\n            self.bn7 = nn.BatchNorm1d(num_features=in_features).to(device)\n        x = self.bn7(x)\n        x = self.relu(x)\n        \n       \n        x = self.dropout_fc(x)\n\n        if self.linear2 is None:\n            in_features = x.shape[1]\n            self.linear2 = nn.Linear(in_features, self.num_targets).to(device)\n        x = self.linear2(x)\n     \n      \n        x = F.softmax(x, dim=-1)\n       \n        return x\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:25:35.189287Z","iopub.execute_input":"2025-04-22T10:25:35.189662Z","iopub.status.idle":"2025-04-22T10:25:35.203644Z","shell.execute_reply.started":"2025-04-22T10:25:35.189632Z","shell.execute_reply":"2025-04-22T10:25:35.202600Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Initililizing the model\neegnet_r=EEGNet_resnet(num_features=20, num_targets=6, temporal_filter_lengths=[4,8,12], num_temp_filters=24, dropout_rate_cn=0.1,dropout_rate_fc=0.3,res_blocks=7).to(device)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:27:09.976273Z","iopub.execute_input":"2025-04-22T10:27:09.976656Z","iopub.status.idle":"2025-04-22T10:27:10.002903Z","shell.execute_reply.started":"2025-04-22T10:27:09.976622Z","shell.execute_reply":"2025-04-22T10:27:10.002176Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"out=eegnet_r(sample_dl_X)\nprint(f'Shape of output:{out.shape}')\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:27:15.886404Z","iopub.execute_input":"2025-04-22T10:27:15.886824Z","iopub.status.idle":"2025-04-22T10:27:15.915359Z","shell.execute_reply.started":"2025-04-22T10:27:15.886791Z","shell.execute_reply":"2025-04-22T10:27:15.914359Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"torchinfo.summary(eegnet_r,input_data=sample_dl_X)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:27:23.710171Z","iopub.execute_input":"2025-04-22T10:27:23.710504Z","iopub.status.idle":"2025-04-22T10:27:23.746706Z","shell.execute_reply.started":"2025-04-22T10:27:23.710479Z","shell.execute_reply":"2025-04-22T10:27:23.745887Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Loading pre-trained model\neegnet_r=load_pretrained(model=eegnet_r,state_dict_path=eeg_resnet_state)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T11:00:15.651554Z","iopub.execute_input":"2025-04-22T11:00:15.651894Z","iopub.status.idle":"2025-04-22T11:00:15.704224Z","shell.execute_reply.started":"2025-04-22T11:00:15.651870Z","shell.execute_reply":"2025-04-22T11:00:15.703578Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Defining the hyperparameters\nconfig_eegnet_r={\n    'train_dl':train_sub_dl,\n    'val_dl':val_sub_dl,\n    'model':eegnet_r,\n    'model_path':Path('/kaggle/working')/'model_dir'/'eeg_r_model.pth',\n    'epochs':3,\n    'best_loss':0.78 #The best loss for pre-trained parameter\n}","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T11:00:19.711401Z","iopub.execute_input":"2025-04-22T11:00:19.711774Z","iopub.status.idle":"2025-04-22T11:00:19.716014Z","shell.execute_reply.started":"2025-04-22T11:00:19.711743Z","shell.execute_reply":"2025-04-22T11:00:19.715088Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Defining loss and optimization functions\nloss_fn=nn.KLDivLoss(reduction=\"batchmean\")\n\noptimizer=torch.optim.AdamW(eegnet_r.parameters(), lr=0.5*1e-4)\n\nscheduler=torch.optim.lr_scheduler.OneCycleLR(\n        optimizer,\n        max_lr=0.5*1e-4,\n        epochs=config_eegnet_r['epochs'],\n        steps_per_epoch=len(config_eegnet_r['train_dl']),\n        pct_start=0.1,\n        anneal_strategy=\"cos\",\n        final_div_factor=100,\n    )","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T11:00:22.507982Z","iopub.execute_input":"2025-04-22T11:00:22.508289Z","iopub.status.idle":"2025-04-22T11:00:22.513503Z","shell.execute_reply.started":"2025-04-22T11:00:22.508267Z","shell.execute_reply":"2025-04-22T11:00:22.512464Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_model(train_dl=config_eegnet_r['train_dl'],\n            val_dl=config_eegnet_r['val_dl'],\n            model=eegnet_r,\n            loss_fn=loss_fn,optimizer=optimizer,\n            epochs=config_eegnet_r['epochs'],\n            scheduler=scheduler,\n            model_path=config_eegnet_r['model_path'],\n            best_loss=config_eegnet_r['best_loss'])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T11:00:25.238923Z","iopub.execute_input":"2025-04-22T11:00:25.239228Z","iopub.status.idle":"2025-04-22T11:25:59.925945Z","shell.execute_reply.started":"2025-04-22T11:00:25.239206Z","shell.execute_reply":"2025-04-22T11:25:59.922901Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Evaluating model\neval_model(model=eegnet_r,val_dl=val_eeg_dl,loss_fn=loss_fn)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T10:40:06.954512Z","iopub.execute_input":"2025-04-22T10:40:06.954888Z","iopub.status.idle":"2025-04-22T10:44:35.594086Z","shell.execute_reply.started":"2025-04-22T10:40:06.954861Z","shell.execute_reply":"2025-04-22T10:44:35.592956Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### The **Kullback Leibler Divergence Loss** for entire val dataset with the trained model is **0.78**.\n\nThis is a significant improvement over the simpler model without residual blocks","metadata":{}},{"cell_type":"markdown","source":"# Predicting with EEG Data","metadata":{}},{"cell_type":"code","source":"#Loading a sample data\nsample_index=np.random.choice(np.arange(len(val_eeg_ds)),1).item()\n\nsample_data_X=val_eeg_ds[sample_index][0].unsqueeze(0).to(device)\nsample_data_y=val_eeg_ds[sample_index][1]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:12:49.756234Z","iopub.execute_input":"2025-04-22T12:12:49.756618Z","iopub.status.idle":"2025-04-22T12:12:49.787839Z","shell.execute_reply.started":"2025-04-22T12:12:49.756590Z","shell.execute_reply":"2025-04-22T12:12:49.787092Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Actual\npd.DataFrame(sample_data_y.numpy().reshape(1,6),columns=target_dict.values())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:13:48.008468Z","iopub.execute_input":"2025-04-22T12:13:48.008818Z","iopub.status.idle":"2025-04-22T12:13:48.038968Z","shell.execute_reply.started":"2025-04-22T12:13:48.008793Z","shell.execute_reply":"2025-04-22T12:13:48.038149Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Predicting with eegnet resnet model\npredict_labels(model=eegnet_r,eeg_data=sample_data_X,target_dict=target_dict)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-22T12:14:14.730078Z","iopub.execute_input":"2025-04-22T12:14:14.730406Z","iopub.status.idle":"2025-04-22T12:14:14.785382Z","shell.execute_reply.started":"2025-04-22T12:14:14.730379Z","shell.execute_reply":"2025-04-22T12:14:14.784667Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Extracting data corresponding to Spectrogram Data","metadata":{}},{"cell_type":"code","source":"train_data","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-18T10:55:12.784934Z","iopub.execute_input":"2025-04-18T10:55:12.785332Z","iopub.status.idle":"2025-04-18T10:55:12.866536Z","shell.execute_reply.started":"2025-04-18T10:55:12.785301Z","shell.execute_reply":"2025-04-18T10:55:12.865428Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sample_spg_id=train_data['spectrogram_id'][0]\nsample_spg=train_spectrogram_dir/(str(sample_spg_id)+'.parquet')\npd.read_parquet(sample_spg)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-18T10:56:22.238389Z","iopub.execute_input":"2025-04-18T10:56:22.238796Z","iopub.status.idle":"2025-04-18T10:56:22.496572Z","shell.execute_reply.started":"2025-04-18T10:56:22.238757Z","shell.execute_reply":"2025-04-18T10:56:22.495597Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data[train_data['spectrogram_id']==sample_spg_id]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-18T10:58:24.626398Z","iopub.execute_input":"2025-04-18T10:58:24.626809Z","iopub.status.idle":"2025-04-18T10:58:24.655358Z","shell.execute_reply.started":"2025-04-18T10:58:24.626776Z","shell.execute_reply":"2025-04-18T10:58:24.654297Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"All of the Spectrogram data (for both train and test) was collected for 2 sec per row.\nhence for 320 rows, time provided for this **Spectrogram data =320*2 =640 sec**\n\nEcah sub-id is **10 min long or 600 sec long**","metadata":{}},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## Creating and Loading Datset for Spectrogram","metadata":{}},{"cell_type":"code","source":"class SPGDataset(Dataset):\n    \n    def __init__(self,data,eeg_dir_path):\n        self.data=data\n        self.spg_dir_path=spg_dir_path\n        self.targets=['seizure_vote',\t'lpd_vote',\t'gpd_vote',\t'lrda_vote',\t'grda_vote',\t'other_vote']\n        \n    def __len__(self):\n        return len(self.data)\n\n    def __getitem__(self,index):\n        sample_spg_id=self.data.iloc[index]['spectrogram_id'] #Getting the id\n        sample_spg_offset=self.data.iloc[index]['spectrogram_label_offset_seconds']  #Getting the offset\n\n        #Getting the  targets\n        sample_spg_target=self.data.iloc[index][self.targets]\n\n        sample_spg=self.spg_dir_path/(str(sample_spg_id)+'.parquet')  #Getting the SPG file \n        sample_spg_df=pd.read_parquet(sample_spg)  #Reading the parquet\n        l\n        sample_spg_df=sample_eeg_df.bfill(axis=0) #Filling null values across rows\n        sample_spg_df=sample_eeg_df.ffill(axis=0)\n\n        #Getting the SPG data\n        X=self.get_features(spg_df=sample_spg_df,spg_offset=sample_spg_offset).T #Transposing to get in the shape of (Channel,Timesteps)\n        \n        y=np.array(sample_spg_target.values.astype('float32')) \n        y=torch.tensor(y)\n        y=y.softmax(dim=-1)  #Since we want probability distribution\n        \n\n        return torch.tensor(X),y\n\n\n    def get_features(self,spg_df,spg_offset):\n\n        #Each row in spg_df contains 2 sec of data and each upto 10 min or 600 sec of data\n        \n        #Checking for existence of atleast 50 secs or 10000 rows of data\n        #if int(eeg_offset)*200+50*200<=len(eeg_df):\n        \n        truncated_df=spg_df.iloc[int(spg_offset)/2:(int(spg_offset)+600)/2] #Collecting 600 secs of data\n        \n        eeg_array=truncated_df.to_numpy()  #Shape:(timesteps,features)\n        \n            \n        #else:\n            #truncated_df=eeg_df.iloc[int(eeg_offset)*200:] #Collecting till last\n            #eeg_array=truncated_df.to_numpy()\n\n            #Padding to 10000 time steps\n            #rows_to_add = 10000 - eeg_array.shape[0]\n            #padding = ((0, rows_to_add), (0, 0))  # Pad rows at the end, no padding for columns\n            #eeg_array = np.pad(eeg_array, padding, mode='mean')\n        return eeg_array\n\n    \n\n    def target_dict(self):\n        return {i:t for (i,t) in enumerate(self.targets)}\n        \n            \n            \n            \n        ","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def plot_spectrogram(spectrogram_path):\n    sample_spect = pd.read_parquet(spectrogram_path)\n    \n    split_spect = {\n        \"LL\": sample_spect.filter(regex='^LL', axis=1),\n        \"RL\": sample_spect.filter(regex='^RL', axis=1),\n        \"RP\": sample_spect.filter(regex='^RP', axis=1),\n        \"LP\": sample_spect.filter(regex='^LP', axis=1),\n    }\n    \n    fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(15, 12))\n    axes = axes.flatten()\n    label_interval = 5\n    for i, split_name in enumerate(split_spect.keys()):\n        ax = axes[i]\n        img = ax.imshow(np.log(split_spect[split_name]).T, cmap='viridis', aspect='auto', origin='lower')\n        cbar = fig.colorbar(img, ax=ax)\n        cbar.set_label('Log(Value)')\n        ax.set_title(split_name)\n        ax.set_ylabel(\"Frequency (Hz)\")\n        ax.set_xlabel(\"Time\")\n\n        ax.set_yticks(np.arange(len(split_spect[split_name].columns)))\n        ax.set_yticklabels([column_name[3:] for column_name in split_spect[split_name].columns])\n        frequencies = [column_name[3:] for column_name in split_spect[split_name].columns]\n        ax.set_yticks(np.arange(0, len(split_spect[split_name].columns), label_interval))\n        ax.set_yticklabels(frequencies[::label_interval])\n    plt.tight_layout()\n    plt.show()\n","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}