{"cells":[{"metadata":{},"cell_type":"markdown","source":"## This is a simple baseline implementation for multinput pytorch pipeline to combine both Patient Features and Image Features . I am just trying it out . It might be wrong as well , so please take it with a pinch of salt . Inspiration is below , However , this version focuses on creating a simple pipeline with few features and simple network . \n\n![image.png](attachment:image.png)","attachments":{"image.png":{"image/png":"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"}},"execution_count":null},{"metadata":{},"cell_type":"markdown","source":"## As you can mainly see , the maximum portion of code is copied from this two kernels. I removed the notes from Tarun's Kernel because , he has already made a great kernel , it will be redundant if i paste here .\n\nhttps://www.kaggle.com/tarunpaparaju/siim-isic-melanoma-eda-pytorch-baseline\n\n\nhttps://www.kaggle.com/tunguz/melanoma-classification-eda-and-modeling\n","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true,"_kg_hide-output":true},"cell_type":"code","source":"!curl https://raw.githubusercontent.com/pytorch/xla/master/contrib/scripts/env-setup.py -o pytorch-xla-env-setup.py","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"_kg_hide-output":true,"trusted":true},"cell_type":"code","source":"!python pytorch-xla-env-setup.py --version nightly --apt-packages libomp5 libopenblas-dev","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_kg_hide-input":true,"_kg_hide-output":true},"cell_type":"code","source":"!export XLA_USE_BF16=1\n!pip install -q colored\n!pip install -q efficientnet_pytorch","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import os\nimport gc\nimport cv2\nimport time\nimport numpy as np\nimport pandas as pd\n\nfrom colored import fg, attr\nfrom tqdm.notebook import tqdm\nimport matplotlib.pyplot as plt\nfrom sklearn.utils import shuffle\n\nimport plotly.express as px\nimport plotly.graph_objects as go\nimport plotly.figure_factory as ff\nfrom plotly.subplots import make_subplots\n\nimport torch\nimport torch.nn as nn\nfrom torch.optim import Adam\nfrom torch import FloatTensor, LongTensor, DoubleTensor\n\nimport torch_xla.core.xla_model as xm\nimport torch_xla.distributed.parallel_loader as pl\nimport torch_xla.distributed.xla_multiprocessing as xmp\n\nfrom torch.optim.lr_scheduler import ReduceLROnPlateau\nfrom torch.utils.data import Dataset, DataLoader, sampler\nfrom torch.utils.data.distributed import DistributedSampler\n\nfrom efficientnet_pytorch import EfficientNet\nfrom albumentations import Normalize, VerticalFlip, HorizontalFlip, Compose","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"W = 512\nH = 512\nFRAC = 0.25\nSPLIT = 0.8\n\nEPOCHS = 2\nLR = 1e-3, 1e-3\nBATCH_SIZE = 32\nVAL_BATCH_SIZE = 128\n\nMODEL = 'efficientnet-b3'\nTEST_IMG_PATH = '../input/siim-isic-melanoma-classification/jpeg/test/'\nTRAIN_IMG_PATH = '../input/siim-isic-melanoma-classification/jpeg/train/'","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"np.random.seed(42)\ntorch.manual_seed(42)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(os.listdir('../input/siim-isic-melanoma-classification'))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_df = pd.read_csv('../input/siim-isic-melanoma-classification/test.csv')\ntrain_df = pd.read_csv('../input/siim-isic-melanoma-classification/train.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_df.head(10)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_df.head(10)","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"def display_images(num):\n    sq_num = np.sqrt(num)\n    assert sq_num == int(sq_num)\n\n    sq_num = int(sq_num)\n    image_ids = os.listdir(TEST_IMG_PATH)\n    fig, ax = plt.subplots(nrows=sq_num, ncols=sq_num, figsize=(20, 20))\n\n    for i in range(sq_num):\n        for j in range(sq_num):\n            idx = i*sq_num + j\n            ax[i, j].axis('off')\n            img = cv2.cvtColor(cv2.imread(TEST_IMG_PATH + image_ids[idx]), cv2.COLOR_BGR2RGB)\n            ax[i, j].imshow(img); ax[i, j].set_title('Test Image {}'.format(idx), fontsize=12)\n\n    plt.show()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"display_images(36)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"## Create Feature \n\ntrain_df['sex_feat'] = (train_df['sex'].values == 'male')*1\ntest_df['sex_feat'] = (test_df['sex'].values == 'male')*1\n\ntrain_df['age_approx_feat'] = train_df['age_approx'].fillna(train_df['age_approx'].mean())\ntest_df['age_approx_feat'] = test_df['age_approx'].fillna(test_df['age_approx'].mean())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_df['age_approx_feat'] = train_df['age_approx_feat'] /train_df['age_approx_feat'].values.max()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_df['age_approx_feat'] = test_df['age_approx_feat'] /test_df['age_approx_feat'].values.max()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_df['anatom_site_general_challenge_feat'] = train_df['anatom_site_general_challenge'].fillna('unknown')\ntest_df['anatom_site_general_challenge_feat'] = test_df['anatom_site_general_challenge'].fillna('unknown')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_df['diagnosis'] = train_df['diagnosis'].fillna('na')\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.preprocessing import LabelEncoder\n\nlb_make = LabelEncoder()\nfor df in [train_df,test_df]:\n    df['anatom_site_general_challenge_feat_c'] = lb_make.fit_transform(df['anatom_site_general_challenge_feat'])\n\ntrain_df['diag_aux'] = lb_make.fit_transform(train_df['diagnosis'])\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"feat_columns=['sex_feat','age_approx_feat','anatom_site_general_challenge_feat_c']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_feat = train_df[feat_columns].copy()\ntest_feat = test_df[feat_columns].copy()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def ToTensor(data):\n    return [FloatTensor(point) for point in data]\n\nclass SIIMDataset(Dataset):\n    def __init__(self, df, aug, targ, ids, path):\n        self.df, self.targ, self.aug = df, targ, aug\n\n        self.mu = [0.485, 0.456, 0.406]\n        self.sigma = [0.229, 0.224, 0.225]\n        self.img_ids, self.img_path = ids, path\n        self.norm = Normalize(mean=self.mu, std=self.sigma, p=1)\n        self.vflip, self.hflip = VerticalFlip(p=0.5), HorizontalFlip(p=0.5)\n        \n        if self.aug: self.transformation = self.norm\n        else: self.transformation = Compose([self.norm, self.vflip, self.hflip])\n\n    def __len__(self):\n        return len(self.img_ids)\n\n    def __getitem__(self, i):\n        target = [self.df.target[i]] if self.targ else 0\n        image = cv2.imread(self.img_path + self.img_ids[i])\n        image = cv2.resize(cv2.cvtColor(image, cv2.COLOR_BGR2RGB), (H, W))\n        return ToTensor([self.transformation(image=image)['image'], target])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"class SIIMFeatDataset(Dataset):\n    def __init__(self, df, aug, targ, ids, path):\n        self.df, self.targ, self.aug = df, targ, aug\n\n        self.mu = [0.485, 0.456, 0.406]\n        self.sigma = [0.229, 0.224, 0.225]\n        self.img_ids, self.img_path = ids, path\n        self.norm = Normalize(mean=self.mu, std=self.sigma, p=1)\n        self.vflip, self.hflip = VerticalFlip(p=0.5), HorizontalFlip(p=0.5)\n        \n        if self.aug: self.transformation = self.norm\n        else: self.transformation = Compose([self.norm, self.vflip, self.hflip])\n\n    def __len__(self):\n        return len(self.img_ids)\n\n    def __getitem__(self, i):\n        feat_columns=['sex_feat','age_approx_feat','anatom_site_general_challenge_feat_c'] \n        target = [self.df.target[i]] if self.targ else 0\n        feat = self.df[feat_columns].values[i]\n        image = cv2.imread(self.img_path + self.img_ids[i])\n        image = cv2.resize(cv2.cvtColor(image, cv2.COLOR_BGR2RGB), (H, W))\n        return ToTensor([self.transformation(image=image)['image'], target,feat])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"### Checking the dataset function\ntrain_ids = train_df.image_name.apply(lambda x: x + '.jpg')\n\ntrain_set = SIIMFeatDataset(train_df, True, True, train_ids, TRAIN_IMG_PATH)\nout = train_set[0]\nout","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def GlobalAveragePooling(x):\n    return x.mean(axis=-1).mean(axis=-1)\n\nclass CancerNet(nn.Module):\n    def __init__(self, features):\n        super(CancerNet, self).__init__()\n        self.avgpool = GlobalAveragePooling\n        self.dense_output = nn.Linear(features, 1)\n        self.efn = EfficientNet.from_pretrained(MODEL)\n        \n    def forward(self, x):\n        x = x.view(-1, 3, H, W)\n        x = self.efn.extract_features(x)\n        return self.dense_output(self.avgpool(x))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"class CancerNet2(nn.Module):\n    def __init__(self, features,num_patient_feat):\n        super(CancerNet2, self).__init__()\n        self.avgpool = GlobalAveragePooling\n        self.dense_output = nn.Linear(features, 64)\n        self.num_patient_feat = num_patient_feat \n        self.l0=nn.Linear(self.num_patient_feat,64)\n        self.conc_feat =128\n        self.final_output = nn.Linear(128,1)\n        self.efn = EfficientNet.from_pretrained(MODEL)\n        \n    def forward(self, x,train_patient_feat):\n        x = x.view(-1, 3, H, W)\n        x = self.efn.extract_features(x)\n\n        x = self.avgpool(x)\n       \n        x = self.dense_output(x)\n        x_l0 = self.l0(train_patient_feat)\n        \n        x = torch.cat((x,x_l0),1)\n        \n        x = self.final_output(x)\n        return x","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"## Check Net\ntrain_feat_dummy =torch.Tensor(np.random.randn(32,3)).to(device)\nimg_dummy = torch.Tensor(np.random.randn(32,3,512,512)).to(device)\nnet=CancerNet2(1536,3).to(device)\nout = net(img_dummy,train_feat_dummy)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def bce(y_true, y_pred):\n    return nn.BCEWithLogitsLoss()(y_pred, y_true)\n\ndef acc(y_true, y_pred):\n    y_true = y_true.squeeze()\n    y_pred = nn.Sigmoid()(y_pred).squeeze()\n    return (y_true == torch.round(y_pred)).float().sum()/len(y_true)","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"def print_metric(data, batch, epoch, start, end, metric, typ):\n    t = typ, metric, \"%s\", data, \"%s\"\n    if typ == \"Train\": pre = \"BATCH %s\" + str(batch-1) + \"%s  \"\n    if typ == \"Val\": pre = \"\\nEPOCH %s\" + str(epoch+1) + \"%s  \"\n    time = np.round(end - start, 1); time = \"Time: %s{}%s s\".format(time)\n    fs = [(fg(211), attr('reset')), (fg(212), attr('reset')), (fg(213), attr('reset'))]\n    xm.master_print(pre % fs[0] + \"{} {}: {}{}{}\".format(*t) % fs[1] + \"  \" + time % fs[2])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"class ImbalancedSampler(sampler.Sampler):\n\n    def __len__(self):\n        return self.num_samples\n    \n    def _get_label(self, dataset, idx):\n        return dataset.df[\"target\"][idx]\n\n    def __iter__(self):\n        return (self.indices[i] for i in self._get_probs())\n    \n    def _get_weight(self, idx, count_dict):\n        return 1.0/count_dict[self._get_label(self.dataset, idx)]\n    \n    def _get_probs(self):\n        return torch.multinomial(self.weights, self.num_samples, replacement=True)\n\n    def __init__(self, dataset, indices=None, num_samples=None):\n        self.indices = list(range(len(dataset))) if indices is None else indices\n        self.num_samples = len(self.indices) if num_samples is None else num_samples\n\n        count = {}\n        self.dataset = dataset\n        for idx in self.indices:\n            label = self._get_label(dataset, idx)\n            if label in count: count[label] += 1\n            if label not in count: count[label] = 1\n\n        self.weights = DoubleTensor([self._get_weight(idx, count) for idx in self.indices])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"cut = int(FRAC*len(train_df))\ntrain_df = shuffle(train_df).reset_index(drop=True).loc[:cut]\n\nsplit = int(SPLIT*len(train_df))\ntrain_df, val_df = train_df.loc[:split], train_df.loc[split:]\ntrain_df, val_df = train_df.reset_index(drop=True), val_df.reset_index(drop=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"val_ids = val_df.image_name.apply(lambda x: x + '.jpg')\ntrain_ids = train_df.image_name.apply(lambda x: x + '.jpg')\n\nval_set = SIIMFeatDataset(val_df, False, True, val_ids, TRAIN_IMG_PATH)\ntrain_set = SIIMFeatDataset(train_df, True, True, train_ids, TRAIN_IMG_PATH)\n\ntrain_sampler = ImbalancedSampler(train_set)\nval_loader = DataLoader(val_set, VAL_BATCH_SIZE, shuffle=False)\ntrain_loader = DataLoader(train_set, BATCH_SIZE, sampler=train_sampler)\n\ndevice = xm.xla_device()\nnetwork = CancerNet2(features=1536,num_patient_feat=3).to(device)\noptimizer = Adam([{'params': network.efn.parameters(), 'lr': LR[0]},\n                  {'params': network.dense_output.parameters(), 'lr': LR[1]}])","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### Note : Something wrong with the metrics . May be someone can correct me .","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"start = time.time()\nxm.master_print(\"STARTING TRAINING ...\\n\")\n\nfor epoch in range(EPOCHS):\n    fonts = (fg(48), attr('reset'))\n    xm.master_print((\"EPOCH %s\" + str(epoch+1) + \"%s\") % fonts)\n    \n    batch = 1\n    network.train()\n    for train_batch in train_loader:\n        train_img, train_targ ,train_feat= train_batch\n        train_targ = train_targ.view(-1, 1)\n        train_img, train_targ,train_feat = train_img.to(device), train_targ.to(device),train_feat.to(device)\n            \n        train_preds = network.forward(train_img,train_feat)\n        train_acc = acc(train_targ, train_preds)\n        train_loss = bce(train_targ, train_preds)\n            \n        optimizer.zero_grad()\n        train_loss.backward()\n        xm.optimizer_step(optimizer, barrier=True)\n            \n        end = time.time()\n        batch = batch + 1\n        accuracy = np.round(train_acc.item(), 3)\n        if batch %1 ==0:\n            print_metric(accuracy, batch, 0, start, end, metric=\"roc-auc\", typ=\"Train\")\n            \n    network.eval()\n    val_loss, val_acc, val_points = 0, 0, 0\n        \n    with torch.no_grad():\n        for val_batch in tqdm(val_loader):\n            val_img, val_targ,val_feat = val_batch\n            val_targ = val_targ.view(-1, 1)\n            val_img, val_targ,val_feat = val_img.to(device), val_targ.to(device),val_feat.to(device)\n\n            val_points += len(val_targ)\n            val_preds = network.forward(val_img,val_feat)\n            val_acc += acc(val_targ, val_preds).item()*len(val_preds)\n            val_loss += bce(val_targ, val_preds).item()*len(val_preds)\n        \n    end = time.time()\n    val_acc /= val_points\n    val_loss /= val_points\n    accuracy = np.round(val_acc, 3)\n    print_metric(accuracy, 0, epoch, start, end, metric=\"roc-auc\", typ=\"Val\")\n    \n    xm.master_print(\"\")\n\nxm.master_print(\"\\nENDING TRAINING ...\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Visualize sample test predictions\n\n* Now since the model is trained, we will visualize predictions made on unseen test images.","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"def display_preds(num,test_df):\n    sq_num = np.sqrt(num)\n    assert sq_num == int(sq_num)\n\n    sq_num = int(sq_num)\n    image_ids = os.listdir(TEST_IMG_PATH)\n    fig, ax = plt.subplots(nrows=sq_num, ncols=sq_num, figsize=(20, 20))\n    norm = Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225], p=1)\n    feat_columns=['sex_feat','age_approx_feat','anatom_site_general_challenge_feat_c'] \n    \n    for i in range(sq_num):\n        for j in range(sq_num):\n            idx = i*sq_num + j\n            ax[i, j].axis('off')\n            pred_dict = {0: '\"No-Melanoma\"', 1: '\"Melanoma\"'}\n            print(image_ids[idx])\n            img = cv2.resize(cv2.cvtColor(cv2.imread(TEST_IMG_PATH + image_ids[idx]), cv2.COLOR_BGR2RGB), (H, W))\n            pred = nn.Sigmoid()(network.forward(FloatTensor(norm(image=img)['image'].reshape(1, 3, H, W)).to(device),FloatTensor(test_df.loc[test_df.image_name==image_ids[idx].split('.')[0]][feat_columns].values).to(device)))\n            ax[i, j].imshow(img); ax[i, j].set_title('Prediction: {}'.format(pred_dict[round(pred.item())]), fontsize=12)\n\n    plt.show()","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"display_preds(16,test_df)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Run inference on the test data\n\n* Next I will run inference on the test data and store the test predictions in a list.\n* These predictions are logits and will be converted to probabilities later using <code>sigmoid</code>.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"def sigmoid(x):\n    return 1/(1 + np.exp(-x))\n\ntest_ids = test_df.image_name.apply(lambda x: x + '.jpg')\ntest_set = SIIMFeatDataset(test_df, False, False, test_ids, TEST_IMG_PATH)\ntest_loader = tqdm(DataLoader(test_set, VAL_BATCH_SIZE, shuffle=False))\n\nnetwork.eval()\ntest_preds = []\nwith torch.no_grad():\n    for test_batch in test_loader:       \n        test_img,label, test_feat = test_batch\n        test_img = test_img.to(device)\n        test_feat = test_feat.to(device)\n        test_preds.extend(network.forward(test_img,test_feat).squeeze().detach().cpu().numpy())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"path = '../input/siim-isic-melanoma-classification/'\nsample_submission = pd.read_csv(path + 'sample_submission.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sample_submission.target = sigmoid(np.array(test_preds))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sample_submission.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sample_submission.to_csv('submission.csv', index=False)","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":4}