用户可以在模型构建时,设置ND格式下动态维度的档位。适用于执行推理时,每次处理任意维度的场景。
Atlas 200/300/500 推理产品
Atlas 推理系列产品(Ascend 310P处理器)
Atlas 训练系列产品
Atlas 200/500 A2推理产品
Atlas A2训练系列产品
1 2 3 4 5 |
auto shape_data = vector<int64_t>({ 1,-1,-1 }); TensorDesc desc_data(ge::Shape(shape_data), FORMAT_ND, DT_FLOAT); auto data = op::Data("data"); data.update_input_desc_data(desc_data); data.update_output_desc_out(desc_data); |
1 2 3 4 5 6 7 |
void PrepareOptions(std::map<std::string, std::string>& options) { options.insert({ {ge::ir_option::INPUT_FORMAT, "ND"}, {ge::ir_option::INPUT_SHAPE, "data:1,-1,-1"}, {ge::ir_option::DYNAMIC_DIMS, "1,2;3,4;5,6;7,8"} // 模型编译时,支持的data算子的shape为1,1,2; 1,3,4; 1,5,6; 1,7,8 }); } |
1 2 3 4 5 6 7 |
void PrepareOptions(std::map<std::string, std::string>& options) { options.insert({ {ge::ir_option::INPUT_FORMAT, "ND"}, {ge::ir_option::INPUT_SHAPE, "data:1,1,40,-1;label:1,-1;mask:-1,-1"}, {ge::ir_option::DYNAMIC_DIMS, "20,20,1,1;40,40,2,2;80,60,4,4"} }); } |
则模型编译时,支持的输入shape为:
第0档:data(1,1,40,20)+label(1,20)+mask(1,1)
第1档:data(1,1,40,40)+label(1,40)+mask(2,2)
第2档:data(1,1,40,80)+label(1,60)+mask(4,4)