cp_examples/mip_finetune/mip_model.py [242:270]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        auc_vals = []
        for i, path in enumerate(self.val_pathology_list):
            logits = []
            targets = []
            for output in outputs:
                logits.append(output["logits"][path].flatten())
                targets.append(output["targets"][path].flatten())
            logits = torch.cat(logits)
            targets = torch.cat(targets)
            print(f"path: {path}, len: {len(logits)}")

            self.val_acc[i](logits, targets)
            try:
                auc_val = pl.metrics.functional.auroc(torch.sigmoid(logits), targets)
                auc_vals.append(auc_val)
            except ValueError:
                auc_val = 0
            print(f"path: {path}, auc_val: {auc_val}")

            self.log(
                f"val_metrics/accuracy_{path}",
                self.val_acc[i],
                on_step=False,
                on_epoch=True,
            )
            self.log(f"val_metrics/auc_{path}", auc_val)
        self.log("val_metrics/auc_mean", sum(auc_vals) / len(auc_vals))

    def configure_optimizers(self):
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



cp_examples/sip_finetune/sip_finetune.py [215:246]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        auc_vals = []
        for i, path in enumerate(self.val_pathology_list):
            logits = []
            targets = []
            for output in outputs:
                logits.append(output["logits"][path].flatten())
                targets.append(output["targets"][path].flatten())

            logits = torch.cat(logits)
            targets = torch.cat(targets)
            print(f"path: {path}, len: {len(logits)}")

            self.val_acc[i](logits, targets)
            try:
                auc_val = pl.metrics.functional.auroc(torch.sigmoid(logits), targets)
                auc_vals.append(auc_val)
            except ValueError:
                auc_val = 0

            print(f"path: {path}, auc_val: {auc_val}")

            self.log(
                f"val_metrics/accuracy_{path}",
                self.val_acc[i],
                on_step=False,
                on_epoch=True,
            )
            self.log(f"val_metrics/auc_{path}", auc_val)

        self.log("val_metrics/auc_mean", sum(auc_vals) / len(auc_vals))

    def configure_optimizers(self):
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



