1// 2// Copyright (c) Qualcomm Innovation Center, Inc. 3// All rights reserved. 4// 5// This source code is licensed under the BSD-style license found in the 6// LICENSE file in the root directory of this source tree. 7// 8 9namespace qcir; 10 11enum TensorType : byte { 12 WRITE = 0, 13 READ, 14 READWRITE, 15 NATIVE, 16 STATIC, 17 OPTIONAL, 18 UNDEFINED, 19} 20 21enum DataType : byte { 22 INT8 = 0, 23 INT16, 24 INT32, 25 INT64, 26 UINT8, 27 UINT16, 28 UINT32, 29 UINT64, 30 FLOAT16, 31 FLOAT32, 32 FLOAT64, 33 SFIXED4, 34 SFIXED8, 35 SFIXED16, 36 SFIXED32, 37 UFIXED4, 38 UFIXED8, 39 UFIXED16, 40 UFIXED32, 41 BOOL, 42 STRING, 43 UNDEFINED, 44} 45 46enum QuantizeDef : byte { 47 IMPL_GENERATED = 0, 48 DEFINED, 49 UNDEFINED, 50} 51 52enum QuantizeType : byte { 53 SCALE_OFFSET = 0, 54 AXIS_SCALE_OFFSET, 55 BW_SCALE_OFFSET, 56 BW_AXIS_SCALE_OFFSET, 57 UNDEFINED, 58} 59 60struct ScaleOffset { 61 scale: float; 62 offset: int; 63} 64 65table QuantizeParam { 66 def: QuantizeDef; 67 type: QuantizeType; 68 bitwidth: uint; 69 axis: int; 70 // used by bitwidth quantization 71 scales: [float]; 72 offsets: [int]; 73 // used by general quantization 74 data: [ScaleOffset]; 75} 76 77table Tensor { 78 name: string; 79 shape: [uint]; 80 type: TensorType; 81 dtype: DataType; 82 qparam: QuantizeParam; 83 data: [ubyte]; 84} 85 86table Operator { 87 name: string; 88 package_name: string; 89 type_name: string; 90 // keep only tensor indexes 91 inputs: [int]; 92 outputs: [int]; 93 params: [int]; 94} 95 96table Graph { 97 name: string; 98 nodes: [Operator]; 99 tensors: [Tensor]; 100} 101 102table Context { 103 graphs: [Graph]; 104} 105 106root_type Context; 107