COMPMID-1097: Port mobilenet to NHWC
Change-Id: I789065bfa0d4ef133388e1904c5caf31e450f80f
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/129495
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
diff --git a/arm_compute/graph/nodes/ActivationLayerNode.h b/arm_compute/graph/nodes/ActivationLayerNode.h
index 985e10a..570351b 100644
--- a/arm_compute/graph/nodes/ActivationLayerNode.h
+++ b/arm_compute/graph/nodes/ActivationLayerNode.h
@@ -46,7 +46,6 @@
ActivationLayerInfo activation_info() const;
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/BatchNormalizationLayerNode.h b/arm_compute/graph/nodes/BatchNormalizationLayerNode.h
index b36d669..a364d1c 100644
--- a/arm_compute/graph/nodes/BatchNormalizationLayerNode.h
+++ b/arm_compute/graph/nodes/BatchNormalizationLayerNode.h
@@ -57,7 +57,6 @@
void set_fused_activation(ActivationLayerInfo fused_activation);
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/ConstNode.h b/arm_compute/graph/nodes/ConstNode.h
index 346a3c8..3216a3a 100644
--- a/arm_compute/graph/nodes/ConstNode.h
+++ b/arm_compute/graph/nodes/ConstNode.h
@@ -41,7 +41,6 @@
ConstNode(TensorDescriptor desc);
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/ConvolutionLayerNode.h b/arm_compute/graph/nodes/ConvolutionLayerNode.h
index d029895..d1186a8 100644
--- a/arm_compute/graph/nodes/ConvolutionLayerNode.h
+++ b/arm_compute/graph/nodes/ConvolutionLayerNode.h
@@ -59,18 +59,19 @@
* @return Convolution information
*/
PadStrideInfo convolution_info() const;
- /** Computes convolution output shape
+ /** Computes convolution output descriptor
*
- * @param[in] input_shape Input shape
- * @param[in] weights_shape Weights shape
- * @param[in] info Convolution operation attributes
+ * @param[in] input_descriptor Input descriptor
+ * @param[in] weights_descriptor Weights descriptor
+ * @param[in] info Convolution operation attributes
*
- * @return Output shape
+ * @return Output descriptor
*/
- static TensorShape compute_output_shape(TensorShape input_shape, TensorShape weights_shape, PadStrideInfo info);
+ static TensorDescriptor compute_output_descriptor(const TensorDescriptor &input_descriptor,
+ const TensorDescriptor &weights_descriptor,
+ const PadStrideInfo &info);
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/DepthConcatenateLayerNode.h b/arm_compute/graph/nodes/DepthConcatenateLayerNode.h
index cb309f3..ffdec70 100644
--- a/arm_compute/graph/nodes/DepthConcatenateLayerNode.h
+++ b/arm_compute/graph/nodes/DepthConcatenateLayerNode.h
@@ -39,13 +39,13 @@
* @param[in] total_nodes Number of nodes that will get concatenated
*/
DepthConcatenateLayerNode(unsigned int total_nodes);
- /** Computes depth concatenations output shape
+ /** Computes depth concatenations output descriptor
*
- * @param input_shapes Shapes of the inputs
+ * @param[in] input_descriptors Input descriptors
*
- * @return Expected output shape
+ * @return Expected output descriptor
*/
- static TensorShape compute_output_shape(const std::vector<TensorShape> &input_shapes);
+ static TensorDescriptor compute_output_descriptor(const std::vector<TensorDescriptor> &input_descriptors);
/** Disables or not the depth concatenate node
*
* @warning This is used when depth concatenate is performed with sub-tensors,
@@ -63,7 +63,6 @@
bool is_enabled() const;
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/DepthwiseConvolutionLayerNode.h b/arm_compute/graph/nodes/DepthwiseConvolutionLayerNode.h
index b4cf9b4..df6f456 100644
--- a/arm_compute/graph/nodes/DepthwiseConvolutionLayerNode.h
+++ b/arm_compute/graph/nodes/DepthwiseConvolutionLayerNode.h
@@ -58,18 +58,19 @@
* @return Convolution information
*/
PadStrideInfo convolution_info() const;
- /** Computes depthwise convolution output shape
+ /** Computes depthwise convolution output descriptor
*
- * @param[in] input_shape Input shape
- * @param[in] weights_shape Weights shape
- * @param[in] info Convolution operation attributes
+ * @param[in] input_descriptor Input descriptor
+ * @param[in] weights_descriptor Weights descriptor
+ * @param[in] info Convolution operation attributes
*
- * @return Output shape
+ * @return Output descriptor
*/
- static TensorShape compute_output_shape(TensorShape input_shape, TensorShape weights_shape, PadStrideInfo info);
+ static TensorDescriptor compute_output_descriptor(const TensorDescriptor &input_descriptor,
+ const TensorDescriptor &weights_descriptor,
+ const PadStrideInfo &info);
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/EltwiseLayerNode.h b/arm_compute/graph/nodes/EltwiseLayerNode.h
index 9da88d7..5b9fa84 100644
--- a/arm_compute/graph/nodes/EltwiseLayerNode.h
+++ b/arm_compute/graph/nodes/EltwiseLayerNode.h
@@ -46,7 +46,6 @@
EltwiseOperation eltwise_operation() const;
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/FlattenLayerNode.h b/arm_compute/graph/nodes/FlattenLayerNode.h
index f0dde1f..18a96ab 100644
--- a/arm_compute/graph/nodes/FlattenLayerNode.h
+++ b/arm_compute/graph/nodes/FlattenLayerNode.h
@@ -38,7 +38,6 @@
FlattenLayerNode();
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/FullyConnectedLayerNode.h b/arm_compute/graph/nodes/FullyConnectedLayerNode.h
index 166751b..3d1b689 100644
--- a/arm_compute/graph/nodes/FullyConnectedLayerNode.h
+++ b/arm_compute/graph/nodes/FullyConnectedLayerNode.h
@@ -39,29 +39,28 @@
* @param[in] num_outputs Number of neurons in the layer
*/
FullyConnectedLayerNode(unsigned int num_outputs);
- /** Computes weights shape
+ /** Computes weights descriptor
*
* @warning Works for inputs with 1D batch space
*
- * @param[in] input_shape Input shape
- * @param[in] num_outputs Number of output neurons
+ * @param[in] input_descriptor Input descriptor
+ * @param[in] num_outputs Number of output neurons
*
- * @return Weights shape
+ * @return Weights descriptor
*/
- static TensorShape compute_weights_shape(TensorShape input_shape, unsigned int num_outputs);
- /** Computes fully connected layer output shape
+ static TensorDescriptor compute_weights_descriptor(const TensorDescriptor &input_descriptor, unsigned int num_outputs);
+ /** Computes fully connected layer output descriptor
*
* @warning Works for inputs with 1D batch space
*
- * @param[in] input_shape Input shape
- * @param[in] num_outputs Number of output neurons
+ * @param[in] input_descriptor Input descriptor
+ * @param[in] num_outputs Number of output neurons
*
- * @return Output shape
+ * @return Output descriptor
*/
- static TensorShape compute_output_shape(TensorShape input_shape, unsigned int num_outputs);
+ static TensorDescriptor compute_output_descriptor(const TensorDescriptor &input_descriptor, unsigned int num_outputs);
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/InputNode.h b/arm_compute/graph/nodes/InputNode.h
index cacea95..4297c8a 100644
--- a/arm_compute/graph/nodes/InputNode.h
+++ b/arm_compute/graph/nodes/InputNode.h
@@ -41,7 +41,6 @@
InputNode(TensorDescriptor desc);
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/NormalizationLayerNode.h b/arm_compute/graph/nodes/NormalizationLayerNode.h
index 34dc3cc..43040e1 100644
--- a/arm_compute/graph/nodes/NormalizationLayerNode.h
+++ b/arm_compute/graph/nodes/NormalizationLayerNode.h
@@ -46,7 +46,6 @@
NormalizationLayerInfo normalization_info() const;
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/OutputNode.h b/arm_compute/graph/nodes/OutputNode.h
index 46988cf..03d41eb 100644
--- a/arm_compute/graph/nodes/OutputNode.h
+++ b/arm_compute/graph/nodes/OutputNode.h
@@ -38,7 +38,6 @@
OutputNode();
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/PoolingLayerNode.h b/arm_compute/graph/nodes/PoolingLayerNode.h
index e250eb2..d037ea2 100644
--- a/arm_compute/graph/nodes/PoolingLayerNode.h
+++ b/arm_compute/graph/nodes/PoolingLayerNode.h
@@ -44,17 +44,16 @@
* @return Pooling Layer info
*/
PoolingLayerInfo pooling_info() const;
- /** Computes pooling output shape
+ /** Computes pooling output descriptor
*
- * @param[in] input_shape Input shape
- * @param[in] info Pooling operation attributes
+ * @param[in] input_descriptor Input descriptor
+ * @param[in] info Pooling operation attributes
*
- * @return Output shape
+ * @return Output descriptor
*/
- static TensorShape compute_output_shape(TensorShape input_shape, PoolingLayerInfo info);
+ static TensorDescriptor compute_output_descriptor(const TensorDescriptor &input_descriptor, PoolingLayerInfo info);
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/ReshapeLayerNode.h b/arm_compute/graph/nodes/ReshapeLayerNode.h
index ded344e..5161af8 100644
--- a/arm_compute/graph/nodes/ReshapeLayerNode.h
+++ b/arm_compute/graph/nodes/ReshapeLayerNode.h
@@ -41,7 +41,6 @@
ReshapeLayerNode(TensorShape shape);
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/SoftmaxLayerNode.h b/arm_compute/graph/nodes/SoftmaxLayerNode.h
index 8b71604..6ace58d 100644
--- a/arm_compute/graph/nodes/SoftmaxLayerNode.h
+++ b/arm_compute/graph/nodes/SoftmaxLayerNode.h
@@ -46,7 +46,6 @@
float beta() const;
// Inherited overridden methods:
- Status validate() override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;
diff --git a/arm_compute/graph/nodes/SplitLayerNode.h b/arm_compute/graph/nodes/SplitLayerNode.h
index 923b3d1..abd28ae 100644
--- a/arm_compute/graph/nodes/SplitLayerNode.h
+++ b/arm_compute/graph/nodes/SplitLayerNode.h
@@ -42,16 +42,17 @@
* @param[in] axis (Optional) Axis to split on. Supported axis >= 2. Defaults to 0
*/
SplitLayerNode(unsigned int num_splits, unsigned int axis = 0);
- /** Computes split layer output shape
+ /** Computes split layer output descriptor
*
- * @param[in] input_shape Shape of the input
- * @param[in] num_splits Number of splits
- * @param[in] axis Axis to perform the split on
- * @param[in] idx Index of the split
+ * @param[in] input_descriptor Descriptor of the input tensor
+ * @param[in] num_splits Number of splits
+ * @param[in] axis Axis to perform the split on
+ * @param[in] idx Index of the split
*
- * @return A pair with the shape of the split and the starting coordinates
+ * @return A pair with the descriptor of the split and the starting coordinates
*/
- static std::pair<TensorShape, Coordinates> compute_output_shape(TensorShape input_shape, unsigned int num_splits, unsigned int axis, unsigned int idx);
+ static std::pair<TensorDescriptor, Coordinates> compute_output_descriptor(const TensorDescriptor &input_descriptor,
+ unsigned int num_splits, unsigned int axis, unsigned int idx);
/** Number of splits accessor
*
* @return Number of splits
@@ -64,7 +65,7 @@
unsigned int axis() const;
// Inherited overridden methods:
- Status validate() override;
+ Status validate() const override;
NodeType type() const override;
bool forward_descriptors() override;
TensorDescriptor configure_output(size_t idx) const override;