def main():
    args, extra = parse_args(sys.argv[1:])
    # Pretrained Alibi explainer
    alibi_model = None
    keras_model = None
    if args.storage_uri is not None:
        path = kfserving.Storage.download(args.storage_uri)
        alibi_model = os.path.join(path, EXPLAINER_FILENAME)
        if os.path.exists(alibi_model):
            with open(alibi_model, "rb") as f:
                logging.info("Loading Alibi model")
                alibi_model = dill.load(f)
        else:
            keras_path = os.path.join(path, KERAS_MODEL)
            if os.path.exists(keras_path):
                with open(keras_path, "rb") as f:
                    logging.info("Loading Keras model")
                    keras_model = keras.models.load_model(keras_path)

    explainer = AlibiExplainer(args.model_name, args.predictor_host,
                               ExplainerMethod(args.command), extra,
                               alibi_model, Protocol(args.protocol),
                               args.tf_data_type, keras_model)
    explainer.load()
    ExplainerServer(args.http_port).start(explainer)
Beispiel #2
0
def main():
    args, extra = parse_args(sys.argv[1:])
    # Pretrained Alibi explainer
    alibi_model = None
    if args.storage_uri is not None:
        alibi_model = os.path.join(
            kfserving.Storage.download(args.storage_uri), EXPLAINER_FILENAME)
        with open(alibi_model, "rb") as f:
            logging.info("Loading Alibi model")
            alibi_model = dill.load(f)

    explainer = AlibiExplainer(
        args.model_name,
        args.predictor_host,
        ExplainerMethod(args.command),
        extra,
        alibi_model,
    )
    explainer.load()
    kfserving.KFServer().start(models=[explainer])
Beispiel #3
0
                    help='Explainer method',
                    required=True)
parser.add_argument('--explainerUri',
                    help='The URL of a pretrained explainer',
                    default=os.environ.get(ENV_STORAGE_URI))
parser.add_argument('--config',
                    default=os.environ.get(CONFIG_ENV),
                    help='Custom configuration parameters')

args, _ = parser.parse_known_args()

if __name__ == "__main__":
    # Pretrained Alibi explainer
    alibi_model = None
    if args.explainerUri is not None:
        alibi_model = os.path.join(
            kfserving.Storage.download(args.explainerUri), EXPLAINER_FILENAME)
        with open(alibi_model, 'rb') as f:
            alibi_model = dill.load(f)
    # Custom configuration
    if args.config is None:
        config = {}
    else:
        config = json.loads(args.config)

    explainer = AlibiExplainer(args.explainer_name,
                               args.predict_url, args.protocol,
                               ExplainerMethod(args.type), config, alibi_model)
    explainer.load()
    kfserving.KFServer().start(models=[explainer])
Beispiel #4
0
import argparse
from alibiexplainer import AlibiExplainer
from alibiexplainer.explainer import ExplainerMethod  #pylint:disable=no-name-in-module

DEFAULT_MODEL_NAME = "model"

parser = argparse.ArgumentParser(parents=[kfserving.server.parser])  #pylint:disable=c-extension-no-member
parser.add_argument('--model_name',
                    default=DEFAULT_MODEL_NAME,
                    help='The name that the model is served under.')
parser.add_argument('--predict_url',
                    help='The URL for the model predict function',
                    required=True)
parser.add_argument('--method',
                    type=ExplainerMethod,
                    choices=list(ExplainerMethod),
                    default="anchor_tabular",
                    help='Explainer method')
parser.add_argument('--training_data', help='The URL for the training data')

args, _ = parser.parse_known_args()

if __name__ == "__main__":
    explainer = AlibiExplainer(args.model_name,
                               args.predict_url,
                               args.protocol,
                               ExplainerMethod(args.method),
                               training_data_url=args.training_data)
    explainer.load()
    kfserving.KFServer().start(models=[explainer])  #pylint:disable=c-extension-no-member
Beispiel #5
0
                                  type=float,
                                  action=GroupedAction,
                                  dest='explainer.p_sample',
                                  default=argparse.SUPPRESS)

args, _ = parser.parse_known_args()

argdDict = vars(args).copy()
if 'explainer' in argdDict:
    extra = vars(args.explainer)
else:
    extra = {}
logging.info("Extra args: %s", extra)

if __name__ == "__main__":
    # Pretrained Alibi explainer
    alibi_model = None
    if args.storage_uri is not None:
        alibi_model = os.path.join(
            kfserving.Storage.download(args.storage_uri), EXPLAINER_FILENAME)
        with open(alibi_model, 'rb') as f:
            logging.info("Loading Alibi model")
            alibi_model = dill.load(f)

    explainer = AlibiExplainer(args.model_name,
                               args.predictor_host, args.protocol,
                               ExplainerMethod(args.command), extra,
                               alibi_model)
    explainer.load()
    kfserving.KFServer().start(models=[explainer])