mindspore_lite.ModelGroup

查看源文件
class mindspore_lite.ModelGroup(flags=ModelGroupFlag.SHARE_WORKSPACE)[源代码]

ModelGroup 类定义MindSpore Lite模型分组信息,用于共享工作空间(Workspace)内存或者权重(包括常量和变量)内存以及二者同时共享。

参数:
  • flags (ModelGroupFlag,可选) - 指示 ModelGroup 的类型。默认: ModelGroupFlag.SHARE_WORKSPACE

样例:

>>> # Multi models share workspace memory
>>> import mindspore_lite as mslite
>>> model_type=mslite.ModelType.MINDIR
>>> path1 = "path_to_model1"
>>> path2 = "path_to_model2"
>>> model_group = mslite.ModelGroup()
>>> model_group.add_model([path1, path2])
>>> model_group.cal_max_size_of_workspace(model_type, context)
>>>
>>> # Multi models share weights memory
>>> import mindspore_lite as mslite
>>> context = mslite.Context()
>>> context.target = ["Ascend"]
>>> context.ascend.device_id = 0
>>> context.ascend.rank_id = 0
>>> context.ascend.provider = "ge"
>>> model_group = mslite.ModelGroup(mslite.ModelGroupFlag.SHARE_WEIGHT)
>>> model0 = mslite.Model()
>>> model1 = mslite.Model()
>>> model_group.add_model([model0, model1])
>>> model0.build_from_file("seq_1024.mindir", mslite.ModelType.MINDIR, context, "config0.ini")
>>> model1.build_from_file("seq_1.mindir", mslite.ModelType.MINDIR, context, "config.ini")
add_model(models)[源代码]

添加需要共享工作空间内存或权重内存的模型。当前参数 modelsModel 对象的元组或列表时,仅支持共享权重内存,其他场景下仅支持工作空间内存共享。

参数:
  • models (union[tuple/list(str), tuple/list(Model)]) - 定义共享内存的一组模型文件或模型对象。

异常:
  • TypeError - models 不是list和tuple类型。

  • TypeError - models 是list或tuple类型,但是成员不全是str或者Model对象。

  • RuntimeError - 添加模型分组信息失败。

cal_max_size_of_workspace(model_type, context)[源代码]

计算 add_model 模型的工作内存的最大值。仅在 ModelGroup 的类型为 ModelGroupFlag.SHARE_WORKSPACE 时有效。

参数:
  • model_type (ModelType) - 定义模型的类型。

  • context (Context) - 定义模型的上下文。

异常:
  • TypeError - model_type 不是 ModelType 类型。

  • TypeError - context 不是 Context 类型。

  • RuntimeError - 计算工作内存的最大值失败。