ArmNN
 20.02
DepthToSpaceLayer.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2019 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
9 
10 namespace armnn
11 {
12 
13 /// This layer represents a DepthToSpace operation.
14 class DepthToSpaceLayer : public LayerWithParameters<DepthToSpaceDescriptor>
15 {
16 public:
17  /// Makes a workload for the DepthToSpace type.
18  /// @param [in] graph The graph where this layer can be found.
19  /// @param [in] factory The workload factory which will create the workload.
20  /// @return A pointer to the created workload, or nullptr if not created.
21  virtual std::unique_ptr<IWorkload> CreateWorkload(const IWorkloadFactory& factory) const override;
22 
23  /// Creates a dynamically-allocated copy of this layer.
24  /// @param [in] graph The graph into which this layer is being cloned.
25  DepthToSpaceLayer* Clone(Graph& graph) const override;
26 
27  /// By default returns inputShapes if the number of inputs are equal to number of outputs,
28  /// otherwise infers the output shapes from given input shapes and layer properties.
29  /// @param [in] inputShapes The input shapes layer has.
30  /// @return A vector to the inferred output shape.
31  std::vector<TensorShape> InferOutputShapes(const std::vector<TensorShape>& inputShapes) const override;
32 
33  /// Check if the input tensor shape(s)
34  /// will lead to a valid configuration of @ref DepthToSpaceLayer.
35  void ValidateTensorShapesFromInputs() override;
36 
37  void Accept(ILayerVisitor& visitor) const override;
38 
39 protected:
40  /// Constructor to create a DepthToSpaceLayer.
41  /// @param [in] param DepthToSpaceDescriptor to configure the DepthToSpaceLayer operation.
42  /// @param [in] name Optional name for the layer.
43  DepthToSpaceLayer(const DepthToSpaceDescriptor& param, const char* name);
44 
45  /// Default destructor
46  ~DepthToSpaceLayer() = default;
47 };
48 
49 } // namespace armnn
DepthToSpaceLayer(const DepthToSpaceDescriptor &param, const char *name)
Constructor to create a DepthToSpaceLayer.
void Accept(ILayerVisitor &visitor) const override
Apply a visitor to this layer.
DepthToSpaceLayer * Clone(Graph &graph) const override
Creates a dynamically-allocated copy of this layer.
std::vector< TensorShape > InferOutputShapes(const std::vector< TensorShape > &inputShapes) const override
By default returns inputShapes if the number of inputs are equal to number of outputs, otherwise infers the output shapes from given input shapes and layer properties.
Copyright (c) 2020 ARM Limited.
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
~DepthToSpaceLayer()=default
Default destructor.
void ValidateTensorShapesFromInputs() override
Check if the input tensor shape(s) will lead to a valid configuration of DepthToSpaceLayer.
virtual std::unique_ptr< IWorkload > CreateWorkload(const IWorkloadFactory &factory) const override
Makes a workload for the DepthToSpace type.
This layer represents a DepthToSpace operation.