Compute Library
 23.08
INode Class Referenceabstract

Node interface. More...

#include <INode.h>

Public Member Functions

 INode ()
 Constructor. More...
 
virtual ~INode ()=default
 Destructor. More...
 
 INode (const INode &)=delete
 Prevent instances of this class from being copied (As this class contains pointers) More...
 
INodeoperator= (const INode &)=delete
 Prevent instances of this class from being copy assigned (As this class contains pointers) More...
 
 INode (INode &&)=default
 Allow instances of this class to be moved. More...
 
INodeoperator= (INode &&)=default
 Allow instances of this class to be move assigned. More...
 
virtual Status validate () const
 Validate node. More...
 
virtual NodeType type () const =0
 Returns node's type. More...
 
virtual void accept (INodeVisitor &v)=0
 Accepts a node visitor. More...
 
virtual bool forward_descriptors ()=0
 Forwards descriptor information to outputs if possible. More...
 
virtual TensorDescriptor configure_output (size_t idx) const =0
 Calculates output configuration. More...
 
std::string name () const
 Returns node's name. More...
 
NodeID id () const
 Returns node's ID. More...
 
const Graphgraph () const
 Returns node's Graph. More...
 
Graphgraph ()
 Returns node's Graph. More...
 
void set_graph (Graph *g)
 Sets the graph that this node is registered to. More...
 
void set_id (NodeID id)
 Sets the node id. More...
 
void set_common_node_parameters (NodeParams common_params)
 Sets common node parameters. More...
 
void set_requested_target (Target target)
 Sets target preference. More...
 
void set_assigned_target (Target target)
 Sets the final execution target. More...
 
void set_output_tensor (TensorID tid, size_t idx)
 Sets the output tensor of at a given index. More...
 
const std::vector< TensorID > & inputs () const
 Returns inputs of the node. More...
 
const std::vector< TensorID > & outputs () const
 Returns outputs of the node. More...
 
const std::vector< EdgeID > & input_edges () const
 Returns input edge set. More...
 
const std::set< EdgeID > & output_edges () const
 Returns output edge set. More...
 
TensorID input_id (size_t idx) const
 Returns the tensor ID of a given input of the node. More...
 
TensorID output_id (size_t idx) const
 Returns the tensor ID of a given output of the node. More...
 
Tensorinput (size_t idx) const
 Returns the tensor of a given input of the node. More...
 
Tensoroutput (size_t idx) const
 Returns the tensor of a given output of the node. More...
 
EdgeID input_edge_id (size_t idx) const
 Returns the edge ID of a given input of the node. More...
 
Edgeinput_edge (size_t idx) const
 Returns the edge of a given input of the node. More...
 
size_t num_inputs () const
 Returns number of inputs of the node. More...
 
size_t num_outputs () const
 Returns number of outputs of the node. More...
 
NodeParams common_node_params () const
 Returns common node parameters. More...
 
Target requested_target () const
 Returns requested target for this node. More...
 
Target assigned_target () const
 Returns assigned target for this node. More...
 
const std::list< std::unique_ptr< ConvPostOpInfo > > & post_op_info_list () const
 Post operator info list. More...
 
std::list< std::unique_ptr< ConvPostOpInfo > > & post_op_info_list ()
 Post operator info list. More...
 

Friends

class Graph
 

Detailed Description

Node interface.

Definition at line 46 of file INode.h.

Constructor & Destructor Documentation

◆ INode() [1/3]

INode ( )

Constructor.

Definition at line 37 of file INode.cpp.

38  : _graph(nullptr), _id(EmptyNodeID), _common_params({ "", Target::UNSPECIFIED}),
39  _outputs(), _input_edges(), _output_edges(), _assigned_target(Target::UNSPECIFIED)
40  ,_post_op_info_list(std::list<std::unique_ptr<ConvPostOpInfo>> {})
41 {
42 }

References arm_compute::graph::UNSPECIFIED.

◆ ~INode()

virtual ~INode ( )
virtualdefault

Destructor.

◆ INode() [2/3]

INode ( const INode )
delete

Prevent instances of this class from being copied (As this class contains pointers)

◆ INode() [3/3]

INode ( INode &&  )
default

Allow instances of this class to be moved.

Member Function Documentation

◆ accept()

◆ assigned_target()

Target assigned_target ( ) const

◆ common_node_params()

NodeParams common_node_params ( ) const

Returns common node parameters.

Returns
Common node parameters

Definition at line 189 of file INode.cpp.

190 {
191  return _common_params;
192 }

◆ configure_output()

◆ forward_descriptors()

◆ graph() [1/2]

Graph* graph ( )

Returns node's Graph.

Returns
Node's graph

◆ graph() [2/2]

Graph * graph ( ) const

Returns node's Graph.

Returns
Node's graph

Definition at line 113 of file INode.cpp.

114 {
115  return _graph;
116 }

Referenced by arm_compute::graph::detail::all_inputs_are_visited(), arm_compute::graph::get_driver_nodes(), and arm_compute::graph::get_driving_nodes().

◆ id()

NodeID id ( ) const

Returns node's ID.

Returns
Node's ID

Definition at line 103 of file INode.cpp.

104 {
105  return _id;
106 }

