动态Shape单算子描述文件配置
该场景下的单算子分为如下类型:
- 模型编译时不指定Shape,模型执行时根据输入固定Shape,能推导出具体输出Shape:
[ { "op": "Add", "name": "add", "input_desc": [ { "format": "ND", "shape": [-1,16], "shape_range": [[0, 32]], "type": "int64" }, { "format": "ND", "shape": [-1,16], "shape_range": [[0, 32]], "type": "int64" } ], "output_desc": [ { "format": "ND", "shape": [-1,16], "shape_range": [[0,32]], "type": "int64" } ] } ]
- 模型编译时不指定Shape,模型执行时根据输入固定Shape和常量,能推导出具体输出Shape:
[ { "op": "TopK", "name": "topK", "input_desc": [ { "format": "ND", "shape": [-1], "shape_range": [[1,-1]], "type": "int32" }, { "format": "ND", "shape": [], #推理时会传入常量 "type": "int32" } ], "output_desc": [ { "format": "ND", "shape": [-1], "shape_range": [[1,-1]], "type": "int32" }, { "format": "ND", "shape": [-1], "shape_range": [[1,-1]], "type": "int32" }], "attr": [ { "name": "sorted", "type": "bool", "value": true } ] } ]
- 模型编译时不指定Shape,模型执行时根据输入固定Shape,无法得到算子的准确输出Shape,但可以得到输出Shape的范围。
该场景下在输出参数output_desc中将算子输出TensorDesc中Shape为动态维度的纬度值记为“-1”,并对其“-1”的维度给出shape_range取值范围:
[ { "op": "Where", "name": "where", "input_desc": [ { "format": "ND", "shape": [-1], "shape_range": [[1,-1]], "type": "int32" } ], "output_desc": [ { "format": "ND", "shape": [-1, 1], "shape_range": [[1,-1]], "type": "int64" } ] } ]
父主题: 配置文件样例