7 #include <details/caseless.hpp>
8 #include <ie_parameter.hpp>
9 #include <ie_network.hpp>
28 details::caseless_map<std::string, std::function<void(const std::shared_ptr<const Layer>&, bool)>>
validators;
34 class INFERENCE_ENGINE_API_CLASS(Layer):
public ILayer,
35 public std::enable_shared_from_this<Layer> {
40 using Ptr = std::shared_ptr<Layer>;
44 using CPtr = std::shared_ptr<const Layer>;
51 explicit Layer(
const std::string& type,
const std::string& name =
"");
70 return params == rhs.params;
77 idx_t getId()
const noexcept
override;
83 const std::string& getName()
const noexcept
override;
89 Layer& setName(
const std::string& name);
95 const std::string& getType()
const noexcept
override;
101 Layer& setType(
const std::string& type);
107 const std::map<std::string, Parameter>& getParameters()
const noexcept
override;
112 std::map<std::string, Parameter>& getParameters();
118 Layer& setParameters(
const std::map<std::string, Parameter>& params);
124 const std::vector<Port>& getInputPorts()
const noexcept
override;
129 std::vector<Port>& getInputPorts();
135 Layer& setInputPorts(
const std::vector<Port> &ports);
141 const std::vector<Port>& getOutputPorts()
const noexcept
override;
146 std::vector<Port>& getOutputPorts();
152 Layer& setOutputPorts(
const std::vector<Port> &ports);
163 void validate(
bool partial =
false)
const;
170 static void addValidator(
const std::string& type,
const std::function<
void(
const Layer::CPtr&,
bool)>& validator);
176 std::vector<Port> inPorts;
177 std::vector<Port> outPorts;
178 std::map<std::string, Parameter> params;
179 static std::shared_ptr<ValidatorsHolder> getValidatorsHolder();
197 #define REG_VALIDATOR_FOR(__type, __validator) \
198 static InferenceEngine::Builder::ValidatorRegisterBase _reg_##__type(#__type, __validator)
This class implements a builder for IE Layer.
Definition: ie_layer_builder.hpp:34
Definition: ie_argmax_layer.hpp:11
std::shared_ptr< const Layer > CPtr
A shared pointer to the constant Layer builder.
Definition: ie_layer_builder.hpp:44
std::shared_ptr< const ILayer > CPtr
A shared pointer to the const ILayer object.
Definition: ie_network.hpp:298
A header file for Blob and generic TBlob<>
ValidatorRegisterBase(const std::string &type, const std::function< void(const Layer::CPtr &, bool)> &validator)
The constructor registers new layer validator.
Definition: ie_layer_builder.hpp:192
details::caseless_map< std::string, std::function< void(const std::shared_ptr< const Layer > &, bool)> > validators
Caseless map connects type with validator.
Definition: ie_layer_builder.hpp:28
std::shared_ptr< Layer > Ptr
A shared pointer to the Layer builder.
Definition: ie_layer_builder.hpp:40
This structure implements a holder for validators.
Definition: ie_layer_builder.hpp:24
static void addValidator(const std::string &type, const std::function< void(const Layer::CPtr &, bool)> &validator)
Registers a new validator for type.
bool operator==(const Layer &rhs) const
Compares the given Layer builder with the current one.
Definition: ie_layer_builder.hpp:69
This class is the main interface to describe the Inference Engine layer. All methods here are constan...
Definition: ie_network.hpp:293
This class registers layer validators.
Definition: ie_layer_builder.hpp:185