mindspore_lite.ModelParallelRunner

class mindspore_lite.ModelParallelRunner[源代码]

ModelParallelRunner类用于定义MindSpore的模型并行的Runner,方便模型管理。

样例:

>>> # only for serving inference
>>> import mindspore_lite as mslite
>>> model_parallel_runner = mslite.ModelParallelRunner()
>>> print(model_parallel_runner)
model_path: .
init(model_path, runner_config=None)[源代码]

从模型路径构建模型并行runner,以便它可以在设备上运行。

参数:

  • model_path (str) – 定义模型路径。

  • runner_config (RunnerConfig,可选) - 定义用于在模型池初始化期间存储选项的配置。默认值:None。

异常:

  • TypeError - model_path 不是str类型。

  • TypeError - runner_config 既不是RunnerConfig类型也不是None。

  • RuntimeError - model_path 文件路径不存在。

  • RuntimeError - 初始化模型并行Runner失败。

样例:

>>> # model download link: https://download.mindspore.cn/model_zoo/official/lite/quick_start/mobilenetv2.ms
>>> import mindspore_lite as mslite
>>> context = mslite.Context()
>>> context.append_device_info(mslite.CPUDeviceInfo())
>>> runner_config = mslite.RunnerConfig(context=context, workers_num=4)
>>> model_parallel_runner = mslite.ModelParallelRunner()
>>> model_parallel_runner.init(model_path="mobilenetv2.ms", runner_config=runner_config)
>>> print(model_parallel_runner)
model_path: mobilenetv2.ms.
get_inputs()[源代码]

获取模型的所有输入张量。

返回:

list[Tensor],模型的输入张量列表。

样例:

>>> # model download link: https://download.mindspore.cn/model_zoo/official/lite/quick_start/mobilenetv2.ms
>>> import mindspore_lite as mslite
>>> context = mslite.Context()
>>> context.append_device_info(mslite.CPUDeviceInfo())
>>> runner_config = mslite.RunnerConfig(context=context, workers_num=4)
>>> model_parallel_runner = mslite.ModelParallelRunner()
>>> model_parallel_runner.init(model_path="mobilenetv2.ms", runner_config=runner_config)
>>> inputs = model_parallel_runner.get_inputs()
get_outputs()[源代码]

获取模型的所有输出张量。

返回:

list[Tensor],模型的输出张量列表。

样例:

>>> # model download link: https://download.mindspore.cn/model_zoo/official/lite/quick_start/mobilenetv2.ms
>>> import mindspore_lite as mslite
>>> context = mslite.Context()
>>> context.append_device_info(mslite.CPUDeviceInfo())
>>> runner_config = mslite.RunnerConfig(context=context, workers_num=4)
>>> model_parallel_runner = mslite.ModelParallelRunner()
>>> model_parallel_runner.init(model_path="mobilenetv2.ms", runner_config=runner_config)
>>> outputs = model_parallel_runner.get_outputs()
predict(inputs, outputs)[源代码]

推理模型并行Runner。

参数:

  • inputs (list[Tensor]) – 包含所有输入张量的顺序列表。

  • outputs (list[Tensor]) - 模型输出按顺序填充到容器中。

异常:

  • TypeError - inputs 不是list类型。

  • TypeError - inputs 是list类型,但元素不是Tensor类型。

  • TypeError - output 不是list类型。

  • TypeError - output 是list类型,但元素不是Tensor类型。

  • RuntimeError - 预测推理模型失败。

样例:

>>> # model download link: https://download.mindspore.cn/model_zoo/official/lite/quick_start/mobilenetv2.ms
>>> # in_data download link: https://download.mindspore.cn/model_zoo/official/lite/quick_start/input.bin
>>> import mindspore_lite as mslite
>>> context = mslite.Context()
>>> context.append_device_info(mslite.CPUDeviceInfo())
>>> runner_config = mslite.RunnerConfig(context=context, workers_num=4)
>>> model_parallel_runner = mslite.ModelParallelRunner()
>>> model_parallel_runner.init(model_path="mobilenetv2.ms", runner_config=runner_config)
>>> inputs = model_parallel_runner.get_inputs()
>>> in_data = np.fromfile("input.bin", dtype=np.float32)
>>> inputs[0].set_data_from_numpy(in_data)
>>> outputs = model_parallel_runner.get_outputs()
>>> model_parallel_runner.predict(inputs, outputs)
>>> for output in outputs:
...     data = output.get_data_to_numpy()
...     print("outputs: ", data)
...
outputs:  [[8.9401474e-05 4.4536911e-05 1.0089713e-04 ... 3.2687691e-05
3.6021424e-04 8.3650106e-05]]