昇腾社区首页
中文
注册
开发者
下载

简介

OpInferShapeRangeContextBuilder用于构建InferShapeRangeContext。构造出的Context在算子ShapeRange推导过程中作为输入,用于获取必要的算子输入输出数据。推导完成后,结果会被写回上下文中。

OpInferShapeRangeContextBuilder继承关系图如下:

使用步骤如下:

  1. 构造ContextHolder.

    调用OpInferShapeRangeContextBuilder接口,传入相应的输入输出数据,比如输入Tensor的Shape范围gert::Range<gert::Tensor>和输出的TensorDesc描述等,最终调用Build()接口构造一个ContextHolder<InferShapeRangeContext>对象。

  2. 获取InferShapeRangeContext

    通过ContextHolder调用GetContext接口,获取InferShapeRangeContext。

  3. 调用算子ShapeRange推导函数InferShapeRangeKernelFunc,将InferShapeRangeContext作为函数入参,完成ShapeRange推导,并写入推导的输出结果。
  4. 通过InferShapeRangeContext的GetOutputShapeRange接口可以获取到推导的输出Shape范围。
  5. 根据需要释放ContextHolder,释放完成后,此时由Build构造出来的InferShapeRangeContext中的数据指针均无效。

该类继承自OpContextBuilderBase类,在Build构建ContextHolder对象之前,需要调用OpContextBuilderBase的OpType、OpName、IONum或IOInstanceNum,以及AppendAttr接口,分别设置算子的类型、名称、输入输出个数、以及算子的属性。

需要包含的头文件

1
#include "base/context_builder/op_infer_shape_range_context_builder.h"

Public成员函数

OpInferShapeRangeContextBuilder()
~OpInferShapeRangeContextBuilder() override
OpInferShapeRangeContextBuilder &OutputTensorDesc(size_t index, ge::DataType dtype, ge::Format origin_format, ge::Format storage_format)
OpInferShapeRangeContextBuilder &InputTensorsRange(const std::vector<gert::Range<gert::Tensor> *> &inputs)
ContextHolder<InferShapeRangeContext> Build()