---
title: 接口调用流程
description: "调用pyacl接口，可开发包含模型推理、媒体数据处理、单算子调用等功能的应用，这些功能可以独立存在，也可以组合存在。下图给出了使用pyacl接口开发AI应用的整体接口调用流程。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/acldevg/aclpythondevg_0005.html
sourcePath: /source/zh/canncommercial/900/programug/acldevg/aclpythondevg_0005.html
indexId: 5b194b47177380a7708825fd767d5d7e044812e8520cef860d65b79cbcc36c9a71
---
# 接口调用流程

调用pyacl接口，可开发包含模型推理、媒体数据处理、单算子调用等功能的应用，这些功能可以独立存在，也可以组合存在。下图给出了使用pyacl接口开发AI应用的整体接口调用流程。

图1 接口调用流程图

上图根据应用开发中的典型功能抽象出主要的接口调用流程，具体场景参考如下。

- 如果模型对输入图片的宽高要求与用户提供的源图不一致，则需要媒体数据处理，将源图裁剪成符合模型的要求。
- 如果需要实现模型推理的功能，则需要先加载模型，模型推理结束后，则需要卸载模型。
- 如果模型推理后，需要从推理结果中查找最大置信度的类别标识对图片分类，则需要数据后处理。

接口调用流程各步骤操作参见如下。

1. 初始化。
  调用acl.init(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclpythondevg_01_0005.html)接口实现初始化。

2. 运行时资源申请。
  具体流程，请参见运行时资源申请流程。

3. 模型推理/单算子调用/媒体数据处理。

  - 模型推理。

    a. 模型加载：模型推理前，需要先将对应的模型加载到系统中，必须使用适配昇腾AI处理器的离线模型，如需构建模型，请参见      模型构建
。
      接口调用流程，请参见模型加载。

    b. （可选）媒体数据处理：可实现JPEG图片解码、视频解码、抠图/图片缩放/格式转换、JPEG图片编码等功能。
      接口调用流程，请参见媒体数据处理（DVPP）。

    c. 模型执行：使用模型实现图片分类、目标识别等功能。
      接口调用流程，请参见模型执行。

    d. （可选）数据后处理：处理模型推理的结果，此处根据用户的实际需求来处理推理结果，例如用户可以将获取到的推理结果写入文件、从推理结果中找到每张图片最大置信度的类别标识等。
    e. 模型卸载：调用      acl.mdl.unload(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendgraphapi/aclpythondevg_01_0148.html)
接口卸载模型。
  - 算子调用。
    如果AI应用中不仅包括模型推理，还有数学运算（例如BLAS基础线性代数运算）、数据类型转换等功能，也想使用昇腾的算力，直接通过pyacl接口加载并执行单个算子，省去模型构建、训练的过程，相对轻量级，又可以使用昇腾的算力。另外，自定义的算子，也可以通过单算子调用的方式来验证算子的功能。接口调用流程，请参见接口调用流程。

4. 运行时资源释放。
  具体流程，请参见运行时资源释放流程。

5. 去初始化。
  调用acl.finalize(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclpythondevg_01_0006.html)接口实现去初始化。


在应用开发过程中，各环节都涉及内存的申请与释放、数据传输（通过内存复制实现）、数据类型的创建与销毁，因此未在图中一一标识，关于内存申请与释放、内存复制的接口请参见内存管理(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclpythondevg_01_0108.html)。数据类型描述请参见数据类型及其操作接口(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclpythondevg_01_0910.html)。
