ArmNN
 22.05
Convolution3dLayer.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
9 
10 namespace armnn
11 {
12 
13 class ScopedTensorHandle;
14 
15 /// This layer represents a convolution 3d operation.
16 class Convolution3dLayer : public LayerWithParameters<Convolution3dDescriptor>
17 {
18 public:
19  /// Makes a workload for the Convolution3d type.
20  /// @param [in] graph The graph where this layer can be found.
21  /// @param [in] factory The workload factory which will create the workload.
22  /// @return A pointer to the created workload, or nullptr if not created.
23  virtual std::unique_ptr<IWorkload> CreateWorkload(const IWorkloadFactory& factory) const override;
24 
25  /// Creates a dynamically-allocated copy of this layer.
26  /// @param [in] graph The graph into which this layer is being cloned.
27  Convolution3dLayer* Clone(Graph& graph) const override;
28 
29  /// Check if the input tensor shape(s)
30  /// will lead to a valid configuration of @ref Convolution3dLayer.
31  /// @param [in] shapeInferenceMethod Indicates if output shape shall be overwritten or just validated.
32  void ValidateTensorShapesFromInputs() override;
33 
34  /// By default returns inputShapes if the number of inputs are equal to number of outputs,
35  /// otherwise infers the output shapes from given input shapes and layer properties.
36  /// @param [in] inputShapes The input shapes layer has.
37  /// @return A vector to the inferred output shape.
38  std::vector<TensorShape> InferOutputShapes(const std::vector<TensorShape>& inputShapes) const override;
39 
41  void Accept(ILayerVisitor& visitor) const override;
43 
44  void ExecuteStrategy(IStrategy& strategy) const override;
45 
47 
48 protected:
49  /// Constructor to create a Convolution3dLayer.
50  /// @param [in] param Convolution3dDescriptor to configure the convolution3d operation.
51  /// @param [in] name Optional name for the layer.
52  Convolution3dLayer(const Convolution3dDescriptor& param, const char* name);
53 
54  /// Default destructor
55  ~Convolution3dLayer() = default;
56 };
57 
58 } // namespace
virtual std::unique_ptr< IWorkload > CreateWorkload(const IWorkloadFactory &factory) const override
Makes a workload for the Convolution3d type.
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
Definition: Deprecated.hpp:33
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) 2021 ARM Limited and Contributors.
ARMNN_NO_DEPRECATE_WARN_END void ExecuteStrategy(IStrategy &strategy) const override
Apply a visitor to this layer.
void SerializeLayerParameters(ParameterStringifyFunction &fn) const override
Helper to serialize the layer parameters to string.
ARMNN_NO_DEPRECATE_WARN_BEGIN void Accept(ILayerVisitor &visitor) const override
#define ARMNN_NO_DEPRECATE_WARN_END
Definition: Deprecated.hpp:34
Convolution3dLayer * Clone(Graph &graph) const override
Creates a dynamically-allocated copy of this layer.
A Convolution3dDescriptor for the Convolution3dLayer.
Convolution3dLayer(const Convolution3dDescriptor &param, const char *name)
Constructor to create a Convolution3dLayer.
void ValidateTensorShapesFromInputs() override
Check if the input tensor shape(s) will lead to a valid configuration of Convolution3dLayer.
This layer represents a convolution 3d operation.
std::function< void(const std::string &name, const std::string &value)> ParameterStringifyFunction
~Convolution3dLayer()=default
Default destructor.