Lines Matching full:operation
21 bool Converter::ConvertOperation(const Operation& operation, const Model& model, ConversionData& da… in ConvertOperation() argument
23 switch (operation.type) in ConvertOperation()
26 return ConvertElementwiseUnary(operation, model, data, UnaryOperation::Abs); in ConvertOperation()
28 return ConvertAdd(operation, model, data); in ConvertOperation()
30 return ConvertArgMinMax(operation, model, data, ArgMinMaxFunction::Max); in ConvertOperation()
32 return ConvertArgMinMax(operation, model, data, ArgMinMaxFunction::Min); in ConvertOperation()
34 return ConvertAveragePool2d(operation, model, data); in ConvertOperation()
36 return ConvertBatchMatMul(operation, model, data); in ConvertOperation()
38 return ConvertBatchToSpaceNd(operation, model, data); in ConvertOperation()
40 return ConvertCast(operation, model, data); in ConvertOperation()
42 return ConvertConcatenation(operation, model, data); in ConvertOperation()
44 return ConvertConv2d(operation, model, data); in ConvertOperation()
46 return ConvertDepthToSpace(operation, model, data); in ConvertOperation()
48 return ConvertDepthwiseConv2d(operation, model, data); in ConvertOperation()
50 return ConvertDequantize(operation, model, data); in ConvertOperation()
52 return ConvertDiv(operation, model, data); in ConvertOperation()
54 return ConvertElu(operation, model, data); in ConvertOperation()
56 return ConvertComparison(operation, model, data, ComparisonOperation::Equal); in ConvertOperation()
58 return ConvertElementwiseUnary(operation, model, data, UnaryOperation::Exp); in ConvertOperation()
60 return ConvertExpandDims(operation, model, data); in ConvertOperation()
62 return ConvertFill(operation, model, data); in ConvertOperation()
64 return ConvertFloor(operation, model, data); in ConvertOperation()
66 return ConvertFullyConnected(operation, model, data); in ConvertOperation()
68 return ConvertGather(operation, model, data); in ConvertOperation()
70 return ConvertComparison(operation, model, data, ComparisonOperation::Greater); in ConvertOperation()
72 return ConvertComparison(operation, model, data, ComparisonOperation::GreaterOrEqual); in ConvertOperation()
74 return ConvertGroupedConv2d(operation, model, data); in ConvertOperation()
76 return ConvertHardSwish(operation, model, data); in ConvertOperation()
78 return ConvertInstanceNormalization(operation, model, data); in ConvertOperation()
80 return ConvertL2Normalization(operation, model, data); in ConvertOperation()
82 return ConvertL2Pool2d(operation, model, data); in ConvertOperation()
84 return ConvertComparison(operation, model, data, ComparisonOperation::Less); in ConvertOperation()
86 return ConvertComparison(operation, model, data, ComparisonOperation::LessOrEqual); in ConvertOperation()
88 return ConvertLocalResponseNormalization(operation, model, data); in ConvertOperation()
90 return ConvertElementwiseUnary(operation, model, data, UnaryOperation::Log); in ConvertOperation()
92 return ConvertLogicalBinary(operation, model, data, LogicalBinaryOperation::LogicalAnd); in ConvertOperation()
94 return ConvertElementwiseUnary(operation, model, data, UnaryOperation::LogicalNot); in ConvertOperation()
96 return ConvertLogicalBinary(operation, model, data, LogicalBinaryOperation::LogicalOr); in ConvertOperation()
98 return ConvertLogistic(operation, model, data); in ConvertOperation()
100 return ConvertLogSoftmax(operation, model, data); in ConvertOperation()
102 return ConvertLstm(operation, model, data); in ConvertOperation()
104 return ConvertMaxPool2d(operation, model, data); in ConvertOperation()
106 return ConvertMaximum(operation, model, data); in ConvertOperation()
108 return ConvertMean(operation, model, data); in ConvertOperation()
110 return ConvertMinimum(operation, model, data); in ConvertOperation()
112 return ConvertMul(operation, model, data); in ConvertOperation()
114 return ConvertElementwiseUnary(operation, model, data, UnaryOperation::Neg); in ConvertOperation()
116 return ConvertComparison(operation, model, data, ComparisonOperation::NotEqual); in ConvertOperation()
118 return ConvertPad(operation, model, data); in ConvertOperation()
120 return ConvertPadV2(operation, model, data); in ConvertOperation()
122 return ConvertPrelu(operation, model, data); in ConvertOperation()
124 return ConvertQuantize(operation, model, data); in ConvertOperation()
126 return ConvertQuantizedLstm(operation, model, data); in ConvertOperation()
128 return ConvertQuantized16BitLstm(operation, model, data); in ConvertOperation()
130 return ConvertRank(operation, model, data); in ConvertOperation()
132 return ConvertReduce(operation, model, data, armnn::ReduceOperation::Max); in ConvertOperation()
134 return ConvertReduce(operation, model, data, armnn::ReduceOperation::Min); in ConvertOperation()
136 return ConvertReduce(operation, model, data, armnn::ReduceOperation::Sum); in ConvertOperation()
138 return ConvertReLu(operation, model, data); in ConvertOperation()
140 return ConvertReLu1(operation, model, data); in ConvertOperation()
142 return ConvertReLu6(operation, model, data); in ConvertOperation()
144 return ConvertReshape(operation, model, data); in ConvertOperation()
146 return ConvertResize(operation, model, data, ResizeMethod::Bilinear); in ConvertOperation()
148 return ConvertResize(operation, model, data, ResizeMethod::NearestNeighbor); in ConvertOperation()
150 return ConvertElementwiseUnary(operation, model, data, UnaryOperation::Rsqrt); in ConvertOperation()
152 return ConvertElementwiseUnary(operation, model, data, UnaryOperation::Sin); in ConvertOperation()
154 return ConvertSoftmax(operation, model, data); in ConvertOperation()
156 return ConvertSpaceToBatchNd(operation, model, data); in ConvertOperation()
158 return ConvertSpaceToDepth(operation, model, data); in ConvertOperation()
160 return ConvertSqrt(operation, model, data); in ConvertOperation()
162 return ConvertSqueeze(operation, model, data); in ConvertOperation()
164 return ConvertStridedSlice(operation, model, data); in ConvertOperation()
166 return ConvertSub(operation, model, data); in ConvertOperation()
168 return ConvertTranspose(operation, model, data); in ConvertOperation()
170 return ConvertTransposeConv2d(operation, model, data); in ConvertOperation()
172 return ConvertTanH(operation, model, data); in ConvertOperation()
174 … VLOG(DRIVER) << "Operation type: " << operation.type << "is not supported in ArmnnDriver"; in ConvertOperation()
179 bool Converter::ConvertAdd(const Operation& operation, const Model& model, ConversionData& data) in ConvertAdd() argument
182 LayerInputHandle input0 = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertAdd()
183 LayerInputHandle input1 = ConvertToLayerInputHandle(operation, 1, model, data); in ConvertAdd()
187 return Fail("%s: Operation has invalid inputs", __func__); in ConvertAdd()
192 if (!GetOptionalInputActivation(operation, 2, activationFunction, model, data)) in ConvertAdd()
194 return Fail("%s: Operation has invalid inputs", __func__); in ConvertAdd()
197 const Operand* outputOperand = GetOutputOperand(operation, 0, model); in ConvertAdd()
249 return SetupAndTrackLayerOutputSlot(operation, 0, *startLayer, model, in ConvertAdd()
253 bool Converter::ConvertArgMinMax(const Operation& operation, in ConvertArgMinMax() argument
261 LayerInputHandle input0 = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertArgMinMax()
265 return Fail("%s: Operation has invalid inputs", __func__); in ConvertArgMinMax()
269 if (!GetInputScalar(operation, 1, OperandType::INT32, axis, model, data)) in ConvertArgMinMax()
271 return Fail("%s: Operation has invalid inputs. Failed to read axis.", __func__); in ConvertArgMinMax()
285 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertArgMinMax()
333 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertArgMinMax()
336 bool Converter::ConvertAveragePool2d(const Operation& operation, const Model& model, ConversionData… in ConvertAveragePool2d() argument
339 return ConvertPooling2d(operation, __func__, PoolingAlgorithm::Average, model, data); in ConvertAveragePool2d()
342 bool Converter::ConvertBatchMatMul(const Operation& operation, const Model& model, ConversionData& … in ConvertBatchMatMul() argument
345 LayerInputHandle input0 = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertBatchMatMul()
346 LayerInputHandle input1 = ConvertToLayerInputHandle(operation, 1, model, data); in ConvertBatchMatMul()
350 return Fail("%s: Operation has invalid inputs", __func__); in ConvertBatchMatMul()
370 if (!GetOperandType(operation, 0, model, input0Type)) in ConvertBatchMatMul()
372 return Fail("%s: Operation has invalid inputs", __func__); in ConvertBatchMatMul()
377 if (!GetOperandType(operation, 0, model, input1Type)) in ConvertBatchMatMul()
379 return Fail("%s: Operation has invalid inputs", __func__); in ConvertBatchMatMul()
384 … return Fail("%s: Operation has invalid inputs (Inputs must have same OperandCode)", __func__); in ConvertBatchMatMul()
387 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertBatchMatMul()
399 batchMatMulDesc.m_TransposeX = GetOptionalBool(operation, 2, model, data); in ConvertBatchMatMul()
400 batchMatMulDesc.m_TransposeY = GetOptionalBool(operation, 3, model, data); in ConvertBatchMatMul()
438 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertBatchMatMul()
441 bool Converter::ConvertBatchToSpaceNd(const Operation& operation, const Model& model, ConversionDat… in ConvertBatchToSpaceNd() argument
444 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertBatchToSpaceNd()
447 return Fail("%s: Operation has invalid inputs", __func__); in ConvertBatchToSpaceNd()
450 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertBatchToSpaceNd()
458 const Operand* blockOperand = GetInputOperand(operation, 1, model); in ConvertBatchToSpaceNd()
491 batchToSpaceNdDesc.m_DataLayout = OptionalDataLayout(operation, 2, model, data); in ConvertBatchToSpaceNd()
530 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertBatchToSpaceNd()
533 bool Converter::ConvertCast(const Operation& operation, const Model& model, ConversionData& data) in ConvertCast() argument
537 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertCast()
541 return Fail("%s: Operation has invalid inputs", __func__); in ConvertCast()
544 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertCast()
585 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertCast()
588 bool Converter::ConvertComparison(const Operation& operation, in ConvertComparison() argument
596 LayerInputHandle input0 = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertComparison()
597 LayerInputHandle input1 = ConvertToLayerInputHandle(operation, 1, model, data); in ConvertComparison()
601 return Fail("%s: Operation has invalid inputs", __func__); in ConvertComparison()
604 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertComparison()
661 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertComparison()
665 bool Converter::ConvertConcatenation(const Operation& operation, const Model& model, ConversionData… in ConvertConcatenation() argument
670 if (operation.inputs.size() <= 1) in ConvertConcatenation()
672 return Fail("%s: Operation has insufficient arguments", __func__); in ConvertConcatenation()
676 const std::size_t numInputTensors = operation.inputs.size() - 1; in ConvertConcatenation()
679 if (!GetInputScalar(operation, numInputTensors, OperandType::INT32, concatDim, model, data)) in ConvertConcatenation()
681 return Fail("%s: Operation has invalid inputs", __func__); in ConvertConcatenation()
684 const Operand* outputOperand = GetOutputOperand(operation, 0, model); in ConvertConcatenation()
687 return Fail("%s: Operation has no outputs", __func__); in ConvertConcatenation()
705 return Fail("%s: Operation has invalid concat axis: %d", __func__, concatDim); in ConvertConcatenation()
718 const Operand* operand = GetInputOperand(operation, i, model); in ConvertConcatenation()
721 return Fail("%s: Operation has invalid inputs", __func__); in ConvertConcatenation()
724 LayerInputHandle operandInputHandle = ConvertToLayerInputHandle(operation, i, model, data); in ConvertConcatenation()
727 return Fail("%s: Operation has invalid inputs", __func__); in ConvertConcatenation()
775 // Point to the reshape operation rather then the input operation in ConvertConcatenation()
785 return Fail("%s: Operation has invalid inputs", __func__); in ConvertConcatenation()
1009 return SetupAndTrackLayerOutputSlot(operation, in ConvertConcatenation()
1018 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertConcatenation()
1021 bool Converter::ConvertConv2d(const Operation& operation, const Model& model, ConversionData& data) in ConvertConv2d() argument
1025 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertConv2d()
1028 return Fail("%s: Operation has invalid inputs", __func__); in ConvertConv2d()
1031 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertConv2d()
1044 bool implicitPadding = operation.inputs.size() == 7 in ConvertConv2d()
1045 || (operation.inputs.size() >= 8 in ConvertConv2d()
1046 … && GetInputOperand(operation, 7, model)->type == OperandType::BOOL); in ConvertConv2d()
1050 desc.m_DataLayout = OptionalDataLayout(operation, 7, model, data); in ConvertConv2d()
1052 else if (operation.inputs.size() >= 10) in ConvertConv2d()
1054 desc.m_DataLayout = OptionalDataLayout(operation, 10, model, data); in ConvertConv2d()
1064 if (!IsWeightsValid(operation, 1, model) && desc.m_DataLayout == DataLayout::NCHW) in ConvertConv2d()
1066 return Fail("%s: Operation has unsupported weights OperandLifeTime", __func__); in ConvertConv2d()
1070 … ? ConvertToLayerInputHandle(operation, 1, model, data, OHWIToOIHW, &input) in ConvertConv2d()
1071 … : ConvertToLayerInputHandle(operation, 1, model, data, g_DontPermute, &input); in ConvertConv2d()
1075 return Fail("%s: Operation has invalid inputs", __func__); in ConvertConv2d()
1078 …LayerInputHandle biasInput = ConvertToLayerInputHandle(operation, 2, model, data, g_DontPermute, &… in ConvertConv2d()
1081 return Fail("%s: Operation has invalid inputs", __func__); in ConvertConv2d()
1092 if (!GetInputPaddingScheme(operation, 3, paddingScheme, model, data) in ConvertConv2d()
1093 || !GetInputScalar(operation, 4, OperandType::INT32, desc.m_StrideX, model, data) in ConvertConv2d()
1094 || !GetInputScalar(operation, 5, OperandType::INT32, desc.m_StrideY, model, data) in ConvertConv2d()
1095 || !GetInputActivationFunction(operation, 6, activation, model, data) in ConvertConv2d()
1096 || !GetOptionalConvolutionDilationParams(operation, 8, desc, model, data)) in ConvertConv2d()
1098 return Fail("%s: Operation has invalid inputs (implicit padding)", __func__); in ConvertConv2d()
1113 else if (operation.inputs.size() >= 10) in ConvertConv2d()
1116 if (!GetInputScalar(operation, 3, OperandType::INT32, desc.m_PadLeft, model, data) in ConvertConv2d()
1117 || !GetInputScalar(operation, 4, OperandType::INT32, desc.m_PadRight, model, data) in ConvertConv2d()
1118 || !GetInputScalar(operation, 5, OperandType::INT32, desc.m_PadTop, model, data) in ConvertConv2d()
1119 || !GetInputScalar(operation, 6, OperandType::INT32, desc.m_PadBottom, model, data) in ConvertConv2d()
1120 || !GetInputScalar(operation, 7, OperandType::INT32, desc.m_StrideX, model, data) in ConvertConv2d()
1121 || !GetInputScalar(operation, 8, OperandType::INT32, desc.m_StrideY, model, data) in ConvertConv2d()
1122 || !GetInputActivationFunction(operation, 9, activation, model, data) in ConvertConv2d()
1123 || !GetOptionalConvolutionDilationParams(operation, 11, desc, model, data)) in ConvertConv2d()
1125 return Fail("%s: Operation has invalid inputs (explicit padding)", __func__); in ConvertConv2d()
1130 return Fail("%s: Unsupported number of operation inputs", __func__); in ConvertConv2d()
1137 const Operand* weightsOperand = GetInputOperand(operation, 1, model); in ConvertConv2d()
1138 const Operand* biasOperand = GetInputOperand(operation, 2, model); in ConvertConv2d()
1194 …return SetupAndTrackLayerOutputSlot(operation, 0, *startLayer, model, data, nullptr, validateFunc,… in ConvertConv2d()
1197 bool Converter::ConvertDepthToSpace(const Operation& operation, const Model& model, ConversionData&… in ConvertDepthToSpace() argument
1201 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertDepthToSpace()
1204 return Fail("%s: Operation has invalid inputs", __func__); in ConvertDepthToSpace()
1214 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertDepthToSpace()
1224 GetInputScalar(operation, 1, OperandType::INT32, descriptor.m_BlockSize, model, data); in ConvertDepthToSpace()
1233 descriptor.m_DataLayout = OptionalDataLayout(operation, 2, model, data); in ConvertDepthToSpace()
1269 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertDepthToSpace()
1272 bool Converter::ConvertDepthwiseConv2d(const Operation& operation, const Model& model, ConversionDa… in ConvertDepthwiseConv2d() argument
1276 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertDepthwiseConv2d()
1280 return Fail("%s: Operation has invalid inputs", __func__); in ConvertDepthwiseConv2d()
1283 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertDepthwiseConv2d()
1295 const Operand* weightsOperand = GetInputOperand(operation, 1, model); in ConvertDepthwiseConv2d()
1313 bool implicitPadding = operation.inputs.size() == 8 in ConvertDepthwiseConv2d()
1314 || (operation.inputs.size() >= 9 in ConvertDepthwiseConv2d()
1315 && GetInputOperand(operation, 8, model)->type == OperandType::BOOL); in ConvertDepthwiseConv2d()
1319 desc.m_DataLayout = OptionalDataLayout(operation, dataLayoutFlagIndex, model, data); in ConvertDepthwiseConv2d()
1325 …LayerInputHandle weightsInput = ConvertToLayerInputHandle(operation, 1, model, data, g_DontPermute… in ConvertDepthwiseConv2d()
1328 return Fail("%s: Operation has invalid inputs", __func__); in ConvertDepthwiseConv2d()
1331 const Operand* biasOperand = GetInputOperand(operation, 2, model); in ConvertDepthwiseConv2d()
1337 …LayerInputHandle biasInput = ConvertToLayerInputHandle(operation, 2, model, data, g_DontPermute, &… in ConvertDepthwiseConv2d()
1340 return Fail("%s: Operation has invalid inputs", __func__); in ConvertDepthwiseConv2d()
1351 if (!GetInputPaddingScheme(operation, 3, paddingScheme, model, data) in ConvertDepthwiseConv2d()
1352 || !GetInputScalar(operation, 4, OperandType::INT32, desc.m_StrideX, model, data) in ConvertDepthwiseConv2d()
1353 || !GetInputScalar(operation, 5, OperandType::INT32, desc.m_StrideY, model, data) in ConvertDepthwiseConv2d()
1354 || !GetInputActivationFunction(operation, 7, activation, model, data) in ConvertDepthwiseConv2d()
1355 || !GetOptionalConvolutionDilationParams(operation, 9, desc, model, data)) in ConvertDepthwiseConv2d()
1357 return Fail("%s: Operation has invalid inputs (implicit padding)", __func__); in ConvertDepthwiseConv2d()
1368 else if (operation.inputs.size() >= 11) in ConvertDepthwiseConv2d()
1371 if (!GetInputScalar(operation, 3, OperandType::INT32, desc.m_PadLeft, model, data) in ConvertDepthwiseConv2d()
1372 || !GetInputScalar(operation, 4, OperandType::INT32, desc.m_PadRight, model, data) in ConvertDepthwiseConv2d()
1373 || !GetInputScalar(operation, 5, OperandType::INT32, desc.m_PadTop, model, data) in ConvertDepthwiseConv2d()
1374 || !GetInputScalar(operation, 6, OperandType::INT32, desc.m_PadBottom, model, data) in ConvertDepthwiseConv2d()
1375 || !GetInputScalar(operation, 7, OperandType::INT32, desc.m_StrideX, model, data) in ConvertDepthwiseConv2d()
1376 || !GetInputScalar(operation, 8, OperandType::INT32, desc.m_StrideY, model, data) in ConvertDepthwiseConv2d()
1377 || !GetInputActivationFunction(operation, 10, activation, model, data) in ConvertDepthwiseConv2d()
1378 || !GetOptionalConvolutionDilationParams(operation, 12, desc, model, data)) in ConvertDepthwiseConv2d()
1380 return Fail("%s: Operation has invalid inputs (explicit padding)", __func__); in ConvertDepthwiseConv2d()
1385 return Fail("%s: Unsupported number of operation inputs", __func__); in ConvertDepthwiseConv2d()
1448 …return SetupAndTrackLayerOutputSlot(operation, 0, *startLayer, model, data, nullptr, validateFunc,… in ConvertDepthwiseConv2d()
1451 bool Converter::ConvertDequantize(const Operation& operation, const Model& model, ConversionData& d… in ConvertDequantize() argument
1455 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertDequantize()
1458 return Fail("%s: Operation has invalid input", __func__); in ConvertDequantize()
1465 return Fail("%s: Operation has quantization dimension different than 0", __func__); in ConvertDequantize()
1468 const Operand* const outputOperand = GetOutputOperand(operation, 0, model); in ConvertDequantize()
1471 return Fail("%s: Operation has invalid outputs", __func__); in ConvertDequantize()
1508 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertDequantize()
1511 bool Converter::ConvertDiv(const Operation& operation, const Model& model, ConversionData& data) in ConvertDiv() argument
1515 LayerInputHandle input0 = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertDiv()
1516 LayerInputHandle input1 = ConvertToLayerInputHandle(operation, 1, model, data); in ConvertDiv()
1520 return Fail("%s: Operation has invalid inputs", __func__); in ConvertDiv()
1526 if (!GetOptionalInputActivation(operation, 2, activationFunction, model, data)) in ConvertDiv()
1528 return Fail("%s: Operation has invalid inputs", __func__); in ConvertDiv()
1531 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertDiv()
1580 return SetupAndTrackLayerOutputSlot(operation, 0, *startLayer, model, in ConvertDiv()
1584 bool Converter::ConvertElementwiseUnary(const Operation& operation, in ConvertElementwiseUnary() argument
1592 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertElementwiseUnary()
1596 return Fail("%s: Operation has invalid input", __func__); in ConvertElementwiseUnary()
1599 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertElementwiseUnary()
1643 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertElementwiseUnary()
1646 bool Converter::ConvertElu(const Operation& operation, const Model& model, ConversionData& data) in ConvertElu() argument
1650 LayerInputHandle input0 = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertElu()
1653 return Fail("%s: Operation has invalid inputs", __func__); in ConvertElu()
1658 if (!GetOperandType(operation, 0, model, inputType)) in ConvertElu()
1660 return Fail("%s: Operation has invalid inputs", __func__); in ConvertElu()
1671 if (!GetInputScalar(operation, 1, OperandType::FLOAT16, alpha, model, data)) in ConvertElu()
1673 return Fail("%s: Operation has invalid inputs (FLOAT16)", __func__); in ConvertElu()
1680 if (!GetInputScalar(operation, 1, OperandType::FLOAT32, desc.m_A, model, data)) in ConvertElu()
1682 return Fail("%s: Operation has invalid inputs (FLOAT32)", __func__); in ConvertElu()
1690 return ::ConvertToActivation(operation, __func__, desc, model, data); in ConvertElu()
1693 bool Converter::ConvertExpandDims(const Operation& operation, const Model& model, ConversionData& d… in ConvertExpandDims() argument
1697 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertExpandDims()
1701 return Fail("%s: Operation has invalid input", __func__); in ConvertExpandDims()
1704 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertExpandDims()
1707 return Fail("%s: Operation has invalid output", __func__); in ConvertExpandDims()
1713 if (!GetInputScalar(operation, 1, OperandType::INT32, axis, model, data)) in ConvertExpandDims()
1769 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertExpandDims()
1772 bool Converter::ConvertFill(const Operation& operation, const Model& model, ConversionData& data) in ConvertFill() argument
1775 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertFill()
1778 return Fail("%s: Operation has invalid inputs", __func__); in ConvertFill()
1781 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertFill()
1802 if (!GetInputScalar(operation, 1, OperandType::FLOAT16, value, model, data)) in ConvertFill()
1804 return Fail("%s: Operation has invalid inputs %d", __func__, outputType); in ConvertFill()
1811 if (!GetInputScalar(operation, 1, OperandType::FLOAT32, descriptor.m_Value, model, data)) in ConvertFill()
1813 return Fail("%s: Operation has invalid inputs %d", __func__, outputType); in ConvertFill()
1820 if (!GetInputScalar(operation, 1, OperandType::INT32, value, model, data)) in ConvertFill()
1822 return Fail("%s: Operation has invalid inputs %d", __func__, outputType); in ConvertFill()
1852 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data); in ConvertFill()
1855 bool Converter::ConvertFloor(const Operation& operation, const Model& model, ConversionData& data) in ConvertFloor() argument
1858 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertFloor()
1861 return Fail("%s: Operation has invalid inputs", __func__); in ConvertFloor()
1864 const Operand* const outputOperand = GetOutputOperand(operation, 0, model); in ConvertFloor()
1867 return Fail("%s: Operation has invalid outputs", __func__); in ConvertFloor()
1904 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertFloor()
1907 bool Converter::ConvertFullyConnected(const Operation& operation, const Model& model, ConversionDat… in ConvertFullyConnected() argument
1910 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertFullyConnected()
1913 return Fail("%s: Operation has invalid inputs", __func__); in ConvertFullyConnected()
1916 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertFullyConnected()
1926 const Operand* weightsOperand = GetInputOperand(operation, 1, model); in ConvertFullyConnected()
1934 weightsInput = ConvertToLayerInputHandle(operation, 1, model, data); in ConvertFullyConnected()
1937 return Fail("%s: Operation has invalid inputs", __func__); in ConvertFullyConnected()
1941 const Operand* biasOperand = GetInputOperand(operation, 2, model); in ConvertFullyConnected()
1949 biasInput = ConvertToLayerInputHandle(operation, 2, model, data); // 1D in ConvertFullyConnected()
1952 return Fail("%s: Operation has invalid inputs", __func__); in ConvertFullyConnected()
1971 if (!GetInputActivationFunction(operation, 3, activationFunction, model, data)) in ConvertFullyConnected()
1973 return Fail("%s: Operation has invalid inputs", __func__); in ConvertFullyConnected()
2045 return SetupAndTrackLayerOutputSlot(operation, 0, *startLayer, model, in ConvertFullyConnected()
2049 bool Converter::ConvertGather(const Operation& operation, const Model& model, ConversionData& data) in ConvertGather() argument
2053 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertGather()
2056 return Fail("%s: Operation has invalid input", __func__); in ConvertGather()
2060 LayerInputHandle indices = ConvertToLayerInputHandle(operation, 2, model, data); in ConvertGather()
2063 return Fail("%s: Operation has invalid indices", __func__); in ConvertGather()
2067 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertGather()
2070 return Fail("%s: Operation has invalid output", __func__); in ConvertGather()
2076 …return Fail("%s: Operation has invalid output dimensions: %d. Output must be an (%d + %d - 1)-D te… in ConvertGather()
2081 if (!GetInputScalar(operation, 1, OperandType::INT32, axis, model, data)) in ConvertGather()
2083 return Fail("%s: Operation has invalid or unsupported axis operand", __func__); in ConvertGather()
2087 … return Fail("%s: Operation has invalid axis: %d. It is out of bounds [-%d, %d))", __func__, axis, in ConvertGather()
2129 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertGather()
2132 bool Converter::ConvertGroupedConv2d(const Operation& operation, const Model& model, ConversionData… in ConvertGroupedConv2d() argument
2138 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertGroupedConv2d()
2141 return Fail("%s: Operation has invalid inputs", __func__); in ConvertGroupedConv2d()
2145 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertGroupedConv2d()
2154 if (operation.inputs.size() == 12) in ConvertGroupedConv2d()
2156 dataLayout = OptionalDataLayout(operation, 11, model, data); in ConvertGroupedConv2d()
2160 dataLayout = OptionalDataLayout(operation, 8, model, data); in ConvertGroupedConv2d()
2169 ConvertOperationInputToConstTensorPin(operation, 1, in ConvertGroupedConv2d()
2171 … ConvertOperationInputToConstTensorPin(operation, 1, model, data); in ConvertGroupedConv2d()
2173 ConvertOperationInputToConstTensorPin(operation, 2, model, data); in ConvertGroupedConv2d()
2176 return Fail("%s: Operation has invalid inputs", __func__); in ConvertGroupedConv2d()
2200 if (operation.inputs.size() == 12) in ConvertGroupedConv2d()
2202 if (!GetInputScalar(operation, 3, OperandType::INT32, desc.m_PadLeft, model, data) || in ConvertGroupedConv2d()
2203 !GetInputScalar(operation, 4, OperandType::INT32, desc.m_PadRight, model, data) || in ConvertGroupedConv2d()
2204 !GetInputScalar(operation, 5, OperandType::INT32, desc.m_PadTop, model, data) || in ConvertGroupedConv2d()
2205 !GetInputScalar(operation, 6, OperandType::INT32, desc.m_PadBottom, model, data) || in ConvertGroupedConv2d()
2206 !GetInputScalar(operation, 7, OperandType::INT32, desc.m_StrideX, model, data) || in ConvertGroupedConv2d()
2207 !GetInputScalar(operation, 8, OperandType::INT32, desc.m_StrideY, model, data) || in ConvertGroupedConv2d()
2208 !GetInputScalar(operation, 9, OperandType::INT32, numGroups, model, data) || in ConvertGroupedConv2d()
2209 !GetInputActivationFunction(operation, 10, activation, model, data)) in ConvertGroupedConv2d()
2211 return Fail("%s: Operation has invalid inputs (explicit padding)", __func__); in ConvertGroupedConv2d()
2215 else if (operation.inputs.size() == 9) in ConvertGroupedConv2d()
2218 if (!GetInputPaddingScheme(operation, 3, paddingScheme, model, data) || in ConvertGroupedConv2d()
2219 !GetInputScalar(operation, 4, OperandType::INT32, desc.m_StrideX, model, data) || in ConvertGroupedConv2d()
2220 !GetInputScalar(operation, 5, OperandType::INT32, desc.m_StrideY, model, data) || in ConvertGroupedConv2d()
2221 !GetInputScalar(operation, 6, OperandType::INT32, numGroups, model, data) || in ConvertGroupedConv2d()
2222 !GetInputActivationFunction(operation, 7, activation, model, data)) in ConvertGroupedConv2d()
2224 return Fail("%s: Operation has invalid inputs (implicit padding)", __func__); in ConvertGroupedConv2d()
2238 return Fail("%s: Unsupported number of operation inputs", __func__); in ConvertGroupedConv2d()
2499 return SetupAndTrackLayerOutputSlot(operation, 0, *concatLayer, model, in ConvertGroupedConv2d()
2503 bool Converter::ConvertHardSwish(const Operation& operation, const Model& model, ConversionData& da… in ConvertHardSwish() argument
2509 return ::ConvertToActivation(operation, __func__, desc, model, data); in ConvertHardSwish()
2512 bool Converter::ConvertInstanceNormalization(const Operation& operation, const Model& model, Conver… in ConvertInstanceNormalization() argument
2516 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertInstanceNormalization()
2519 return Fail("%s: Operation has an invalid input 0", __func__); in ConvertInstanceNormalization()
2522 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertInstanceNormalization()
2525 return Fail("%s: Operation has an invalid output", __func__); in ConvertInstanceNormalization()
2532 if (!GetOperandType(operation, 0, model, inputType)) in ConvertInstanceNormalization()
2534 return Fail("%s: Operation has invalid inputs", __func__); in ConvertInstanceNormalization()
2546 if (!GetInputScalar(operation, 1, OperandType::FLOAT16, fp16Gamma, model, data) || in ConvertInstanceNormalization()
2547 !GetInputScalar(operation, 2, OperandType::FLOAT16, fp16Beta, model, data) || in ConvertInstanceNormalization()
2548 !GetInputScalar(operation, 3, OperandType::FLOAT16, fp16Epsilon, model, data)) in ConvertInstanceNormalization()
2550 return Fail("%s: Operation has invalid inputs (FLOAT16)", __func__); in ConvertInstanceNormalization()
2559 if (!GetInputScalar(operation, 1, OperandType::FLOAT32, desc.m_Gamma, model, data) || in ConvertInstanceNormalization()
2560 !GetInputScalar(operation, 2, OperandType::FLOAT32, desc.m_Beta, model, data) || in ConvertInstanceNormalization()
2561 !GetInputScalar(operation, 3, OperandType::FLOAT32, desc.m_Eps, model, data)) in ConvertInstanceNormalization()
2563 return Fail("%s: Operation has invalid inputs (FLOAT32)", __func__); in ConvertInstanceNormalization()
2571 desc.m_DataLayout = OptionalDataLayout(operation, 4, model, data); in ConvertInstanceNormalization()
2605 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertInstanceNormalization()
2608 bool Converter::ConvertL2Normalization(const Operation& operation, const Model& model, ConversionDa… in ConvertL2Normalization() argument
2612 if (operation.inputs.size() != 1) in ConvertL2Normalization()
2617 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertL2Normalization()
2620 return Fail("%s: Operation has invalid inputs", __func__); in ConvertL2Normalization()
2623 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertL2Normalization()
2673 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertL2Normalization()
2676 bool Converter::ConvertL2Pool2d(const Operation& operation, const Model& model, ConversionData& dat… in ConvertL2Pool2d() argument
2679 return ConvertPooling2d(operation, __func__, PoolingAlgorithm::L2, model, data); in ConvertL2Pool2d()
2682 bool Converter::ConvertLocalResponseNormalization(const Operation& operation, in ConvertLocalResponseNormalization() argument
2688 if (operation.inputs.size() != 5) in ConvertLocalResponseNormalization()
2693 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertLocalResponseNormalization()
2696 return Fail("%s: Operation has invalid inputs", __func__); in ConvertLocalResponseNormalization()
2699 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertLocalResponseNormalization()
2719 !GetInputScalar(operation, 1, OperandType::INT32, descriptor.m_NormSize, model, data) || in ConvertLocalResponseNormalization()
2720 !GetInputFloat32(operation, 2, descriptor.m_K, model, data) || in ConvertLocalResponseNormalization()
2721 !GetInputFloat32(operation, 3, descriptor.m_Alpha, model, data) || in ConvertLocalResponseNormalization()
2722 !GetInputFloat32(operation, 4, descriptor.m_Beta, model, data)) in ConvertLocalResponseNormalization()
2724 return Fail("%s: Operation has invalid inputs", __func__); in ConvertLocalResponseNormalization()
2765 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertLocalResponseNormalization()
2768 bool Converter::ConvertLogicalBinary(const Operation& operation, in ConvertLogicalBinary() argument
2777 LayerInputHandle input0 = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertLogicalBinary()
2778 LayerInputHandle input1 = ConvertToLayerInputHandle(operation, 1, model, data); in ConvertLogicalBinary()
2782 return Fail("%s: Operation has invalid inputs", __func__); in ConvertLogicalBinary()
2785 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertLogicalBinary()
2836 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertLogicalBinary()
2839 bool Converter::ConvertLogistic(const Operation& operation, const Model& model, ConversionData& dat… in ConvertLogistic() argument
2845 return ConvertToActivation(operation, __func__, desc, model, data); in ConvertLogistic()
2848 bool Converter::ConvertLogSoftmax(const Operation& operation, const Model& model, ConversionData& d… in ConvertLogSoftmax() argument
2852 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertLogSoftmax()
2858 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertLogSoftmax()
2868 if (!GetOperandType(operation, 0, model, inputType)) in ConvertLogSoftmax()
2870 return Fail("%s: Operation has invalid inputs", __func__); in ConvertLogSoftmax()
2879 if (!GetInputScalar(operation, 1, OperandType::FLOAT16, fp16Beta, model, data)) in ConvertLogSoftmax()
2888 if (!GetInputScalar(operation, 1, OperandType::FLOAT32, descriptor.m_Beta, model, data)) in ConvertLogSoftmax()
2899 if (!GetInputInt32(operation, 2, descriptor.m_Axis, model, data)) in ConvertLogSoftmax()
2941 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertLogSoftmax()
2944 bool Converter::ConvertLstm(const Operation& operation, const Model& model, ConversionData& data) in ConvertLstm() argument
2951 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertLstm()
2957 LayerInputHandle outputStateIn = ConvertToLayerInputHandle(operation, 18, model, data); in ConvertLstm()
2963 LayerInputHandle cellStateIn = ConvertToLayerInputHandle(operation, 19, model, data); in ConvertLstm()
2973 (DequantizeAndMakeConstTensorPin(operation, model, data, 2)); in ConvertLstm()
2977 (DequantizeAndMakeConstTensorPin(operation, model, data, 3)); in ConvertLstm()
2981 (DequantizeAndMakeConstTensorPin(operation, model, data, 4)); in ConvertLstm()
2985 (DequantizeAndMakeConstTensorPin(operation, model, data, 6)); in ConvertLstm()
2989 (DequantizeAndMakeConstTensorPin(operation, model, data, 7)); in ConvertLstm()
2993 (DequantizeAndMakeConstTensorPin(operation, model, data, 8)); in ConvertLstm()
2996 ConvertOperationInputToConstTensorPin(operation, 13, model, data); in ConvertLstm()
2999 ConvertOperationInputToConstTensorPin(operation, 14, model, data); in ConvertLstm()
3002 ConvertOperationInputToConstTensorPin(operation, 15, model, data); in ConvertLstm()
3014 return Fail("%s: Operation has invalid tensor inputs", __func__); in ConvertLstm()
3021 (DequantizeAndMakeConstTensorPin(operation, model, data, 1, true)); in ConvertLstm()
3026 (DequantizeAndMakeConstTensorPin(operation, model, data, 5, true)); in ConvertLstm()
3029 (DequantizeAndMakeConstTensorPin(operation, model, data, 9, true)); in ConvertLstm()
3032 (DequantizeAndMakeConstTensorPin(operation, model, data, 10, true)); in ConvertLstm()
3035 (DequantizeAndMakeConstTensorPin(operation, model, data, 11, true)); in ConvertLstm()
3038 ConvertOperationInputToConstTensorPin(operation, in ConvertLstm()
3049 (DequantizeAndMakeConstTensorPin(operation, model, data, 16, true)); in ConvertLstm()
3052 ConvertOperationInputToConstTensorPin(operation, in ConvertLstm()
3069 return Fail("%s: Operation has invalid tensor inputs", __func__); in ConvertLstm()
3082 if (!GetInputActivationFunctionFromTensor(operation, 20, activation, model, data) || in ConvertLstm()
3083 !GetInputScalar(operation, 21, OperandType::FLOAT32, cellClip, model, data) || in ConvertLstm()
3084 !GetInputScalar(operation, 22, OperandType::FLOAT32, projClip, model, data)) in ConvertLstm()
3086 return Fail("%s: Operation has invalid scalar inputs", __func__); in ConvertLstm()
3093 (DequantizeAndMakeConstTensorPin(operation, model, data, 23, true)); in ConvertLstm()
3098 ConvertOperationInputToConstTensorPin(operation, in ConvertLstm()
3109 ConvertOperationInputToConstTensorPin(operation, in ConvertLstm()
3120 ConvertOperationInputToConstTensorPin(operation, in ConvertLstm()
3131 const Operand* scratchBuffer = GetOutputOperand(operation, 0, model); in ConvertLstm()
3137 const Operand* outputStateOut = GetOutputOperand(operation, 1, model); in ConvertLstm()
3143 const Operand* cellStateOut = GetOutputOperand(operation, 2, model); in ConvertLstm()
3150 const Operand* output = GetOutputOperand(operation, 3, model); in ConvertLstm()
3342 SetupAndTrackLayerOutputSlot(operation, 0, *layer, 0, model, data) && in ConvertLstm()
3343 SetupAndTrackLayerOutputSlot(operation, 1, *layer, 1, model, data) && in ConvertLstm()
3344 SetupAndTrackLayerOutputSlot(operation, 2, *layer, 2, model, data) && in ConvertLstm()
3345 SetupAndTrackLayerOutputSlot(operation, 3, *layer, 3, model, data)); in ConvertLstm()
3350 SetupAndTrackLayerOutputSlot(operation, 0, *layer, 0, model, data) && in ConvertLstm()
3351 SetupAndTrackLayerOutputSlot(operation, 1, *layer, 1, model, data) && in ConvertLstm()
3352 SetupAndTrackLayerOutputSlot(operation, 2, *layer, 2, model, data) && in ConvertLstm()
3354 …operation, 3, *layer, 3, model, data, nullptr, validateFunc, ActivationFn::kActivationNone, true)); in ConvertLstm()
3359 bool Converter::ConvertMaxPool2d(const Operation& operation, const Model& model, ConversionData& da… in ConvertMaxPool2d() argument
3362 return ConvertPooling2d(operation, __func__, PoolingAlgorithm::Max, model, data); in ConvertMaxPool2d()
3365 bool Converter::ConvertMaximum(const Operation& operation, const Model& model, ConversionData& data) in ConvertMaximum() argument
3369 LayerInputHandle input0 = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertMaximum()
3370 LayerInputHandle input1 = ConvertToLayerInputHandle(operation, 1, model, data); in ConvertMaximum()
3374 return Fail("%s: Operation has invalid inputs", __func__); in ConvertMaximum()
3377 const Operand* outputOperand = GetOutputOperand(operation, 0, model); in ConvertMaximum()
3426 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertMaximum()
3429 bool Converter::ConvertMean(const Operation& operation, const Model& model, ConversionData& data) in ConvertMean() argument
3433 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertMean()
3436 return Fail("%s: Operation has invalid inputs", __func__); in ConvertMean()
3439 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertMean()
3447 const Operand* axisOperand = GetInputOperand(operation, 1, model); in ConvertMean()
3470 if (!GetInputInt32(operation, 2, keepDims, model, data)) in ConvertMean()
3512 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertMean()
3515 bool Converter::ConvertMinimum(const Operation& operation, const Model& model, ConversionData& data) in ConvertMinimum() argument
3519 LayerInputHandle input0 = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertMinimum()
3520 LayerInputHandle input1 = ConvertToLayerInputHandle(operation, 1, model, data); in ConvertMinimum()
3524 return Fail("%s: Operation has invalid inputs", __func__); in ConvertMinimum()
3527 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertMinimum()
3576 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertMinimum()
3579 bool Converter::ConvertMul(const Operation& operation, const Model& model, ConversionData& data) in ConvertMul() argument
3583 LayerInputHandle input0 = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertMul()
3584 LayerInputHandle input1 = ConvertToLayerInputHandle(operation, 1, model, data); in ConvertMul()
3588 return Fail("%s: Operation has invalid inputs", __func__); in ConvertMul()
3594 if (!GetOptionalInputActivation(operation, 2, activationFunction, model, data)) in ConvertMul()
3596 return Fail("%s: Operation has invalid inputs", __func__); in ConvertMul()
3599 const Operand* outputOperand = GetOutputOperand(operation, 0, model); in ConvertMul()
3649 return SetupAndTrackLayerOutputSlot(operation, 0, *startLayer, model, in ConvertMul()
3653 bool Converter::ConvertPad(const Operation& operation, const Model& model, ConversionData& data) in ConvertPad() argument
3657 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertPad()
3660 return Fail("%s: Operation has invalid inputs", __func__); in ConvertPad()
3667 if (!ConvertPaddings(operation, model, data, rank, descriptor)) in ConvertPad()
3682 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertPad()
3723 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertPad()
3726 bool Converter::ConvertPadV2(const Operation& operation, const Model& model, ConversionData& data) in ConvertPadV2() argument
3730 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertPadV2()
3736 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertPadV2()
3746 if (!ConvertPaddings(operation, model, data, rank, descriptor)) in ConvertPadV2()
3757 if (!GetOperandType(operation, 0, model, operandType0) || in ConvertPadV2()
3758 !GetOperandType(operation, 2, model, operandType2)) in ConvertPadV2()
3760 return Fail("%s: Operation has invalid inputs", __func__); in ConvertPadV2()
3767 if (!GetInputScalar(operation, 2, operandType2, f16PadValue, model, data)) in ConvertPadV2()
3776 if (!GetInputFloat32(operation, 2, descriptor.m_PadValue, model, data)) in ConvertPadV2()
3784 if (!GetInputInt32(operation, 2, intPadValue, model, data)) in ConvertPadV2()
3792 return Fail("%s: Operation has invalid inputs: type mismatch", __func__); in ConvertPadV2()
3828 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertPadV2()
3831 bool Converter::ConvertPrelu(const Operation& operation, const Model& model, ConversionData& data) in ConvertPrelu() argument
3835 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertPrelu()
3836 LayerInputHandle alpha = ConvertToLayerInputHandle(operation, 1, model, data); in ConvertPrelu()
3840 return Fail("%s: Operation has invalid inputs", __func__); in ConvertPrelu()
3843 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertPrelu()
3896 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertPrelu()
3899 bool Converter::ConvertQuantize(const Operation& operation, const Model& model, ConversionData& dat… in ConvertQuantize() argument
3903 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertQuantize()
3906 return Fail("%s: Operation has invalid input", __func__); in ConvertQuantize()
3909 const Operand* const outputOperand = GetOutputOperand(operation, 0, model); in ConvertQuantize()
3912 return Fail("%s: Operation has invalid outputs", __func__); in ConvertQuantize()
3949 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertQuantize()
3952 bool Converter::ConvertQuantizedLstm(const Operation& operation, const Model& model, ConversionData… in ConvertQuantizedLstm() argument
3961 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertQuantizedLstm()
3968 … LayerInputHandle outputStatePrevTimeStep = ConvertToLayerInputHandle(operation, 18, model, data); in ConvertQuantizedLstm()
3975 LayerInputHandle cellStatePrevTimeStep = ConvertToLayerInputHandle(operation, 19, model, data); in ConvertQuantizedLstm()
3986 ConvertOperationInputToConstTensorPin(operation, 2, model, data); in ConvertQuantizedLstm()
3991 ConvertOperationInputToConstTensorPin(operation, 3, model, data); in ConvertQuantizedLstm()
3996 ConvertOperationInputToConstTensorPin(operation, 4, model, data); in ConvertQuantizedLstm()
4001 ConvertOperationInputToConstTensorPin(operation, 6, model, data); in ConvertQuantizedLstm()
4006 ConvertOperationInputToConstTensorPin(operation, 7, model, data); in ConvertQuantizedLstm()
4011 ConvertOperationInputToConstTensorPin(operation, 8, model, data); in ConvertQuantizedLstm()
4015 ConvertOperationInputToConstTensorPin(operation, 13, model, data); in ConvertQuantizedLstm()
4019 ConvertOperationInputToConstTensorPin(operation, 14, model, data); in ConvertQuantizedLstm()
4023 ConvertOperationInputToConstTensorPin(operation, 15, model, data); in ConvertQuantizedLstm()
4035 return Fail("%s: Operation has invalid tensor inputs", __func__); in ConvertQuantizedLstm()
4043 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4055 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4066 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4077 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4088 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4098 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4109 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4119 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4136 return Fail("%s: Operation has invalid tensor inputs", __func__); in ConvertQuantizedLstm()
4145 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4156 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4167 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4178 ConvertOperationInputToConstTensorPin(operation, in ConvertQuantizedLstm()
4191 return Fail("%s: Operation has invalid tensor inputs", __func__); in ConvertQuantizedLstm()
4208 if (!GetInputScalar(operation, 24, OperandType::FLOAT32, cellClip, model, data, true) || in ConvertQuantizedLstm()
4209 !GetInputScalar(operation, 25, OperandType::FLOAT32, projClip, model, data, true) || in ConvertQuantizedLstm()
4210 !GetInputScalar(operation, 26, OperandType::FLOAT32, matMulInputGate, model, data) || in ConvertQuantizedLstm()
4211 !GetInputScalar(operation, 27, OperandType::FLOAT32, matMulForgetGate, model, data) || in ConvertQuantizedLstm()
4212 !GetInputScalar(operation, 28, OperandType::FLOAT32, matMulCellGate, model, data) || in ConvertQuantizedLstm()
4213 !GetInputScalar(operation, 29, OperandType::FLOAT32, matMulOutputGate, model, data) || in ConvertQuantizedLstm()
4214 !GetInputScalar(operation, 30, OperandType::INT32, projInputZeroPoint, model, data) || in ConvertQuantizedLstm()
4215 !GetInputScalar(operation, 31, OperandType::FLOAT32, projInputScale, model, data)) in ConvertQuantizedLstm()
4217 return Fail("%s: Operation has invalid scalar inputs", __func__); in ConvertQuantizedLstm()
4223 const Operand* outputStateOut = GetOutputOperand(operation, 0, model); in ConvertQuantizedLstm()
4230 const Operand* cellStateOut = GetOutputOperand(operation, 1, model); in ConvertQuantizedLstm()
4238 const Operand* output = GetOutputOperand(operation, 2, model); in ConvertQuantizedLstm()
4445 operation, 0, *layer, 0, model, data, &constOutputStateOutInfo) && in ConvertQuantizedLstm()
4446 SetupAndTrackLayerOutputSlot(operation, 1, *layer, 1, model, data) && in ConvertQuantizedLstm()
4447 … SetupAndTrackLayerOutputSlot(operation, 2, *layer, 2, model, data, &constOutputInfo)); in ConvertQuantizedLstm()
4452 operation, 0, *layer, 0, model, data, &constOutputStateOutInfo) && in ConvertQuantizedLstm()
4454 operation, 1, *layer, 1, model, data, nullptr, validateFunc, in ConvertQuantizedLstm()
4456 … SetupAndTrackLayerOutputSlot(operation, 2, *layer, 2, model, data, &constOutputInfo)); in ConvertQuantizedLstm()
4460 bool Converter::ConvertQuantized16BitLstm(const Operation& operation, const Model& model, Conversio… in ConvertQuantized16BitLstm() argument
4468 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertQuantized16BitLstm()
4477 LayerInputHandle previousCellStateIn = ConvertToLayerInputHandle(operation, 13, model, data); in ConvertQuantized16BitLstm()
4486 LayerInputHandle previousOutputIn = ConvertToLayerInputHandle(operation, 14, model, data); in ConvertQuantized16BitLstm()
4497 ConvertOperationInputToConstTensorPin(operation, 1, model, data); in ConvertQuantized16BitLstm()
4503 ConvertOperationInputToConstTensorPin(operation, 2, model, data); in ConvertQuantized16BitLstm()
4509 ConvertOperationInputToConstTensorPin(operation, 3, model, data); in ConvertQuantized16BitLstm()
4515 ConvertOperationInputToConstTensorPin(operation, 4, model, data); in ConvertQuantized16BitLstm()
4521 ConvertOperationInputToConstTensorPin(operation, 5, model, data); in ConvertQuantized16BitLstm()
4527 ConvertOperationInputToConstTensorPin(operation, 6, model, data); in ConvertQuantized16BitLstm()
4533 ConvertOperationInputToConstTensorPin(operation, 7, model, data); in ConvertQuantized16BitLstm()
4539 ConvertOperationInputToConstTensorPin(operation, 8, model, data); in ConvertQuantized16BitLstm()
4545 ConvertOperationInputToConstTensorPin(operation, 9, model, data); in ConvertQuantized16BitLstm()
4551 ConvertOperationInputToConstTensorPin(operation, 10, model, data); in ConvertQuantized16BitLstm()
4557 ConvertOperationInputToConstTensorPin(operation, 11, model, data); in ConvertQuantized16BitLstm()
4563 ConvertOperationInputToConstTensorPin(operation, 12, model, data); in ConvertQuantized16BitLstm()
4578 return Fail("%s: Operation has invalid tensor inputs", __func__); in ConvertQuantized16BitLstm()
4585 const Operand* cellStateOut = GetOutputOperand(operation, 0, model); in ConvertQuantized16BitLstm()
4593 const Operand* output = GetOutputOperand(operation, 1, model); in ConvertQuantized16BitLstm()
4685 return (SetupAndTrackLayerOutputSlot(operation, 0, *layer, 0, model, data) && in ConvertQuantized16BitLstm()
4686 SetupAndTrackLayerOutputSlot(operation, 1, *layer, 1, model, data)); in ConvertQuantized16BitLstm()
4690 return (SetupAndTrackLayerOutputSlot(operation, 0, *layer, 0, model, data) && in ConvertQuantized16BitLstm()
4692 …operation, 1, *layer, 1, model, data, nullptr, validateFunc, ActivationFn::kActivationNone, true)); in ConvertQuantized16BitLstm()
4697 bool Converter::ConvertRank(const Operation& operation, const Model& model, ConversionData& data) in ConvertRank() argument
4701 const Operand* inputOperand = GetInputOperand(operation, 0, model); in ConvertRank()
4702 const Operand* outputOperand = GetOutputOperand(operation, 0, model); in ConvertRank()
4706 return Fail("%s: Operation has invalid inputs", __func__); in ConvertRank()
4712 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertRank()
4743 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, &outInfo); in ConvertRank()
4746 bool Converter::ConvertReLu(const Operation& operation, const Model& model, ConversionData& data) in ConvertReLu() argument
4753 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertReLu()
4759 const Operand* outputOperand = GetOutputOperand(operation, 0, model); in ConvertReLu()
4800 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertReLu()
4803 bool Converter::ConvertReLu1(const Operation& operation, const Model& model, ConversionData& data) in ConvertReLu1() argument
4811 return ConvertToActivation(operation, __func__, desc, model, data); in ConvertReLu1()
4814 bool Converter::ConvertReLu6(const Operation& operation, const Model& model, ConversionData& data) in ConvertReLu6() argument
4821 return ConvertToActivation(operation, __func__, desc, model, data); in ConvertReLu6()
4824 bool Converter::ConvertReshape(const Operation& operation, const Model& model, ConversionData& data) in ConvertReshape() argument
4828 const Operand* inputOperand = GetInputOperand(operation, 0, model); in ConvertReshape()
4829 const Operand* requestedShapeOperand = GetInputOperand(operation, 1, model); in ConvertReshape()
4830 const Operand* outputOperand = GetOutputOperand(operation, 0, model); in ConvertReshape()
4836 return Fail("%s: Operation has invalid inputs", __func__); in ConvertReshape()
4861 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertReshape()
4906 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertReshape()
4909 bool Converter::ConvertResize(const Operation& operation, in ConvertResize() argument
4917 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertResize()
4923 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertResize()
4934 descriptor.m_DataLayout = OptionalDataLayout(operation, 3, model, data); in ConvertResize()
4939 if (!GetOperandType(operation, 1, model, operandType1) || in ConvertResize()
4940 !GetOperandType(operation, 2, model, operandType2)) in ConvertResize()
4942 return Fail("%s: Operation has invalid inputs", __func__); in ConvertResize()
4947 …return Fail("%s: Operation has invalid inputs. Type of input 1 and 2 should be the same", __func__… in ConvertResize()
4956 if (!GetInputInt32(operation, 1, targetWidth, model, data) || in ConvertResize()
4957 !GetInputInt32(operation, 2, targetHeight, model, data)) in ConvertResize()
4959 return Fail("%s: Operation has invalid inputs for resizing by shape", __func__); in ConvertResize()
4964 return Fail("%s: Operation has invalid inputs for resizing by shape. " in ConvertResize()
4977 if (!GetInputFloat32(operation, 1, widthScale, model, data) || in ConvertResize()
4978 !GetInputFloat32(operation, 2, heightScale, model, data)) in ConvertResize()
4980 return Fail("%s: Operation has invalid inputs for resizing by scale", __func__); in ConvertResize()
4997 if (!GetInputScalar(operation, 1, OperandType::FLOAT16, widthScale, model, data) || in ConvertResize()
4998 !GetInputScalar(operation, 2, OperandType::FLOAT16, heightScale, model, data)) in ConvertResize()
5000 return Fail("%s: Operation has invalid inputs for resizing by scale", __func__); in ConvertResize()
5017 descriptor.m_AlignCorners = GetOptionalBool(operation, 4, model, data); in ConvertResize()
5018 descriptor.m_HalfPixelCenters = GetOptionalBool(operation, 5, model, data); in ConvertResize()
5053 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertResize()
5056 bool Converter::ConvertSpaceToBatchNd(const Operation& operation, const Model& model, ConversionDat… in ConvertSpaceToBatchNd() argument
5060 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertSpaceToBatchNd()
5063 return Fail("%s: Operation has invalid inputs", __func__); in ConvertSpaceToBatchNd()
5075 const Operand *output = GetOutputOperand(operation, 0, model); in ConvertSpaceToBatchNd()
5083 const Operand *blockShapeOperand = GetInputOperand(operation, 1, model); in ConvertSpaceToBatchNd()
5084 const Operand *paddingsOperand = GetInputOperand(operation, 2, model); in ConvertSpaceToBatchNd()
5089 …return Fail("%s: Operation has invalid block shape operand: expected shape [%d]", __func__, spatia… in ConvertSpaceToBatchNd()
5095 return Fail("%s: Operation has an invalid or unsupported block size operand", __func__); in ConvertSpaceToBatchNd()
5106 …return Fail("%s: Operation has invalid paddings operand: expected shape [%d, 2]", __func__, spatia… in ConvertSpaceToBatchNd()
5113 return Fail("%s: Operation has an invalid or unsupported paddings operand", __func__); in ConvertSpaceToBatchNd()
5121 … return Fail("%s: Operation has invalid paddings operand, invalid padding values.", __func__); in ConvertSpaceToBatchNd()
5134 descriptor.m_DataLayout = OptionalDataLayout(operation, 3, model, data); in ConvertSpaceToBatchNd()
5169 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertSpaceToBatchNd()
5172 bool Converter::ConvertSpaceToDepth(const Operation& operation, const Model& model, ConversionData&… in ConvertSpaceToDepth() argument
5176 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertSpaceToDepth()
5179 return Fail("%s: Operation has invalid inputs", __func__); in ConvertSpaceToDepth()
5189 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertSpaceToDepth()
5199 GetInputScalar(operation, 1, OperandType::INT32, desc.m_BlockSize, model, data); in ConvertSpaceToDepth()
5206 desc.m_DataLayout = OptionalDataLayout(operation, 2, model, data); in ConvertSpaceToDepth()
5241 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertSpaceToDepth()
5244 bool Converter::ConvertSoftmax(const Operation& operation, const Model& model, ConversionData& data) in ConvertSoftmax() argument
5248 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertSoftmax()
5251 return Fail("%s: Operation has invalid inputs", __func__); in ConvertSoftmax()
5254 const Operand* outputOperand = GetOutputOperand(operation, 0, model); in ConvertSoftmax()
5257 return Fail("%s: Operation has no outputs", __func__); in ConvertSoftmax()
5270 if (!GetInputScalar(operation, 1, OperandType::FLOAT16, value, model, data)) in ConvertSoftmax()
5272 return Fail("%s: Operation has invalid inputs %d", __func__, outputType); in ConvertSoftmax()
5279 if (!GetInputFloat32(operation, 1, desc.m_Beta, model, data)) in ConvertSoftmax()
5281 return Fail("%s: Operation has invalid inputs %d", __func__, outputType); in ConvertSoftmax()
5285 if (operation.inputs.size() > 2 && !GetInputScalar(operation, in ConvertSoftmax()
5292 return Fail("%s: Operation has invalid inputs", __func__); in ConvertSoftmax()
5328 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertSoftmax()
5331 bool Converter::ConvertSub(const Operation& operation, const Model& model, ConversionData& data) in ConvertSub() argument
5335 LayerInputHandle input0 = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertSub()
5336 LayerInputHandle input1 = ConvertToLayerInputHandle(operation, 1, model, data); in ConvertSub()
5340 return Fail("%s: Operation has invalid inputs", __func__); in ConvertSub()
5346 if (!GetOptionalInputActivation(operation, 2, activationFunction, model, data)) in ConvertSub()
5348 return Fail("%s: Operation has invalid inputs", __func__); in ConvertSub()
5351 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertSub()
5399 return SetupAndTrackLayerOutputSlot(operation, 0, *startLayer, model, in ConvertSub()
5403 bool Converter::ConvertTanH(const Operation& operation, const Model& model, ConversionData& data) in ConvertTanH() argument
5412 return ConvertToActivation(operation, __func__, desc, model, data); in ConvertTanH()
5415 bool Converter::ConvertTransposeConv2d(const Operation& operation, const Model& model, ConversionDa… in ConvertTransposeConv2d() argument
5419 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertTransposeConv2d()
5423 return Fail("%s: Operation has invalid inputs", __func__); in ConvertTransposeConv2d()
5426 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertTransposeConv2d()
5438 const Operand* weightsOperand = GetInputOperand(operation, 1, model); in ConvertTransposeConv2d()
5448 bool implicitPadding = operation.inputs.size() == 9; in ConvertTransposeConv2d()
5452 desc.m_DataLayout = OptionalDataLayout(operation, 8, model, data); in ConvertTransposeConv2d()
5456 desc.m_DataLayout = OptionalDataLayout(operation, 10, model, data); in ConvertTransposeConv2d()
5468 ConvertOperationInputToConstTensorPin(operation, 1, in ConvertTransposeConv2d()
5470 … ConvertOperationInputToConstTensorPin(operation, 1, model, data); in ConvertTransposeConv2d()
5474 ConvertOperationInputToConstTensorPin(operation, 2, model, data); in ConvertTransposeConv2d()
5478 return Fail("%s: Operation has invalid weights", __func__); in ConvertTransposeConv2d()
5483 return Fail("%s: Operation has invalid biases", __func__); in ConvertTransposeConv2d()
5502 if (!GetInputPaddingScheme(operation, 4, paddingScheme, model, data) || in ConvertTransposeConv2d()
5503 !GetInputScalar(operation, 5, OperandType::INT32, strideX, model, data) || in ConvertTransposeConv2d()
5504 !GetInputScalar(operation, 6, OperandType::INT32, strideY, model, data) || in ConvertTransposeConv2d()
5505 !GetInputActivationFunction(operation, 7, activation, model, data)) in ConvertTransposeConv2d()
5507 return Fail("%s: Operation has invalid inputs (implicit padding)", __func__); in ConvertTransposeConv2d()
5514 const Operand* outputShapeOperand = GetInputOperand(operation, 3, model, false); in ConvertTransposeConv2d()
5562 else if (operation.inputs.size() == 11) in ConvertTransposeConv2d()
5565 if (!GetInputScalar(operation, 3, OperandType::INT32, desc.m_PadLeft, model, data) || in ConvertTransposeConv2d()
5566 !GetInputScalar(operation, 4, OperandType::INT32, desc.m_PadRight, model, data) || in ConvertTransposeConv2d()
5567 !GetInputScalar(operation, 5, OperandType::INT32, desc.m_PadTop, model, data) || in ConvertTransposeConv2d()
5568 !GetInputScalar(operation, 6, OperandType::INT32, desc.m_PadBottom, model, data) || in ConvertTransposeConv2d()
5569 !GetInputScalar(operation, 7, OperandType::INT32, desc.m_StrideX, model, data) || in ConvertTransposeConv2d()
5570 !GetInputScalar(operation, 8, OperandType::INT32, desc.m_StrideY, model, data) || in ConvertTransposeConv2d()
5571 !GetInputActivationFunction(operation, 9, activation, model, data)) in ConvertTransposeConv2d()
5573 return Fail("%s: Operation has invalid inputs (explicit padding)", __func__); in ConvertTransposeConv2d()
5578 return Fail("%s: Unsupported number of operation inputs", __func__); in ConvertTransposeConv2d()
5623 return SetupAndTrackLayerOutputSlot(operation, 0, *startLayer, model, in ConvertTransposeConv2d()
5627 bool Converter::ConvertSqrt(const Operation& operation, const Model& model, ConversionData& data) in ConvertSqrt() argument
5633 return ::ConvertToActivation(operation, __func__, desc, model, data); in ConvertSqrt()
5636 bool Converter::ConvertSqueeze(const Operation& operation, const Model& model, ConversionData& data) in ConvertSqueeze() argument
5640 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertSqueeze()
5643 return Fail("%s: Operation has invalid inputs", __func__); in ConvertSqueeze()
5653 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertSqueeze()
5666 const Operand* axisOperand = GetInputOperand(operation, 1, model, false); in ConvertSqueeze()
5678 return Fail("%s: Operation has an invalid or unsupported axis operand", __func__); in ConvertSqueeze()
5721 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data); in ConvertSqueeze()
5724 bool Converter::ConvertStridedSlice(const Operation& operation, const Model& model, ConversionData&… in ConvertStridedSlice() argument
5728 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertStridedSlice()
5731 return Fail("%s: Operation has invalid inputs", __func__); in ConvertStridedSlice()
5741 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertStridedSlice()
5749 const Operand* beginOperand = GetInputOperand(operation, 1, model); in ConvertStridedSlice()
5750 const Operand* endOperand = GetInputOperand(operation, 2, model); in ConvertStridedSlice()
5751 const Operand* stridesOperand = GetInputOperand(operation, 3, model); in ConvertStridedSlice()
5777 return Fail("%s: Operation has invalid input operand", __func__); in ConvertStridedSlice()
5793 if (!GetInputInt32(operation, 4, descriptor.m_BeginMask, model, data) || in ConvertStridedSlice()
5794 !GetInputInt32(operation, 5, descriptor.m_EndMask, model, data) || in ConvertStridedSlice()
5795 !GetInputInt32(operation, 6, descriptor.m_ShrinkAxisMask, model, data)) in ConvertStridedSlice()
5797 return Fail("%s: Operation has invalid inputs", __func__); in ConvertStridedSlice()
5856 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertStridedSlice()
5859 bool Converter::ConvertTranspose(const Operation& operation, const Model& model, ConversionData& da… in ConvertTranspose() argument
5863 LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); in ConvertTranspose()
5866 return Fail("%s: Operation has invalid inputs", __func__); in ConvertTranspose()
5878 const Operand* permOperand = GetInputOperand(operation, 1, model, false); in ConvertTranspose()
5890 return Fail("%s: Operation has an invalid or unsupported permutation operand", __func__); in ConvertTranspose()
5898 const Operand* output = GetOutputOperand(operation, 0, model); in ConvertTranspose()
5939 return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data, nullptr, validateFunc); in ConvertTranspose()