def __init__(self, app_name='mms', args=None):
        """Initialize mxnet model server application.

        Parameters
        ----------
        app_name : str
            App name to initialize mms service.
        args : List of str
            Arguments for starting service. By default it is None
            and commandline arguments will be used. It should follow
            the format recognized by python argparse parse_args method:
            https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args.
            An example for mms arguments:
            ['--models', 'resnet-18=path1', 'inception_v3=path2',
             '--gen-api', 'java', '--port', '8080']
        """
        # Initialize serving frontend and arg parser
        try:
            parser = ArgParser.mms_parser()
            self.args = parser.parse_args(
                args) if args else parser.parse_args()
            self.serving_frontend = ServingFrontend(app_name)
            self.gpu = self.args.gpu

            # Setup root logger handler and level.
            log_file = self.args.log_file
            log_level = self.args.log_level or "INFO"
            log_rotation_time = self.args.log_rotation_time or "1 H"
            _set_root_logger(log_file, log_level, log_rotation_time)

            logger.info('Initialized model serving.')
        except Exception as e:
            print('Failed to initialize model serving: ' + str(e))
            exit(1)
Beispiel #2
0
    def __init__(self, app_name='mms'):
        # Initialize serving frontend and arg parser
        try:
            self.args = ArgParser.parse_args()
            self.serving_frontend = ServingFrontend(app_name)

            logger.info('Initialized model serving.')
        except Exception as e:
            logger.error('Failed to initialize model serving: ' + str(e))
            exit(1)
Beispiel #3
0
 def setUp(self):
     self.test_frontend = ServingFrontend('test')
import logging
import os
import shutil

from mms.serving_frontend import ServingFrontend
from mms.model_loader import ModelLoader

logger = logging.getLogger()
logger.setLevel(logging.INFO)

serving_frontend = ServingFrontend(__name__)

model_path = 'squeezenet_v1.1.model'

if os.environ.get('LAMBDA_TASK_ROOT', False):
    shutil.copyfile('/var/task/squeezenet_v1.1.model', '/tmp/squeezenet_v1.1.model')
    model_path = '/tmp/squeezenet_v1.1.model'

models = ModelLoader.load({'squeezenet': model_path})
    
manifest = models[0][3]
service_file = os.path.join(models[0][2], manifest['Model']['Service'])

class_defs = serving_frontend.register_module(service_file)

if len(class_defs) < 1:
    raise Exception('User defined module must derive base ModelService.')
# The overrided class is the last one in class_defs
mode_class_name = class_defs[-1].__name__

# Load models using registered model definitions