7 #include <details/caseless.hpp>
8 #include <ie_parameter.hpp>
28 details::caseless_map<std::string, std::function<void(const Layer&)>>
validators;
34 class INFERENCE_ENGINE_API_CLASS(Layer) {
41 explicit Layer(
const std::string& type,
const std::string& name =
"");
57 Layer(
idx_t id,
const Layer& layer);
69 std::string& getType();
74 const std::string& getType()
const;
80 Layer& setType(
const std::string& type);
86 std::string& getName();
91 const std::string& getName()
const;
97 Layer& setName(
const std::string& name);
120 std::map<std::string, Parameter>& getParameters();
125 const std::map<std::string, Parameter>& getParameters()
const;
131 Layer& setParameters(
const std::map<std::string, Parameter>& params);
137 std::map<std::string, Blob::CPtr>& getConstantData();
142 const std::map<std::string, Blob::CPtr>& getConstantData()
const;
148 Layer& setConstantData(
const std::map<std::string, Blob::Ptr>& constData);
154 Layer& setConstantData(
const std::map<std::string, Blob::CPtr>& constData);
161 Layer& addConstantData(
const std::string& name,
const Blob::CPtr& data);
167 std::vector<Port>& getInputPorts();
172 const std::vector<Port>& getInputPorts()
const;
178 Layer& setInputPorts(
const std::vector<Port> &ports);
184 std::vector<Port>& getOutputPorts();
189 const std::vector<Port>& getOutputPorts()
const;
195 Layer& setOutputPorts(
const std::vector<Port> &ports);
206 void validate()
const;
213 static void addValidator(
const std::string& type,
const std::function<
void(
const Layer&)>& validator);
220 std::vector<Port> inPorts;
221 std::vector<Port> outPorts;
222 std::map<std::string, Parameter> params;
223 std::map<std::string, Blob::CPtr> constData;
225 static std::shared_ptr<ValidatorsHolder> getValidatorsHolder();
239 InferenceEngine::Builder::Layer::addValidator(type, validator);
243 #define REG_VALIDATOR_FOR(__type, __validator) \
244 static InferenceEngine::Builder::ValidatorRegisterBase _reg_##__type(#__type, __validator)
Definition: ie_argmax_layer.hpp:11
std::shared_ptr< const ILayer > CPtr
A shared pointer to the const ILayer object.
Definition: ie_inetwork.hpp:227
a header file for the Inference Engine Network interface
details::caseless_map< std::string, std::function< void(const Layer &)> > validators
Caseless map connects type with validator.
Definition: ie_layer_builder.hpp:28
A header file for Blob and generic TBlob<>
ValidatorRegisterBase(const std::string &type, const std::function< void(const Layer &)> &validator)
The constructor registers new layer validator.
Definition: ie_layer_builder.hpp:238
This structure implements a holder for validators.
Definition: ie_layer_builder.hpp:24
size_t idx_t
A type of network objects indexes.
Definition: ie_inetwork.hpp:26
std::shared_ptr< ILayer > Ptr
A shared pointer to the ILayer object.
Definition: ie_inetwork.hpp:223
std::shared_ptr< const Blob > CPtr
A smart pointer to the const Blob object.
Definition: ie_blob.h:43
This class registers layer validators.
Definition: ie_layer_builder.hpp:231
std::shared_ptr< INetwork > Ptr
A shared pointer to the INetwork object.
Definition: ie_inetwork.hpp:294