def _draw_masks(
        self,
        writer: SummaryWriter,
        global_step: int,
        image_over_predicted_mask: np.ndarray,
        image_over_gt_mask: Optional[np.ndarray] = None,
    ) -> None:
        """
        Draw image over mask to tensorboard

        Args:
            writer: loader writer
            global_step: global step
            image_over_predicted_mask: image over predicted mask
            image_over_gt_mask: image over ground truth mask
        """
        if image_over_gt_mask is not None:
            writer.add_image(
                f"{self.log_name} Ground Truth",
                image_over_gt_mask,
                global_step=global_step,
                dataformats="HWC",
            )

        writer.add_image(
            f"{self.log_name} Prediction",
            image_over_predicted_mask,
            global_step=global_step,
            dataformats="HWC",
        )
Esempio n. 2
0
 def __call__(self, writer: SummaryWriter, tag, sample, idx):
     if not isinstance(sample, torch.Tensor):
         sample = torch.tensor(sample)
     if sample.shape[-1] == 3:  # H, W, C
         sample = sample.permute(2, 0, 1)
     X = self.forward_pass_preprocess(sample).unsqueeze(0)
     device = next(self.model.parameters()).device
     X = X.to(device)
     logits = self.model(X)
     res = self.grad_cam.attribute(X, logits.argmax())
     res = res.squeeze().detach().cpu().numpy()
     res = (res - res.min())
     res /= res.max()
     res = (res * 255).astype(np.uint8)
     writer.add_image(f"{tag}_gradcam", res, global_step=idx)
Esempio n. 3
0
def img(writer: SummaryWriter, sample: Tuple, prefix: str, task_name: str, key: str):
    X, y = sample
    writer.add_image(f'{prefix}_{task_name}_images', X[key])
Esempio n. 4
0
def img_publisher(writer: SummaryWriter, tag: str, sample: Any, idx: int):
    writer.add_image(f'{tag}_images', sample, global_step=idx)