Referenced by NEDeviceBackend::configure_node(), CLDeviceBackend::configure_node(), Edge::consumer_id(), arm_compute::graph::backends::detail::create_concatenate_layer(), arm_compute::graph::backends::detail::create_stack_layer(), DepthConcatSubTensorMutator::mutate(), GroupedConvolutionMutator::mutate(), SplitLayerSubTensorMutator::mutate(), Edge::producer_id(), INode::set_id(), arm_compute::graph::detail::transfer_driving_nodes_and_remove_old_node(), arm_compute::graph::backends::detail::validate_arg_min_max_layer(), arm_compute::graph::backends::detail::validate_bounding_box_transform_layer(), arm_compute::graph::backends::detail::validate_channel_shuffle_layer(), arm_compute::graph::backends::detail::validate_convolution_layer(), arm_compute::graph::backends::detail::validate_depth_to_space_layer(), arm_compute::graph::backends::detail::validate_depthwise_convolution_layer(), arm_compute::graph::backends::detail::validate_dequantization_layer(), arm_compute::graph::backends::detail::validate_detection_output_layer(), arm_compute::graph::backends::detail::validate_detection_post_process_layer(), arm_compute::graph::backends::detail::validate_eltwise_Layer(), arm_compute::graph::backends::detail::validate_fused_convolution_with_post_op(), arm_compute::graph::backends::detail::validate_generate_proposals_layer(), arm_compute::graph::backends::detail::validate_l2_normalize_layer(), NEDeviceBackend::validate_node(), CLDeviceBackend::validate_node(), arm_compute::graph::backends::detail::validate_node(), arm_compute::graph::backends::detail::validate_normalize_planar_yuv_layer(), arm_compute::graph::backends::detail::validate_pad_layer(), arm_compute::graph::backends::detail::validate_permute_layer(), arm_compute::graph::backends::detail::validate_prelu_layer(), arm_compute::graph::backends::detail::validate_priorbox_layer(), arm_compute::graph::backends::detail::validate_quantization_layer(), arm_compute::graph::backends::detail::validate_reduction_operation_layer(), arm_compute::graph::backends::detail::validate_reorg_layer(), arm_compute::graph::backends::detail::validate_reshape_layer(), arm_compute::graph::backends::detail::validate_roi_align_layer(), arm_compute::graph::backends::detail::validate_slice_layer(), arm_compute::graph::backends::detail::validate_strided_slice_layer(), and arm_compute::graph::backends::detail::validate_unary_eltwise_layer().

◆ input()

Tensor * input ( size_t  idx) const

Returns the tensor of a given input of the node.

Note
Precondition : idx should be a valid input index
Parameters
[in]idxIndex of the node input
Returns
Tensor of the requested input

Definition at line 151 of file INode.cpp.

152 {
153  ARM_COMPUTE_ERROR_ON(_graph == nullptr);
154  ARM_COMPUTE_ERROR_ON(idx >= _input_edges.size());
155  Edge *e = _graph->edge(_input_edges[idx]);
156  return (e != nullptr) ? e->tensor() : nullptr;
157 }

References ARM_COMPUTE_ERROR_ON, Graph::edge(), and Edge::tensor().

Referenced by arm_compute::graph::detail::allocate_all_input_tensors(), FlattenLayerNode::configure_output(), NormalizePlanarYUVLayerNode::configure_output(), PReluLayerNode::configure_output(), ReshapeLayerNode::configure_output(), DequantizationLayerNode::configure_output(), ChannelShuffleLayerNode::configure_output(), NormalizationLayerNode::configure_output(), SoftmaxLayerNode::configure_output(), BoundingBoxTransformLayerNode::configure_output(), GenerateProposalsLayerNode::configure_output(), ActivationLayerNode::configure_output(), DummyNode::configure_output(), PermuteLayerNode::configure_output(), QuantizationLayerNode::configure_output(), ResizeLayerNode::configure_output(), DepthToSpaceLayerNode::configure_output(), PadLayerNode::configure_output(), ReductionLayerNode::configure_output(), ROIAlignLayerNode::configure_output(), DetectionOutputLayerNode::configure_output(), PoolingLayerNode::configure_output(), PriorBoxLayerNode::configure_output(), ReorgLayerNode::configure_output(), BatchNormalizationLayerNode::configure_output(), DeconvolutionLayerNode::configure_output(), ArgMinMaxLayerNode::configure_output(), PrintLayerNode::configure_output(), SliceLayerNode::configure_output(), L2NormalizeLayerNode::configure_output(), SplitLayerNode::configure_output(), EltwiseLayerNode::configure_output(), StridedSliceLayerNode::configure_output(), FullyConnectedLayerNode::configure_output(), DepthwiseConvolutionLayerNode::configure_output(), FusedConvolutionBatchNormalizationWithPostOpsNode::configure_output(), ConvolutionLayerNode::configure_output(), UnaryEltwiseLayerNode::configure_output(), FusedConvolutionWithPostOpNode::configure_output(), FusedDepthwiseConvolutionBatchNormalizationNode::configure_output(), FusedConvolutionBatchNormalizationNode::configure_output(), arm_compute::graph::backends::detail::create_activation_layer(), arm_compute::graph::backends::detail::create_arg_min_max_layer(), arm_compute::graph::backends::detail::create_batch_normalization_layer(), arm_compute::graph::backends::detail::create_bounding_box_transform_layer(), arm_compute::graph::backends::detail::create_channel_shuffle_layer(), arm_compute::graph::backends::detail::create_concatenate_layer(), arm_compute::graph::backends::detail::create_convolution_layer(), arm_compute::graph::backends::detail::create_deconvolution_layer(), arm_compute::graph::backends::detail::create_depth_to_space_layer(), arm_compute::graph::backends::detail::create_depthwise_convolution_layer(), arm_compute::graph::backends::detail::create_dequantization_layer(), arm_compute::graph::backends::detail::create_detection_output_layer(), arm_compute::graph::backends::detail::create_detection_output_layer< CPPDetectionOutputLayer, CLTargetInfo >(), arm_compute::graph::backends::detail::create_detection_post_process_layer(), arm_compute::graph::backends::detail::create_detection_post_process_layer< CPPDetectionPostProcessLayer, CLTargetInfo >(), arm_compute::graph::backends::detail::create_eltwise_layer(), arm_compute::graph::backends::detail::create_flatten_layer(), arm_compute::graph::backends::detail::create_fully_connected_layer(), arm_compute::graph::backends::detail::create_fused_convolution_batch_normalization_layer(), arm_compute::graph::backends::detail::create_fused_convolution_batch_normalization_with_post_op(), arm_compute::graph::backends::detail::create_fused_convolution_with_post_op(), arm_compute::graph::backends::detail::create_fused_depthwise_convolution_batch_normalization_layer(), arm_compute::graph::backends::detail::create_generate_proposals_layer(), arm_compute::graph::backends::detail::create_l2_normalize_layer(), arm_compute::graph::backends::detail::create_normalization_layer(), arm_compute::graph::backends::detail::create_normalization_layer< NENormalizationLayer, NETargetInfo >(), arm_compute::graph::backends::detail::create_normalize_planar_yuv_layer(), arm_compute::graph::backends::detail::create_pad_layer(), arm_compute::graph::backends::detail::create_permute_layer(), arm_compute::graph::backends::detail::create_pooling_layer(), arm_compute::graph::backends::detail::create_prelu_layer(), arm_compute::graph::backends::detail::create_print_layer(), arm_compute::graph::backends::detail::create_priorbox_layer(), arm_compute::graph::backends::detail::create_quantization_layer(), arm_compute::graph::backends::detail::create_reduction_operation_layer(), arm_compute::graph::backends::detail::create_reorg_layer(), arm_compute::graph::backends::detail::create_reshape_layer(), arm_compute::graph::backends::detail::create_resize_layer(), arm_compute::graph::backends::detail::create_roi_align_layer(), arm_compute::graph::backends::detail::create_slice_layer(), arm_compute::graph::backends::detail::create_softmax_layer(), arm_compute::graph::backends::detail::create_stack_layer(), arm_compute::graph::backends::detail::create_strided_slice_layer(), arm_compute::graph::backends::detail::create_unary_eltwise_layer(), SplitLayerSubTensorMutator::mutate(), DepthConcatSubTensorMutator::mutate(), SplitLayerNode::validate(), arm_compute::graph::backends::detail::validate_arg_min_max_layer(), arm_compute::graph::backends::detail::validate_bounding_box_transform_layer(), arm_compute::graph::backends::detail::validate_channel_shuffle_layer(), arm_compute::graph::backends::detail::validate_convolution_layer(), arm_compute::graph::backends::detail::validate_depth_to_space_layer(), arm_compute::graph::backends::detail::validate_depthwise_convolution_layer(), arm_compute::graph::backends::detail::validate_dequantization_layer(), arm_compute::graph::backends::detail::validate_detection_output_layer(), arm_compute::graph::backends::detail::validate_detection_post_process_layer(), arm_compute::graph::backends::detail::validate_eltwise_Layer(), arm_compute::graph::backends::detail::validate_fused_convolution_with_post_op(), arm_compute::graph::backends::detail::validate_generate_proposals_layer(), arm_compute::graph::backends::detail::validate_l2_normalize_layer(), arm_compute::graph::backends::detail::validate_normalize_planar_yuv_layer(), arm_compute::graph::backends::detail::validate_pad_layer(), arm_compute::graph::backends::detail::validate_permute_layer(), arm_compute::graph::backends::detail::validate_prelu_layer(), arm_compute::graph::backends::detail::validate_priorbox_layer(), arm_compute::graph::backends::detail::validate_quantization_layer(), arm_compute::graph::backends::detail::validate_reduction_operation_layer(), arm_compute::graph::backends::detail::validate_reorg_layer(), arm_compute::graph::backends::detail::validate_reshape_layer(), arm_compute::graph::backends::detail::validate_roi_align_layer(), arm_compute::graph::backends::detail::validate_slice_layer(), arm_compute::graph::backends::detail::validate_strided_slice_layer(), and arm_compute::graph::backends::detail::validate_unary_eltwise_layer().

