---
title: 函数：create_and_get_op_desc
description: "| C函数原型 | aclError aclmdlCreateAndGetOpDesc(uint32\_t deviceId, uint32\_t streamId, uint32\_t taskId, char \*opName, size\_t opNameLen, aclTensorDesc \*\*inputDesc, size\_t \*numInputs, aclTensorDesc \*\*outputDesc, size\_t \*numOutputs) |"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgp/aclpythondevg_01_0141.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgp/aclpythondevg_01_0141.html
indexId: 3135a1720bd529a5c0305d6a029b1b0a56a8603fdcf555020dfad52522da6f4c108
---
# 函数：create_and_get_op_desc

| C函数原型 | aclError aclmdlCreateAndGetOpDesc(uint32\_t deviceId, uint32\_t streamId, uint32\_t taskId, char \*opName, size\_t opNameLen, aclTensorDesc \*\*inputDesc, size\_t \*numInputs, aclTensorDesc \*\*outputDesc, size\_t \*numOutputs) |
| --- | --- |
| Python函数 | op\_name, input\_desc, num\_inputs, output\_desc, num\_outputs, ret = acl.mdl.create\_and\_get\_op\_desc(device\_id, stream\_id, task\_id, op\_name\_len) |
| 函数功能 | 获取指定算子的描述信息，包括算子名、输入Tensor描述、输出Tensor描述，如果查询不到指定算子，则返回报错。同步接口。 |
| 输入说明 | device\_id：int，指定Device ID。 调用acl.rt.get\_device\_id\_from\_exception\_info接口获取异常信息中的Device ID，作为本接口的输入。 stream\_id：int，指定Stream ID。 调用acl.rt.get\_stream\_id\_from\_exception\_info接口获取异常信息中的Stream ID，作为本接口的输入。 task\_id：int，指定Task ID。 调用acl.rt.get\_task\_id\_from\_exception\_info接口获取异常信息中的Task ID，作为本接口的输入。 op\_name\_len：int，算子名称字符串长度。 若用户指定的长度比实际算子名称的长度短，则返回报错。 |
| 返回值说明 | op\_name：string，算子名称字符串。 input\_desc：int，算子所有输入的Tensor描述，指向一块连续内存的首地址。 num\_inputs：int，输入个数。 output\_desc：int，算子所有输出的Tensor描述，指向一块连续内存的首地址。 num\_outputs：int，输出个数。 ret：int，错误码。 返回0表示成功。 返回其它值表示失败。 |
| 约束说明 | 使用场景举例：执行整网模型推理时（不支持动态Shape场景），如果产生AI Core报错，可以调用本接口获取报错算子的描述信息，再做进一步错误排查。 推荐的接口调用顺序如下： 定义并实现异常回调函数fn(aclrtExceptionInfoCallback类型)，回调函数原型请参见acl.rt.set\_exception\_info\_callback。 实现回调函数的关键步骤如下： 在异常回调函数fn内调用acl.rt.get\_device\_id\_from\_exception\_info、acl.rt.get\_stream\_id\_from\_exception\_info、acl.rt.get\_task\_id\_from\_exception\_info接口分别获取Device ID、Stream ID、Task ID。 在异常回调函数fn内调用acl.mdl.create\_and\_get\_op\_desc接口获取算子的描述信息。 在异常回调函数fn内调用acl.get\_tensor\_desc\_by\_index接口获取指定算子输入/输出的Tensor描述。 在异常回调函数fn内如下接口获取Tensor描述中的数据，进行进一步分析。 例如，调用acl.get\_tensor\_desc\_address接口获取Tensor数据的内存地址（用户可从该内存地址中获取Tensor数据）、调用acl.get\_tensor\_desc\_type接口获取Tensor描述中的数据类型、调用acl.get\_tensor\_desc\_format接口获取Tensor描述中的Format、调用acl.get\_tensor\_desc\_num\_dims接口获取Tensor描述中的Shape维度个数、调用acl.get\_tensor\_desc\_dim\_v2接口获取Shape中指定维度的大小。 调用acl.rt.set\_exception\_info\_callback接口设置异常回调函数。 执行模型推理。 如果存在AI Core报错，则触发回调函数fn，获取算子的信息，进行进一步分析。 |
| 参考资源 | 接口调用示例，参见AI Core异常信息获取。 |
