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]]