Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / src / inference_engine / builders / ie_resample_layer.cpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #include <builders/ie_resample_layer.hpp>
6 #include <ie_cnn_layer_builder.h>
7 #include <vector>
8 #include <string>
9
10 using namespace InferenceEngine;
11
12 Builder::ResampleLayer::ResampleLayer(const std::string& name): LayerDecorator("Resample", name) {
13     getLayer()->getInputPorts().resize(1);
14     getLayer()->getOutputPorts().resize(1);
15 }
16
17 Builder::ResampleLayer::ResampleLayer(const Layer::Ptr& layer): LayerDecorator(layer) {
18     checkType("Resample");
19 }
20
21 Builder::ResampleLayer::ResampleLayer(const Layer::CPtr& layer): LayerDecorator(layer) {
22     checkType("Resample");
23 }
24
25 Builder::ResampleLayer& Builder::ResampleLayer::setName(const std::string& name) {
26     getLayer()->setName(name);
27     return *this;
28 }
29 const Port& Builder::ResampleLayer::getInputPort() const {
30     return getLayer()->getInputPorts()[0];
31 }
32 Builder::ResampleLayer& Builder::ResampleLayer::setInputPort(const Port& port) {
33     getLayer()->getInputPorts()[0] = port;
34     return *this;
35 }
36 const Port& Builder::ResampleLayer::getOutputPort() const {
37     return getLayer()->getOutputPorts()[0];
38 }
39 Builder::ResampleLayer& Builder::ResampleLayer::setOutputPort(const Port& port) {
40     getLayer()->getOutputPorts()[0] = port;
41     return *this;
42 }
43
44 const std::string &Builder::ResampleLayer::getResampleType() const {
45     return getLayer()->getParameters().at("type");
46 }
47
48 Builder::ResampleLayer &Builder::ResampleLayer::setResampleType(const std::string &type) {
49     getLayer()->getParameters()["type"] = type;
50     return *this;
51 }
52
53 bool Builder::ResampleLayer::getAntialias() const {
54     return getLayer()->getParameters().at("antialias");
55 }
56
57 Builder::ResampleLayer &Builder::ResampleLayer::setAntialias(bool antialias) {
58     getLayer()->getParameters()["antialias"] = antialias;
59     return *this;
60 }
61
62 float Builder::ResampleLayer::getFactor() const {
63     return getLayer()->getParameters().at("factor");
64 }
65
66 Builder::ResampleLayer &Builder::ResampleLayer::setFactor(float factor) {
67     getLayer()->getParameters()["factor"] = factor;
68     return *this;
69 }
70
71 size_t Builder::ResampleLayer::getWidth() const {
72     return getLayer()->getParameters().at("width");
73 }
74
75 Builder::ResampleLayer &Builder::ResampleLayer::setWidth(size_t width) {
76     getLayer()->getParameters()["width"] = width;
77     return *this;
78 }
79
80 size_t Builder::ResampleLayer::getHeight() const {
81     return getLayer()->getParameters().at("height");
82 }
83
84 Builder::ResampleLayer &Builder::ResampleLayer::setHeight(size_t height) {
85     getLayer()->getParameters()["height"] = height;
86     return *this;
87 }
88
89 REG_CONVERTER_FOR(Resample, [](const CNNLayerPtr& cnnLayer, Builder::Layer& layer) {
90     layer.getParameters()["height"] = static_cast<size_t>(cnnLayer->GetParamAsUInt("height", 0));
91     layer.getParameters()["width"] = static_cast<size_t>(cnnLayer->GetParamAsUInt("width", 0));
92     layer.getParameters()["factor"] = cnnLayer->GetParamAsFloat("factor", 0);
93     layer.getParameters()["antialias"] = cnnLayer->GetParamAsBool("antialias", false);
94     layer.getParameters()["type"] = cnnLayer->GetParamAsString("type");
95 });