insert_op.proto 3.7 KB
Newer Older
L
lujiale 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
/**
 * Copyright 2019-2020 Huawei Technologies Co., Ltd
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

syntax = "proto3";

package domi;

message InsertNewOps {
	repeated AippOpParams aipp_op = 1;
	repeated MultiShapeOpParams multi_shape_op = 2;
}

message AippOpParams {
	enum InputFormat {
		UNDEFINED = 0;
		YUV420SP_U8 = 1;
		XRGB8888_U8 = 2;
		RGB888_U8   = 3;
		YUV400_U8   = 4;
		NC1HWC0DI_FP16 = 5;
		NC1HWC0DI_S8 = 6;
		ARGB8888_U8 = 7;
		YUYV_U8 = 8;
		YUV422SP_U8 = 9;
		AYUV444_U8 = 10;
		RAW10 = 11;
		RAW12 = 12;
		RAW16 = 13;
		RAW24 = 14;
	}
  
	enum AippMode {
		undefined = 0;
		static = 1;
		dynamic = 2;
	}
  
	// AIPP模式,区分静态AIPP和动态AIPP
	AippMode aipp_mode = 1;			

	// related_input_rank参数为必填,类型为整型,配置范围>=0, <=输入Data算子的个数,默认值为0。
	// 标识对模型的第几个输入做AIPP处理,例如模型有两个输入,需要对第2个输入做AIPP,则配置related_input_rank为1。
	uint32 related_input_rank = 2;

	// input_edge_idx参数为可选,类型为整型,配置范围为>=0。
	// 配置该参数的作用,在于对Data算子不同的输出做不同的AIPP处理,如果该参数没有配置,默认对related_input_rank指定的模型输入的所有输出边做AIPP。
	// 配置值 <= Data算子输出边的个数。
	repeated uint32 input_edge_idx = 3;

	// [Begin] 动态AIPP参数,配置静态AIPP时无效
	uint32 max_src_image_size = 4;

	// 是否支持旋转。默认不支持,开启支持旋转时,会有额外的空间和性能损失
	bool support_rotation = 5;

	// [End] 动态AIPP参数


	// [Begin] 静态AIPP参数,配置动态AIPP时无效
	InputFormat input_format = 51;
	bool csc_switch = 52;
	float cpadding_value = 53;
	bool rbuv_swap_switch = 54;
	bool ax_swap_switch = 55;
	bool single_line_mode = 56;

	int32 src_image_size_w = 57;
	int32 src_image_size_h = 58;

	bool crop = 59;
	int32 load_start_pos_w = 60;
	int32 load_start_pos_h = 61;
	int32 crop_size_w = 62;
	int32 crop_size_h = 63;

	bool resize = 64;
	int32 resize_output_w = 65;
	int32 resize_output_h = 66;

	bool padding = 67;
	int32 left_padding_size = 68;
	int32 right_padding_size = 69;
	int32 top_padding_size = 70;
	int32 bottom_padding_size = 71;

	int32 mean_chn_0 = 10;
	int32 mean_chn_1 = 11;
	int32 mean_chn_2 = 12;
	int32 mean_chn_3 = 19;
	float min_chn_0 = 13;
	float min_chn_1 = 14;
	float min_chn_2 = 15;
	float min_chn_3 = 20;
	repeated float var_reci_chn_0 = 16;
	repeated float var_reci_chn_1 = 17;
	repeated float var_reci_chn_2 = 18;
	repeated float var_reci_chn_3 = 21;

	repeated int32 matrix_r0c0 = 30;
	repeated int32 matrix_r0c1 = 31;
	repeated int32 matrix_r0c2 = 32;
	repeated int32 matrix_r1c0 = 33;
	repeated int32 matrix_r1c1 = 34;
	repeated int32 matrix_r1c2 = 35;
	repeated int32 matrix_r2c0 = 36;
	repeated int32 matrix_r2c1 = 37;
	repeated int32 matrix_r2c2 = 38;
	repeated int32 output_bias_0 = 39;
	repeated int32 output_bias_1 = 40;
	repeated int32 output_bias_2 = 41;
	repeated int32 input_bias_0 = 42;
	repeated int32 input_bias_1 = 43;
	repeated int32 input_bias_2 = 44;

	// [End] 静态AIPP参数
}

message MultiShapeOpParams {
	enum MultiShapeMode {
		batch      = 0;             //动态batch
		resolution = 1;             //动态分辨率,扩展用
	}

	MultiShapeMode    mode                      = 1;        //算子模式
	uint32            related_input_rank        = 2;        //新增算子插入到哪个输入


	repeated uint32 batch_list   = 11; //batch_list值,batch_list的个数是2到8之间
}