◆ input_edge()

Edge * input_edge ( size_t  idx) const

Returns the edge of a given input of the node.

Note
Precondition : idx should be a valid input index
Parameters
[in]idxIndex of the node input
Returns
Edge of the requested input

Definition at line 172 of file INode.cpp.

173 {
174  ARM_COMPUTE_ERROR_ON(_graph == nullptr);
175  ARM_COMPUTE_ERROR_ON(idx >= _input_edges.size());
176  return _graph->edge(_input_edges[idx]);
177 }

References ARM_COMPUTE_ERROR_ON, and Graph::edge().

Referenced by arm_compute::graph::detail::fuse_convolution_with_batch_normalization(), and arm_compute::graph::detail::fuse_depthwise_convolution_with_batch_normalization().

◆ input_edge_id()

EdgeID input_edge_id ( size_t  idx) const

Returns the edge ID of a given input of the node.

Note
Precondition : idx should be a valid input index
Parameters
[in]idxIndex of the node input
Returns
EdgeID of the requested input

Definition at line 166 of file INode.cpp.

167 {
168  ARM_COMPUTE_ERROR_ON(idx >= _input_edges.size());
169  return _input_edges[idx];
170 }

References ARM_COMPUTE_ERROR_ON.

◆ input_edges()

const std::vector< EdgeID > & input_edges ( ) const

Returns input edge set.

Returns
Set of input edges

Definition at line 128 of file INode.cpp.

129 {
130  return _input_edges;
131 }

Referenced by arm_compute::graph::detail::all_inputs_are_visited(), arm_compute::graph::get_driver_nodes(), and DepthConcatSubTensorMutator::mutate().

◆ input_id()

TensorID input_id ( size_t  idx) const

Returns the tensor ID of a given input of the node.

Note
Precondition : idx should be a valid input index
Parameters
[in]idxIndex of the node input
Returns
TensorID of the requested input

Definition at line 138 of file INode.cpp.

139 {
140  ARM_COMPUTE_ERROR_ON(idx >= _input_edges.size());
141  Edge *e = _graph->edge(_input_edges[idx]);
142  return (e != nullptr) ? e->tensor_id() : NullTensorID;
143 }

References ARM_COMPUTE_ERROR_ON, Graph::edge(), arm_compute::graph::NullTensorID, and Edge::tensor_id().

