{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":71549,"databundleVersionId":8561470,"sourceType":"competition"},{"sourceId":9370856,"sourceType":"datasetVersion","datasetId":5683289}],"dockerImageVersionId":30761,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"~~to be updated ... please come back later ~~  \nplease see ver.2 in new notebook  \n\n- this single stage model has ~~smiliar or~~ better performance then my two-stage model\n- updated net architecture to exclude the use of grade mask loss which improve validation results\n(please refer to old versions of notebook for initial net architecture)\n\n![Selection_435.png](attachment:29b6c28b-25e5-4d1f-9b82-79b72cdfc913.png)","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19"},"attachments":{"29b6c28b-25e5-4d1f-9b82-79b72cdfc913.png":{"image/png":"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"}}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"try: \n    import natsort  \nexcept:\n    %pip install natsort\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport numpy as np\nimport timm\nprint('timm:',timm.__version__)\n\nimport cv2\nimport numpy as np\nimport pydicom\nimport glob\nfrom natsort import natsorted\nimport pandas as pd\n\nimport matplotlib\nimport matplotlib.pyplot as plt\n\nclass dotdict(dict):\n    __setattr__ = dict.__setitem__\n    __delattr__ = dict.__delitem__\n\n    def __getattr__(self, name):\n        try:\n            return self[name]\n        except KeyError:\n            raise AttributeError(name)\n\nprint('import ok!')","metadata":{"execution":{"iopub.status.busy":"2024-09-13T00:43:23.581273Z","iopub.execute_input":"2024-09-13T00:43:23.581758Z","iopub.status.idle":"2024-09-13T00:43:51.129761Z","shell.execute_reply.started":"2024-09-13T00:43:23.581706Z","shell.execute_reply":"2024-09-13T00:43:51.128350Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 1.  2d encoder + 3d unet-decoder","metadata":{}},{"cell_type":"code","source":"#modeling: 2d encoder + 3d unet-decoder, upscale 2x in xy only, i.e:\n#  x = F.interpolate(x, scale_factor=(1,2,2), mode='nearest')\n\nclass MyDecoderBlock3d(nn.Module):\n    def __init__(\n            self,\n            in_channel,\n            skip_channel,\n            out_channel,\n    ):\n        super().__init__()\n        self.conv1 = nn.Sequential(\n            nn.Conv3d(in_channel + skip_channel, out_channel, kernel_size=3, padding=1, bias=False),\n            nn.BatchNorm3d(out_channel),\n            nn.ReLU(inplace=True),\n        )\n        self.attention1 = nn.Identity()\n        self.conv2 = nn.Sequential(\n            nn.Conv3d(out_channel, out_channel, kernel_size=3, padding=1, bias=False),\n            nn.BatchNorm3d(out_channel),\n            nn.ReLU(inplace=True),\n        )\n        self.attention2 = nn.Identity()\n\n    def forward(self, x, skip=None):\n        x = F.interpolate(x, scale_factor=(1,2,2), mode='nearest')\n        if skip is not None:\n            x = torch.cat([x, skip], dim=1)\n            x = self.attention1(x)\n        x = self.conv1(x)\n        x = self.conv2(x)\n        x = self.attention2(x)\n        return x\n    \nclass MyUnetDecoder3d(nn.Module):\n    def __init__(\n            self,\n            in_channel,\n            skip_channel,\n            out_channel,\n    ):\n        super().__init__()\n        self.center = nn.Identity()\n\n        i_channel = [in_channel, ] + out_channel[:-1]\n        s_channel = skip_channel\n        o_channel = out_channel\n        block = [\n            MyDecoderBlock3d(i, s, o)\n            for i, s, o in zip(i_channel, s_channel, o_channel)\n        ]\n        self.block = nn.ModuleList(block)\n\n    def forward(self, feature, skip):\n        d = self.center(feature)\n        decode = []\n        for i, block in enumerate(self.block):  \n            s = skip[i]\n            d = block(d, s)\n            decode.append(d)\n        last = d\n        return last, decode\n\n    \n# encoder helper\ndef pvtv2_encode(x, e):\n    encode = []\n    x = e.patch_embed(x)\n    for stage in e.stages:\n        x = stage(x); encode.append(x)\n    return encode","metadata":{"execution":{"iopub.status.busy":"2024-09-13T00:43:51.132236Z","iopub.execute_input":"2024-09-13T00:43:51.132898Z","iopub.status.idle":"2024-09-13T00:43:51.152385Z","shell.execute_reply.started":"2024-09-13T00:43:51.132846Z","shell.execute_reply":"2024-09-13T00:43:51.150827Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 2.  prediction head","metadata":{}},{"cell_type":"code","source":"#modeling: prediction head\n\n# magic.1.: convert local pixelwise prediction to global volume prediction\n\ndef heatmap_to_coord(heatmap):\n    num_image = len(heatmap)\n    device = heatmap[0].device\n    _,_, H, W = heatmap[0].shape\n    D = max([h.shape[1] for h in heatmap])\n\n    # create coordinates grid.\n    x = torch.linspace(0, W - 1, W, device=device)\n    y = torch.linspace(0, H - 1, H, device=device)\n    z = torch.linspace(0, D - 1, D, device=device)\n\n    point_xy=[]\n    point_z =[]\n    for i in range(num_image):\n        num_point, D, H, W = heatmap[i].shape\n        pos_x = x.reshape(1,1,1,W)\n        pos_y = y.reshape(1,1,H,1)\n        pos_z = z[:D].reshape(1,D,1,1)\n\n        py = torch.sum(pos_y * heatmap[i], dim=(1,2,3))\n        px = torch.sum(pos_x * heatmap[i], dim=(1,2,3))\n        pz = torch.sum(pos_z * heatmap[i], dim=(1,2,3))\n\n        point_xy.append(torch.stack([px,py]).T)\n        point_z.append(pz)\n\n    xy = torch.stack(point_xy)\n    z = torch.stack(point_z)\n    return xy, z\n\n\ndef heatmap_to_grade(heatmap, grade_mask):\n    num_image = len(heatmap)\n    grade = []\n    for i in range(num_image):\n        num_point, D, H, W = heatmap[i].shape\n        C, D, H, W = grade_mask[i].shape\n        g = grade_mask[i].reshape(1,C,D,H,W)#.detach()\n        h = heatmap[i].reshape(num_point,1,D,H,W)#.detach()\n        g = (h*g).sum(dim=(2,3,4))\n        grade.append(g)\n    grade = torch.stack(grade)\n    return grade","metadata":{"execution":{"iopub.status.busy":"2024-09-13T00:43:51.154152Z","iopub.execute_input":"2024-09-13T00:43:51.154593Z","iopub.status.idle":"2024-09-13T00:43:51.175203Z","shell.execute_reply.started":"2024-09-13T00:43:51.154551Z","shell.execute_reply":"2024-09-13T00:43:51.173947Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 3.  loss function\n- per pixel loss\n- per volume loss","metadata":{}},{"cell_type":"code","source":"#modeling: loss functions\n\n# magic.2.: example shown here is for sagittal t1 neural foraminal narrowing points\n# dynamic matching - becuase of ambiguous/confusion of ground truth labeling of L5 and S1,\n# your predicted xy coordinates may be misaligned with ground truth xy. Hence you must \n# modified the grade target values as well in loss backpropagation\n\ndef do_dynamic_match_truth(xy, truth_xy, threshold=3):\n\n    num_image, num_point, _2_ = xy.shape\n    t = truth_xy[:, :5, 1].reshape(num_image, 5, 1)\n    p = xy[:, :5, 1].reshape(num_image, 1, 5)\n    diff = torch.abs(p - t)\n    left, left_i = diff.min(-1)\n    left_t = (left < threshold)\n    \n    t = truth_xy[:, 5:, 1].reshape(num_image, 5, 1)\n    p = xy[:, 5:, 1].reshape(num_image, 1, 5)\n    diff = torch.abs(p - t)\n    right, right_i = diff.min(-1)\n    right_t = (right < threshold)\n\n    index = torch.cat([left_i,right_i+5],1).detach()\n    valid = torch.cat([left_t,right_t],1).detach()\n    return index, valid\n\n\n\ndef F_grade_loss(grade, truth):\n    eps = 1e-5\n    weight = torch.FloatTensor([1,2,4]).to(grade.device)\n\n    t = truth.reshape(-1)\n    g = grade.reshape(-1,3)\n\n    #loss = F.nll_loss( torch.clamp(g, eps, 1-eps).log(), t,weight=weight, ignore_index=-1)\n    loss = F.cross_entropy(g, t,weight=weight, ignore_index=-1)\n    return loss\n\n \ndef F_zxy_loss(z, xy,  z_truth, xy_truth):\n    m = z_truth!=-1\n    z_truth = z_truth.float()\n    loss = (\n        F.mse_loss(z[m], z_truth[m]) + F.mse_loss(xy[m], xy_truth[m])\n    )\n    return loss\n\n\n#https://discuss.pytorch.org/t/jensen-shannon-divergence/2626/11\n#Jensen-Shannon divergence\ndef F_xyz_mask_loss(heatmap, truth, D):\n    heatmap =  torch.split_with_sizes(heatmap, D, 0)\n    truth =  torch.split_with_sizes(truth, D, 0)\n    num_image = len(heatmap)\n\n    loss =0\n    for i in range(num_image):\n        p,q = truth[i], heatmap[i]\n        D,num_point,H,W = p.shape\n\n        eps = 1e-8\n        p = torch.clamp(p.transpose(1,0).flatten(1),eps,1-eps)\n        q = torch.clamp(q.transpose(1,0).flatten(1),eps,1-eps)\n        m = (0.5 * (p + q)).log()\n\n        kl = lambda x,t: F.kl_div(x,t, reduction='batchmean', log_target=True)\n        loss += 0.5 * (kl(m, p.log()) + kl(m, q.log()))\n    loss = loss/num_image\n    return loss\n","metadata":{"execution":{"iopub.status.busy":"2024-09-13T00:43:51.178666Z","iopub.execute_input":"2024-09-13T00:43:51.179189Z","iopub.status.idle":"2024-09-13T00:43:51.199816Z","shell.execute_reply.started":"2024-09-13T00:43:51.179120Z","shell.execute_reply":"2024-09-13T00:43:51.198173Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 4. final model","metadata":{}},{"cell_type":"code","source":"class Net(nn.Module):\n    def __init__(self, pretrained=False, cfg=None):\n        super(Net, self).__init__()\n        self.output_type = ['infer', 'loss']\n        self.register_buffer('D', torch.tensor(0))\n        self.register_buffer('mean', torch.tensor(0.5))\n        self.register_buffer('std', torch.tensor(0.5))\n\n        arch = 'pvt_v2_b4'\n\n        encoder_dim = {\n            'pvt_v2_b2': [64, 128, 320, 512],\n            'pvt_v2_b4': [64, 128, 320, 512],\n        }.get(arch, [768])\n\n        decoder_dim = \\\n              [384, 192, 96]\n              #[256, 128, 64]\n\n        self.encoder = timm.create_model(\n            model_name=arch, pretrained=pretrained, in_chans=3, num_classes=0, global_pool=''\n        )\n        self.decoder = MyUnetDecoder3d(\n            in_channel=encoder_dim[-1],\n            skip_channel=encoder_dim[:-1][::-1],\n            out_channel=decoder_dim,\n        )\n\n\n        self.zxy_mask = nn.Conv3d(decoder_dim[-1], 10, kernel_size=1)\n        self.grade_mask = nn.Conv3d(decoder_dim[-1], 128, kernel_size=1)\n        self.grade = nn.Sequential(\n            nn.Linear(128, 128),\n            nn.BatchNorm1d(128),\n            nn.ReLU(inplace=True),\n            nn.Linear(128, 3),\n        )\n\n\n    def forward(self, batch):\n        device = self.D.device\n        image = batch['image'].to(device)\n        D = batch['D']\n        num_image = len(D)\n\n        B, H, W = image.shape\n        image = image.reshape(B, 1, H, W)\n\n        x = image.float() / 255\n        x = (x - self.mean) / self.std\n        x = x.expand(-1, 3, -1, -1)\n\n        #---\n        encode = pvtv2_encode(x, self.encoder)\n        ##[print(f'encode_{i}', e.shape) for i,e in enumerate(encode)]\n        encode = [ torch.split_with_sizes(e, D, 0) for e in encode ]\n\n        grade_mask = []  #feature map\n        zxy_mask   = []  #prob heatmap\n        for i in range(num_image):\n            e = [ encode[s][i].transpose(1,0).unsqueeze(0) for s in range(4) ]\n            l, _ = self.decoder(\n                feature=e[-1], skip=e[:-1][::-1]\n            )\n\n            g = self.grade_mask(l).squeeze(0)\n            grade_mask.append(g)\n\n            zxy = self.zxy_mask(l).squeeze(0)\n            _,d,h,w = zxy.shape\n            zxy = zxy.flatten(1).softmax(-1).reshape(-1,d,h,w)\n            zxy_mask.append(zxy)\n\n        ##print(D)\n        ##[print(f'zxy_logit_{i}', x.shape) for i, x in enumerate(zxy_mask_prob)]\n\n        xy, z = heatmap_to_coord(zxy_mask)\n        ##print('xy', xy.shape, 'z', z.shape)\n\n        #---\n        num_point = xy.shape[1]\n        grade = heatmap_to_grade(zxy_mask, grade_mask)\n        #print('grade', grade.shape)\n        grade = grade.reshape(num_image*num_point,-1)\n        grade = self.grade(grade)\n        grade = grade.reshape(num_image,num_point,3)\n        ##print('grade', grade.shape)\n\n        #---\n        zxy_mask = torch.cat(zxy_mask, 1).transpose(1, 0)\n\n        output = {}\n        if 'loss' in self.output_type:\n            output['zxy_mask_loss'] = F_xyz_mask_loss(zxy_mask, batch['zxy_mask'].to(device), D)\n            output['zxy_loss'] = F_zxy_loss(z, xy, batch['z'].to(device), batch['xy'].to(device))\n\n            #output['grade_loss'] = F_grade_loss(grade,  batch['grade'].to(device))\n            if 1:\n                index, valid = do_dynamic_match_truth(xy, batch['xy'].to(device))\n                truth = batch['grade'].to(device)\n                truth_matched = []\n                for i in range(num_image):\n                    truth_matched.append(truth[i][index[i]])\n                truth_matched = torch.stack(truth_matched)\n                output['grade_loss'] = F_grade_loss(grade[valid],  truth_matched[valid])\n\n        if 'infer' in self.output_type:\n            output['zxy_mask'] = zxy_mask\n            output['xy'] = xy\n            output['z'] = z\n            output['grade'] = F.softmax(grade,-1)\n\n\n        return output","metadata":{"execution":{"iopub.status.busy":"2024-09-13T00:43:51.201885Z","iopub.execute_input":"2024-09-13T00:43:51.202359Z","iopub.status.idle":"2024-09-13T00:43:51.232671Z","shell.execute_reply.started":"2024-09-13T00:43:51.202300Z","shell.execute_reply":"2024-09-13T00:43:51.231442Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#demo with dummy data\n\ndef run_check_net():\n   \n    D = [6, 7, 9, 11, 3, 4, 5] #input volumes with variable depth\n    num_image  = len(D)\n    \n    image_size = 320\n    mask_size  = image_size//4\n    B = sum(D)\n    num_point = 10\n\n\n    batch = {\n        'D': D,\n        'image': torch.from_numpy( np.random.uniform(-1, 1, ( B, image_size, image_size))).byte(),\n        'zxy_mask': torch.from_numpy(np.random.uniform(0,1,(B, num_point, mask_size, mask_size))).float(),\n        'z': torch.from_numpy(np.random.choice(min(D), (num_image, num_point))).long(),\n        'xy': torch.from_numpy(np.random.choice(image_size, (num_image, num_point, 2))).float(),\n        'grade': torch.from_numpy(np.random.choice(3, (num_image, num_point))).long(), \n    }\n\n    net = Net(pretrained=False, cfg=None)#.cuda()\n\n\n    with torch.no_grad():\n        with torch.cuda.amp.autocast(enabled=True):\n            output = net(batch)\n    # ---\n    print('batch')\n    for k, v in batch.items():\n        if k == 'D':\n            print(f'{k:>32} : {v} ')\n        else:\n            print(f'{k:>32} : {v.shape} ')\n\n    print('output')\n    for k, v in output.items():\n        if 'loss' not in k:\n            print(f'{k:>32} : {v.shape} ')\n    print('loss')\n    for k, v in output.items():\n        if 'loss' in k:\n            print(f'{k:>32} : {v.item()} ')\n\n\n\nrun_check_net()","metadata":{"execution":{"iopub.status.busy":"2024-09-13T00:43:51.234490Z","iopub.execute_input":"2024-09-13T00:43:51.234936Z","iopub.status.idle":"2024-09-13T00:44:39.413678Z","shell.execute_reply.started":"2024-09-13T00:43:51.234892Z","shell.execute_reply":"2024-09-13T00:44:39.412365Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#demo with real kaggle data and visualisation\n\n\nDATA_KAGGLE_DIR = '/kaggle/input/rsna-2024-lumbar-spine-degenerative-classification'\n\ndef np_dot(a,b):\n    return np.sum(a * b, 1)\n\ndef normalise_to_8bit(x, lower=0.1, upper=99.9): \n    lower, upper = np.percentile(x, (lower, upper))\n    x = np.clip(x, lower, upper)\n    x = x - np.min(x)\n    x = x / np.max(x)\n    return (x * 255).astype(np.uint8)\n\ndef read_series(study_id,series_id,series_description):\n    error_code = ''\n    \n    data_kaggle_dir = DATA_KAGGLE_DIR\n    dicom_dir = f'{data_kaggle_dir}/train_images/{study_id}/{series_id}'\n\n    # read dicom file\n    dicom_file = natsorted(glob.glob(f'{dicom_dir}/*.dcm'))\n    instance_number = [int(f.split('/')[-1].split('.')[0]) for f in dicom_file]\n    dicom = [pydicom.dcmread(f) for f in dicom_file]\n\n    # make dicom header df\n    dicom_df = []\n    for i, d in zip(instance_number, dicom):  # d__.dict__\n        dicom_df.append(\n            dotdict(\n                study_id=study_id,\n                series_id=series_id,\n                series_description=series_description,\n                instance_number=i,\n                # InstanceNumber = d.InstanceNumber,\n                ImagePositionPatient=[float(v) for v in d.ImagePositionPatient],\n                ImageOrientationPatient=[float(v) for v in d.ImageOrientationPatient],\n                PixelSpacing=[float(v) for v in d.PixelSpacing],\n                SpacingBetweenSlices=float(d.SpacingBetweenSlices),\n                SliceThickness=float(d.SliceThickness),\n                grouping=str([round(float(v), 3) for v in d.ImageOrientationPatient]),\n                H=d.pixel_array.shape[0],\n                W=d.pixel_array.shape[1],\n            )\n        )\n    dicom_df = pd.DataFrame(dicom_df)\n    # dicom_df.to_csv('dicom_df.csv',index=False)\n    # exit(0)\n\n    #----\n    if ((dicom_df.W.nunique()!=1) or (dicom_df.H.nunique()!=1)):\n        error_code = '[multi-shape]'\n    Wmax = dicom_df.W.max()\n    Hmax = dicom_df.H.max()\n\n    # sort slices\n    dicom_df = [d for _, d in dicom_df.groupby('grouping')]\n\n    data = []\n    sort_data_by_group = []\n    for df in dicom_df:\n        position = np.array(df['ImagePositionPatient'].values.tolist())\n        orientation = np.array(df['ImageOrientationPatient'].values.tolist())\n        normal = np.cross(orientation[:, :3], orientation[:, 3:])\n        projection = np_dot(normal, position)\n        df.loc[:, 'projection'] = projection\n        df = df.sort_values('projection')\n\n\n        # todo: assert all slices are continous ??\n        # use  (position[-1]-position[0])/N = SpacingBetweenSlices ??\n        assert len(df.SliceThickness.unique()) == 1\n        #assert len(df.SpacingBetweenSlices.unique()) == 1\n\n\n        volume = []\n        for i in df.instance_number:\n            v = dicom[instance_number.index(i)].pixel_array\n            if error_code.find('multi-shape')!=-1:\n                H,W = v.shape\n                v=np.pad(v,[(0,Hmax-H),(0,Wmax-W)],'reflect')\n            volume.append(v)\n\n        volume = np.stack(volume)\n        volume = normalise_to_8bit(volume)\n\n        data.append(dotdict(\n            df=df,\n            volume=volume,\n        ))\n\n        if 'sagittal' in series_description.lower():\n            sort_data_by_group.append(position[0, 0])  # x\n        if 'axial' in series_description.lower():\n            sort_data_by_group.append(position[0, 2])  # z\n\n    data = [r for _, r in sorted(zip(sort_data_by_group, data))]\n    for i, r in enumerate(data):\n        r.df.loc[:, 'group'] = i\n\n    df = pd.concat([r.df for r in data])\n    df.loc[:, 'z'] = np.arange(len(df))\n    volume = np.concatenate([r.volume for r in data])\n    return volume, df, error_code\n\ndef do_resize_and_center(\n    image, reference_size\n):\n   \n    H, W = image.shape[:2]\n    if (W==reference_size) & (H==reference_size):\n        return image, (1,0,0)\n\n    s = reference_size / max(H, W)\n    m = cv2.resize(image, dsize=None, fx=s, fy=s)\n    h, w = m.shape[:2]\n    padx0 = (reference_size-w)//2\n    padx1 = reference_size-w-padx0\n    pady0 = (reference_size-h)//2\n    pady1 = reference_size-h-pady0\n\n    m = np.pad(m, [[pady0, pady1], [padx0, padx1], [0, 0]], mode='constant', constant_values=0)\n    #p = point * s +[[padx0,pady0]]\n    scale_param = s,padx0,pady0\n    return m, scale_param\n\n\n#read kaggle data----------------------------------------------------------\nstudy_id = 267842058\nseries_id = 894248358\nseries_description = 'sagittal_t1'\n\n#ground truth\ntruth_grade=[\n    'Normal/Mild',\n    'Moderate',\n    'Severe',\n    'Moderate',\n    'Severe',\n    'Normal/Mild',\n    'Normal/Mild',\n    'Moderate',\n    'Severe',\n    'Severe',\n]\n\n\n\nvolume, dicom_df, _ = read_series(study_id,series_id,series_description)\nprint('volume', volume.shape)\n\nimage = np.ascontiguousarray(volume.transpose(1,2,0))\nimage, scale_param = do_resize_and_center(\n    image, reference_size=320\n)\nimage = np.ascontiguousarray(image.transpose(2,0,1))\nprint('image', image.shape)\n\nbatch = {\n    'D': [len(image)], #only one volume\n    'image': torch.from_numpy(image).byte(), \n}\n\nnet = Net(pretrained=False, cfg=None)#\nstate_dict = torch.load(\n    '/kaggle/input/rnsa2024-single-stage-model/00034142.pth',\n    map_location=lambda storage, loc: storage, weights_only=True)['state_dict']\nprint(net.load_state_dict(state_dict, strict=False))  # True\n\n#net = net.cuda()\nnet = net.eval()\nnet.output_type = ['infer']\n\nwith torch.no_grad():\n    with torch.cuda.amp.autocast(enabled=True):\n        output = net(batch)\n\nzxy_mask = output['zxy_mask'].data.cpu().numpy()\nxy = output['xy'][0].data.cpu().numpy()\nz  = output['z'][0].data.cpu().numpy()\ngrade = output['grade'][0].data.cpu().numpy()\n#print(grade) \nprint('predict ok!')","metadata":{"execution":{"iopub.status.busy":"2024-09-13T01:32:05.912810Z","iopub.execute_input":"2024-09-13T01:32:05.913229Z","iopub.status.idle":"2024-09-13T01:32:22.823838Z","shell.execute_reply.started":"2024-09-13T01:32:05.913187Z","shell.execute_reply":"2024-09-13T01:32:22.822200Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print('prediction results ...')\nfor i in range(10):\n    print(f'truth: {truth_grade[i]:<12s} | predict: {grade[i,0]:0.5f}, {grade[i,1]:0.5f}, {grade[i,2]:0.5f}')\nprint('')\n\n\nlevel_color = [\n    [255, 0, 0],\n    [0, 255, 0],\n    [0, 0, 255],\n    [255, 255, 0],\n    [0, 255, 255],\n]\n\ns = np.round(z).astype(np.int32)\n\nleft_image = image[s[:5]].mean(0)\nleft_image = (np.clip(left_image/128,0,1))*255 #improve contrast for visualisation\nleft_image = left_image.astype(np.uint8)\nleft_image = np.dstack([left_image]*3)\nfor i in range(0,5):\n    x,y = xy[i]*4\n    x = int(round(x))\n    y = int(round(y))\n    cv2.circle(left_image,(x,y),10,level_color[i%5],1,cv2.LINE_AA)\n    \n\nright_image = image[s[5:]].mean(0).astype(np.uint8)\nright_image = (np.clip(right_image/128,0,1))*255 #improve contrast for visualisation\nright_image = right_image.astype(np.uint8)\nright_image = np.dstack([right_image]*3)\nfor i in range(5,10):\n    x,y = xy[i]*4\n    x = int(round(x))\n    y = int(round(y))\n    cv2.circle(right_image,(x,y),10,level_color[i%5],1,cv2.LINE_AA)\n    \n\n\nfig, axs = plt.subplots(1,2, figsize=(10,5))\naxs[0].set_title('left_neural_foraminal_narrowing')\naxs[0].imshow(left_image, cmap='gray')\naxs[1].set_title('right_neural_foraminal_narrowing')\naxs[1].imshow(right_image, cmap='gray')\nplt.show()\n\n\n","metadata":{"execution":{"iopub.status.busy":"2024-09-13T01:32:33.951779Z","iopub.execute_input":"2024-09-13T01:32:33.952250Z","iopub.status.idle":"2024-09-13T01:32:34.587623Z","shell.execute_reply.started":"2024-09-13T01:32:33.952206Z","shell.execute_reply":"2024-09-13T01:32:34.586427Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%script false --no-raise-error\n\n#enable this to show 3d plot\n#too slow to load!\n\nimport plotly.graph_objects as go \nimport plotly.express as px \n\nfor i in range(10):\n    print(f'predict: {z[i]:5.1f}, {xy[i,0]:5.1f}, {xy[i,1]:5.1f}')\nprint('')\n\n\n\nprint('zxy_mask', zxy_mask.shape)\np = zxy_mask.sum(1)\n\nD,H,W = p.shape\ngx, gy, gz = np.meshgrid(\n     np.linspace(0, W, W) , \n     np.linspace(0, D, D) , \n     np.linspace(0, H, H) \n)\n\n\nfig = go.Figure(data=go.Volume( \n    x=gx.flatten(), \n    y=gy.flatten(), \n    z=gz.flatten(), \n    value=p.flatten(), \n    opacity=0.5,  \n    isomax=p.max(),  \n    isomin=0.1,\n    surface_count=100,\n    caps= dict(x_show=False, y_show=False, z_show=True), \n)) \nfig.update_layout(\n    scene = dict(\n        aspectmode='data' \n        # aspectmode='cube'\n    ),\n)\nfig.show()\n","metadata":{"execution":{"iopub.status.busy":"2024-09-13T01:33:32.472420Z","iopub.execute_input":"2024-09-13T01:33:32.472846Z","iopub.status.idle":"2024-09-13T01:33:32.583446Z","shell.execute_reply.started":"2024-09-13T01:33:32.472806Z","shell.execute_reply":"2024-09-13T01:33:32.581192Z"},"trusted":true},"execution_count":null,"outputs":[]}]}