updated readme file due to moving CMake scripts to the root folder
[platform/upstream/dldt.git] / inference-engine / src / vpu / graph_transformer / src / stages / elu.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 <vector>
8 #include <memory>
9 #include <set>
10
11 #include <vpu/sw/post_op_stage.hpp>
12
13 namespace vpu {
14
15 namespace {
16
17 class EluStage final : public PostOpStage {
18 public:
19     using PostOpStage::PostOpStage;
20
21 private:
22     StagePtr cloneImpl() const override {
23         return std::make_shared<EluStage>(*this);
24     }
25
26     void serializeParamsImpl(BlobSerializer& serializer) const override {
27         auto alpha = attrs().get<float>("alpha");
28
29         serializer.append(static_cast<float>(alpha));
30     }
31 };
32
33 }  // namespace
34
35 void FrontEnd::parseELU(
36         const Model::Ptr& model,
37         const ie::CNNLayerPtr& layer,
38         const DataVector& inputs,
39         const DataVector& outputs) {
40     IE_ASSERT(inputs.size() == 1);
41     IE_ASSERT(outputs.size() == 1);
42
43     auto alpha = layer->GetParamAsFloat("alpha", 1.0f);
44
45     auto stage = model->addNewStage<EluStage>(
46         layer->name,
47         StageType::Elu,
48         layer,
49         inputs,
50         outputs);
51
52     stage->attrs().set<float>("alpha", alpha);
53 }
54
55 }  // namespace vpu