Referenced by StackLayerNode::configure_output(), ConcatenateLayerNode::configure_output(), FlattenLayerNode::forward_descriptors(), NormalizePlanarYUVLayerNode::forward_descriptors(), PReluLayerNode::forward_descriptors(), ReshapeLayerNode::forward_descriptors(), DequantizationLayerNode::forward_descriptors(), SoftmaxLayerNode::forward_descriptors(), ChannelShuffleLayerNode::forward_descriptors(), NormalizationLayerNode::forward_descriptors(), DetectionPostProcessLayerNode::forward_descriptors(), BoundingBoxTransformLayerNode::forward_descriptors(), GenerateProposalsLayerNode::forward_descriptors(), QuantizationLayerNode::forward_descriptors(), ResizeLayerNode::forward_descriptors(), ActivationLayerNode::forward_descriptors(), PermuteLayerNode::forward_descriptors(), DummyNode::forward_descriptors(), DepthToSpaceLayerNode::forward_descriptors(), ReductionLayerNode::forward_descriptors(), ROIAlignLayerNode::forward_descriptors(), PadLayerNode::forward_descriptors(), PriorBoxLayerNode::forward_descriptors(), ReorgLayerNode::forward_descriptors(), DetectionOutputLayerNode::forward_descriptors(), PoolingLayerNode::forward_descriptors(), BatchNormalizationLayerNode::forward_descriptors(), DeconvolutionLayerNode::forward_descriptors(), ArgMinMaxLayerNode::forward_descriptors(), PrintLayerNode::forward_descriptors(), SliceLayerNode::forward_descriptors(), L2NormalizeLayerNode::forward_descriptors(), SplitLayerNode::forward_descriptors(), EltwiseLayerNode::forward_descriptors(), StridedSliceLayerNode::forward_descriptors(), FullyConnectedLayerNode::forward_descriptors(), DepthwiseConvolutionLayerNode::forward_descriptors(), FusedConvolutionBatchNormalizationWithPostOpsNode::forward_descriptors(), ConvolutionLayerNode::forward_descriptors(), UnaryEltwiseLayerNode::forward_descriptors(), FusedConvolutionWithPostOpNode::forward_descriptors(), FusedDepthwiseConvolutionBatchNormalizationNode::forward_descriptors(), and FusedConvolutionBatchNormalizationNode::forward_descriptors().

◆ inputs()

const std::vector<TensorID>& inputs ( ) const

Returns inputs of the node.

Returns
Inputs of the node

◆ name()

std::string name ( ) const

Returns node's name.

Returns
Node name

Definition at line 108 of file INode.cpp.

109 {
110  return _common_params.name;
111 }

References NodeParams::name.

Referenced by arm_compute::graph::backends::detail::create_activation_layer(), arm_compute::graph::backends::detail::create_arg_min_max_layer(), arm_compute::graph::backends::detail::create_batch_normalization_layer(), arm_compute::graph::backends::detail::create_bounding_box_transform_layer(), arm_compute::graph::backends::detail::create_channel_shuffle_layer(), arm_compute::graph::backends::detail::create_concatenate_layer(), arm_compute::graph::backends::detail::create_convolution_layer(), arm_compute::graph::backends::detail::create_deconvolution_layer(), arm_compute::graph::backends::detail::create_depth_to_space_layer(), arm_compute::graph::backends::detail::create_depthwise_convolution_layer(), arm_compute::graph::backends::detail::create_dequantization_layer(), arm_compute::graph::backends::detail::create_detection_output_layer(), arm_compute::graph::backends::detail::create_detection_output_layer< CPPDetectionOutputLayer, CLTargetInfo >(), arm_compute::graph::backends::detail::create_detection_post_process_layer(), arm_compute::graph::backends::detail::create_detection_post_process_layer< CPPDetectionPostProcessLayer, CLTargetInfo >(), arm_compute::graph::backends::detail::create_eltwise_layer(), arm_compute::graph::backends::detail::create_flatten_layer(), arm_compute::graph::backends::detail::create_fully_connected_layer(), arm_compute::graph::backends::detail::create_fused_convolution_batch_normalization_layer(), arm_compute::graph::backends::detail::create_fused_convolution_batch_normalization_with_post_op(), arm_compute::graph::backends::detail::create_fused_convolution_with_post_op(), arm_compute::graph::backends::detail::create_fused_depthwise_convolution_batch_normalization_layer(), arm_compute::graph::backends::detail::create_l2_normalize_layer(), arm_compute::graph::backends::detail::create_normalization_layer(), arm_compute::graph::backends::detail::create_normalization_layer< NENormalizationLayer, NETargetInfo >(), arm_compute::graph::backends::detail::create_normalize_planar_yuv_layer(), arm_compute::graph::backends::detail::create_pad_layer(), arm_compute::graph::backends::detail::create_permute_layer(), arm_compute::graph::backends::detail::create_pooling_layer(), arm_compute::graph::backends::detail::create_prelu_layer(), arm_compute::graph::backends::detail::create_print_layer(), arm_compute::graph::backends::detail::create_priorbox_layer(), arm_compute::graph::backends::detail::create_quantization_layer(), arm_compute::graph::backends::detail::create_reduction_operation_layer(), arm_compute::graph::backends::detail::create_reorg_layer(), arm_compute::graph::backends::detail::create_reshape_layer(), arm_compute::graph::backends::detail::create_resize_layer(), arm_compute::graph::backends::detail::create_roi_align_layer(), arm_compute::graph::backends::detail::create_slice_layer(), arm_compute::graph::backends::detail::create_softmax_layer(), arm_compute::graph::backends::detail::create_stack_layer(), arm_compute::graph::backends::detail::create_strided_slice_layer(), arm_compute::graph::backends::detail::create_unary_eltwise_layer(), arm_compute::graph::detail::fuse_convolution_with_batch_normalization(), arm_compute::graph::detail::fuse_depthwise_convolution_with_batch_normalization(), DepthConcatSubTensorMutator::mutate(), SplitLayerSubTensorMutator::mutate(), arm_compute::graph::backends::detail::validate_arg_min_max_layer(), arm_compute::graph::backends::detail::validate_bounding_box_transform_layer(), arm_compute::graph::backends::detail::validate_channel_shuffle_layer(), arm_compute::graph::backends::detail::validate_convolution_layer(), arm_compute::graph::backends::detail::validate_depth_to_space_layer(), arm_compute::graph::backends::detail::validate_depthwise_convolution_layer(), arm_compute::graph::backends::detail::validate_dequantization_layer(), arm_compute::graph::backends::detail::validate_detection_output_layer(), arm_compute::graph::backends::detail::validate_detection_post_process_layer(), arm_compute::graph::backends::detail::validate_eltwise_Layer(), arm_compute::graph::backends::detail::validate_fused_convolution_with_post_op(), arm_compute::graph::backends::detail::validate_generate_proposals_layer(), arm_compute::graph::backends::detail::validate_l2_normalize_layer(), arm_compute::graph::backends::detail::validate_node(), arm_compute::graph::backends::detail::validate_normalize_planar_yuv_layer(), arm_compute::graph::backends::detail::validate_pad_layer(), arm_compute::graph::backends::detail::validate_permute_layer(), arm_compute::graph::backends::detail::validate_prelu_layer(), arm_compute::graph::backends::detail::validate_priorbox_layer(), arm_compute::graph::backends::detail::validate_quantization_layer(), arm_compute::graph::backends::detail::validate_reduction_operation_layer(), arm_compute::graph::backends::detail::validate_reorg_layer(), arm_compute::graph::backends::detail::validate_reshape_layer(), arm_compute::graph::backends::detail::validate_roi_align_layer(), arm_compute::graph::backends::detail::validate_slice_layer(), arm_compute::graph::backends::detail::validate_strided_slice_layer(), and arm_compute::graph::backends::detail::validate_unary_eltwise_layer().

