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)
37 inputNames.push_back(inputName);
44 auto axis =
static_cast<int32_t
>(concatDescriptor->
GetConcatAxis());
45 TosaAxisAttribute attribute(axis);
47 TosaSerializationOperator* op =
new TosaSerializationOperator(Op_CONCAT,
48 Attribute_AxisAttribute,
53 std::vector<TosaSerializationTensor*> tensors;
54 tensors.reserve(numInputs);
56 for (uint32_t i = 0; i < numInputs; ++i)
60 if(inputNames[i].find(
"input") != std::string::npos)
63 DType inputDType =
ArmNNToDType(inputs[i]->GetDataType());
64 tensors.push_back(
new TosaSerializationTensor(inputNames[i], inputShape, inputDType, {}));
69 DType outputDType0 =
ArmNNToDType(outputs[0]->GetDataType());
71 TosaSerializationTensor* outputTensor0 =
new TosaSerializationTensor(outputName, outputShape0, outputDType0, {});
72 tensors.push_back(outputTensor0);
76 return new TosaSerializationBasicBlock(blockName,