Exemplo n.º 1
0
def test_build_device_cpu(mocker):
    mocker.patch("ie_serving.models.ir_engine.IEPlugin")
    cpu_extension_mock = mocker.patch(
        "ie_serving.models.ir_engine.IEPlugin.add_cpu_extension")
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    with pytest.raises(FileNotFoundError):
        IrEngine.build(model_bin=model_bin, model_xml=model_xml)
        cpu_extension_mock.assert_called_once_with()
Exemplo n.º 2
0
def test_build_device_other(mocker):
    mocker.patch("ie_serving.models.ir_engine.IEPlugin")
    device_mocker = mocker.patch("ie_serving.models.ir_engine.DEVICE")
    device_mocker.return_value = 'other'
    cpu_extension_mock = mocker.patch(
        "ie_serving.models.ir_engine.IEPlugin.add_cpu_extension")
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'

    with pytest.raises(FileNotFoundError):
        IrEngine.build(model_bin=model_bin, model_xml=model_xml)
        assert not cpu_extension_mock.assert_called_once_with()
Exemplo n.º 3
0
def test_build_device_cpu(mocker):
    mocker.patch("ie_serving.models.ir_engine.IEPlugin")
    cpu_extension_mock = mocker.patch(
        "ie_serving.models.ir_engine.IEPlugin.add_cpu_extension")
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    batch_size = None
    mapping_config = 'mapping_config.json'
    with pytest.raises(Exception):
        IrEngine.build(model_bin=model_bin,
                       model_xml=model_xml,
                       mapping_config=mapping_config,
                       batch_size=batch_size)
        cpu_extension_mock.assert_called_once_with()
Exemplo n.º 4
0
def get_fake_model():
    mapping_config = 'mapping_config.json'
    exec_net = None
    net = MockedNet(
        inputs={DEFAULT_INPUT_KEY: MockedIOInfo('FP32', [1, 1, 1], 'NCHW')},
        outputs={DEFAULT_OUTPUT_KEY: MockedIOInfo('FP32', [1, 1, 1], 'NCHW')})
    plugin = None
    batching_info = BatchingInfo(None)
    shape_info = ShapeInfo(None, net.inputs)
    new_engines = {}
    available_versions = [1, 2, 3]
    for version in available_versions:
        engine = IrEngine(model_name='test',
                          model_version=version,
                          mapping_config=mapping_config,
                          exec_net=exec_net,
                          net=net,
                          plugin=plugin,
                          batching_info=batching_info,
                          shape_info=shape_info)
        new_engines.update({version: engine})
    model_name = "test"
    versions_statuses = {}
    batch_size_param, shape_param = None, None
    for version in available_versions:
        versions_statuses[version] = ModelVersionStatus(model_name, version)
    new_model = LocalModel(model_name=model_name,
                           model_directory='fake_path/model/',
                           available_versions=available_versions,
                           engines=new_engines,
                           batch_size_param=batch_size_param,
                           shape_param=shape_param,
                           version_policy_filter=lambda versions: versions[:],
                           versions_statuses=versions_statuses)
    return new_model
 def get_engine_for_version(cls, version_attributes):
     engine = IrEngine.build(
         model_bin=version_attributes['bin_file'],
         model_xml=version_attributes['xml_file'],
         mapping_config=version_attributes['mapping_config'],
         batch_size=version_attributes['batch_size'])
     return engine
Exemplo n.º 6
0
def test_build_device_other(mocker):
    mocker.patch("ie_serving.models.ir_engine.IEPlugin")
    device_mocker = mocker.patch("ie_serving.models.ir_engine.DEVICE")
    device_mocker.return_value = 'other'
    cpu_extension_mock = mocker.patch(
        "ie_serving.models.ir_engine.IEPlugin.add_cpu_extension")
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    mapping_config = 'mapping_config.json'
    batch_size = None
    with pytest.raises(Exception):
        IrEngine.build(model_bin=model_bin,
                       model_xml=model_xml,
                       mapping_config=mapping_config,
                       batch_size=batch_size)
        assert not cpu_extension_mock.assert_called_once_with()
