blob: 7628da4816c810921326638570e93c9416af99c2 [file] [log] [blame]
/*
* Copyright (C) 2019 The Android Open Source Project
*
* 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 = "proto2";
package android_nn_fuzz;
enum OperandType {
FLOAT32 = 0;
INT32 = 1;
UINT32 = 2;
TENSOR_FLOAT32 = 3;
TENSOR_INT32 = 4;
TENSOR_QUANT8_ASYMM = 5;
BOOL = 6;
TENSOR_QUANT16_SYMM = 7;
TENSOR_FLOAT16 = 8;
TENSOR_BOOL8 = 9;
FLOAT16 = 10;
TENSOR_QUANT8_SYMM_PER_CHANNEL = 11;
TENSOR_QUANT16_ASYMM = 12;
TENSOR_QUANT8_SYMM = 13;
TENSOR_QUANT8_ASYMM_SIGNED = 14;
}
enum OperationType {
ADD = 0;
AVERAGE_POOL_2D = 1;
CONCATENATION = 2;
CONV_2D = 3;
DEPTHWISE_CONV_2D = 4;
DEPTH_TO_SPACE = 5;
DEQUANTIZE = 6;
EMBEDDING_LOOKUP = 7;
FLOOR = 8;
FULLY_CONNECTED = 9;
HASHTABLE_LOOKUP = 10;
L2_NORMALIZATION = 11;
L2_POOL_2D = 12;
LOCAL_RESPONSE_NORMALIZATION = 13;
LOGISTIC = 14;
LSH_PROJECTION = 15;
LSTM = 16;
MAX_POOL_2D = 17;
MUL = 18;
RELU = 19;
RELU1 = 20;
RELU6 = 21;
RESHAPE = 22;
RESIZE_BILINEAR = 23;
RNN = 24;
SOFTMAX = 25;
SPACE_TO_DEPTH = 26;
SVDF = 27;
TANH = 28;
BATCH_TO_SPACE_ND = 29;
DIV = 30;
MEAN = 31;
PAD = 32;
SPACE_TO_BATCH_ND = 33;
SQUEEZE = 34;
STRIDED_SLICE = 35;
SUB = 36;
TRANSPOSE = 37;
ABS = 38;
ARGMAX = 39;
ARGMIN = 40;
AXIS_ALIGNED_BBOX_TRANSFORM = 41;
BIDIRECTIONAL_SEQUENCE_LSTM = 42;
BIDIRECTIONAL_SEQUENCE_RNN = 43;
BOX_WITH_NMS_LIMIT = 44;
CAST = 45;
CHANNEL_SHUFFLE = 46;
DETECTION_POSTPROCESSING = 47;
EQUAL = 48;
EXP = 49;
EXPAND_DIMS = 50;
GATHER = 51;
GENERATE_PROPOSALS = 52;
GREATER = 53;
GREATER_EQUAL = 54;
GROUPED_CONV_2D = 55;
HEATMAP_MAX_KEYPOINT = 56;
INSTANCE_NORMALIZATION = 57;
LESS = 58;
LESS_EQUAL = 59;
LOG = 60;
LOGICAL_AND = 61;
LOGICAL_NOT = 62;
LOGICAL_OR = 63;
LOG_SOFTMAX = 64;
MAXIMUM = 65;
MINIMUM = 66;
NEG = 67;
NOT_EQUAL = 68;
PAD_V2 = 69;
POW = 70;
PRELU = 71;
QUANTIZE = 72;
QUANTIZED_16BIT_LSTM = 73;
RANDOM_MULTINOMIAL = 74;
REDUCE_ALL = 75;
REDUCE_ANY = 76;
REDUCE_MAX = 77;
REDUCE_MIN = 78;
REDUCE_PROD = 79;
REDUCE_SUM = 80;
ROI_ALIGN = 81;
ROI_POOLING = 82;
RSQRT = 83;
SELECT = 84;
SIN = 85;
SLICE = 86;
SPLIT = 87;
SQRT = 88;
TILE = 89;
TOPK_V2 = 90;
TRANSPOSE_CONV_2D = 91;
UNIDIRECTIONAL_SEQUENCE_LSTM = 92;
UNIDIRECTIONAL_SEQUENCE_RNN = 93;
RESIZE_NEAREST_NEIGHBOR = 94;
}
enum OperandLifeTime {
TEMPORARY_VARIABLE = 0;
SUBGRAPH_INPUT = 1;
SUBGRAPH_OUTPUT = 2;
CONSTANT_COPY = 3;
CONSTANT_REFERENCE = 4;
NO_VALUE = 5;
}
message Buffer {
required uint32 random_seed = 1;
}
message Scales {
repeated float scale = 1;
}
message SymmPerChannelQuantParams {
required Scales scales = 1;
required uint32 channel_dim = 2;
}
message Dimensions {
repeated uint32 dimension = 1;
}
message Operand {
required OperandType type = 1;
required Dimensions dimensions = 2;
required float scale = 4;
required int32 zero_point = 5;
required OperandLifeTime lifetime = 6;
required SymmPerChannelQuantParams channel_quant = 7;
required Buffer data = 8;
}
message Operands {
repeated Operand operand = 1;
}
message Indexes {
repeated uint32 index = 1;
}
message Operation {
required OperationType type = 1;
required Indexes inputs = 2;
required Indexes outputs = 3;
}
message Operations {
repeated Operation operation = 1;
}
message Model {
required Operands operands = 1;
required Operations operations = 2;
required Indexes input_indexes = 3;
required Indexes output_indexes = 4;
required bool is_relaxed = 5;
}
message Test {
required Model model = 1;
}