◆ num_inputs()

size_t num_inputs ( ) const

Returns number of inputs of the node.

Returns
Number of inputs

Definition at line 179 of file INode.cpp.

180 {
181  return _input_edges.size();
182 }

Referenced by arm_compute::graph::detail::allocate_all_input_tensors(), arm_compute::graph::backends::detail::create_concatenate_layer(), arm_compute::graph::backends::detail::create_stack_layer(), arm_compute::graph::backends::detail::validate_arg_min_max_layer(), arm_compute::graph::backends::detail::validate_bounding_box_transform_layer(), arm_compute::graph::backends::detail::validate_channel_shuffle_layer(), arm_compute::graph::backends::detail::validate_convolution_layer(), arm_compute::graph::backends::detail::validate_depth_to_space_layer(), arm_compute::graph::backends::detail::validate_depthwise_convolution_layer(), arm_compute::graph::backends::detail::validate_dequantization_layer(), arm_compute::graph::backends::detail::validate_detection_output_layer(), arm_compute::graph::backends::detail::validate_detection_post_process_layer(), arm_compute::graph::backends::detail::validate_eltwise_Layer(), arm_compute::graph::backends::detail::validate_fused_convolution_with_post_op(), arm_compute::graph::backends::detail::validate_generate_proposals_layer(), arm_compute::graph::backends::detail::validate_l2_normalize_layer(), arm_compute::graph::backends::detail::validate_node(), arm_compute::graph::backends::detail::validate_normalize_planar_yuv_layer(), arm_compute::graph::backends::detail::validate_pad_layer(), arm_compute::graph::backends::detail::validate_permute_layer(), arm_compute::graph::backends::detail::validate_prelu_layer(), arm_compute::graph::backends::detail::validate_priorbox_layer(), arm_compute::graph::backends::detail::validate_quantization_layer(), arm_compute::graph::backends::detail::validate_reduction_operation_layer(), arm_compute::graph::backends::detail::validate_reorg_layer(), arm_compute::graph::backends::detail::validate_reshape_layer(), arm_compute::graph::backends::detail::validate_roi_align_layer(), arm_compute::graph::backends::detail::validate_slice_layer(), arm_compute::graph::backends::detail::validate_strided_slice_layer(), and arm_compute::graph::backends::detail::validate_unary_eltwise_layer().

◆ num_outputs()

size_t num_outputs ( ) const

Returns number of outputs of the node.

Returns
Number of outputs

Definition at line 184 of file INode.cpp.

185 {
186  return _outputs.size();
187 }

Referenced by arm_compute::graph::detail::allocate_all_output_tensors(), FullyConnectedLayerNode::compute_output_descriptor(), FullyConnectedLayerNode::compute_weights_descriptor(), arm_compute::graph::backends::detail::create_concatenate_layer(), arm_compute::graph::backends::detail::create_stack_layer(), arm_compute::graph::backends::detail::validate_arg_min_max_layer(), arm_compute::graph::backends::detail::validate_bounding_box_transform_layer(), arm_compute::graph::backends::detail::validate_channel_shuffle_layer(), arm_compute::graph::backends::detail::validate_convolution_layer(), arm_compute::graph::backends::detail::validate_depth_to_space_layer(), arm_compute::graph::backends::detail::validate_depthwise_convolution_layer(), arm_compute::graph::backends::detail::validate_dequantization_layer(), arm_compute::graph::backends::detail::validate_detection_output_layer(), arm_compute::graph::backends::detail::validate_detection_post_process_layer(), arm_compute::graph::backends::detail::validate_eltwise_Layer(), arm_compute::graph::backends::detail::validate_fused_convolution_with_post_op(), arm_compute::graph::backends::detail::validate_generate_proposals_layer(), arm_compute::graph::backends::detail::validate_l2_normalize_layer(), arm_compute::graph::backends::detail::validate_node(), arm_compute::graph::backends::detail::validate_normalize_planar_yuv_layer(), arm_compute::graph::backends::detail::validate_pad_layer(), arm_compute::graph::backends::detail::validate_permute_layer(), arm_compute::graph::backends::detail::validate_prelu_layer(), arm_compute::graph::backends::detail::validate_priorbox_layer(), arm_compute::graph::backends::detail::validate_quantization_layer(), arm_compute::graph::backends::detail::validate_reduction_operation_layer(), arm_compute::graph::backends::detail::validate_reorg_layer(), arm_compute::graph::backends::detail::validate_reshape_layer(), arm_compute::graph::backends::detail::validate_roi_align_layer(), arm_compute::graph::backends::detail::validate_slice_layer(), arm_compute::graph::backends::detail::validate_strided_slice_layer(), and arm_compute::graph::backends::detail::validate_unary_eltwise_layer().

◆ operator=() [1/2]

INode& operator= ( const INode )
delete

Prevent instances of this class from being copy assigned (As this class contains pointers)

◆ operator=() [2/2]

INode& operator= ( INode &&  )
default

Allow instances of this class to be move assigned.

◆ output()

Tensor * output ( size_t  idx) const

Returns the tensor of a given output of the node.

Note
Precondition : idx should be a valid output index
Parameters
[in]idxIndex of the node output
Returns
Tensor of the requested output

Definition at line 159 of file INode.cpp.

160 {
161  ARM_COMPUTE_ERROR_ON(_graph == nullptr);
162  ARM_COMPUTE_ERROR_ON(idx >= _outputs.size());
163  return _graph->tensor(_outputs[idx]);
164 }