Exemplo n.º 7
0
def test_build_device_other(mocker):
    mocker.patch("ie_serving.models.ir_engine.IECore")
    cpu_extension_mock = mocker.patch(
        "ie_serving.models.ir_engine.IECore.add_extension")
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    mapping_config = 'mapping_config.json'
    batch_size_param, shape_param = None, None
    with pytest.raises(Exception):
        IrEngine.build(model_name='test', model_version=1,
                       model_bin=model_bin, model_xml=model_xml,
                       mapping_config=mapping_config,
                       batch_size_param=batch_size_param,
                       shape_param=shape_param, num_ireq=1,
                       target_device='other', plugin_config=None)
        assert not cpu_extension_mock.assert_called_once_with()
Exemplo n.º 8
0
def test_init_class():
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    mapping_config = 'mapping_config.json'
    exec_net = None
    net = None
    batch_size = None
    plugin = None
    input_key = 'input'
    inputs = {input_key: Layer('FP32', (1, 1), 'NCHW')}
    outputs = {'output': Layer('FP32', (1, 1), 'NCHW')}
    engine = IrEngine(model_bin=model_bin,
                      model_xml=model_xml,
                      mapping_config=mapping_config,
                      exec_net=exec_net,
                      inputs=inputs,
                      outputs=outputs,
                      net=net,
                      plugin=plugin,
                      batch_size=batch_size)
    assert model_xml == engine.model_xml
    assert model_bin == engine.model_bin
    assert exec_net == engine.exec_net
    assert [input_key] == engine.input_tensor_names
    assert inputs == engine.input_tensors
    assert ['output'] == engine.output_tensor_names
    assert {
        'inputs': {
            'input': 'input'
        },
        'outputs': {
            'output': 'output'
        }
    } == engine.model_keys
    assert [input_key] == engine.input_key_names
Exemplo n.º 9
0
def test_init_class():
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    exec_net = None
    input_key = 'input'
    inputs = {input_key: []}
    outputs = ['output']
    engine = IrEngine(model_bin=model_bin,
                      model_xml=model_xml,
                      exec_net=exec_net,
                      inputs=inputs,
                      outputs=outputs)
    assert model_xml == engine.model_xml
    assert model_bin == engine.model_bin
    assert exec_net == engine.exec_net
    assert [input_key] == engine.input_tensor_names
    assert inputs == engine.input_tensors
    assert outputs == engine.output_tensor_names
    assert {
        'inputs': {
            'input': 'input'
        },
        'outputs': {
            'output': 'output'
        }
    } == engine.model_keys
    assert [input_key] == engine.input_key_names
Exemplo n.º 10
0
def get_fake_model():
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    mapping_config = 'mapping_config.json'
    exec_net = None
    net = None
    plugin = None
    batch_size = None
    input_key = DEFAULT_INPUT_KEY
    output_key = DEFAULT_OUTPUT_KEY
    inputs = {input_key: Layer('FP32', [1, 1, 1], 'NCHW')}
    outputs = {output_key: Layer('FP32', [1, 1, 1], 'NCHW')}
    engine = IrEngine(model_bin=model_bin,
                      model_xml=model_xml,
                      mapping_config=mapping_config,
                      exec_net=exec_net,
                      inputs=inputs,
                      outputs=outputs,
                      net=net,
                      plugin=plugin,
                      batch_size=batch_size)
    new_engines = {1: engine, 2: engine, 3: engine}
    available_versions = [1, 2, 3]
    model_name = "test"
    versions_statuses = {}
    for version in available_versions:
        versions_statuses[version] = ModelVersionStatus(model_name, version)
    new_model = LocalModel(model_name=model_name,
                           model_directory='fake_path/model/',
                           available_versions=[1, 2, 3],
                           engines=new_engines,
                           batch_size=batch_size,
                           version_policy_filter=lambda versions: versions[:],
                           versions_statuses=versions_statuses)
    return new_model
