ie_permute_layer.hpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4 
5 #pragma once
6 
7 #include <builders/ie_layer_decorator.hpp>
8 #include <vector>
9 #include <string>
10 
11 namespace InferenceEngine {
12 namespace Builder {
13 
14 /**
15  * @brief The class represents a builder for Permute layer
16  */
17 class INFERENCE_ENGINE_API_CLASS(PermuteLayer): public LayerDecorator {
18 public:
19  /**
20  * @brief The constructor creates a builder with the name
21  * @param name Layer name
22  */
23  explicit PermuteLayer(const std::string& name = "");
24  /**
25  * @brief The constructor creates a builder from generic builder
26  * @param layer pointer to generic builder
27  */
28  explicit PermuteLayer(const Layer::Ptr& layer);
29  /**
30  * @brief The constructor creates a builder from generic builder
31  * @param layer constant pointer to generic builder
32  */
33  explicit PermuteLayer(const Layer::CPtr& layer);
34  /**
35  * @brief Sets the name for the layer
36  * @param name Layer name
37  * @return reference to layer builder
38  */
39  PermuteLayer& setName(const std::string& name);
40 
41  /**
42  * @brief Returns input port
43  * @return Input port
44  */
45  const Port& getInputPort() const;
46  /**
47  * @brief Sets input port
48  * @param port Input port
49  * @return reference to layer builder
50  */
51  PermuteLayer& setInputPort(const Port& port);
52  /**
53  * @brief Returns output port
54  * @return Output port
55  */
56  const Port& getOutputPort() const;
57  /**
58  * @brief Sets output port
59  * @param port Output port
60  * @return reference to layer builder
61  */
62  PermuteLayer& setOutputPort(const Port& port);
63  /**
64  * @brief Return vector of dimensions indexes for output blob
65  * @return Order of dimensions for output blob
66  */
67  const std::vector<size_t> getOrder() const;
68  /**
69  * @brief Sets the order of dimensions for output blob
70  * @param order dimensions indexes for output blob
71  * @return reference to layer builder
72  */
73  PermuteLayer& setOrder(const std::vector<size_t>& order);
74 };
75 
76 } // namespace Builder
77 } // namespace InferenceEngine
78 
Definition: ie_argmax_layer.hpp:11