Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / src / inference_engine / builders / ie_input_layer_layer.cpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #include <builders/ie_input_layer.hpp>
6
7 #include <string>
8
9 using namespace InferenceEngine;
10
11 Builder::InputLayer::InputLayer(const std::string& name): LayerDecorator("Input", name) {
12     getLayer()->getOutputPorts().resize(1);
13 }
14
15 Builder::InputLayer::InputLayer(const Layer::Ptr& layer): LayerDecorator(layer) {
16     checkType("Input");
17 }
18
19 Builder::InputLayer::InputLayer(const Layer::CPtr& layer): LayerDecorator(layer) {
20     checkType("Input");
21 }
22
23 Builder::InputLayer& Builder::InputLayer::setName(const std::string& name) {
24     getLayer()->setName(name);
25     return *this;
26 }
27
28 const Port& Builder::InputLayer::getPort() const {
29     return getLayer()->getOutputPorts()[0];
30 }
31
32 Builder::InputLayer& Builder::InputLayer::setPort(const Port &port) {
33     getLayer()->getOutputPorts()[0] = port;
34     return *this;
35 }
36
37 REG_VALIDATOR_FOR(Input, [] (const InferenceEngine::Builder::Layer::CPtr& layer, bool partial) {
38     if (layer->getOutputPorts()[0].shape().empty())
39         THROW_IE_EXCEPTION << layer->getType() << " node " << layer->getName() << " should have shape!";
40 });