Exemplo n.º 11
0
def get_fake_ir_engine():
    mapping_config = 'mapping_config.json'
    exec_net = MockedExecNet()
    net = MockedNet(
        inputs={DEFAULT_INPUT_KEY: MockedIOInfo('FP32', [1, 1, 1], 'NCHW')},
        outputs={DEFAULT_OUTPUT_KEY: MockedIOInfo('FP32', [1, 1, 1], 'NCHW')})
    core = None
    batching_info = BatchingInfo(None)
    shape_info = ShapeInfo(None, net.inputs)
    requests_queue = queue.Queue()
    free_ireq_index_queue = queue.Queue(maxsize=1)
    free_ireq_index_queue.put(0)
    engine = IrEngine(model_name='test',
                      model_version=1,
                      mapping_config=mapping_config,
                      exec_net=exec_net,
                      net=net,
                      core=core,
                      batching_info=batching_info,
                      shape_info=shape_info,
                      target_device="CPU",
                      free_ireq_index_queue=free_ireq_index_queue,
                      plugin_config=None,
                      num_ireq=1,
                      requests_queue=requests_queue)
    return engine
Exemplo n.º 12
0
def test_init_class():
    mapping_config = 'mapping_config.json'
    exec_net = None
    net = MockedNet(inputs={'input': MockedIOInfo('FP32', [1, 1, 1], 'NCHW')},
                    outputs={'output': MockedIOInfo('FP32', [1, 1], 'NCHW')})
    batching_info = BatchingInfo(None)
    shape_info = ShapeInfo(None, net.inputs)
    plugin = None
    requests_queue = queue.Queue()
    free_ireq_index_queue = queue.Queue(maxsize=1)
    free_ireq_index_queue.put(0)
    engine = IrEngine(model_name='test',
                      model_version=1,
                      mapping_config=mapping_config,
                      exec_net=exec_net,
                      net=net,
                      plugin=plugin,
                      batching_info=batching_info,
                      shape_info=shape_info,
                      num_ireq=1,
                      free_ireq_index_queue=free_ireq_index_queue,
                      requests_queue=requests_queue,
                      target_device='CPU',
                      plugin_config=None)
    assert exec_net == engine.exec_net
    assert list(net.inputs.keys()) == engine.input_tensor_names
    assert list(net.outputs.keys()) == engine.output_tensor_names
    assert engine.free_ireq_index_queue.qsize() == 1
Exemplo n.º 13
0
def get_fake_model():
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    mapping_config = 'mapping_config.json'
    exec_net = None
    net = None
    plugin = None
    batch_size = None
    input_key = 'input'
    inputs = {input_key: Layer('FP32', [1, 1, 1], 'NCHW')}
    outputs = {'output': Layer('FP32', [1, 1, 1], 'NCHW')}
    engine = IrEngine(model_bin=model_bin,
                      model_xml=model_xml,
                      mapping_config=mapping_config,
                      exec_net=exec_net,
                      inputs=inputs,
                      outputs=outputs,
                      net=net,
                      plugin=plugin,
                      batch_size=batch_size)
    new_engines = {1: engine, 2: engine, 3: engine}
    new_model = LocalModel(model_name="test",
                           model_directory='fake_path/model/',
                           available_versions=[1, 2, 3],
                           engines=new_engines,
                           batch_size=batch_size)
    return new_model
Exemplo n.º 14
0
 def get_engine_for_version(cls, version_attributes):
     local_xml_file, local_bin_file, local_mapping_config = \
         cls.create_local_mirror(version_attributes)
     logger.info('Downloaded files from GCS')
     engine = IrEngine.build(model_xml=local_xml_file,
                             model_bin=local_bin_file,
                             mapping_config=local_mapping_config)
     cls.delete_local_mirror(
         [local_xml_file, local_bin_file, local_mapping_config])
     logger.info('Deleted temporary files')
     return engine
