---
title: INFER_SHAPE
description: "针对指定算子，运行其InferShape函数，推导输出shape。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/aolapi/atlasascendc_api_07_1050.html
sourcePath: /source/zh/canncommercial/900/API/aolapi/atlasascendc_api_07_1050.html
indexId: 57942edea68dad1b3017719b161ec1afba9b99decbf8e71537be2f326400fd3670
---
# INFER_SHAPE

#### 宏功能

针对指定算子，运行其InferShape函数，推导输出shape。


#### 宏原型

```
INFER_SHAPE(KERNEL_NAME, op_args...)
```


#### 参数说明

| 参数 | 输入/输出 | 说明 |
| --- | --- | --- |
| KERNEL\_NAME | 输入 | 算子名，例如Add。 |
| op\_args... | 输入 | 算子的参数，包括输入OP\_INPUT、输出OP\_OUTPUT、属性OP\_ATTR等参数。 |


#### 约束说明

- 如果算子需要INFER_SHAPE，那么此宏需要在  ADD_TO_LAUNCHER_LIST_AICORE
之前调用。
- 如下接口是上述宏定义会调用到的关联接口。

```
OP_INPUT(x...)
OP_OUTPUT(x...)
OP_ATTR(x...)
OP_WORKSPACE(x...)
OP_OUTSHAPE(x...)
OP_OPTION(x...)
OP_EMPTY_ARG
OP_MODE(x...)
```


#### 调用示例

```
// 调用INFER_SHAPE推导算子的输出shape，其中BatchMatMulV3是算子名，OP_INPUT是算子输入参数，OP_OUTPUT是算子输出参数，OP_ATTR是算子的属性参数
INFER_SHAPE(BatchMatMulV3, OP_INPUT(x1, x2, bias, nullptr), OP_OUTPUT(bmmOut), OP_ATTR(adjX1, adjX2, offsetX, opImplModeEnum));
```
