{"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"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Understanding the Data\n\nThe data is defined by three cohorts: _Training_, _Test (Validation)_, and _Testing_. The _Testing_ dataset is kept private and is used to test the competition submission entries. The _Test_ dataset, available for use, represents about 20% the size of the private _Testing_ dataset. Each top level folder represents a subject idicated by a five digit number. Within each of the folders are the four different MRI tests, FLAIR, T1w, T1wCE, and T2w. Each of these test folders has the respective imgages in DICOM format. The Tests and data structure are as follows:\n\n1.  **FLAIR** - Fluid Attenuated Inversion Recovery\n2.  **T1w** - T1-weighted pre-contrast\n    * fluid (black) - low signal intensity\n    * fat (white) - high signal intensity\n    * grey matter (grey) - intermediate signal intensity\n    * white matter (white-ish)\n3.  **T1wCE** - T1-weighted post-contrast\n4.  **T2w** - T2-weighted \n    * fluid (white) - high signal intensity\n    * fat (white) - high signal intensity\n    * grey matter (grey) - intermediate signal intensity\n    * white matter (black-ish)\n    \n<img src=\"attachment:8080282f-202c-4b12-a071-fa8a2d0b0865.png\" width= 700/>  \n    \n**NOTE:** There are some unexpected issues with the following three cases in the training dataset, participants can exclude the cases during training:   \n[00109, 00123, 00709]","metadata":{},"attachments":{"8080282f-202c-4b12-a071-fa8a2d0b0865.png":{"image/png":"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qmp2dlYkEjU0NMRisQ8//FAmk9HZzGazWq2mx+7atYsxZjabTSYT/461tbU0hfVv/uZv6M50Oj05OenxeBKJRCKRKCsr40soUVcwY4wvOCwWi2Uy2fbt2xljPT09RqNRrVaHQqH//u//3r9/P0XZnTt3MsYuXrxIG6gGAoH//M//VKvV1Cjx4MGDa9euMcYmJyfr6uo+//xzxtj4+Dh9x8cGe4DigiWUhIgu6M+fP489VKE0OByOUCjU0tKCRXEAAOCxeOJauIRSdldwXV3d5OQk3SmXy3fu3MnDLT+MOm9pF1OqZ169epVWLWKMKRSKVCpFy/nSQ2QymVKpVCqVjLHJyckHDx7Qn9euXXvw4AFfEFitVqvVao1GQyNUKBQqlYoqqzRgqVRKJ+FrBbNHkZUx9sQTT+zcuTMQCMRisXg8HovF0ul0KBSiUdFCSuFwmJqKpVIp30FnGcioUGIQU4XIbDYfP36cMWa32zHRCIqdx+OhBX6xHQsAAOTpsc2rUqlUp9NRtMtkMiqVqqKigr5E+5F+9dVXjLHDhw/H43GJRLJnzx5am00ul9+4cWNiYkKhUOzfv59Knfv376+srGSMicXicDh8//59xtiVK1cGBgY8Hs+7774rFos///xzsVicSqX+8R//8c033/zlL3/585///O2336aIS4VWnifFYjEtDpxOp9Vq9f79++lL169fZ4x997vfffDgASXn559/nqa26nQ6GvNLL70klUonJydra2u/853vsEeNynwdpjyfIoCihqZfgXI6nR6PZ3x8nDZmKPRwAFbJ7/dTBfXEiRNYgxQAAJbHq5qPrQ1KpVKFQkHVVMaYTCajDWYYY0qlMplMvvfee08++aTJZNq7d280GuXrhx88ePDixYtvvvnmD37wg0OHDj311FO0shF9lRbvfffdd9vb2//8z/+8paWFMUZbm05NTU1PTwcCgS+++KKhoYExFo/Hk8mkWCzmO6ZmR8doNCqTyaRS6WuvvVZZWVlWVvY///M/9+7d27t37/79+6urq7/66qtt27ZRoy8F2vfee2/nzp2NjY07d+781re+VVNT8/HHH7/77rvUP0w/XT7pFJVVKAGopgqUVquldHrmzBnEVCheNpstFAqZTCbMSgUAgMfKzmDZt3kcpQA2OTlJe5YmEonp6WnGWCKReP/99+mvqVSKJnb+y7/8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"}}},{"cell_type":"code","source":"# necessary imports\nimport os\nimport io\nimport glob\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom time import time\nimport pydicom\nfrom pydicom.pixel_data_handlers.util import apply_voi_lut\nimport cv2\nfrom sklearn.model_selection import train_test_split\n\nimport torch \nimport torch.nn as nn\nimport torch.nn.functional as F\nimport torch.optim as optim\nfrom torch.utils.data import Dataset, DataLoader\nfrom torchvision import transforms, utils\n\n# Ignore warnings\nimport warnings\nwarnings.filterwarnings(\"ignore\")\n\n%matplotlib inline\n%config InlineBackend.figure_format = 'retina'","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2021-08-22T13:15:39.323962Z","iopub.execute_input":"2021-08-22T13:15:39.324311Z","iopub.status.idle":"2021-08-22T13:15:42.299305Z","shell.execute_reply.started":"2021-08-22T13:15:39.324282Z","shell.execute_reply":"2021-08-22T13:15:42.298251Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!pip install git+https://github.com/shijianjian/EfficientNet-PyTorch-3D ","metadata":{"execution":{"iopub.status.busy":"2021-08-22T14:53:56.517229Z","iopub.execute_input":"2021-08-22T14:53:56.517636Z","iopub.status.idle":"2021-08-22T14:54:06.193804Z","shell.execute_reply.started":"2021-08-22T14:53:56.517591Z","shell.execute_reply":"2021-08-22T14:54:06.192717Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from efficientnet_pytorch_3d import EfficientNet3D","metadata":{"execution":{"iopub.status.busy":"2021-08-22T14:55:17.530779Z","iopub.execute_input":"2021-08-22T14:55:17.531270Z","iopub.status.idle":"2021-08-22T14:55:18.533055Z","shell.execute_reply.started":"2021-08-22T14:55:17.531236Z","shell.execute_reply":"2021-08-22T14:55:18.532343Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"labels_key = 'train_labels.csv'\ntrain_key = 'train'\ntest_key = 'test'\ndata_dir = \"../input/rsna-miccai-brain-tumor-radiogenomic-classification\"\ntrain_labels_df = pd.read_csv(os.path.join(data_dir, labels_key))\nprint(\"Num train labels: \", len(train_labels_df))\ntrain_labels_df.head()","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:18:17.884121Z","iopub.execute_input":"2021-08-22T13:18:17.884682Z","iopub.status.idle":"2021-08-22T13:18:17.925709Z","shell.execute_reply.started":"2021-08-22T13:18:17.884640Z","shell.execute_reply":"2021-08-22T13:18:17.924639Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Split the Data\nIn order to have a portion of the training data used for validation in training I am splitting the data to take a look at the distribution. The following function uses scikit learn to split the data. Splitting the data could be done in the Pytorch Dataloader or Dataset Class but that potentially could introduce class label bias. Instead the data labels are separated by MGMT_value then split and recombined. This guarantees that there will be an even split between class labels. The following label ids are also dropped [00109, 00123, 00709].","metadata":{}},{"cell_type":"code","source":"# helper function to split the training data\ndef train_val_split(path: str, val_ratio):\n    \"\"\" Splits the train_labels.csv file into training and validation\n        dataframes to be used in the DataSet Class.\n        \n        Arguments:\n            path (str): path to the data folder\n            val_ratio (float): ratio to split for validation\n        \n        Returns:\n            train_df, val_df (pd.DataFrame): labels for training and validation\n    \"\"\"\n    # read in train_labels.csv file\n    train_labels_df = pd.read_csv(os.path.join(path, 'train_labels.csv'))\n    \n    # drop [00109, 00123, 00709]\n    train_labels_df.drop(train_labels_df.loc[train_labels_df['BraTS21ID']==109].index, inplace=True)\n    train_labels_df.drop(train_labels_df.loc[train_labels_df['BraTS21ID']==123].index, inplace=True)\n    train_labels_df.drop(train_labels_df.loc[train_labels_df['BraTS21ID']==709].index, inplace=True)\n\n    # separate into two dataframes. \n    mask = train_labels_df['MGMT_value'] == 1\n    df_pos = train_labels_df[mask] # MGMT_value == 1\n    df_neg = train_labels_df[~mask] # MGMT_value == 0\n\n    # use scikit-learn to split each pos/neg DataFrame into train/val\n    train_pos, val_pos = train_test_split(df_pos, test_size=val_ratio)\n    train_neg, val_neg = train_test_split(df_neg, test_size=val_ratio)\n\n    # concatenate the pos with the negative\n    train_df = pd.DataFrame(pd.concat([train_pos, train_neg])).sort_values(by='BraTS21ID')\n    train_df['Split'] = 'train'\n#     print('Train labels dataframe length: ', len(train_df))\n    val_df = pd.DataFrame(pd.concat([val_pos, val_neg])).sort_values(by='BraTS21ID')\n    val_df['Split'] = 'valid'\n#     print('Validation labels dataframe length: ', len(val_df))\n\n    assert(len(train_df) + len(val_df) == len(train_labels_df))\n    \n    return train_df, val_df","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:18:27.300361Z","iopub.execute_input":"2021-08-22T13:18:27.300724Z","iopub.status.idle":"2021-08-22T13:18:27.311319Z","shell.execute_reply.started":"2021-08-22T13:18:27.300692Z","shell.execute_reply":"2021-08-22T13:18:27.310410Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"val_ratio = 0.15\ntrain_df, val_df = train_val_split(data_dir, val_ratio)\nmerged_df = pd.concat([train_df, val_df]).sort_values(by='BraTS21ID')\nprint(len(merged_df))","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:18:29.031787Z","iopub.execute_input":"2021-08-22T13:18:29.032140Z","iopub.status.idle":"2021-08-22T13:18:29.075246Z","shell.execute_reply.started":"2021-08-22T13:18:29.032111Z","shell.execute_reply":"2021-08-22T13:18:29.074222Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Label Distribution","metadata":{}},{"cell_type":"code","source":"df = merged_df[['MGMT_value', 'Split']]\ng = sns.catplot(x='MGMT_value',\n                kind='count',\n                hue='Split',\n                data=df)\nax = g.facet_axis(0,0)\nfor p in ax.patches:\n    ax.text(x=p.get_x() + 0.1,\n            y=p.get_height() + 3,\n            s=p.get_height(),\n            color='black',\n            rotation='horizontal',\n            size='large')\n# df.head()\nax = sns.set_theme(style='whitegrid')\nplt.title('Ground Truth Label Distribution')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:18:31.853960Z","iopub.execute_input":"2021-08-22T13:18:31.854352Z","iopub.status.idle":"2021-08-22T13:18:32.280364Z","shell.execute_reply.started":"2021-08-22T13:18:31.854317Z","shell.execute_reply":"2021-08-22T13:18:32.279696Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Looking at the DICOM Data","metadata":{"execution":{"iopub.status.busy":"2021-08-20T16:21:32.878772Z","iopub.execute_input":"2021-08-20T16:21:32.879301Z","iopub.status.idle":"2021-08-20T16:21:32.883315Z","shell.execute_reply.started":"2021-08-20T16:21:32.879263Z","shell.execute_reply":"2021-08-20T16:21:32.882223Z"}}},{"cell_type":"code","source":"patient_num = '00000'\nimage_type = ['FLAIR', 'T1w', 'T1wCE', 'T2w']\nimage_num = 'Image-222.dcm'\ndicom_image_path = os.path.join(data_dir, train_key, patient_num, image_type[0], image_num)\nprint('Local image path: ',dicom_image_path)\n\n# read dicom datad\ndicom = pydicom.dcmread(dicom_image_path)\nprint(dicom)\nprint('\\nSize of DICOM image: ', dicom.pixel_array.shape)","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:18:36.536249Z","iopub.execute_input":"2021-08-22T13:18:36.536873Z","iopub.status.idle":"2021-08-22T13:18:36.567619Z","shell.execute_reply.started":"2021-08-22T13:18:36.536834Z","shell.execute_reply":"2021-08-22T13:18:36.566859Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# accessing a particular element in the dicom image metadata\nelem = dicom[0x7fe0, 0x0010]\nelem.keyword","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:18:41.002787Z","iopub.execute_input":"2021-08-22T13:18:41.003191Z","iopub.status.idle":"2021-08-22T13:18:41.009735Z","shell.execute_reply.started":"2021-08-22T13:18:41.003155Z","shell.execute_reply":"2021-08-22T13:18:41.008456Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# helper functions\ndef process_dicom_image(path: str, resize=True) -> np.ndarray:\n    \"\"\" Given a path to a DICOM image, process and return the image. \n        Reduces the size in memory.\n    \"\"\"\n    # TODO: add functionality to read from s3 NOT local\n#     s3_client = boto3.client('s3')\n#     obj = s3_client.get_object(Bucket=sagemaker_bucket, Key=s3_image_path)\n#     s3_test_dicom = pydicom.dcmread(io.BytesIO(obj['Body'].read()))\n\n    dicom = pydicom.dcmread(path)\n    image = dicom.pixel_array\n    image = image - np.min(image)\n    \n    if np.max(image) != 0:\n        image = image / np.max(image)\n    \n    image = (image * 255).astype(np.uint8)\n    # resize the image 256px\n    if resize:\n        image = cv2.resize(image, (256,256))\n#     print(image.shape)\n#     print(type(image))\n    return image\n\ndef get_sequence_images(path: str) -> list():\n    \"\"\" Returns a sorted list of images from a MRI sequence subfolder. \n        Excludes images that have no image. i.e. - only black.\n    \n        Arguments:\n            path (str): path to a MRI sequence folder. ex. ./train/00000/FLAIR\n        Returns:\n            images (list): List of np.ndarray images \n    \"\"\"\n    images = []\n    image_path_list = glob.glob(path + '/*') # at the MRI sequence level\n    # sort the path list in place by image number \n    image_path_list.sort(key=lambda x: int(x.split('/')[-1].split('-')[-1].split('.')[0]))\n    \n    for p in image_path_list:\n        img = process_dicom_image(p)\n        # only add if there is an visual image. i.e. - if it is not black\n        if np.max(img) == 0:\n            continue\n        images.append(img)\n        \n    return images\n\ndef get_middle_image(path: str) -> np.ndarray:\n    \"\"\" Returns the middle image in a sequence of MRI images. Removes\n        images that are only black.\n        \n        Arguments:\n            path (str): path to a MRI sequence folder. ex. ./train/00000/FLAIR\n        Returns:\n            images (np.ndarray)\n    \"\"\"\n    image_path_list = glob.glob(path + '/*') # at the MRI sequence level\n    image_path_list.sort(key=lambda x: int(x.split('/')[-1].split('-')[-1].split('.')[0]))\n    idx = len(image_path_list)//2\n    image = process_dicom_image(image_path_list[idx])\n    \n    return image","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:18:41.920258Z","iopub.execute_input":"2021-08-22T13:18:41.920637Z","iopub.status.idle":"2021-08-22T13:18:41.933286Z","shell.execute_reply.started":"2021-08-22T13:18:41.920604Z","shell.execute_reply":"2021-08-22T13:18:41.932313Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# plot one image in each MRI sequence type for 3 patients\npatients = ['00000', '00033', '00698']\nimage_type = ['FLAIR', 'T1w', 'T1wCE', 'T2w']\n\nfig = plt.figure(figsize=[16,8])\n\nfor i in range(4):\n    fig.add_subplot(1, 4, i+1)\n    path = os.path.join(data_dir, train_key, patients[1], image_type[i])\n    img = get_middle_image(path)\n    plt.imshow(img, cmap='gray')\n    plt.axis('off')\n    plt.title('Patient {}'.format(patients[1]+': '+image_type[i]))\n    \nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:18:43.698645Z","iopub.execute_input":"2021-08-22T13:18:43.699003Z","iopub.status.idle":"2021-08-22T13:18:44.511626Z","shell.execute_reply.started":"2021-08-22T13:18:43.698974Z","shell.execute_reply":"2021-08-22T13:18:44.510809Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Visualize full set of T1w Images","metadata":{}},{"cell_type":"code","source":"images_33 = get_sequence_images(os.path.join(data_dir, train_key, patients[1], image_type[0]))\nfig = plt.figure(figsize=[20,20])\nnum_imgs = len(images_33)\nprint('Patient Number: ', patients[1])\nprint('Image Type: ', image_type[0])\nprint('Num Images: ', num_imgs)\nrows = 20\ncols = 15\n\nfor idx, image in enumerate(images_33):\n    fig.add_subplot(rows, cols, idx+1)\n    plt.imshow(image, cmap='gray')\n    plt.axis('off')\n\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:18:47.834473Z","iopub.execute_input":"2021-08-22T13:18:47.835211Z","iopub.status.idle":"2021-08-22T13:19:03.565998Z","shell.execute_reply.started":"2021-08-22T13:18:47.835170Z","shell.execute_reply":"2021-08-22T13:19:03.565054Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Data Processing and Loading","metadata":{}},{"cell_type":"code","source":"# helper function to process DICOM images. \ndef get_patient_images(path):\n    \"\"\" Process all images in a patient subfolders FLAIR, T1w, T1wCE, T2w. Sorts images and returns\n        an array of images of size (W,H,N,C) where:\n            W=image width reduced from 512 to 256 px\n            H=image height reduced from 512 to 256 px\n            N=number if images in each MRI sequence. \n            C=number if MRI seqence types\n        If the number of images in each subset is less than 128 the remaining images are created \n        as np.array with pixel values == 0.\n        \n        Parameters:\n            path (str): patient id path ./train/00000\n        Returns:\n            np.array of size (256, 256, 128, 4)\n    \"\"\"\n    seq_len = 64\n\n    # get the path of MRI seq subfolder\n    flair_path = os.path.join(path, 'FLAIR')\n    t1w_path = os.path.join(path, 'T1w')\n    t1wce_path = os.path.join(path, 'T1wCE')\n    t2w_path = os.path.join(path, 'T2w')\n    \n    # get the images in each sequence\n    # FLAIR\n    flair_imgs = get_sequence_images(flair_path)\n    if len(flair_imgs) >= seq_len:\n        start = (len(flair_imgs)//2)-int(seq_len/2)\n        end = (len(flair_imgs)//2)+int(seq_len/2)\n        flair_imgs = np.array(flair_imgs[start:end]).T\n    else:\n        diff = seq_len - len(flair_imgs)\n        flair_imgs = np.concatenate((np.array(flair_imgs).T, np.zeros((256,256,diff))),axis=-1)\n    \n    # T1w\n    t1w_imgs = get_sequence_images(t1w_path)\n    if len(t1w_imgs) >= seq_len:\n        start = (len(t1w_imgs)//2)-int(seq_len/2)\n        end = (len(t1w_imgs)//2)+int(seq_len/2)\n        t1w_imgs = np.array(t1w_imgs[start:end]).T\n    else:\n        diff = seq_len - len(t1w_imgs)\n        t1w_imgs = np.concatenate((np.array(t1w_imgs).T, np.zeros((256,256,diff))),axis=-1)\n        \n    # T1wCE\n    t1wce_imgs = get_sequence_images(t1wce_path)\n    if len(t1wce_imgs) >= seq_len:\n        start = (len(t1wce_imgs)//2)-int(seq_len/2)\n        end = (len(t1wce_imgs)//2)+int(seq_len/2)\n        t1wce_imgs = np.array(t1wce_imgs[start:end]).T\n    else:\n        diff = seq_len - len(t1wce_imgs)\n        t1wce_imgs = np.concatenate((np.array(t1wce_imgs).T, np.zeros((256,256,diff))),axis=-1)\n        \n    # T2w\n    t2w_imgs = get_sequence_images(t2w_path)\n    if len(t2w_imgs) >= seq_len:\n        start = (len(t2w_imgs)//2)-int(seq_len/2)\n        end = (len(t2w_imgs)//2)+int(seq_len/2)\n        t2w_imgs = np.array(t2w_imgs[start:end]).T\n    else:\n        diff = seq_len - len(t2w_imgs)\n        t2w_imgs = np.concatenate((np.array(t2w_imgs).T, np.zeros((256,256,diff))),axis=-1)\n    \n    return np.moveaxis(np.array((flair_imgs, t1w_imgs, t1wce_imgs, t2w_imgs)), 0, -1)","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:24:53.878091Z","iopub.execute_input":"2021-08-22T13:24:53.878458Z","iopub.status.idle":"2021-08-22T13:24:53.898697Z","shell.execute_reply.started":"2021-08-22T13:24:53.878428Z","shell.execute_reply":"2021-08-22T13:24:53.897621Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Create a PyTorch Dataset","metadata":{}},{"cell_type":"code","source":"# create a PyTorch Custom Dataset to be used in DataLoader\nclass BrainScanDataset(Dataset):\n    \"\"\" MRI brain scan dataset. \"\"\"\n    def __init__(self, data_dir, split, val_ratio, transform=None):\n        \"\"\"\n            Args:\n             data_dir (str): Path to the data folder\n             split (str): 'train' or 'valid' \n             transform (bool): Apply transforms\n        \"\"\"\n        self.data_dir = data_dir\n        \n        # get training labels\n        t_df, v_df = train_val_split(data_dir, val_ratio)\n        \n        if split == 'train':\n            labels_df = t_df\n        elif split == 'valid':\n            labels_df = v_df\n            \n        label_id = labels_df[labels_df.columns[0]] # BraTS21ID\n        label_y = labels_df[labels_df.columns[1]] # MGMT_value\n        self.labels_dict = {str(l_id).zfill(5): y for l_id, y in zip(label_id, label_y)}\n        \n        # TODO: Correct for Testing and Training\n        self.data_path = os.path.join(data_dir, 'train')\n        \n        # get patient ids\n        self.id_path_list = [path for path in sorted(glob.glob(self.data_path + '/*')) \n                             if path.split('/')[-1] in self.labels_dict]\n        self.id_list = [path.split('/')[-1] for path in sorted(glob.glob(self.data_path + '/*'))\n                        if path.split('/')[-1] in self.labels_dict]\n        \n        # TODO: image transforms\n        self.transform = transform\n        \n    def __len__(self):\n        return len(self.id_path_list)\n    \n    def __getitem__(self, idx):\n        if torch.is_tensor(idx):\n            idx = idx.tolist()\n            \n        images = get_patient_images(self.id_path_list[idx])\n        labels = self.labels_dict[self.id_list[idx]]\n        \n        imgs_tensor = torch.tensor(images, dtype=torch.float32).permute(-1, 0, 1, 2) # need to reshape\n#         print(imgs_tensor.shape)\n        labels_tensor = torch.tensor(labels, dtype=torch.long)\n        \n        return imgs_tensor, labels_tensor","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:25:40.108273Z","iopub.execute_input":"2021-08-22T13:25:40.108672Z","iopub.status.idle":"2021-08-22T13:25:40.121188Z","shell.execute_reply.started":"2021-08-22T13:25:40.108637Z","shell.execute_reply":"2021-08-22T13:25:40.120227Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Create PyTorch DataLoader","metadata":{}},{"cell_type":"code","source":"val_ratio = 0.15\ntrain_dataset = BrainScanDataset(data_dir=data_dir, split='train', val_ratio=val_ratio)\nvalid_dataset = BrainScanDataset(data_dir=data_dir, split='valid', val_ratio=val_ratio)\nbatch_size = 4 \ntrain_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)\nbatch_size = 2\nvalid_loader = DataLoader(valid_dataset, batch_size=batch_size, shuffle=True)","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:26:43.679709Z","iopub.execute_input":"2021-08-22T13:26:43.680082Z","iopub.status.idle":"2021-08-22T13:26:43.770334Z","shell.execute_reply.started":"2021-08-22T13:26:43.680050Z","shell.execute_reply":"2021-08-22T13:26:43.769271Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for img, label in train_loader:\n    print('--- Train Data ---')\n    print('Image shape: ', img.shape)\n    print('Class label shape:', label.shape)\n    print('Class label: ', label)\n    break\n    \nfor img, label in valid_loader:\n    print('--- Valid Data ---')\n    print('Image shape: ', img.shape)\n    print('Class label shape:', label.shape)\n    print('Class label: ', label)\n    break","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:27:41.296343Z","iopub.execute_input":"2021-08-22T13:27:41.296771Z","iopub.status.idle":"2021-08-22T13:28:05.856127Z","shell.execute_reply.started":"2021-08-22T13:27:41.296736Z","shell.execute_reply":"2021-08-22T13:28:05.855081Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model_info = {'model_name': 'efficientnet-b5',\n              'input_dim': 4,\n              'output_dim': {'num_classes': 2}}","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:42:41.838791Z","iopub.execute_input":"2021-08-22T13:42:41.839376Z","iopub.status.idle":"2021-08-22T13:42:41.844759Z","shell.execute_reply.started":"2021-08-22T13:42:41.839324Z","shell.execute_reply":"2021-08-22T13:42:41.843642Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = EfficientNet3D.from_name(model_name=model_info['model_name'], \n                                 override_params=model_info['output_dim'], \n                                 in_channels=model_info['input_dim']) \n# print(model)","metadata":{"execution":{"iopub.status.busy":"2021-08-22T13:42:53.574881Z","iopub.execute_input":"2021-08-22T13:42:53.575264Z","iopub.status.idle":"2021-08-22T13:42:53.920179Z","shell.execute_reply.started":"2021-08-22T13:42:53.575232Z","shell.execute_reply":"2021-08-22T13:42:53.919270Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}