References ARM_COMPUTE_ERROR_ON, and Graph::tensor().

Referenced by arm_compute::graph::detail::allocate_all_output_tensors(), arm_compute::graph::backends::detail::create_activation_layer(), arm_compute::graph::backends::detail::create_arg_min_max_layer(), arm_compute::graph::backends::detail::create_batch_normalization_layer(), arm_compute::graph::backends::detail::create_bounding_box_transform_layer(), arm_compute::graph::backends::detail::create_channel_shuffle_layer(), arm_compute::graph::backends::detail::create_concatenate_layer(), arm_compute::graph::backends::detail::create_convolution_layer(), arm_compute::graph::backends::detail::create_deconvolution_layer(), arm_compute::graph::backends::detail::create_depth_to_space_layer(), arm_compute::graph::backends::detail::create_depthwise_convolution_layer(), arm_compute::graph::backends::detail::create_dequantization_layer(), arm_compute::graph::backends::detail::create_detection_output_layer(), arm_compute::graph::backends::detail::create_detection_output_layer< CPPDetectionOutputLayer, CLTargetInfo >(), arm_compute::graph::backends::detail::create_detection_post_process_layer(), arm_compute::graph::backends::detail::create_detection_post_process_layer< CPPDetectionPostProcessLayer, CLTargetInfo >(), arm_compute::graph::backends::detail::create_eltwise_layer(), arm_compute::graph::backends::detail::create_flatten_layer(), arm_compute::graph::backends::detail::create_fully_connected_layer(), arm_compute::graph::backends::detail::create_fused_convolution_batch_normalization_layer(), arm_compute::graph::backends::detail::create_fused_convolution_batch_normalization_with_post_op(), arm_compute::graph::backends::detail::create_fused_convolution_with_post_op(), arm_compute::graph::backends::detail::create_fused_depthwise_convolution_batch_normalization_layer(), arm_compute::graph::backends::detail::create_generate_proposals_layer(), arm_compute::graph::backends::detail::create_l2_normalize_layer(), arm_compute::graph::backends::detail::create_normalization_layer(), arm_compute::graph::backends::detail::create_normalization_layer< NENormalizationLayer, NETargetInfo >(), arm_compute::graph::backends::detail::create_normalize_planar_yuv_layer(), arm_compute::graph::backends::detail::create_pad_layer(), arm_compute::graph::backends::detail::create_permute_layer(), arm_compute::graph::backends::detail::create_pooling_layer(), arm_compute::graph::backends::detail::create_prelu_layer(), arm_compute::graph::backends::detail::create_priorbox_layer(), arm_compute::graph::backends::detail::create_quantization_layer(), arm_compute::graph::backends::detail::create_reduction_operation_layer(), arm_compute::graph::backends::detail::create_reorg_layer(), arm_compute::graph::backends::detail::create_reshape_layer(), arm_compute::graph::backends::detail::create_resize_layer(), arm_compute::graph::backends::detail::create_roi_align_layer(), arm_compute::graph::backends::detail::create_slice_layer(), arm_compute::graph::backends::detail::create_softmax_layer(), arm_compute::graph::backends::detail::create_stack_layer(), arm_compute::graph::backends::detail::create_strided_slice_layer(), arm_compute::graph::backends::detail::create_unary_eltwise_layer(), FlattenLayerNode::forward_descriptors(), NormalizePlanarYUVLayerNode::forward_descriptors(), PReluLayerNode::forward_descriptors(), ConstNode::forward_descriptors(), InputNode::forward_descriptors(), ReshapeLayerNode::forward_descriptors(), DequantizationLayerNode::forward_descriptors(), ChannelShuffleLayerNode::forward_descriptors(), DetectionPostProcessLayerNode::forward_descriptors(), NormalizationLayerNode::forward_descriptors(), SoftmaxLayerNode::forward_descriptors(), BoundingBoxTransformLayerNode::forward_descriptors(), GenerateProposalsLayerNode::forward_descriptors(), ActivationLayerNode::forward_descriptors(), DummyNode::forward_descriptors(), PermuteLayerNode::forward_descriptors(), QuantizationLayerNode::forward_descriptors(), ResizeLayerNode::forward_descriptors(), DepthToSpaceLayerNode::forward_descriptors(), PadLayerNode::forward_descriptors(), ReductionLayerNode::forward_descriptors(), ROIAlignLayerNode::forward_descriptors(), PoolingLayerNode::forward_descriptors(), ReorgLayerNode::forward_descriptors(), DetectionOutputLayerNode::forward_descriptors(), PriorBoxLayerNode::forward_descriptors(), StackLayerNode::forward_descriptors(), BatchNormalizationLayerNode::forward_descriptors(), DeconvolutionLayerNode::forward_descriptors(), ArgMinMaxLayerNode::forward_descriptors(), PrintLayerNode::forward_descriptors(), SliceLayerNode::forward_descriptors(), L2NormalizeLayerNode::forward_descriptors(), SplitLayerNode::forward_descriptors(), ConcatenateLayerNode::forward_descriptors(), EltwiseLayerNode::forward_descriptors(), StridedSliceLayerNode::forward_descriptors(), FullyConnectedLayerNode::forward_descriptors(), DepthwiseConvolutionLayerNode::forward_descriptors(), FusedConvolutionBatchNormalizationWithPostOpsNode::forward_descriptors(), ConvolutionLayerNode::forward_descriptors(), UnaryEltwiseLayerNode::forward_descriptors(), FusedConvolutionWithPostOpNode::forward_descriptors(), FusedDepthwiseConvolutionBatchNormalizationNode::forward_descriptors(), FusedConvolutionBatchNormalizationNode::forward_descriptors(), GroupedConvolutionMutator::mutate(), SplitLayerSubTensorMutator::mutate(), DepthConcatSubTensorMutator::mutate(), arm_compute::graph::detail::transfer_driving_nodes_and_remove_old_node(), arm_compute::graph::backends::detail::validate_arg_min_max_layer(), arm_compute::graph::backends::detail::validate_bounding_box_transform_layer(), arm_compute::graph::backends::detail::validate_channel_shuffle_layer(), arm_compute::graph::backends::detail::validate_convolution_layer(), arm_compute::graph::backends::detail::validate_depth_to_space_layer(), arm_compute::graph::backends::detail::validate_depthwise_convolution_layer(), arm_compute::graph::backends::detail::validate_dequantization_layer(), arm_compute::graph::backends::detail::validate_detection_output_layer(), arm_compute::graph::backends::detail::validate_detection_post_process_layer(), arm_compute::graph::backends::detail::validate_eltwise_Layer(), arm_compute::graph::backends::detail::validate_fused_convolution_with_post_op(), arm_compute::graph::backends::detail::validate_generate_proposals_layer(), arm_compute::graph::backends::detail::validate_l2_normalize_layer(), arm_compute::graph::backends::detail::validate_normalize_planar_yuv_layer(), arm_compute::graph::backends::detail::validate_pad_layer(), arm_compute::graph::backends::detail::validate_permute_layer(), arm_compute::graph::backends::detail::validate_prelu_layer(), arm_compute::graph::backends::detail::validate_priorbox_layer(), arm_compute::graph::backends::detail::validate_quantization_layer(), arm_compute::graph::backends::detail::validate_reduction_operation_layer(), arm_compute::graph::backends::detail::validate_reorg_layer(), arm_compute::graph::backends::detail::validate_reshape_layer(), arm_compute::graph::backends::detail::validate_roi_align_layer(), arm_compute::graph::backends::detail::validate_slice_layer(), arm_compute::graph::backends::detail::validate_strided_slice_layer(), and arm_compute::graph::backends::detail::validate_unary_eltwise_layer().

