From e1a40050b209c1fc0ffa126b896dd006989493e7 Mon Sep 17 00:00:00 2001 From: Ilya Matiach Date: Mon, 14 Aug 2023 10:13:57 -0400 Subject: [PATCH] pass transforms for optimized automl model explanations and improve error logging to include inner exception --- .../managers/explainer_manager.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/responsibleai_vision/responsibleai_vision/managers/explainer_manager.py b/responsibleai_vision/responsibleai_vision/managers/explainer_manager.py index e722bca912..472ff499b8 100644 --- a/responsibleai_vision/responsibleai_vision/managers/explainer_manager.py +++ b/responsibleai_vision/responsibleai_vision/managers/explainer_manager.py @@ -7,6 +7,7 @@ import io import json import pickle +import traceback import warnings from pathlib import Path from typing import Any, List, Optional @@ -120,12 +121,15 @@ def __init__(self, model: Any, automl_wrapper = python_model._model inner_model = automl_wrapper._model number_of_classes = automl_wrapper._number_of_classes + transforms = automl_wrapper.get_inference_transform() self._model = PytorchDRiseWrapper( - inner_model, number_of_classes, device=device) - except Exception as e: + inner_model, number_of_classes, device=device, + transforms=transforms) + except Exception: + tb = traceback.format_exc() warnings.warn(("Could not extract inner automl model." + "Explanation may take longer to compute." + - "Inner exception: {}").format(str(e)), + "Inner exception: {}").format(tb), UserWarning) self._model = MLflowDRiseWrapper(model._model, classes) else: @@ -299,6 +303,10 @@ def compute_single_explanation(self, return fl b64_string = fl[object_index] except BaseException: + tb = traceback.format_exc() + warnings.warn(("Could not generate saliency map. " + + "Inner exception: {}").format(tb), + UserWarning) if object_index is None: return [self._get_fail_str()] b64_string = self._get_fail_str()