7489d9876c8b61d8b715dfe6bb487364627bdeb1
[platform/upstream/dldt.git] / inference-engine / src / vpu / graph_transformer / src / stages / none.cpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #include <vpu/frontend/frontend.hpp>
6
7 #include <string>
8 #include <vector>
9 #include <list>
10 #include <memory>
11
12 namespace vpu {
13
14 namespace {
15
16 class NoneStage final : public StageNode {
17 private:
18     StagePtr cloneImpl() const override {
19         return std::make_shared<NoneStage>(*this);
20     }
21
22     void propagateScaleFactorsImpl(
23             const SmallVector<float>&,
24             ScalePropagationStep) override {
25         for (const auto& outEdge : _outputEdges) {
26             _scaleInfo.setOutput(outEdge, 1.0f);
27         }
28     }
29
30     void propagateDataOrderImpl() const override {
31     }
32
33     void getDataStridesRequirementsImpl() const override {
34     }
35
36     void finalizeDataLayoutImpl() override {
37     }
38
39     void getBatchSupportInfoImpl() const override {
40     }
41
42     StageSHAVEsRequirements getSHAVEsRequirementsImpl() const override {
43         return StageSHAVEsRequirements::NotNeeded;
44     }
45
46     void finalCheckImpl() const override {
47     }
48
49     void serializeParamsImpl(BlobSerializer&) const override {
50     }
51
52     void serializeDataImpl(BlobSerializer&) const override {
53     }
54 };
55
56 }  // namespace
57
58 Stage StageBuilder::addNoneStage(
59         const Model::Ptr& model,
60         const std::string& name,
61         const ie::CNNLayerPtr& layer,
62         const DataVector& inputs,
63         const DataVector& outputs) {
64     return model->addNewStage<NoneStage>(
65         name,
66         StageType::None,
67         layer,
68         {inputs},
69         {outputs});
70 }
71
72 }  // namespace vpu