Exemplo n.º 15
0
def get_fake_ir_engine():
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    mapping_config = 'mapping_config.json'
    exec_net = None
    input_key = 'input'
    inputs = {input_key: []}
    outputs = ['output']
    engine = IrEngine(model_bin=model_bin, model_xml=model_xml,
                      mapping_config=mapping_config, exec_net=exec_net,
                      inputs=inputs, outputs=outputs)

    return engine
Exemplo n.º 16
0
    def get_engine_for_version(cls, model_name, version_attributes):
        version_attributes['xml_file'], version_attributes['bin_file'], \
            version_attributes['mapping_config'] = cls.create_local_mirror(
            version_attributes)
        logger.info('Downloaded files from GCS')

        engine_spec = cls._get_engine_spec(model_name, version_attributes)
        engine = IrEngine.build(**engine_spec)

        cls.delete_local_mirror([version_attributes['xml_file'],
                                 version_attributes['bin_file'],
                                 version_attributes['mapping_config']])
        logger.info('Deleted temporary files')
        return engine
Exemplo n.º 17
0
def test_init_class():
    mapping_config = 'mapping_config.json'
    exec_net = None
    net = MockedNet(inputs={'input': MockedIOInfo('FP32', [1, 1, 1], 'NCHW')},
                    outputs={'output': MockedIOInfo('FP32', [1, 1], 'NCHW')})
    batching_info = BatchingInfo(None)
    shape_info = ShapeInfo(None, net.inputs)
    plugin = None
    engine = IrEngine(model_name='test', model_version=1,
                      mapping_config=mapping_config,
                      exec_net=exec_net,
                      net=net, plugin=plugin, batching_info=batching_info,
                      shape_info=shape_info)
    assert exec_net == engine.exec_net
    assert list(net.inputs.keys()) == engine.input_tensor_names
    assert list(net.outputs.keys()) == engine.output_tensor_names
Exemplo n.º 18
0
def get_fake_model():
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    mapping_config = 'mapping_config.json'
    exec_net = None
    input_key = 'input'
    inputs = {input_key: [1, 1]}
    outputs = ['test_output']
    engine = IrEngine(model_bin=model_bin, model_xml=model_xml,
                      mapping_config=mapping_config, exec_net=exec_net,
                      inputs=inputs, outputs=outputs)
    new_engines = {1: engine, 2: engine, 3: engine}
    new_model = LocalModel(model_name="test",
                           model_directory='fake_path/model/',
                           available_versions=[1, 2, 3], engines=new_engines)
    return new_model
Exemplo n.º 19
0
def get_fake_model():
    mapping_config = 'mapping_config.json'
    exec_net = MockedExecNet()
    net = MockedNet(
        inputs={DEFAULT_INPUT_KEY: MockedIOInfo('FP32', [1, 1, 1], 'NCHW')},
        outputs={DEFAULT_OUTPUT_KEY: MockedIOInfo('FP32', [1, 1, 1], 'NCHW')})
    core = None
    batching_info = BatchingInfo(None)
    shape_info = ShapeInfo(None, net.inputs)
    new_engines = {}
    available_versions = [1, 2, 3]
    requests_queue = queue.Queue()
    free_ireq_index_queue = queue.Queue(maxsize=1)
    free_ireq_index_queue.put(0)
    for version in available_versions:
        engine = IrEngine(model_name='test',
                          model_version=version,
                          mapping_config=mapping_config,
                          exec_net=exec_net,
                          net=net,
                          core=core,
                          batching_info=batching_info,
                          shape_info=shape_info,
                          target_device="CPU",
                          free_ireq_index_queue=free_ireq_index_queue,
                          plugin_config=None,
                          num_ireq=1,
                          requests_queue=requests_queue)
        new_engines.update({version: engine})
    model_name = "test"
    versions_statuses = {}
    batch_size_param, shape_param = None, None
    for version in available_versions:
        versions_statuses[version] = ModelVersionStatus(model_name, version)
    new_model = LocalModel(model_name=model_name,
                           model_directory='fake_path/model/',
                           available_versions=available_versions,
                           engines=new_engines,
                           batch_size_param=batch_size_param,
                           shape_param=shape_param,
                           version_policy_filter=lambda versions: versions[:],
                           versions_statuses=versions_statuses,
                           update_locks={},
                           plugin_config=None,
                           target_device="CPU",
                           num_ireq=1)
    return new_model
