9 const std::vector<const TensorInfo*>& inputs,
10 const std::vector<const TensorInfo*>& outputs,
13 auto numInputs = inputs.size();
14 std::vector<std::string> inputNames;
15 inputNames.reserve(numInputs);
16 std::string outputName = std::string(
"output0_");
22 for (uint32_t i = 0; i < numInputs; ++i)
24 inputNames.push_back(
"input_"+ std::to_string(i));
32 for (uint32_t i = 0; i < numInputs; ++i)
35 inputNames.push_back(inputName);
42 auto axis =
static_cast<int32_t
>(concatDescriptor->
GetConcatAxis());
43 TosaAxisAttribute attribute(axis);
45 TosaSerializationOperator* op =
new TosaSerializationOperator(Op_CONCAT,
46 Attribute_AxisAttribute,
51 std::vector<TosaSerializationTensor*> tensors;
52 tensors.reserve(numInputs + 1);
53 for (uint32_t i = 0; i < numInputs; ++i)
57 if(inputNames[i].find(
"input") != std::string::npos)
60 DType inputDType =
ArmNNToDType(inputs[i]->GetDataType());
61 tensors.push_back(
new TosaSerializationTensor(inputNames[i], inputShape, inputDType, {}));
66 DType outputDType0 =
ArmNNToDType(outputs[0]->GetDataType());
68 TosaSerializationTensor* outputTensor0 =
new TosaSerializationTensor(outputName, outputShape0, outputDType0, {});
69 tensors.push_back(outputTensor0);
73 return new TosaSerializationBasicBlock(blockName,