aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/graph/frontend/Layers.h
diff options
context:
space:
mode:
Diffstat (limited to 'arm_compute/graph/frontend/Layers.h')
-rw-r--r--arm_compute/graph/frontend/Layers.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/arm_compute/graph/frontend/Layers.h b/arm_compute/graph/frontend/Layers.h
index 0a1a0cf1e4..cf80dd9f4e 100644
--- a/arm_compute/graph/frontend/Layers.h
+++ b/arm_compute/graph/frontend/Layers.h
@@ -445,6 +445,33 @@ private:
NormalizationLayerInfo _norm_info;
};
+/** Permute Layer */
+class PermuteLayer final : public ILayer
+{
+public:
+ /** Construct a permute layer.
+ *
+ * @param[in] perm Permutation vector.
+ * @param[in] layout (Optional) Data layout to assign to permuted tensor.
+ * If UNKNOWN then the input's layout will be used.
+ */
+ PermuteLayer(PermutationVector perm, DataLayout layout = DataLayout::UNKNOWN)
+ : _perm(perm), _layout(layout)
+ {
+ }
+
+ NodeID create_layer(IStream &s) override
+ {
+ NodeParams common_params = { name(), s.hints().target_hint };
+ NodeIdxPair input = { s.tail_node(), 0 };
+ return GraphBuilder::add_permute_node(s.graph(), common_params, input, _perm, _layout);
+ }
+
+private:
+ PermutationVector _perm;
+ DataLayout _layout;
+};
+
/** Pooling Layer */
class PoolingLayer final : public ILayer
{