◆ output_edges()

const std::set< EdgeID > & output_edges ( ) const

Returns output edge set.

Returns
Set of output edges

Definition at line 133 of file INode.cpp.

134 {
135  return _output_edges;
136 }

Referenced by arm_compute::graph::bfs(), arm_compute::graph::dfs(), arm_compute::graph::detail::fuse_layer(), arm_compute::graph::get_driving_nodes(), arm_compute::graph::detail::get_post_op_list(), and Graph::remove_node().

◆ output_id()

TensorID output_id ( size_t  idx) const

Returns the tensor ID of a given output of the node.

Note
Precondition : idx should be a valid output index
Parameters
[in]idxIndex of the node output
Returns
TensorID of the requested output

Definition at line 145 of file INode.cpp.

146 {
147  ARM_COMPUTE_ERROR_ON(idx >= _outputs.size());
148  return _outputs[idx];
149 }

References ARM_COMPUTE_ERROR_ON.

Referenced by FlattenLayerNode::forward_descriptors(), NormalizePlanarYUVLayerNode::forward_descriptors(), PReluLayerNode::forward_descriptors(), ConstNode::forward_descriptors(), ReshapeLayerNode::forward_descriptors(), InputNode::forward_descriptors(), DequantizationLayerNode::forward_descriptors(), SoftmaxLayerNode::forward_descriptors(), DetectionPostProcessLayerNode::forward_descriptors(), ChannelShuffleLayerNode::forward_descriptors(), NormalizationLayerNode::forward_descriptors(), BoundingBoxTransformLayerNode::forward_descriptors(), GenerateProposalsLayerNode::forward_descriptors(), QuantizationLayerNode::forward_descriptors(), ResizeLayerNode::forward_descriptors(), ActivationLayerNode::forward_descriptors(), PermuteLayerNode::forward_descriptors(), DummyNode::forward_descriptors(), DepthToSpaceLayerNode::forward_descriptors(), ReductionLayerNode::forward_descriptors(), ROIAlignLayerNode::forward_descriptors(), PadLayerNode::forward_descriptors(), PriorBoxLayerNode::forward_descriptors(), ReorgLayerNode::forward_descriptors(), DetectionOutputLayerNode::forward_descriptors(), PoolingLayerNode::forward_descriptors(), BatchNormalizationLayerNode::forward_descriptors(), DeconvolutionLayerNode::forward_descriptors(), ArgMinMaxLayerNode::forward_descriptors(), SliceLayerNode::forward_descriptors(), PrintLayerNode::forward_descriptors(), L2NormalizeLayerNode::forward_descriptors(), SplitLayerNode::forward_descriptors(), EltwiseLayerNode::forward_descriptors(), StridedSliceLayerNode::forward_descriptors(), FullyConnectedLayerNode::forward_descriptors(), DepthwiseConvolutionLayerNode::forward_descriptors(), FusedConvolutionBatchNormalizationWithPostOpsNode::forward_descriptors(), ConvolutionLayerNode::forward_descriptors(), UnaryEltwiseLayerNode::forward_descriptors(), FusedConvolutionWithPostOpNode::forward_descriptors(), FusedDepthwiseConvolutionBatchNormalizationNode::forward_descriptors(), and FusedConvolutionBatchNormalizationNode::forward_descriptors().

◆ outputs()

◆ post_op_info_list() [1/2]

std::list<std::unique_ptr<ConvPostOpInfo> >& post_op_info_list ( )

Post operator info list.

Returns
Post operator info list

◆ post_op_info_list() [2/2]

std::list< std::unique_ptr< ConvPostOpInfo > > & post_op_info_list ( ) const

◆ requested_target()

Target requested_target ( ) const

Returns requested target for this node.

Returns
Requested execution target

Definition at line 194 of file INode.cpp.

195 {
196  return _common_params.target;
197 }

References NodeParams::target.

◆ set_assigned_target()

void set_assigned_target ( Target  target)

Sets the final execution target.

Note
GraphManager might change this target
Parameters
[in]targetFinal execution target

Definition at line 72 of file INode.cpp.

73 {
74  _assigned_target = target;
75 }

Referenced by arm_compute::graph::detail::fuse_convolution_batch_normalization_with_post_ops(), and arm_compute::graph::detail::fuse_convolution_with_post_ops().

◆ set_common_node_parameters()

void set_common_node_parameters ( NodeParams  common_params)

Sets common node parameters.

Parameters
[in]common_paramsCommon node parameters to set

Definition at line 62 of file INode.cpp.

63 {
64  _common_params = std::move(common_params);
65 }

Referenced by GraphEdsr::setup().

◆ set_graph()

void set_graph ( Graph g)

Sets the graph that this node is registered to.

Parameters
[in]gBack reference to graph

