From 7a3227fa74aceb4a67742cf3bb2c40049d33e4a0 Mon Sep 17 00:00:00 2001 From: Szymon Durawa Date: Tue, 1 Dec 2020 10:20:27 +0100 Subject: [PATCH] Visitor API deserialization for ops from opset1 (#3001) * Comment layer creator and node converter for Elu and Clamp ops. * Add deserialization for GRN, HardSigmoid, GatherTree. * Add implementation for Interp, GRN, GatherTree. * Remove layer creation from ie_ir_parser.cpp * Remove header files from cnn builder. * Change op's type in elu functional test, remove name transformtion for this op from ir_parser. * Remove empty lines. --- .../legacy/ngraph_ops/gather_tree_ie.hpp | 1 + .../legacy/ngraph_ops/hard_sigmoid_ie.hpp | 1 + .../include/legacy/ngraph_ops/interp.hpp | 2 + .../src/convert_function_to_cnn_network.cpp | 78 +++++++++++++-- .../src/ie_cnn_layer_builder_ngraph.cpp | 95 ------------------- .../src/ngraph_ops/gather_tree_ie.cpp | 4 + .../src/ngraph_ops/hard_sigmoid_ie.cpp | 4 + .../src/legacy_api/src/ngraph_ops/interp.cpp | 10 ++ .../src/readers/ir_reader/ie_ir_parser.cpp | 67 ------------- .../ngraph_reader/elu_tests.cpp | 2 +- 10 files changed, 92 insertions(+), 172 deletions(-) diff --git a/inference-engine/src/legacy_api/include/legacy/ngraph_ops/gather_tree_ie.hpp b/inference-engine/src/legacy_api/include/legacy/ngraph_ops/gather_tree_ie.hpp index 02d914c9bdae13..89350cb8a1754f 100644 --- a/inference-engine/src/legacy_api/include/legacy/ngraph_ops/gather_tree_ie.hpp +++ b/inference-engine/src/legacy_api/include/legacy/ngraph_ops/gather_tree_ie.hpp @@ -32,6 +32,7 @@ class INFERENCE_ENGINE_API_CLASS(GatherTreeIE) : public Op { const Output& end_token); void validate_and_infer_types() override; + bool visit_attributes(AttributeVisitor& visitor) override; std::shared_ptr clone_with_new_inputs(const OutputVector& new_args) const override; }; diff --git a/inference-engine/src/legacy_api/include/legacy/ngraph_ops/hard_sigmoid_ie.hpp b/inference-engine/src/legacy_api/include/legacy/ngraph_ops/hard_sigmoid_ie.hpp index ac8489bf420326..0361aae89c76c9 100644 --- a/inference-engine/src/legacy_api/include/legacy/ngraph_ops/hard_sigmoid_ie.hpp +++ b/inference-engine/src/legacy_api/include/legacy/ngraph_ops/hard_sigmoid_ie.hpp @@ -27,6 +27,7 @@ class INFERENCE_ENGINE_API_CLASS(HardSigmoid_IE) : public Op { std::shared_ptr clone_with_new_inputs(const OutputVector& new_args) const override; void validate_and_infer_types() override; + bool visit_attributes(AttributeVisitor& visitor) override; float get_alpha() const { return m_alpha; } void set_alpha(float alpha) { m_alpha = alpha; } diff --git a/inference-engine/src/legacy_api/include/legacy/ngraph_ops/interp.hpp b/inference-engine/src/legacy_api/include/legacy/ngraph_ops/interp.hpp index d7a7dbd1dafadd..df19fdc0f95fe2 100644 --- a/inference-engine/src/legacy_api/include/legacy/ngraph_ops/interp.hpp +++ b/inference-engine/src/legacy_api/include/legacy/ngraph_ops/interp.hpp @@ -37,6 +37,8 @@ class INFERENCE_ENGINE_API_CLASS(Interp) : public Op { void validate_and_infer_types() override; + bool visit_attributes(AttributeVisitor& visitor) override; + std::shared_ptr clone_with_new_inputs(const OutputVector& new_args) const override; InterpolateIEAttrs get_attrs() { return m_attrs; } diff --git a/inference-engine/src/legacy_api/src/convert_function_to_cnn_network.cpp b/inference-engine/src/legacy_api/src/convert_function_to_cnn_network.cpp index a5e1ee05b18fbb..fa80980c213652 100644 --- a/inference-engine/src/legacy_api/src/convert_function_to_cnn_network.cpp +++ b/inference-engine/src/legacy_api/src/convert_function_to_cnn_network.cpp @@ -619,7 +619,6 @@ InferenceEngine::details::CNNLayerCreator::CNNLayerCreator(const std::shared_ptr auto res = std::make_shared(attrs); res->params = params; return res; - }); addSpecificCreator({"NonMaxSuppressionIE3"}, [](const std::shared_ptr<::ngraph::Node>& node, @@ -850,6 +849,14 @@ InferenceEngine::details::CNNLayerCreator::CNNLayerCreator(const std::shared_ptr return res; }); + addSpecificCreator({"Clamp"}, [](const std::shared_ptr<::ngraph::Node>& node, + const std::map& params) -> CNNLayerPtr { + LayerParams attrs = {node->get_friendly_name(), "Clamp", details::convertPrecision(node->get_output_element_type(0))}; + auto res = std::make_shared(attrs); + res->params = params; + return res; + }); + addSpecificCreator({"LRN_IE"}, [](const std::shared_ptr<::ngraph::Node>& node, const std::map& params) -> CNNLayerPtr { LayerParams attrs = {node->get_friendly_name(), "Norm", details::convertPrecision(node->get_output_element_type(0))}; @@ -858,6 +865,14 @@ InferenceEngine::details::CNNLayerCreator::CNNLayerCreator(const std::shared_ptr return res; }); + addSpecificCreator({"Elu"}, [](const std::shared_ptr<::ngraph::Node>& node, + const std::map& params) -> CNNLayerPtr { + LayerParams attrs = {node->get_friendly_name(), "elu", details::convertPrecision(node->get_output_element_type(0))}; + auto res = std::make_shared(attrs); + res->params = params; + return res; + }); + addSpecificCreator({"MatMul"}, [](const std::shared_ptr<::ngraph::Node>& node, const std::map& params) -> CNNLayerPtr { LayerParams attrs = {node->get_friendly_name(), "Gemm", details::convertPrecision(node->get_output_element_type(0))}; @@ -866,6 +881,21 @@ InferenceEngine::details::CNNLayerCreator::CNNLayerCreator(const std::shared_ptr return res; }); + addSpecificCreator({"GatherTreeIE"}, [](const std::shared_ptr<::ngraph::Node>& node, + const std::map& params) -> CNNLayerPtr { + LayerParams attrs = {node->get_friendly_name(), "GatherTree", details::convertPrecision(node->get_output_element_type(0))}; + auto res = std::make_shared(attrs); + return res; + }); + + addSpecificCreator({"GRN"}, [](const std::shared_ptr<::ngraph::Node>& node, + const std::map& params) -> CNNLayerPtr { + LayerParams attrs = {node->get_friendly_name(), "GRN", details::convertPrecision(node->get_output_element_type(0))}; + auto res = std::make_shared(attrs); + res->params = params; + return res; + }); + addSpecificCreator({"OneHotIE"}, [](const std::shared_ptr<::ngraph::Node>& node, const std::map& params) -> CNNLayerPtr { LayerParams attrs = {node->get_friendly_name(), "OneHot", details::convertPrecision(node->get_output_element_type(0))}; @@ -874,6 +904,44 @@ InferenceEngine::details::CNNLayerCreator::CNNLayerCreator(const std::shared_ptr return res; }); + addSpecificCreator({"HardSigmoid_IE"}, [](const std::shared_ptr<::ngraph::Node>& node, + const std::map& params) -> CNNLayerPtr { + LayerParams attrs = {node->get_friendly_name(), "HardSigmoid", details::convertPrecision(node->get_output_element_type(0))}; + auto res = std::make_shared(attrs); + + auto castedLayer = std::dynamic_pointer_cast(node); + if (!castedLayer) + THROW_IE_EXCEPTION << "Cannot get " << attrs.type << " layer " << attrs.name; + + res->params["alpha"] = Builder::asString(castedLayer->get_alpha()); + res->params["beta"] = Builder::asString(castedLayer->get_beta()); + return res; + }); + + addSpecificCreator({"Interp"}, [](const std::shared_ptr<::ngraph::Node>& node, + const std::map& params) -> CNNLayerPtr { + LayerParams attrs = {node->get_friendly_name(), "Interp", details::convertPrecision(node->get_output_element_type(0))}; + auto castedLayer = std::dynamic_pointer_cast(node); + if (!castedLayer) THROW_IE_EXCEPTION << "Cannot get " << attrs.type << " layer " << attrs.name; + + auto interp_attrs = castedLayer->get_attrs(); + + if (interp_attrs.antialias) { + THROW_IE_EXCEPTION << "Interp do not support antialias"; + } + if (interp_attrs.mode != "linear") { + THROW_IE_EXCEPTION << "Interp do not support mode '" << interp_attrs.mode << "'"; + } + + bool align_corners; + auto res = std::make_shared(attrs); + res->params = params; + + std::istringstream(params.at("align_corners")) >> align_corners; + res->params["align_corners"] = align_corners ? "1" : "0"; + return res; + }); + addSpecificCreator({"PadIE"}, [](const std::shared_ptr<::ngraph::Node>& node, const std::map& params) -> CNNLayerPtr { LayerParams attrs = {node->get_friendly_name(), "Pad", details::convertPrecision(node->get_output_element_type(0))}; @@ -929,7 +997,6 @@ InferenceEngine::details::CNNLayerCreator::CNNLayerCreator(const std::shared_ptr InferenceEngine::details::addBlob(biasNode, res, InferenceEngine::details::biases); } } - return res; }); } @@ -960,7 +1027,6 @@ void convertFunctionToICNNNetwork(const std::shared_ptr> convertors = { std::make_shared>(), - std::make_shared>(), std::make_shared>(), std::make_shared>(), std::make_shared>(), @@ -968,16 +1034,11 @@ void convertFunctionToICNNNetwork(const std::shared_ptr>(), std::make_shared>(), std::make_shared>(), - std::make_shared>(), std::make_shared>(), std::make_shared>(), - std::make_shared>(), - std::make_shared>(), - std::make_shared>(), std::make_shared>(), std::make_shared>(), std::make_shared>(), - std::make_shared>(), std::make_shared>(), std::make_shared>(), std::make_shared>(), @@ -1006,7 +1067,6 @@ void convertFunctionToICNNNetwork(const std::shared_ptr>(), std::make_shared>(), std::make_shared>(), - std::make_shared>(), std::make_shared>(), std::make_shared>(), std::make_shared>(), diff --git a/inference-engine/src/legacy_api/src/ie_cnn_layer_builder_ngraph.cpp b/inference-engine/src/legacy_api/src/ie_cnn_layer_builder_ngraph.cpp index 9109211b669297..c731a2bc4611b6 100644 --- a/inference-engine/src/legacy_api/src/ie_cnn_layer_builder_ngraph.cpp +++ b/inference-engine/src/legacy_api/src/ie_cnn_layer_builder_ngraph.cpp @@ -12,7 +12,6 @@ #include "legacy/ngraph_ops/eltwise.hpp" #include "legacy/ngraph_ops/fully_connected.hpp" #include "legacy/ngraph_ops/gather_ie.hpp" -#include "legacy/ngraph_ops/gather_tree_ie.hpp" #include "legacy/ngraph_ops/gru_cell_ie.hpp" #include "legacy/ngraph_ops/interp.hpp" #include "legacy/ngraph_ops/lstm_cell_ie.hpp" @@ -28,7 +27,6 @@ #include "legacy/ngraph_ops/scaleshift.hpp" #include "legacy/ngraph_ops/tile_ie.hpp" #include "legacy/ngraph_ops/rnn_cell_ie.hpp" -#include "legacy/ngraph_ops/hard_sigmoid_ie.hpp" #include "generic_ie.hpp" #include "exec_graph_info.hpp" @@ -523,19 +521,6 @@ CNNLayer::Ptr NodeConverter::createLayer(const std::shared_p return res; } -template <> -CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { - LayerParams params = {layer->get_friendly_name(), "Clamp", - details::convertPrecision(layer->get_output_element_type(0))}; - auto res = std::make_shared(params); - auto castedLayer = ngraph::as_type_ptr(layer); - if (castedLayer == nullptr) THROW_IE_EXCEPTION << "Cannot get " << params.type << " layer " << params.name; - - res->params["min"] = asString(castedLayer->get_min()); - res->params["max"] = asString(castedLayer->get_max()); - return res; -} - template <> CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { LayerParams params = {layer->get_friendly_name(), "SoftMax", @@ -984,14 +969,6 @@ CNNLayer::Ptr NodeConverter::createLayer(const std::shared return res; } -template <> -CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { - LayerParams params = {layer->get_friendly_name(), "GatherTree", - details::convertPrecision(layer->get_output_element_type(0))}; - auto res = std::make_shared(params); - return res; -} - template <> CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { LayerParams params = {layer->get_friendly_name(), "ReverseSequence", details::convertPrecision(layer->get_output_element_type(0))}; @@ -1054,19 +1031,6 @@ CNNLayer::Ptr NodeConverter::createLayer(const std::sh return res; } -template <> -CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { - LayerParams params = {layer->get_friendly_name(), "elu", - details::convertPrecision(layer->get_output_element_type(0))}; - auto res = std::make_shared(params); - auto castedLayer = ngraph::as_type_ptr(layer); - if (castedLayer == nullptr) THROW_IE_EXCEPTION << "Cannot get " << params.type << " layer " << params.name; - - res->params["alpha"] = asString(castedLayer->get_alpha()); - - return res; -} - template <> CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { LayerParams params = {layer->get_friendly_name(), "Eltwise", @@ -1331,40 +1295,6 @@ CNNLayer::Ptr NodeConverter::createLayer(const std::shar return res; } -template <> -CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { - LayerParams params = {layer->get_friendly_name(), "Resample", - details::convertPrecision(layer->get_output_element_type(0))}; - auto castedLayer = ngraph::as_type_ptr(layer); - if (castedLayer == nullptr) THROW_IE_EXCEPTION << "Cannot get " << params.type << " layer " << params.name; - - auto attrs = castedLayer->get_attrs(); - - if (attrs.antialias) { - THROW_IE_EXCEPTION << "Interp do not support antialias"; - } - if (attrs.mode != "linear") { - THROW_IE_EXCEPTION << "Interp do not support mode '" << attrs.mode << "'"; - } - - params = {layer->get_friendly_name(), "Interp", - details::convertPrecision(layer->get_output_element_type(0))}; - auto res = std::make_shared(params); - - res->params["height"] = asString(attrs.height); - res->params["width"] = asString(attrs.width); - res->params["pad_beg"] = asString(attrs.pad_beg); - res->params["pad_end"] = asString(attrs.pad_end); - res->params["align_corners"] = attrs.align_corners ? "1" : "0"; - - return res; -} - -template <> -CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { - THROW_IE_EXCEPTION << "Interpolate operation should be converted to Interp"; -} - template <> CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { LayerParams params = {layer->get_friendly_name(), "Interpolate", @@ -1726,30 +1656,5 @@ CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr return res; } -template <> -CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { - LayerParams params = { layer->get_friendly_name(), "HardSigmoid", details::convertPrecision(layer->get_output_element_type(0)) }; - auto res = std::make_shared(params); - auto castedLayer = std::dynamic_pointer_cast(layer); - if (castedLayer == nullptr) - THROW_IE_EXCEPTION << "Cannot get " << params.type << " layer " << params.name; - - res->params["alpha"] = asString(castedLayer->get_alpha()); - res->params["beta"] = asString(castedLayer->get_beta()); - return res; -} - -template <> -CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { - LayerParams params = {layer->get_friendly_name(), "GRN", - details::convertPrecision(layer->get_output_element_type(0))}; - auto castedLayer = std::dynamic_pointer_cast(layer); - if (castedLayer == nullptr) THROW_IE_EXCEPTION << "Cannot get " << params.type << " layer " << params.name; - - auto res = std::make_shared(params); - res->params["bias"] = asString(castedLayer->get_bias()); - return res; -} - } // namespace Builder } // namespace InferenceEngine diff --git a/inference-engine/src/legacy_api/src/ngraph_ops/gather_tree_ie.cpp b/inference-engine/src/legacy_api/src/ngraph_ops/gather_tree_ie.cpp index 0e3c04c13dee03..dcb4dab38e12c2 100644 --- a/inference-engine/src/legacy_api/src/ngraph_ops/gather_tree_ie.cpp +++ b/inference-engine/src/legacy_api/src/ngraph_ops/gather_tree_ie.cpp @@ -63,3 +63,7 @@ void op::GatherTreeIE::validate_and_infer_types() { const auto& step_ids_et = get_input_element_type(0); set_output_type(0, step_ids_et, step_ids_rank); } + +bool ngraph::op::GatherTreeIE::visit_attributes(AttributeVisitor& visitor) { + return true; +} diff --git a/inference-engine/src/legacy_api/src/ngraph_ops/hard_sigmoid_ie.cpp b/inference-engine/src/legacy_api/src/ngraph_ops/hard_sigmoid_ie.cpp index d85796c590379c..4ccc0e8e60a82b 100644 --- a/inference-engine/src/legacy_api/src/ngraph_ops/hard_sigmoid_ie.cpp +++ b/inference-engine/src/legacy_api/src/ngraph_ops/hard_sigmoid_ie.cpp @@ -35,3 +35,7 @@ shared_ptr op::HardSigmoid_IE::clone_with_new_inputs(const OutputVector& n check_new_args_count(this, new_args); return make_shared(new_args.at(0), m_alpha, m_beta); } + +bool op::HardSigmoid_IE::visit_attributes(AttributeVisitor& visitor) { + return true; +} diff --git a/inference-engine/src/legacy_api/src/ngraph_ops/interp.cpp b/inference-engine/src/legacy_api/src/ngraph_ops/interp.cpp index 19ffed8697cf91..f07d73fc04c49c 100755 --- a/inference-engine/src/legacy_api/src/ngraph_ops/interp.cpp +++ b/inference-engine/src/legacy_api/src/ngraph_ops/interp.cpp @@ -67,6 +67,16 @@ shared_ptr op::Interp::clone_with_new_inputs(const OutputVector& new_args) return make_shared(new_args.at(0), m_attrs); } +bool op::Interp::visit_attributes(AttributeVisitor& visitor) +{ + visitor.on_attribute("align_corners", m_attrs.align_corners); + visitor.on_attribute("width", m_attrs.width); + visitor.on_attribute("height", m_attrs.height); + visitor.on_attribute("pad_beg", m_attrs.pad_beg); + visitor.on_attribute("pad_end", m_attrs.pad_end); + return true; +} + constexpr NodeTypeInfo op::ResampleV2::type_info; op::ResampleV2::ResampleV2(const Output& image, const Output& output_shape, diff --git a/inference-engine/src/readers/ir_reader/ie_ir_parser.cpp b/inference-engine/src/readers/ir_reader/ie_ir_parser.cpp index 02c5973626394c..306c9aad0740d7 100644 --- a/inference-engine/src/readers/ir_reader/ie_ir_parser.cpp +++ b/inference-engine/src/readers/ir_reader/ie_ir_parser.cpp @@ -397,7 +397,6 @@ std::shared_ptr V10Parser::createNode(const std::vector> creators = { std::make_shared>("AvgPool"), - std::make_shared>("Clamp"), std::make_shared>("Convert"), std::make_shared>("CTCGreedyDecoder"), std::make_shared>("DeformableConvolution"), @@ -408,16 +407,12 @@ std::shared_ptr V10Parser::createNode(const std::vector>("Broadcast"), std::make_shared>("Reshape"), std::make_shared>("StridedSlice"), - std::make_shared>("ELU"), std::make_shared>("Gather"), - std::make_shared>("GatherTree"), std::make_shared>("GreaterEqual"), std::make_shared>("GroupConvolution"), std::make_shared>("ConvolutionBackpropData"), std::make_shared>("GroupConvolutionBackpropData"), std::make_shared>("BinaryConvolution"), - std::make_shared>("GRN"), - std::make_shared>("HardSigmoid"), std::make_shared>("SquaredDifference"), std::make_shared>("LessEqual"), std::make_shared>("Equal"), @@ -958,22 +953,6 @@ std::shared_ptr V10Parser::LayerCreator::createLa return std::make_shared(inputs[0], across, normalize_variance, eps); } -// Clamp layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, const Blob::CPtr& weights, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - pugi::xml_node dn = node.child("data"); - - if (dn.empty()) - THROW_IE_EXCEPTION << "Cannot read parameter for " << getType() << " layer with name: " << layerParsePrms.name; - - double maxVal = GetFloatAttr(dn, "max"); - double minVal = GetFloatAttr(dn, "min"); - return std::make_shared(inputs[0], minVal, maxVal); -} - // VariadicSplit layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -998,20 +977,6 @@ std::shared_ptr V10Parser::LayerCreator::cr return std::make_shared(inputs[0], inputs[1], num_splits); } -// ELU layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, const Blob::CPtr& weights, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - pugi::xml_node dn = node.child("data"); - - if (dn.empty()) - THROW_IE_EXCEPTION << "Cannot read parameter for " << getType() << " layer with name: " << layerParsePrms.name; - - return std::make_shared(inputs[0], GetFloatAttr(dn, "alpha")); -} - // SpaceToDepth layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1569,15 +1534,6 @@ std::shared_ptr V10Parser::LayerCreator::c return std::make_shared(inputs[0], inputs[1], inputs[2]); } -// GatherTree layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, const Blob::CPtr& weights, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 4); - return std::make_shared(inputs[0], inputs[1], inputs[2], inputs[3]); -} - // NormalizeL2 layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1603,29 +1559,6 @@ std::shared_ptr V10Parser::LayerCreator:: return std::make_shared(inputs[0], inputs[1], eps, em); } -// HardSigmoid layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector & inputs, const pugi::xml_node& node, const Blob::CPtr& weights, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 3); - return std::make_shared(inputs[0], inputs[1], inputs[2]); -} - -// GRN layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, const Blob::CPtr& weights, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - pugi::xml_node dn = node.child("data"); - - if (dn.empty()) - THROW_IE_EXCEPTION << "Cannot read parameter for " << getType() << " layer with name: " << layerParsePrms.name; - - return std::make_shared(inputs[0], GetFloatAttr(dn, "bias")); -} - // LogicalAnd layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/elu_tests.cpp b/inference-engine/tests/functional/inference_engine/ngraph_reader/elu_tests.cpp index d4bf29826b31a1..5187d7d4f590d8 100644 --- a/inference-engine/tests/functional/inference_engine/ngraph_reader/elu_tests.cpp +++ b/inference-engine/tests/functional/inference_engine/ngraph_reader/elu_tests.cpp @@ -19,7 +19,7 @@ TEST_F(NGraphReaderTests, ReadELUNetwork) { - +