---
title: 简介
description: "InferShapeRangeContext继承自ExtendedKernelContext，主要用于获取算子的输入输出ShapeRange和输入TensorRange，其中ShapeRange和TensorRange分别是Range<T>模板的特化类型，记录了算子Shape和Tensor值的上下限。部分算子（例如，NonZero算子）在进行shape推导时，无法推导出具体的输出shape，只能通过ShapeRange信息预估最大shape。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/maintenref/basicdataapi/atlasopapi_07_00549.html
sourcePath: /source/zh/canncommercial/900/maintenref/basicdataapi/atlasopapi_07_00549.html
indexId: 56699274eb960ccc639b95e887b9d93ca77f48636cbb03dbcac88a59803649fb78
---
# 简介

InferShapeRangeContext继承自ExtendedKernelContext，主要用于获取算子的输入输出ShapeRange和输入TensorRange，其中ShapeRange和TensorRange分别是Range<T>模板的特化类型，记录了算子Shape和Tensor值的上下限。部分算子（例如，NonZero算子）在进行shape推导时，无法推导出具体的输出shape，只能通过ShapeRange信息预估最大shape。

InferShapeRangeContext继承关系图如下：


#### 需要包含的头文件

```
#include <infer_shape_range_context.h>
```


#### Public成员函数

```
const
Range
<
Shape
> *
GetInputShapeRange
(const size_t index) const
const TensorRange *
GetInputTensorRange
(const size_t index) const
const TensorRange *
GetOptionalInputTensorRange
(const size_t ir_index) const
const TensorRange *
GetDynamicInputTensorRange
(const size_t ir_index, const size_t relative_index) const
const
Range
<
Shape
> *
GetOptionalInputShapeRange
(const size_t ir_index) const
const
Range
<
Shape
> *
GetDynamicInputShapeRange
(const size_t ir_index, const size_t relative_index) const
const
Range
<
Shape
> *
GetRequiredInputShapeRange
(const size_t ir_index) const
const TensorRange *
GetRequiredInputTensorRange
(const size_t ir_index) const
Range
<
Shape
> *
GetOutputShapeRange
(const size_t index)
```