Definition at line 51 of file INode.cpp.

52 {
53  ARM_COMPUTE_ERROR_ON(g == nullptr);
54  _graph = g;
55 }

References ARM_COMPUTE_ERROR_ON.

Referenced by Graph::add_node().

◆ set_id()

void set_id ( NodeID  id)

Sets the node id.

Parameters
[in]idNode id

Definition at line 57 of file INode.cpp.

58 {
59  _id = id;
60 }

References INode::id().

Referenced by Graph::add_node().

◆ set_output_tensor()

void set_output_tensor ( TensorID  tid,
size_t  idx 
)

Sets the output tensor of at a given index.

Note
All edges will get updated
Parameters
[in]tidTensor ID
[in]idxOutput index

Definition at line 77 of file INode.cpp.

78 {
79  if(tid != NullTensorID && (idx < _outputs.size()) && (_graph->tensor(tid) != nullptr))
80  {
81  ARM_COMPUTE_ERROR_ON(_graph == nullptr);
82  Tensor *updated_tensor = _graph->tensor(tid);
83  _outputs[idx] = tid;
84 
85  // Set tensor to all output edges of the node
86  for(auto &output_edge_id : _output_edges)
87  {
88  auto output_edge = _graph->edge(output_edge_id);
89  if(output_edge != nullptr)
90  {
91  // Unbind edge from current tensor
92  auto current_output_tensor = output_edge->tensor();
93  current_output_tensor->unbind_edge(output_edge->id());
94 
95  // Update tensor to edge and rebind tensor
96  output_edge->update_bound_tensor(updated_tensor);
97  updated_tensor->bind_edge(output_edge->id());
98  }
99  }
100  }
101 }

References ARM_COMPUTE_ERROR_ON, Tensor::bind_edge(), Graph::edge(), arm_compute::graph::NullTensorID, Edge::tensor(), Graph::tensor(), and Tensor::unbind_edge().

◆ set_requested_target()

void set_requested_target ( Target  target)

Sets target preference.

Note
This is not the target that the graph executor might choose, its just an indication
Parameters
[in]targetTarget preference

Definition at line 67 of file INode.cpp.

68 {
69  _common_params.target = target;
70 }

References NodeParams::target.

◆ type()

virtual NodeType type ( ) const
pure virtual

Returns node's type.

Returns
Node's type

Implemented in FusedConvolutionBatchNormalizationNode, FusedDepthwiseConvolutionBatchNormalizationNode, FusedConvolutionWithPostOpNode, UnaryEltwiseLayerNode, ConvolutionLayerNode, FusedConvolutionBatchNormalizationWithPostOpsNode, DepthwiseConvolutionLayerNode, FullyConnectedLayerNode, StridedSliceLayerNode, EltwiseLayerNode, ConcatenateLayerNode, SplitLayerNode, L2NormalizeLayerNode, PrintLayerNode, SliceLayerNode, ArgMinMaxLayerNode, DeconvolutionLayerNode, BatchNormalizationLayerNode, StackLayerNode, DetectionOutputLayerNode, PoolingLayerNode, PriorBoxLayerNode, ReorgLayerNode, DepthToSpaceLayerNode, PadLayerNode, ReductionLayerNode, ROIAlignLayerNode, ActivationLayerNode, DummyNode, PermuteLayerNode, QuantizationLayerNode, ResizeLayerNode, BoundingBoxTransformLayerNode, GenerateProposalsLayerNode, ChannelShuffleLayerNode, DetectionPostProcessLayerNode, NormalizationLayerNode, SoftmaxLayerNode, DequantizationLayerNode, ConstNode, InputNode, ReshapeLayerNode, FlattenLayerNode, NormalizePlanarYUVLayerNode, OutputNode, and PReluLayerNode.

Referenced by Graph::add_node(), CLFunctionFactory::create(), NEFunctionFactory::create(), arm_compute::graph::execute_task(), arm_compute::graph::is_utility_node(), DepthConcatSubTensorMutator::mutate(), GroupedConvolutionMutator::mutate(), SplitLayerSubTensorMutator::mutate(), Graph::remove_node(), NENodeValidator::validate(), CLNodeValidator::validate(), and arm_compute::graph::backends::detail::validate_node().

◆ validate()

Status validate ( ) const
virtual

Validate node.

Returns
Status containing any errors

Reimplemented in SplitLayerNode.

Definition at line 46 of file INode.cpp.

47 {
48  return Status{};
49 }

Friends And Related Function Documentation

◆ Graph

friend class Graph
friend

Definition at line 256 of file INode.h.


The documentation for this class was generated from the following files:
arm_compute::graph::Graph::edge
const Edge * edge(EdgeID id) const
Get edge object given its id.
Definition: Graph.cpp:214
arm_compute::graph::NodeParams::name
std::string name
Node name.
Definition: Types.h:276
ARM_COMPUTE_ERROR_ON
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
Definition: Error.h:467
arm_compute::graph::Edge::tensor
Tensor * tensor() const
Returns the tensor associated with this edge.
Definition: Edge.h:116
arm_compute::graph::Target::UNSPECIFIED
@ UNSPECIFIED
Unspecified Target.
arm_compute::detail::ObjectType::Tensor
@ Tensor
arm_compute::graph::Tensor::unbind_edge
void unbind_edge(EdgeID eid)
Unbinds an edge from a tensor.
Definition: Tensor.cpp:114
arm_compute::graph::Graph::tensor
const Tensor * tensor(TensorID id) const
Get tensor object given its id.
Definition: Graph.cpp:224
arm_compute::graph::NullTensorID
constexpr TensorID NullTensorID
Constant NodeID specifying an equivalent of null node.
Definition: Types.h:78
arm_compute::graph::INode::id
NodeID id() const
Returns node's ID.
Definition: INode.cpp:103
arm_compute::graph::EmptyNodeID
constexpr NodeID EmptyNodeID
Constant EdgeID specifying an equivalent of null edge.
Definition: Types.h:80
arm_compute::graph::Edge::tensor_id
TensorID tensor_id() const
Returns the tensor id associated with this edge.
Definition: Edge.h:124
arm_compute::graph::NodeParams::target
Target target
Node target.
Definition: Types.h:277