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

--input_hint_shape

产品支持情况

产品

是否支持

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品

x

Atlas 训练系列产品

x

功能说明

自动融合离线编译动态shape场景下,指定模型输入数据的hint shape,以支持该场景下符号化推导。

hint shape是模型编译时用户传入的一个提示shape值。如图1所示,模型中Data0、Data1和Data2的部分维度未知,但在模型执行时,用户会传入具有静态shape的输入Tensor。例如,在编译下图时,Data0的shape为[2, 3, 4, 2],Data1的shape为[2, 3, 1, 2],Data2的shape为[2, 3, 1, 2];因此,在编译模型时,s0的hint值为2,s1的hint值为3,s2的hint值为4,s3的hint值为2,s4的hint值为1。

图1 Hint值示意图

ATC工具与自动融合功能交互流程如图2所示:

图2 ATC工具与自动融合交互流程
  1. 调用框架Parser功能,将主流框架的模型解析为CANN支持的Graph图结构。
  2. 图编译阶段会解析ATC工具传入的--input_hint_shape参数,然后进入AutoFuse自动融合符号化推导流程。AutoFuse自动融合原理详细介绍请参见AutoFuse自动融合用户指南

关联参数

该参数需要与--input_shape配合使用,并且该参数需要为动态shape场景;不能与--dynamic_batch_size--dynamic_image_size--dynamic_dims同时使用。

参数取值

参数值:输入节点索引及shape信息,例如"input_index1:[n1,c1,h1,w1];input_index2:[n2,c2,h2,w2]",索引从0开始。

参数值格式:指定的参数必须放在双引号中,不同输入之间使用英文分号分隔,shape信息放在英文括号“[]”中。

参数值约束:针对--input_shape设置范围的维度,--input_hint_shape设置的取值需要在其范围以内。

推荐配置及收益

无。

示例

--input_shape="input_0_0:1~10,32,208,208;input_1_0:16,64,100~208,100~208"  --input_hint_shape="0:[1,32,208,208];1:[16,64,100,100]"

依赖约束

如果模型转换时通过该参数设置了shape的范围,使用应用工程进行模型推理时,需在aclmdlExecute接口之前,调用aclmdlSetDatasetTensorDesc接口,用于设置真实的输入Tensor描述信息(输入shape范围);模型执行之后,调用aclmdlGetDatasetTensorDesc接口获取模型动态输出的Tensor描述信息;再进一步调用aclTensorDesc下的操作接口获取输出Tensor数据占用的内存大小、Tensor的Format信息、Tensor的维度信息等。