""" ModelHandler defines an example model handler for load and inference requests """ from collections import namedtuple import glob import json import logging import os import re from transformscript import * class ModelHandler(object): """ A sample Model handler implementation. """ def __init__(self): self.initialized = False self.model = None def initialize(self, context): """ Initialize model. This will be called during model loading time :param context: Initial context contains model server system properties. :return: """ self.initialized = True properties = context.system_properties # Contains the url parameter passed to the load request model_dir = properties.get("model_dir") gpu_id = properties.get("gpu_id") try: # Load model self.model = load_model(model_dir) print("loaded model!") except: print("could not load model!") raise def inference(self, model_input): """ Internal inference methods :param model_input: transformed model input data list :return: list of inference output in NDArray """ prob = predict(self.model, model_input) return prob def handle(self, data, context): """ Call preprocess, inference and post-process functions :param data: input data :param context: mms context """ model_out = self.inference(data) return model_out _service = ModelHandler() def handle(data, context): if not _service.initialized: _service.initialize(context) if data is None: return None return _service.handle(data, context)