Exemplo n.º 20
0
def get_fake_ir_engine():
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    mapping_config = 'mapping_config.json'
    exec_net = None
    input_key = 'input'
    output_key = 'output'
    inputs = {input_key: Layer('FP32', [1, 1, 1], 'NCHW')}
    outputs = {output_key: Layer('FP32', [1, 1, 1], 'NCHW')}
    engine = IrEngine(model_bin=model_bin,
                      model_xml=model_xml,
                      mapping_config=mapping_config,
                      exec_net=exec_net,
                      inputs=inputs,
                      outputs=outputs)

    return engine
Exemplo n.º 21
0
def get_fake_ir_engine():
    mapping_config = 'mapping_config.json'
    exec_net = None
    net = MockedNet(
        inputs={DEFAULT_INPUT_KEY: MockedIOInfo('FP32', [1, 1, 1], 'NCHW')},
        outputs={DEFAULT_OUTPUT_KEY: MockedIOInfo('FP32', [1, 1, 1], 'NCHW')})
    plugin = None
    batching_info = BatchingInfo(None)
    shape_info = ShapeInfo(None, net.inputs)
    engine = IrEngine(model_name='test',
                      model_version=1,
                      mapping_config=mapping_config,
                      exec_net=exec_net,
                      net=net,
                      plugin=plugin,
                      batching_info=batching_info,
                      shape_info=shape_info)
    return engine
Exemplo n.º 22
0
    def get_engines_for_model(versions):
        inference_engines = {}
        failures = []
        for version in versions:
            try:
                logger.info("Creating inference engine object "
                            "for version: {}".format(version['version']))
                inference_engines[version['version']] = IrEngine.build(
                    model_bin=version['bin_model_path'],
                    model_xml=version['xml_model_path'])
            except Exception as e:
                logger.error("Error occurred while loading model "
                             "version: {}".format(version))
                logger.error("Content error: {}".format(str(e).rstrip()))
                failures.append(version)

        for failure in failures:
            versions.remove(failure)

        return inference_engines
Exemplo n.º 23
0
def get_fake_ir_engine():
    model_xml = 'model1.xml'
    model_bin = 'model1.bin'
    mapping_config = 'mapping_config.json'
    exec_net = None
    net = None
    batch_size = None
    plugin = None
    input_key = DEFAULT_INPUT_KEY
    output_key = DEFAULT_OUTPUT_KEY
    inputs = {input_key: Layer('FP32', [1, 1, 1], 'NCHW')}
    outputs = {output_key: Layer('FP32', [1, 1, 1], 'NCHW')}
    engine = IrEngine(model_bin=model_bin,
                      model_xml=model_xml,
                      mapping_config=mapping_config,
                      exec_net=exec_net,
                      inputs=inputs,
                      outputs=outputs,
                      net=net,
                      plugin=plugin,
                      batch_size=batch_size)

    return engine
Exemplo n.º 24
0
 def get_engine_for_version(cls, model_name, version_attributes):
     engine_spec = cls._get_engine_spec(model_name, version_attributes)
     engine = IrEngine.build(**engine_spec)
     return engine