---
title: aclmdlBundleLoadFromFile
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendgraphapi/aclcppdevg_03_0292.html
sourcePath: /source/zh/canncommercial/900/API/ascendgraphapi/aclcppdevg_03_0292.html
indexId: bb880fd0ecefaab210436095e59948b971a6c744742267e35d9b75271289e7e372
---
# aclmdlBundleLoadFromFile

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |


#### 功能说明

模型执行阶段若涉及动态更新变量的场景，可调用本接口从文件加载om模型，由系统内部管理内存。

本接口需与以下其它接口配合使用，以便实现动态更新变量的目的，关键接口的调用流程如下：

1. 基于构图接口编译并保存模型，模型中包含多个图，例如推理图、变量初始化图、变量更新图等。
  此处是调用aclgrphBundleBuildModel接口编译模型、调用aclgrphBundleSaveModel接口保存模型，接口详细描述参见《图开发(https://www.hiascend.com/document/detail/zh/canncommercial/900/programug/graphdevg/atlasag_25_0081.html)》中的“aclgrphBundleBuildModel”、“aclgrphBundleSaveModel”。

2. 调用  aclmdlBundleLoadFromFile
或  aclmdlBundleLoadFromMem
接口加载模型。
3. 调用  aclmdlBundleGetModelId
接口获取多个图的ID。
4. 根据多个图的ID，分别调用模型执行接口（例如  aclmdlExecute
）执行各个图。
  若涉及变量更新，则在执行变量更新图之前，先调用aclmdlSetDatasetTensorDesc接口设置图的tensor描述信息，再执行变量更新图，然后再执行一次推理图。

5. 推理结束后，调用  aclmdlBundleUnload
接口卸载模型。


#### 函数原型

```
aclError aclmdlBundleLoadFromFile(const char *modelPath, uint32_t *bundleId)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| modelPath | 输入 | 模型文件路径的指针，路径中包含文件名。运行程序（APP）的用户需要对该存储路径有访问权限。 此处的模型文件是基于构图接口构建出来的，调用aclgrphBundleBuildModel接口编译模型、调用aclgrphBundleSaveModel接口保存模型。 |
| bundleId | 输出 | 系统成功加载模型后，返回bundleId作为后续操作时识别模型的标志。 |


#### 返回值说明

返回0表示成功，返回其他值表示失败，请参见aclError。


#### 接口调用示例

接口调用流程及示例代码请参见权重更新（由系统管理内存）(https://www.hiascend.comdocument/detail/zh/canncommercial/900/programug/acldevg/aclcppdevg_000045.html)。
