aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSang-Hoon Park <sang-hoon.park@arm.com>2020-03-11 23:21:14 +0000
committerMichele Di Giorgio <michele.digiorgio@arm.com>2020-03-13 08:33:24 +0000
commit797b76b1aef38ea3be6f68ae2bf323048e9beff8 (patch)
treef78bb65ef0fe49bbb7d06225a4e7e4f2cc43cb45
parent470bc1eea65560d13001e60a7f7b22b12ec89bbc (diff)
downloadComputeLibrary-797b76b1aef38ea3be6f68ae2bf323048e9beff8.tar.gz
COMPMID-3221: Add EltwiseLayerDescriptor
A new descriptor struct for EltwiseLayerNode is added to have better extendability. Change-Id: I3d0a4b3cec1f2425f39157cee6b5c344336412a3 Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2876 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
-rw-r--r--arm_compute/graph/LayerDescriptors.h31
-rw-r--r--arm_compute/graph/nodes/EltwiseLayerNode.h12
-rw-r--r--examples/graph_deepspeech_v0_4_1.cpp2
-rw-r--r--examples/graph_edsr.h66
-rw-r--r--src/graph/GraphBuilder.cpp2
-rw-r--r--src/graph/nodes/EltwiseLayerNode.cpp16
6 files changed, 73 insertions, 56 deletions
diff --git a/arm_compute/graph/LayerDescriptors.h b/arm_compute/graph/LayerDescriptors.h
index 94074e550e..af69682fa3 100644
--- a/arm_compute/graph/LayerDescriptors.h
+++ b/arm_compute/graph/LayerDescriptors.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019 ARM Limited.
+ * Copyright (c) 2019-2020 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -21,10 +21,11 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
-#ifndef ARM_COMPUTE_CONCAT_DESCRIPTOR_H
-#define ARM_COMPUTE_CONCAT_DESCRIPTOR_H
+#ifndef ARM_COMPUTE_LAYER_DESCRIPTORS_H
+#define ARM_COMPUTE_LAYER_DESCRIPTORS_H
#include "arm_compute/core/Types.h"
+#include "arm_compute/graph/Types.h"
namespace arm_compute
{
@@ -63,7 +64,29 @@ struct ConcatLayerDescriptor
const DataLayoutDimension axis; /**< Concatenation Axis */
const QuantizationInfo output_qinfo; /**< Output quantizazion info */
};
+
+/** Elementwise layer descriptor */
+struct EltwiseLayerDescriptor
+{
+ /** Constructor
+ *
+ * @param[in] op Element-wise operation to perform
+ * @param[in] out_quant_info (Optional) Output quantization information. Defaults to empty @ref QuantizationInfo
+ * @param[in] c_policy (Optional) Convert policy used for the operation. Defaults to @ref ConvertPolicy::SATURATE
+ * @param[in] r_policy (Optional) Rounding policy used for the operation. Defaults to @ref RoundingPolicy::TO_ZERO
+ */
+ EltwiseLayerDescriptor(EltwiseOperation op, QuantizationInfo out_quant_info = QuantizationInfo(), ConvertPolicy c_policy = ConvertPolicy::SATURATE, RoundingPolicy r_policy = RoundingPolicy::TO_ZERO)
+ : op(op), out_quant_info(out_quant_info), c_policy(c_policy), r_policy(r_policy)
+ {
+ }
+
+ EltwiseOperation op; /**< Element-wise operation to perform */
+ QuantizationInfo out_quant_info; /**< Output quantization information */
+ ConvertPolicy c_policy; /**< Convert policy */
+ RoundingPolicy r_policy; /**< Rounding policy */
+};
+
} // namespace descriptor
} // namespace graph
} // namespace arm_compute
-#endif /* ARM_COMPUTE_CONCAT_DESCRIPTOR_H */ \ No newline at end of file
+#endif /* ARM_COMPUTE_LAYER_DESCRIPTORS_H */ \ No newline at end of file
diff --git a/arm_compute/graph/nodes/EltwiseLayerNode.h b/arm_compute/graph/nodes/EltwiseLayerNode.h
index 1ca8e9c23d..21c220a548 100644
--- a/arm_compute/graph/nodes/EltwiseLayerNode.h
+++ b/arm_compute/graph/nodes/EltwiseLayerNode.h
@@ -36,12 +36,9 @@ class EltwiseLayerNode final : public INode
public:
/** Constructor
*
- * @param[in] op Element-wise operation to perform
- * @param[in] out_quant_info (Optional) Output quantization information
- * @param[in] c_policy (Optional) Convert policy used for the operation
- * @param[in] r_policy (Optional) Rounding policy used for the operation
+ * @param[in] descriptor Containing information for the node described in @ref descriptors::EltwiseLayerDescriptor
*/
- EltwiseLayerNode(EltwiseOperation op, QuantizationInfo out_quant_info = QuantizationInfo(), ConvertPolicy c_policy = ConvertPolicy::SATURATE, RoundingPolicy r_policy = RoundingPolicy::TO_ZERO);
+ EltwiseLayerNode(const descriptors::EltwiseLayerDescriptor &descriptor);
/** Eltwise operation accessor
*
* @return Eltwise operation that is to be performed by the node
@@ -67,10 +64,7 @@ public:
void accept(INodeVisitor &v) override;
private:
- EltwiseOperation _op;
- QuantizationInfo _out_quant_info;
- ConvertPolicy _convert_policy;
- RoundingPolicy _rounding_policy;
+ descriptors::EltwiseLayerDescriptor descriptor;
};
} // namespace graph
} // namespace arm_compute
diff --git a/examples/graph_deepspeech_v0_4_1.cpp b/examples/graph_deepspeech_v0_4_1.cpp
index ed44ffbee2..cc65bf309d 100644
--- a/examples/graph_deepspeech_v0_4_1.cpp
+++ b/examples/graph_deepspeech_v0_4_1.cpp
@@ -289,7 +289,7 @@ private:
tanh_ss.forward_tail(tanh_nid);
// Add (third split)
- NodeID add_nid = graph.graph().add_node<EltwiseLayerNode>(EltwiseOperation::Add);
+ NodeID add_nid = graph.graph().add_node<EltwiseLayerNode>(descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add });
graph.graph().add_connection(split_nid, 2, add_nid, 0);
graph.graph().add_connection(add_y.tail_node(), 0, add_nid, 1);
set_node_params(graph.graph(), add_nid, add_params);
diff --git a/examples/graph_edsr.h b/examples/graph_edsr.h
index 8941430c76..e31cc8940a 100644
--- a/examples/graph_edsr.h
+++ b/examples/graph_edsr.h
@@ -725,14 +725,14 @@ public:
_graph.add_connection(id_block_0_1_Conv2D_bias, 0, id_block_0_1_BiasAdd, 2);
NodeID id_mul = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.0006341293919831514, 174 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0006341293919831514, 174 } });
INode *node_mul = _graph.node(id_mul);
node_mul->set_common_node_parameters(NodeParams{ "mul", target });
_graph.add_connection(id_block_0_1_BiasAdd, 0, id_mul, 0);
_graph.add_connection(id_mul_y, 0, id_mul, 1);
NodeID id_add = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0031092411372810602, 95 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0031092411372810602, 95 } });
INode *node_add = _graph.node(id_add);
node_add->set_common_node_parameters(NodeParams{ "add", target });
_graph.add_connection(id_pre_residual_BiasAdd, 0, id_add, 0);
@@ -756,14 +756,14 @@ public:
_graph.add_connection(id_block_1_1_Conv2D_bias, 0, id_block_1_1_BiasAdd, 2);
NodeID id_mul_1 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.0004965941770933568, 122 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004965941770933568, 122 } });
INode *node_mul_1 = _graph.node(id_mul_1);
node_mul_1->set_common_node_parameters(NodeParams{ "mul_1", target });
_graph.add_connection(id_block_1_1_BiasAdd, 0, id_mul_1, 0);
_graph.add_connection(id_mul_1_y, 0, id_mul_1, 1);
NodeID id_add_1 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0030700892675668, 96 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0030700892675668, 96 } });
INode *node_add_1 = _graph.node(id_add_1);
node_add_1->set_common_node_parameters(NodeParams{ "add_1", target });
_graph.add_connection(id_add, 0, id_add_1, 0);
@@ -787,14 +787,14 @@ public:
_graph.add_connection(id_block_2_1_Conv2D_bias, 0, id_block_2_1_BiasAdd, 2);
NodeID id_mul_2 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.0004133903712499887, 130 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004133903712499887, 130 } });
INode *node_mul_2 = _graph.node(id_mul_2);
node_mul_2->set_common_node_parameters(NodeParams{ "mul_2", target });
_graph.add_connection(id_block_2_1_BiasAdd, 0, id_mul_2, 0);
_graph.add_connection(id_mul_2_y, 0, id_mul_2, 1);
NodeID id_add_2 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.003026385325938463, 94 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.003026385325938463, 94 } });
INode *node_add_2 = _graph.node(id_add_2);
node_add_2->set_common_node_parameters(NodeParams{ "add_2", target });
_graph.add_connection(id_add_1, 0, id_add_2, 0);
@@ -818,14 +818,14 @@ public:
_graph.add_connection(id_block_3_1_Conv2D_bias, 0, id_block_3_1_BiasAdd, 2);
NodeID id_mul_3 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.0003943995980080217, 141 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0003943995980080217, 141 } });
INode *node_mul_3 = _graph.node(id_mul_3);
node_mul_3->set_common_node_parameters(NodeParams{ "mul_3", target });
_graph.add_connection(id_block_3_1_BiasAdd, 0, id_mul_3, 0);
_graph.add_connection(id_mul_3_y, 0, id_mul_3, 1);
NodeID id_add_3 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.003101327223703265, 98 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.003101327223703265, 98 } });
INode *node_add_3 = _graph.node(id_add_3);
node_add_3->set_common_node_parameters(NodeParams{ "add_3", target });
_graph.add_connection(id_add_2, 0, id_add_3, 0);
@@ -849,14 +849,14 @@ public:
_graph.add_connection(id_block_4_1_Conv2D_bias, 0, id_block_4_1_BiasAdd, 2);
NodeID id_mul_4 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.00044342130422592163, 143 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00044342130422592163, 143 } });
INode *node_mul_4 = _graph.node(id_mul_4);
node_mul_4->set_common_node_parameters(NodeParams{ "mul_4", target });
_graph.add_connection(id_block_4_1_BiasAdd, 0, id_mul_4, 0);
_graph.add_connection(id_mul_4_y, 0, id_mul_4, 1);
NodeID id_add_4 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.003150839824229479, 98 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.003150839824229479, 98 } });
INode *node_add_4 = _graph.node(id_add_4);
node_add_4->set_common_node_parameters(NodeParams{ "add_4", target });
_graph.add_connection(id_add_3, 0, id_add_4, 0);
@@ -880,14 +880,14 @@ public:
_graph.add_connection(id_block_5_1_Conv2D_bias, 0, id_block_5_1_BiasAdd, 2);
NodeID id_mul_5 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.0004023382789455354, 132 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004023382789455354, 132 } });
INode *node_mul_5 = _graph.node(id_mul_5);
node_mul_5->set_common_node_parameters(NodeParams{ "mul_5", target });
_graph.add_connection(id_block_5_1_BiasAdd, 0, id_mul_5, 0);
_graph.add_connection(id_mul_5_y, 0, id_mul_5, 1);
NodeID id_add_5 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0030975888948887587, 94 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0030975888948887587, 94 } });
INode *node_add_5 = _graph.node(id_add_5);
node_add_5->set_common_node_parameters(NodeParams{ "add_5", target });
_graph.add_connection(id_add_4, 0, id_add_5, 0);
@@ -911,14 +911,14 @@ public:
_graph.add_connection(id_block_6_1_Conv2D_bias, 0, id_block_6_1_BiasAdd, 2);
NodeID id_mul_6 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.00041950203012675047, 125 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00041950203012675047, 125 } });
INode *node_mul_6 = _graph.node(id_mul_6);
node_mul_6->set_common_node_parameters(NodeParams{ "mul_6", target });
_graph.add_connection(id_block_6_1_BiasAdd, 0, id_mul_6, 0);
_graph.add_connection(id_mul_6_y, 0, id_mul_6, 1);
NodeID id_add_6 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.003155382815748453, 92 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.003155382815748453, 92 } });
INode *node_add_6 = _graph.node(id_add_6);
node_add_6->set_common_node_parameters(NodeParams{ "add_6", target });
_graph.add_connection(id_add_5, 0, id_add_6, 0);
@@ -942,14 +942,14 @@ public:
_graph.add_connection(id_block_7_1_Conv2D_bias, 0, id_block_7_1_BiasAdd, 2);
NodeID id_mul_7 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.00042401350219734013, 142 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00042401350219734013, 142 } });
INode *node_mul_7 = _graph.node(id_mul_7);
node_mul_7->set_common_node_parameters(NodeParams{ "mul_7", target });
_graph.add_connection(id_block_7_1_BiasAdd, 0, id_mul_7, 0);
_graph.add_connection(id_mul_7_y, 0, id_mul_7, 1);
NodeID id_add_7 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0031760605052113533, 86 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0031760605052113533, 86 } });
INode *node_add_7 = _graph.node(id_add_7);
node_add_7->set_common_node_parameters(NodeParams{ "add_7", target });
_graph.add_connection(id_add_6, 0, id_add_7, 0);
@@ -973,14 +973,14 @@ public:
_graph.add_connection(id_block_8_1_Conv2D_bias, 0, id_block_8_1_BiasAdd, 2);
NodeID id_mul_8 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.00042673019925132394, 123 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00042673019925132394, 123 } });
INode *node_mul_8 = _graph.node(id_mul_8);
node_mul_8->set_common_node_parameters(NodeParams{ "mul_8", target });
_graph.add_connection(id_block_8_1_BiasAdd, 0, id_mul_8, 0);
_graph.add_connection(id_mul_8_y, 0, id_mul_8, 1);
NodeID id_add_8 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0032156009692698717, 86 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0032156009692698717, 86 } });
INode *node_add_8 = _graph.node(id_add_8);
node_add_8->set_common_node_parameters(NodeParams{ "add_8", target });
_graph.add_connection(id_add_7, 0, id_add_8, 0);
@@ -1004,14 +1004,14 @@ public:
_graph.add_connection(id_block_9_1_Conv2D_bias, 0, id_block_9_1_BiasAdd, 2);
NodeID id_mul_9 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.0004448975087143481, 129 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004448975087143481, 129 } });
INode *node_mul_9 = _graph.node(id_mul_9);
node_mul_9->set_common_node_parameters(NodeParams{ "mul_9", target });
_graph.add_connection(id_block_9_1_BiasAdd, 0, id_mul_9, 0);
_graph.add_connection(id_mul_9_y, 0, id_mul_9, 1);
NodeID id_add_9 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0032742770854383707, 80 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0032742770854383707, 80 } });
INode *node_add_9 = _graph.node(id_add_9);
node_add_9->set_common_node_parameters(NodeParams{ "add_9", target });
_graph.add_connection(id_add_8, 0, id_add_9, 0);
@@ -1035,14 +1035,14 @@ public:
_graph.add_connection(id_block_10_1_Conv2D_bias, 0, id_block_10_1_BiasAdd, 2);
NodeID id_mul_10 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.00036083892337046564, 130 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00036083892337046564, 130 } });
INode *node_mul_10 = _graph.node(id_mul_10);
node_mul_10->set_common_node_parameters(NodeParams{ "mul_10", target });
_graph.add_connection(id_block_10_1_BiasAdd, 0, id_mul_10, 0);
_graph.add_connection(id_mul_10_y, 0, id_mul_10, 1);
NodeID id_add_10 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0031881770119071007, 81 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0031881770119071007, 81 } });
INode *node_add_10 = _graph.node(id_add_10);
node_add_10->set_common_node_parameters(NodeParams{ "add_10", target });
_graph.add_connection(id_add_9, 0, id_add_10, 0);
@@ -1066,14 +1066,14 @@ public:
_graph.add_connection(id_block_11_1_Conv2D_bias, 0, id_block_11_1_BiasAdd, 2);
NodeID id_mul_11 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.0003968806122429669, 133 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0003968806122429669, 133 } });
INode *node_mul_11 = _graph.node(id_mul_11);
node_mul_11->set_common_node_parameters(NodeParams{ "mul_11", target });
_graph.add_connection(id_block_11_1_BiasAdd, 0, id_mul_11, 0);
_graph.add_connection(id_mul_11_y, 0, id_mul_11, 1);
NodeID id_add_11 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0032707711216062307, 80 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0032707711216062307, 80 } });
INode *node_add_11 = _graph.node(id_add_11);
node_add_11->set_common_node_parameters(NodeParams{ "add_11", target });
_graph.add_connection(id_add_10, 0, id_add_11, 0);
@@ -1097,14 +1097,14 @@ public:
_graph.add_connection(id_block_12_1_Conv2D_bias, 0, id_block_12_1_BiasAdd, 2);
NodeID id_mul_12 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.0004365936329122633, 110 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004365936329122633, 110 } });
INode *node_mul_12 = _graph.node(id_mul_12);
node_mul_12->set_common_node_parameters(NodeParams{ "mul_12", target });
_graph.add_connection(id_block_12_1_BiasAdd, 0, id_mul_12, 0);
_graph.add_connection(id_mul_12_y, 0, id_mul_12, 1);
NodeID id_add_12 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.003275055903941393, 79 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.003275055903941393, 79 } });
INode *node_add_12 = _graph.node(id_add_12);
node_add_12->set_common_node_parameters(NodeParams{ "add_12", target });
_graph.add_connection(id_add_11, 0, id_add_12, 0);
@@ -1128,14 +1128,14 @@ public:
_graph.add_connection(id_block_13_1_Conv2D_bias, 0, id_block_13_1_BiasAdd, 2);
NodeID id_mul_13 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.0004385628562886268, 139 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004385628562886268, 139 } });
INode *node_mul_13 = _graph.node(id_mul_13);
node_mul_13->set_common_node_parameters(NodeParams{ "mul_13", target });
_graph.add_connection(id_block_13_1_BiasAdd, 0, id_mul_13, 0);
_graph.add_connection(id_mul_13_y, 0, id_mul_13, 1);
NodeID id_add_13 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0033287261612713337, 78 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0033287261612713337, 78 } });
INode *node_add_13 = _graph.node(id_add_13);
node_add_13->set_common_node_parameters(NodeParams{ "add_13", target });
_graph.add_connection(id_add_12, 0, id_add_13, 0);
@@ -1159,14 +1159,14 @@ public:
_graph.add_connection(id_block_14_1_Conv2D_bias, 0, id_block_14_1_BiasAdd, 2);
NodeID id_mul_14 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.00037829321809113026, 130 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00037829321809113026, 130 } });
INode *node_mul_14 = _graph.node(id_mul_14);
node_mul_14->set_common_node_parameters(NodeParams{ "mul_14", target });
_graph.add_connection(id_block_14_1_BiasAdd, 0, id_mul_14, 0);
_graph.add_connection(id_mul_14_y, 0, id_mul_14, 1);
NodeID id_add_14 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0033590947277843952, 77 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0033590947277843952, 77 } });
INode *node_add_14 = _graph.node(id_add_14);
node_add_14->set_common_node_parameters(NodeParams{ "add_14", target });
_graph.add_connection(id_add_13, 0, id_add_14, 0);
@@ -1190,14 +1190,14 @@ public:
_graph.add_connection(id_block_15_1_Conv2D_bias, 0, id_block_15_1_BiasAdd, 2);
NodeID id_mul_15 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Mul, QuantizationInfo{ 0.0004008286341559142, 130 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004008286341559142, 130 } });
INode *node_mul_15 = _graph.node(id_mul_15);
node_mul_15->set_common_node_parameters(NodeParams{ "mul_15", target });
_graph.add_connection(id_block_15_1_BiasAdd, 0, id_mul_15, 0);
_graph.add_connection(id_mul_15_y, 0, id_mul_15, 1);
NodeID id_add_15 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0035031239967793226, 78 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0035031239967793226, 78 } });
INode *node_add_15 = _graph.node(id_add_15);
node_add_15->set_common_node_parameters(NodeParams{ "add_15", target });
_graph.add_connection(id_add_14, 0, id_add_15, 0);
@@ -1221,7 +1221,7 @@ public:
_graph.add_connection(id_post_residual_Conv2D_bias, 0, id_post_residual_BiasAdd, 2);
NodeID id_add_16 = _graph.add_node<EltwiseLayerNode>(
- EltwiseOperation::Add, QuantizationInfo{ 0.0065071373246610165, 89 });
+ descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0065071373246610165, 89 } });
INode *node_add_16 = _graph.node(id_add_16);
node_add_16->set_common_node_parameters(NodeParams{ "add_16", target });
_graph.add_connection(id_post_residual_BiasAdd, 0, id_add_16, 0);
diff --git a/src/graph/GraphBuilder.cpp b/src/graph/GraphBuilder.cpp
index 97ade9362d..e429817d50 100644
--- a/src/graph/GraphBuilder.cpp
+++ b/src/graph/GraphBuilder.cpp
@@ -438,7 +438,7 @@ NodeID GraphBuilder::add_elementwise_node(Graph &g, NodeParams params, NodeIdxPa
check_nodeidx_pair(input0, g);
check_nodeidx_pair(input1, g);
- NodeID nid = g.add_node<EltwiseLayerNode>(operation);
+ NodeID nid = g.add_node<EltwiseLayerNode>(descriptors::EltwiseLayerDescriptor{ operation });
g.add_connection(input0.node_id, input0.index, nid, 0);
g.add_connection(input1.node_id, input1.index, nid, 1);
diff --git a/src/graph/nodes/EltwiseLayerNode.cpp b/src/graph/nodes/EltwiseLayerNode.cpp
index 7970bad5f7..a83a5fb3b2 100644
--- a/src/graph/nodes/EltwiseLayerNode.cpp
+++ b/src/graph/nodes/EltwiseLayerNode.cpp
@@ -30,8 +30,8 @@ namespace arm_compute
{
namespace graph
{
-EltwiseLayerNode::EltwiseLayerNode(EltwiseOperation op, QuantizationInfo out_quant_info, ConvertPolicy c_policy, RoundingPolicy r_policy)
- : _op(op), _out_quant_info(out_quant_info), _convert_policy(c_policy), _rounding_policy(r_policy)
+EltwiseLayerNode::EltwiseLayerNode(const descriptors::EltwiseLayerDescriptor &descriptor)
+ : descriptor(descriptor)
{
_input_edges.resize(2, EmptyEdgeID);
_outputs.resize(1, NullTensorID);
@@ -39,17 +39,17 @@ EltwiseLayerNode::EltwiseLayerNode(EltwiseOperation op, QuantizationInfo out_qua
EltwiseOperation EltwiseLayerNode::eltwise_operation() const
{
- return _op;
+ return descriptor.op;
}
ConvertPolicy EltwiseLayerNode::convert_policy() const
{
- return _convert_policy;
+ return descriptor.c_policy;
}
RoundingPolicy EltwiseLayerNode::rounding_policy() const
{
- return _rounding_policy;
+ return descriptor.r_policy;
}
bool EltwiseLayerNode::forward_descriptors()
@@ -66,16 +66,16 @@ bool EltwiseLayerNode::forward_descriptors()
TensorDescriptor EltwiseLayerNode::configure_output(size_t idx) const
{
- ARM_COMPUTE_UNUSED(idx, _op, _convert_policy, _rounding_policy);
+ ARM_COMPUTE_UNUSED(idx);
const Tensor *src = input(0);
ARM_COMPUTE_ERROR_ON(src == nullptr);
auto output_info = src->desc();
- if(!_out_quant_info.empty())
+ if(!descriptor.out_quant_info.empty())
{
- output_info.set_quantization_info(_out_quant_info);
+ output_info.set_quantization_info(descriptor.out_quant_info);
}
return output_info;