|
- /**
- * Copyright 2019 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.
- */
-
- include "op.fbs";
-
- namespace mindspore.predict;
-
- enum MSCONST: int {
- WEIGHT_REFCOUNT = 999
- }
-
- table QuantParam {
- scale: double;
- zeroPoint: int;
- min: double = 0;
- max: double = 0;
- narrowRange: bool = true;
- numBits: int = 8;
- }
-
- table QuantParamArray {
- param: [QuantParam]; //pre-channel
- }
-
- table TensorDef {
- // data type
- dataType: DataType;
- // shape
- dims: [int];
- format: Format;
- refCount: int;
- offset: int;
- data: [ubyte];
- }
-
- union OpT {
- Concat,
- SoftMax,
- Activation,
- Conv2D,
- FusedBatchNorm,
- CaffeBatchNorm,
- BiasAdd,
- Pooling,
- DepthwiseConv2D,
- DeDepthwiseConv2D,
- Resize,
- DetectionPostProcess,
- FullConnection,
- Mean,
- DeConv2D,
- Scale,
- Reshape,
- Eltwise,
- NetOutput,
- Add,
- Sub,
- MatMul,
- StridedSlice,
- Power,
- Slice,
- Stack,
- Mul,
- RealDiv,
- Pad,
- Maximum,
- Minimum,
- CaffePReLU,
- LeakyReLU,
- ArgMax,
- ArgMin,
- Exp,
- CaffeCrop,
- Range,
- Rsqrt,
- ExpandDims,
- Tile,
- Cast,
- Shape,
- Nchw2Nhwc,
- Nhwc2Nchw,
- QuantDTypeCast,
- Split,
- Permute,
- FakeQuantWithMinMaxVars,
- Equal,
- Less,
- Greater,
- Min,
- Floor,
- Abs,
- Neg,
- Cos,
- Sin,
- Sqrt,
- Square,
- Constant,
- Log,
- Tan,
- Atan,
- Asin,
- Clip,
- Transpose,
- Squeeze,
- Unsqueeze,
- Upsample,
- Dropout,
- Broadcast,
- Lrn,
- Prelu,
- ZerosLike,
- TopK,
- SpaceToDepth,
- SpaceToBatch,
- SparseToDense,
- ReverseSequence,
- Rank,
- Gather,
- GatherNd,
- Fill,
- Elu,
- DepthToSpace,
- BatchToSpace,
- AddN,
- Ceil,
- EmbeddingLookup,
- EmbeddingLookupSparse,
- FloorDiv,
- FloorMod,
- L2Norm,
- LocalResponseNormalization,
- MatrixDiag,
- Reduce,
- Reverse,
- Round,
- Select,
- Scatter,
- Unique,
- Unstack,
- LogicalAnd,
- LogicalOr,
- LogicalXor,
- LogicalNot,
- OnnxInt8Quantize,
- OnnxInt8Dequantize,
- FakeQuantWithMinMax,
- FakeQuantWithMinMaxPerChannel,
- BatchNormFold,
- MulFold,
- AddFold,
- SquaredDifference
- }
-
- enum QuantType: int {
- QUANT_NONE,
- AwareTrainning,
- WeightQuant,
- PostTraining
- }
-
- enum FmkType: int {
- TF,
- CAFFE,
- ONNX,
- MS,
- TFLITE
- }
-
- table OpDef {
- name: string;
- fmkType: FmkType;
- attr: OpT;
- inputIndex: [uint];
- outputIndex: [uint];
- quantType: QuantType = QUANT_NONE;
- quantParam: [QuantParamArray];
- }
-
- table SubGraphDef {
- name: string;
- inputIndex: [uint];
- outputIndex: [uint];
- mempoolSize: uint;
- nodes: [OpDef];
- allTensors: [TensorDef]; // weight + input + output
- }
-
- table MempoolCfg {
- size: uint;
- shiftFactor: uint;
- }
-
- table GraphDef {
- name: string;
- mempoolCfg: MempoolCfg;
- subgraphs: [SubGraphDef];
- }
-
- root_type GraphDef;
|