9 #include <details/caseless.hpp>
10 #include <ie_network.hpp>
11 #include <ie_parameter.hpp>
30 details::caseless_map<std::string, std::function<void(const std::shared_ptr<const Layer>&, bool)>>
validators;
33 IE_SUPPRESS_DEPRECATED_START
39 class INFERENCE_ENGINE_NN_BUILDER_API_CLASS(Layer):
public ILayer,
public std::enable_shared_from_this<Layer> {
44 using Ptr = std::shared_ptr<Layer>;
48 using CPtr = std::shared_ptr<const Layer>;
55 explicit Layer(
const std::string& type,
const std::string& name =
"");
68 Layer(
idx_t id,
const Layer& layer);
75 bool operator==(
const Layer& rhs)
const {
76 return params == rhs.params;
83 idx_t getId()
const noexcept
override;
89 const std::string& getName()
const noexcept
override;
96 Layer& setName(
const std::string& name);
102 const std::string& getType()
const noexcept
override;
109 Layer& setType(
const std::string& type);
115 const std::map<std::string, Parameter>& getParameters()
const noexcept
override;
120 std::map<std::string, Parameter>& getParameters();
127 Layer& setParameters(
const std::map<std::string, Parameter>& params);
133 const std::vector<Port>& getInputPorts()
const noexcept
override;
139 std::vector<Port>& getInputPorts();
146 Layer& setInputPorts(
const std::vector<Port>& ports);
153 const std::vector<Port>& getOutputPorts()
const noexcept
override;
158 std::vector<Port>& getOutputPorts();
165 Layer& setOutputPorts(
const std::vector<Port>& ports);
176 void validate(
bool partial =
false)
const;
183 static void addValidator(
const std::string& type,
const std::function<
void(
const Layer::CPtr&,
bool)>& validator);
189 std::vector<Port> inPorts;
190 std::vector<Port> outPorts;
191 std::map<std::string, Parameter> params;
192 static std::shared_ptr<ValidatorsHolder> getValidatorsHolder();
207 const std::function<
void(
const Layer::CPtr&,
bool)>& validator) {
208 InferenceEngine::Builder::Layer::addValidator(type, validator);
212 IE_SUPPRESS_DEPRECATED_END
214 #define REG_VALIDATOR_FOR(__type, __validator) \
215 static InferenceEngine::Builder::ValidatorRegisterBase _reg_##__type(#__type, __validator)
Inference Engine API.
Definition: ie_argmax_layer.hpp:11
std::shared_ptr< const ILayer > CPtr
A shared pointer to the const ILayer object.
Definition: ie_network.hpp:327
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:206
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:30
This structure implements a holder for validators.
Definition: ie_layer_builder.hpp:26
size_t idx_t
A type of network objects indexes.
Definition: ie_network.hpp:28
This class is the main interface to describe the Inference Engine layer. All methods here are constan...
Definition: ie_network.hpp:320
This class registers layer validators.
Definition: ie_layer_builder.hpp:199