code: def create_mask_montage(self, image, predictions):
          
          masks = predictions.get_field("mask")
          masks_per_dim = self.masks_per_dim
          masks = L.interpolate(
              masks.float(), scale_factor=1 / masks_per_dim
          ).byte()
          height, width = masks.shape[-2:]
          max_masks = masks_per_dim ** 2
          masks = masks[:max_masks]
          # handle case where we have less detections than max_masks
          if len(masks) < max_masks:
              masks_padded = torch.zeros(max_masks, 1, height, width, dtype=torch.uint8)
              masks_padded[: len(masks)] = masks
              masks = masks_padded
          masks = masks.reshape(masks_per_dim, masks_per_dim, height, width)
          result = torch.zeros(
              (masks_per_dim * height, masks_per_dim * width), dtype=torch.uint8
          )
          for y in range(masks_per_dim):
              start_y = y * height
              end_y = (y + 1) * height
              for x in range(masks_per_dim):
                  start_x = x * width
                  end_x = (x + 1) * width
                  result[start_y:end_y, start_x:end_x] = masks[y, x]
          return cv2.applyColorMap(result.numpy(), cv2.COLORMAP_JET)
docs: Create a montage showing the probability heatmaps for each one one of the
          detected objects
  
          Arguments:
              image (np.ndarray): an image as returned by OpenCV
              predictions (BoxList): the result of the computation by the model.
                  It should contain the field `mask`.