10 const std::vector<const TensorInfo*>& inputs,
11 const std::vector<const TensorInfo*>& outputs,
14 std::string input0Name = std::string(
"input_0");
15 std::string input1Name = std::string(
"input_1");
16 std::string outputName = std::string(
"output0_");
17 std::string blockName;
28 TosaSerializationOperator* op =
nullptr;
31 case LayerType::Addition:
33 op =
new TosaSerializationOperator(Op_ADD,
36 {input0Name, input1Name},
41 case LayerType::ElementwiseBinary:
47 op =
new TosaSerializationOperator(Op_MAXIMUM,
50 {input0Name, input1Name},
56 throw armnn::Exception(
"ConvertElementwiseBinaryToTosaOperator: Unsupported layer type.");
60 case LayerType::Multiplication:
63 TosaMulAttribute mulAttribute(shift);
64 op =
new TosaSerializationOperator(Op_MUL,
65 Attribute_MulAttribute,
67 {input0Name, input1Name},
72 case LayerType::Subtraction:
74 op =
new TosaSerializationOperator(Op_SUB,
77 {input0Name, input1Name},
83 throw armnn::Exception(
"ConvertElementwiseBinaryToTosaOperator: Unsupported layer type.");
86 std::vector<TosaSerializationTensor*> tensors;
90 if(input0Name.find(
"input_") != std::string::npos)
93 DType inputDType0 =
ArmNNToDType(inputs[0]->GetDataType());
94 tensors.push_back(
new TosaSerializationTensor(input0Name, inputShape0, inputDType0, {}));
96 if(input1Name.find(
"input_") != std::string::npos)
99 DType inputDType1 =
ArmNNToDType(inputs[1]->GetDataType());
100 tensors.push_back(
new TosaSerializationTensor(input1Name, inputShape1, inputDType1, {}));
104 DType outputDType0 =
ArmNNToDType(outputs[0]->GetDataType());
106 tensors.push_back(
new TosaSerializationTensor(outputName, outputShape0, outputDType0, {}));
110 return new TosaSerializationBasicBlock(blockName,
114 {input0Name, input1Name},