diff --git a/inference-engine/src/legacy_api/include/legacy/ngraph_ops/topk_ie.hpp b/inference-engine/src/legacy_api/include/legacy/ngraph_ops/topk_ie.hpp index 65641f272bf..284e70ebdfb 100644 --- a/inference-engine/src/legacy_api/include/legacy/ngraph_ops/topk_ie.hpp +++ b/inference-engine/src/legacy_api/include/legacy/ngraph_ops/topk_ie.hpp @@ -36,6 +36,7 @@ public: ngraph::op::TopKMode get_mode() { return m_mode; } ngraph::op::TopKSortType get_sort_type() { return m_sort_type; } + bool visit_attributes(AttributeVisitor &visitor) override; private: int64_t m_axis; 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 1b1efd15329..a90a9f3a736 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 @@ -6,6 +6,7 @@ #include #include #include +#include #include #include "ngraph_ops/convolution_ie.hpp" @@ -93,6 +94,11 @@ public: params[name] = data; } + void on_adapter(const std::string& name, ::ngraph::ValueAccessor>& adapter) override { + auto shape = adapter.get(); + params[name] = joinVec(shape); + } + void on_adapter(const std::string& name, ::ngraph::ValueAccessor>& adapter) override { auto shape = adapter.get(); params[name] = joinVec(shape); @@ -232,9 +238,11 @@ InferenceEngine::details::CNNLayerCreator::CNNLayerCreator(const std::shared_ptr addSpecificCreator({"Concat"}, [](const std::shared_ptr<::ngraph::Node>& node, const std::map& params) -> CNNLayerPtr { LayerParams attrs = {node->get_friendly_name(), node->description(), - details::convertPrecision(node->get_output_element_type(0))}; + details::convertPrecision(node->get_output_element_type(0))}; auto res = std::make_shared(attrs); res->params = params; + auto axis = std::stoi(res->params["axis"]); + res->params["axis"] = Builder::asString(axis < 0 ? axis + node->get_input_shape(0).size() : axis); return res; }); addSpecificCreator({"AvgPool", "MaxPool"}, [](const std::shared_ptr<::ngraph::Node>& node, @@ -414,6 +422,82 @@ InferenceEngine::details::CNNLayerCreator::CNNLayerCreator(const std::shared_ptr return res; }); + addSpecificCreator({"DeconvolutionIE"}, + [](const std::shared_ptr<::ngraph::Node> &node, + const std::map ¶ms) -> CNNLayerPtr { + LayerParams attrs = {node->get_friendly_name(), "Deconvolution", + details::convertPrecision(node->get_output_element_type(0))}; + auto res = std::make_shared(attrs); + + res->params = params; + const auto& shape = node->get_input_shape(1); + res->params["output"] = Builder::asString(shape[1]); + std::string kernel_value; + for (size_t i = 2; i < shape.size(); i++) { + if (!kernel_value.empty()) kernel_value += ","; + kernel_value += Builder::asString(shape[i]); + } + res->params["kernel"] = kernel_value; + + Builder::NodeConverter converter; + const auto weightsNode = node->input_value(1).get_node_shared_ptr(); + if (converter.canCreate(weightsNode)) { + const auto& weights = converter.createLayer(weightsNode); + res->blobs["weights"] = weights->blobs["custom"]; + res->_weights = weights->blobs["custom"]; + + if (node->inputs().size() == 3) { + const auto biasNode = node->input_value(2).get_node_shared_ptr(); + if (converter.canCreate(biasNode)) { + const auto& bias = converter.createLayer(biasNode); + res->blobs["biases"] = bias->blobs["custom"]; + res->_biases = bias->blobs["custom"]; + } + } + } + return res; + }); + + addSpecificCreator({"DetectionOutput"}, + [](const std::shared_ptr<::ngraph::Node> &node, + const std::map ¶ms) -> CNNLayerPtr { + LayerParams attrs = {node->get_friendly_name(), "DetectionOutput", + details::convertPrecision(node->get_output_element_type(0))}; + auto res = std::make_shared(attrs); + res->params = params; + auto parseBoolStrToIntStr = [](const std::string ¶m) -> const std::string { + if (param == "true") { + return "1"; + } + else if (param == "false") { + return "0"; + } + return param; + }; + if (res->params["code_type"] == "caffe.priorboxparameter.center_size"){ + res->params["code_type"] = "caffe.PriorBoxParameter.CENTER_SIZE"; + } + else{ + res->params["code_type"] = "caffe.PriorBoxParameter.CORNER"; + } + res->params["variance_encoded_in_target"] = parseBoolStrToIntStr(res->params["variance_encoded_in_target"]); + res->params["share_location"] = parseBoolStrToIntStr(res->params["share_location"]); + res->params["clip_after_nms"] = parseBoolStrToIntStr(res->params["clip_after_nms"]); + res->params["clip_before_nms"] = parseBoolStrToIntStr(res->params["clip_before_nms"]); + res->params["decrease_label_id"] = parseBoolStrToIntStr(res->params["decrease_label_id"]); + res->params["normalized"] = parseBoolStrToIntStr(res->params["normalized"]); + return res; + }); + + addSpecificCreator({"LogicalNot"}, [](const std::shared_ptr<::ngraph::Node>& node, + const std::map params) -> CNNLayerPtr { + LayerParams attrs = {node->get_friendly_name(), "Activation", + details::convertPrecision(node->get_output_element_type(0))}; + auto res = std::make_shared(attrs); + res->params["type"] = "not"; + return res; + }); + addSpecificCreator({"LSTMCellIE"}, [](const std::shared_ptr<::ngraph::Node>& node, const std::map params) -> CNNLayerPtr { LayerParams attrs = {node->get_friendly_name(), "LSTMCell", @@ -512,6 +596,40 @@ InferenceEngine::details::CNNLayerCreator::CNNLayerCreator(const std::shared_ptr return res; }); + addSpecificCreator({"StridedSlice"}, [](const std::shared_ptr<::ngraph::Node> &node, + const std::map ¶ms) -> CNNLayerPtr { + LayerParams attrs = {node->get_friendly_name(), "StridedSlice", + details::convertPrecision(node->get_output_element_type(0))}; + auto res = std::make_shared(attrs); + auto stridedSliceInvertMaskStr = [](const std::string& str) -> std::string { + std::string value; + auto found_numbers = details::split(str,","); + for (const auto &val : found_numbers) + { + if (!value.empty()) + value += ","; + value += Builder::asString((1 - std::stoi(val))); + } + return value; + }; + + res->params = params; + // plugins require reversed value of begin_mask and end_mask + res->params["begin_mask"] = stridedSliceInvertMaskStr(res->params["begin_mask"]); + res->params["end_mask"] = stridedSliceInvertMaskStr(res->params["end_mask"]); + + return res; + }); + + addSpecificCreator({"TopK","TopKIE"}, [](const std::shared_ptr<::ngraph::Node>& node, + const std::map& params) -> CNNLayerPtr { + LayerParams attrs = {node->get_friendly_name(), "TopK", + details::convertPrecision(node->get_output_element_type(0))}; + auto res = std::make_shared(attrs); + res->params = params; + return res; + }); + addSpecificCreator({"Transpose"}, [](const std::shared_ptr<::ngraph::Node>& node, const std::map& params) -> CNNLayerPtr { LayerParams attrs = {node->get_friendly_name(), "Permute", @@ -652,12 +770,11 @@ InferenceEngine::details::CNNLayerCreator::CNNLayerCreator(const std::shared_ptr REQUIRED_IE_CONVERSION_CREATOR("Interpolate", "Interp"); REQUIRED_IE_CONVERSION_CREATOR("NormalizeL2", "NormalizeIE"); REQUIRED_IE_CONVERSION_CREATOR("GroupConvolution", "ConvolutionIE"); - REQUIRED_IE_CONVERSION_CREATOR("ConvolutionBackpropData", "DeconvolutionIE"); REQUIRED_IE_CONVERSION_CREATOR("GroupConvolutionBackpropData", "DeconvolutionIE"); addSpecificCreator({ "Convolution", "Gather", "GatherTree", "GRUCell", "GRUSequence", "HardSigmoid", "LRN", "LSTMCell", "LSTMSequence", "NonMaxSuppression", "RNNCell", "RNNSequence", "OneHot", - "Pad", "PriorBoxClustered", "PriorBox", "Proposal", "Selu", "Swish", "Tile", "TopK"}, + "Pad", "PriorBoxClustered", "PriorBox", "Proposal", "Selu", "Swish", "Tile"}, [](const std::shared_ptr<::ngraph::Node>& node, const std::map& params) -> CNNLayerPtr { const std::string& type_name = node->get_type_name(); @@ -726,39 +843,24 @@ void convertFunctionToICNNNetwork(const std::shared_ptr> convertors = { - 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>(), 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>(), std::make_shared>(), std::make_shared>(), - std::make_shared>(), std::make_shared>(), std::make_shared>(), std::make_shared>(), @@ -766,9 +868,7 @@ 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>(), @@ -781,7 +881,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>(), @@ -789,29 +888,16 @@ 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>(), - 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>(), 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 e846c646a77..4fc0dd6ce5a 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 @@ -10,7 +10,6 @@ #include "legacy/ngraph_ops/crop_ie.hpp" #include "ngraph_ops/convolution_ie.hpp" -#include "ngraph_ops/deconvolution_ie.hpp" #include "legacy/ngraph_ops/eltwise.hpp" #include "legacy/ngraph_ops/fully_connected.hpp" #include "legacy/ngraph_ops/gather_ie.hpp" @@ -32,7 +31,6 @@ #include "legacy/ngraph_ops/selu_ie.hpp" #include "legacy/ngraph_ops/scaleshift.hpp" #include "legacy/ngraph_ops/tile_ie.hpp" -#include "legacy/ngraph_ops/topk_ie.hpp" #include "legacy/ngraph_ops/rnn_cell_ie.hpp" #include "legacy/ngraph_ops/hard_sigmoid_ie.hpp" #include "generic_ie.hpp" @@ -788,74 +786,6 @@ CNNLayer::Ptr NodeConverter::createLayer( return res; } -template <> -CNNLayer::Ptr NodeConverter::createLayer( - const std::shared_ptr& layer) const { - LayerParams params = {layer->get_friendly_name(), "Deconvolution", - 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; - - std::string value; - for (const auto& val : castedLayer->get_pads_begin()) { - if (!value.empty()) value += ","; - value += asString(val); - } - res->params["pads_begin"] = value; - - value.clear(); - for (const auto& val : castedLayer->get_pads_end()) { - if (!value.empty()) value += ","; - value += asString(val); - } - res->params["pads_end"] = value; - - value.clear(); - for (const auto& val : castedLayer->get_strides()) { - if (!value.empty()) value += ","; - value += asString(val); - } - res->params["strides"] = value; - - value.clear(); - for (const auto& val : castedLayer->get_dilations()) { - if (!value.empty()) value += ","; - value += asString(val); - } - res->params["dilations"] = value; - - // Restore kernel size and output - const auto& shape = castedLayer->get_input_shape(1); - res->params["output"] = asString(shape[1]); - - value.clear(); - for (size_t i = 2; i < shape.size(); i++) { - if (!value.empty()) value += ","; - value += asString(shape[i]); - } - res->params["kernel"] = value; - res->params["group"] = asString(castedLayer->get_group()); - - NodeConverter converter; - const auto weightsNode = castedLayer->input_value(1).get_node_shared_ptr(); - if (converter.canCreate(weightsNode)) { - const auto& weights = converter.createLayer(weightsNode); - res->blobs["weights"] = weights->blobs["custom"]; - res->_weights = weights->blobs["custom"]; - - if (castedLayer->inputs().size() == 3) { - const auto biasNode = castedLayer->input_value(2).get_node_shared_ptr(); - if (converter.canCreate(biasNode)) { - const auto& bias = converter.createLayer(biasNode); - res->blobs["biases"] = bias->blobs["custom"]; - res->_biases = bias->blobs["custom"]; - } - } - } - return res; -} - template <> CNNLayer::Ptr NodeConverter::createLayer( const std::shared_ptr& layer) const { @@ -1384,43 +1314,6 @@ CNNLayer::Ptr NodeConverter::createLayer(const std: return res; } -template <> -CNNLayer::Ptr NodeConverter::createLayer( - const std::shared_ptr& layer) const { - LayerParams params = {layer->get_friendly_name(), "DetectionOutput", - 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; - - auto attr = castedLayer->get_attrs(); - std::string param; - - res->params["num_classes"] = asString(attr.num_classes); - res->params["background_label_id"] = asString(attr.background_label_id); - res->params["top_k"] = asString(attr.top_k); - res->params["variance_encoded_in_target"] = (attr.variance_encoded_in_target ? "1" : "0"); - for (const auto& val : attr.keep_top_k) { - if (!param.empty()) param += ","; - param += asString(val); - } - res->params["keep_top_k"] = param; - res->params["code_type"] = attr.code_type; - res->params["share_location"] = (attr.share_location ? "1" : "0"); - res->params["nms_threshold"] = asString(attr.nms_threshold); - res->params["confidence_threshold"] = asString(attr.confidence_threshold); - res->params["clip_after_nms"] = (attr.clip_after_nms ? "1" : "0"); - res->params["clip_before_nms"] = (attr.clip_before_nms ? "1" : "0"); - res->params["decrease_label_id"] = (attr.decrease_label_id ? "1" : "0"); - res->params["normalized"] = (attr.normalized ? "1" : "0"); - res->params["input_height"] = asString(attr.input_height); - res->params["input_width"] = asString(attr.input_width); - res->params["objectness_score"] = asString(attr.objectness_score); - - return res; -} - template <> CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { LayerParams params = {layer->get_friendly_name(), "Proposal", @@ -1594,36 +1487,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(), "TopK", - 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["mode"] = ngraph::as_string(castedLayer->get_mode());; - res->params["sort"] = ngraph::as_string(castedLayer->get_sort_type()); - res->params["axis"] = asString(castedLayer->get_axis()); - - return res; -} - -template <> -CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { - LayerParams params = {layer->get_friendly_name(), "TopK", - 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["mode"] = ngraph::as_string(castedLayer->get_mode());; - res->params["sort"] = ngraph::as_string(castedLayer->get_sort_type()); - res->params["axis"] = asString(castedLayer->get_axis()); - - return res; -} - template <> CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { LayerParams params = {layer->get_friendly_name(), "Eltwise", @@ -2114,55 +1977,6 @@ 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(), "StridedSlice", - 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; - - std::string value; - for (const auto& val : castedLayer->get_begin_mask()) { - if (!value.empty()) value += ","; - // plugins require reverse value of this mask. - value += asString((1-val)); - } - res->params["begin_mask"] = value; - - value.clear(); - for (const auto& val : castedLayer->get_end_mask()) { - if (!value.empty()) value += ","; - // plugins require reverse value of this mask. - value += asString((1-val)); - } - res->params["end_mask"] = value; - - value.clear(); - for (const auto& val : castedLayer->get_new_axis_mask()) { - if (!value.empty()) value += ","; - value += asString(val); - } - res->params["new_axis_mask"] = value; - - value.clear(); - for (const auto& val : castedLayer->get_shrink_axis_mask()) { - if (!value.empty()) value += ","; - value += asString(val); - } - res->params["shrink_axis_mask"] = value; - - value.clear(); - for (const auto& val : castedLayer->get_ellipsis_mask()) { - if (!value.empty()) value += ","; - value += asString(val); - } - res->params["ellipsis_mask"] = value; - - return res; -} - template <> CNNLayer::Ptr NodeConverter::createLayer(const std::shared_ptr& layer) const { LayerParams params = {layer->get_friendly_name(), "OneHot", Precision::FP32}; @@ -2203,13 +2017,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(), "Activation", details::convertPrecision(layer->get_output_element_type(0))}; - auto res = std::make_shared(params); - res->params["type"] = "not"; - return res; -} - } // namespace Builder } // namespace InferenceEngine diff --git a/inference-engine/src/legacy_api/src/ie_layer_validators.cpp b/inference-engine/src/legacy_api/src/ie_layer_validators.cpp index 11e96335271..ee9757a9e9e 100644 --- a/inference-engine/src/legacy_api/src/ie_layer_validators.cpp +++ b/inference-engine/src/legacy_api/src/ie_layer_validators.cpp @@ -939,11 +939,11 @@ void DetectionOutputValidator::parseParams(CNNLayer* layer) { int _background_label_id = layer->GetParamAsUInt("background_label_id", -1); if (layer->CheckParamPresence("top_k")) int _top_k = layer->GetParamAsUInt("top_k", -1); if (layer->CheckParamPresence("variance_encoded_in_target")) - bool _variance_encoded_in_target = static_cast(layer->GetParamAsUInt("variance_encoded_in_target")); + bool _variance_encoded_in_target = static_cast(layer->GetParamAsUInt("variance_encoded_in_target", 0)); if (layer->CheckParamPresence("num_orient_classes")) int _num_orient_classes = layer->GetParamAsUInt("num_orient_classes"); if (layer->CheckParamPresence("share_location")) - bool _share_location = static_cast(layer->GetParamAsUInt("share_location")); + bool _share_location = static_cast(layer->GetParamAsUInt("share_location", 1)); if (layer->CheckParamPresence("interpolate_orientation")) int _interpolate_orientation = layer->GetParamAsInt("interpolate_orientation"); if (layer->CheckParamPresence("confidence_threshold")) { @@ -955,7 +955,11 @@ void DetectionOutputValidator::parseParams(CNNLayer* layer) { if (layer->CheckParamPresence("code_type")) { std::string _code_type = layer->GetParamAsString("code_type"); - std::vector code_types = {"caffe.PriorBoxParameter.CENTER_SIZE", "caffe.PriorBoxParameter.CORNER"}; + for (auto& c: _code_type) + { + c = std::tolower(c); + } + std::vector code_types = {"caffe.priorboxparameter.center_size", "caffe.priorboxparameter.corner"}; auto it = std::find(code_types.begin(), code_types.end(), _code_type); if (it == code_types.end()) { THROW_IE_EXCEPTION << "Parameter code_type of DetectionOutput layer "; diff --git a/inference-engine/src/legacy_api/src/ngraph_ops/topk_ie.cpp b/inference-engine/src/legacy_api/src/ngraph_ops/topk_ie.cpp index 59a6687499f..0a780d2b896 100644 --- a/inference-engine/src/legacy_api/src/ngraph_ops/topk_ie.cpp +++ b/inference-engine/src/legacy_api/src/ngraph_ops/topk_ie.cpp @@ -53,4 +53,11 @@ void op::TopKIE::validate_and_infer_types() { set_output_size(2); set_output_type(0, topk->get_output_element_type(0), topk->get_output_partial_shape(0)); set_output_type(1, topk->get_output_element_type(1), topk->get_output_partial_shape(1)); -} \ No newline at end of file +} + +bool op::TopKIE::visit_attributes(AttributeVisitor& visitor) { + visitor.on_attribute("axis", m_axis); + visitor.on_attribute("mode", m_mode); + visitor.on_attribute("sort", m_sort_type); + return true; +} 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 fd43522516d..5bc294aedbf 100644 --- a/inference-engine/src/readers/ir_reader/ie_ir_parser.cpp +++ b/inference-engine/src/readers/ir_reader/ie_ir_parser.cpp @@ -388,25 +388,13 @@ std::shared_ptr V10Parser::createNode(const std::vector> creators = { - std::make_shared>("Abs"), - std::make_shared>("Acos"), - std::make_shared>("Add"), - std::make_shared>("Asin"), - std::make_shared>("Atan"), std::make_shared>("AvgPool"), - std::make_shared>("Ceiling"), std::make_shared>("Clamp"), - std::make_shared>("Concat"), std::make_shared>("Const"), std::make_shared>("Convert"), std::make_shared>("CTCGreedyDecoder"), - std::make_shared>("ReverseSequence"), - std::make_shared>("Cos"), - std::make_shared>("Cosh"), - std::make_shared>("DetectionOutput"), std::make_shared>("DeformableConvolution"), std::make_shared>("DeformablePSROIPooling"), - std::make_shared>("Divide"), std::make_shared>("SpaceToDepth"), std::make_shared>("DepthToSpace"), std::make_shared>("Subtract"), @@ -415,13 +403,9 @@ std::shared_ptr V10Parser::createNode(const std::vector>("Reshape"), std::make_shared>("StridedSlice"), std::make_shared>("ELU"), - std::make_shared>("Exp"), - std::make_shared>("Erf"), std::make_shared>("FakeQuantize"), - std::make_shared>("Floor"), std::make_shared>("Gather"), std::make_shared>("GatherTree"), - std::make_shared>("Greater"), std::make_shared>("GreaterEqual"), std::make_shared>("Convolution"), std::make_shared>("GroupConvolution"), @@ -430,22 +414,16 @@ std::shared_ptr V10Parser::createNode(const std::vector>("BinaryConvolution"), std::make_shared>("GRN"), std::make_shared>("HardSigmoid"), - std::make_shared>("Log"), std::make_shared>("SquaredDifference"), - std::make_shared>("Less"), std::make_shared>("LessEqual"), std::make_shared>("Equal"), std::make_shared>("NotEqual"), std::make_shared>("FloorMod"), - std::make_shared>("Select"), std::make_shared>("LRN"), std::make_shared>("MVN"), std::make_shared>("LSTMCell"), std::make_shared>("MaxPool"), - std::make_shared>("Maximum"), std::make_shared>("Minimum"), - std::make_shared>("Multiply"), - std::make_shared>("Negative"), std::make_shared>("NonMaxSuppression"), std::make_shared>("NormalizeL2"), std::make_shared>("OneHot"), @@ -453,7 +431,7 @@ std::shared_ptr V10Parser::createNode(const std::vector>("ReLU"), std::make_shared>("Pad"), std::make_shared>("Power"), - std::make_shared>("Range"), + std::make_shared>("ReverseSequence"), std::make_shared>("PriorBox"), std::make_shared>("PriorBoxClustered"), std::make_shared>("ReorgYolo"), @@ -461,25 +439,14 @@ std::shared_ptr V10Parser::createNode(const std::vector>("Result"), std::make_shared>("ROIPooling"), std::make_shared>("PSROIPooling"), - std::make_shared>("ShapeOf"), std::make_shared>("Selu"), - std::make_shared>("Sigmoid"), - std::make_shared>("Sin"), - std::make_shared>("Sign"), - std::make_shared>("Sinh"), std::make_shared>("Softmax"), std::make_shared>("Split"), std::make_shared>("VariadicSplit"), - std::make_shared>("Sqrt"), - std::make_shared>("Squeeze"), - std::make_shared>("Tan"), std::make_shared>("TanH"), std::make_shared>("Tile"), - std::make_shared>("TopK"), std::make_shared>("TensorIterator"), std::make_shared>("Loop"), - std::make_shared>("Transpose"), - std::make_shared>("Unsqueeze"), std::make_shared>("LogicalAnd"), std::make_shared>("LogicalOr"), std::make_shared>("LogicalXor"), @@ -615,54 +582,6 @@ std::shared_ptr V10Parser::createNode(const std::vector -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - pugi::xml_node dn = node.child("data"); - - if (dn.empty()) - THROW_IE_EXCEPTION << "Cannot read parameter for " << getType() << " layer with name: " << layerParsePrms.name; - - ngraph::op::DetectionOutputAttrs attr; - - attr.num_classes = GetIntAttr(dn, "num_classes"); - attr.background_label_id = GetIntAttr(dn, "background_label_id", 0); - attr.top_k = GetIntAttr(dn, "top_k", -1); - attr.variance_encoded_in_target = GetIntAttr(dn, "variance_encoded_in_target", 0) != 0; - attr.keep_top_k = getParameters(dn, "keep_top_k", {}); - attr.code_type = GetStrAttr(dn, "code_type", "caffe.PriorBoxParameter.CORNER"); - attr.share_location = GetIntAttr(dn, "share_location", 1) != 0; - attr.clip_after_nms = GetIntAttr(dn, "clip_after_nms", 0) != 0; - attr.clip_before_nms = GetIntAttr(dn, "clip_before_nms", 0) != 0; - attr.decrease_label_id = GetIntAttr(dn, "decrease_label_id", 0) != 0; - attr.normalized = GetIntAttr(dn, "normalized", 0) != 0; - attr.input_height = GetUIntAttr(dn, "input_height", 1); - attr.input_width = GetUIntAttr(dn, "input_width", 1); - attr.objectness_score = GetFloatAttr(dn, "objectness_score", 0); - attr.nms_threshold = GetFloatAttr(dn, "nms_threshold"); - attr.confidence_threshold = GetFloatAttr(dn, "confidence_threshold", 0); - - if (inputs.size() != 3 && inputs.size() != 5) { - THROW_IE_EXCEPTION << "DetectionOutput has incorrect number of input ports!"; - } - - if (inputs.size() == 3) { - return std::make_shared(inputs[0], - inputs[1], - inputs[2], - attr); - } else { - return std::make_shared(inputs[0], - inputs[1], - inputs[2], - inputs[3], - inputs[4], - attr); - } -} - // SubGraph layer std::shared_ptr V10Parser::LayerBaseCreator::fillSubGraphLayer(const ngraph::OutputVector &inputs, const pugi::xml_node &node, @@ -911,15 +830,6 @@ std::shared_ptr V10Parser::LayerCreator::cre return std::make_shared(inputs[0], inputs[1], attr); } -// ShapeOf layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - // FakeQuantize layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -991,43 +901,6 @@ std::shared_ptr V10Parser::LayerCreator -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 2); - pugi::xml_node dn = node.child("data"); - if (dn.empty()) - THROW_IE_EXCEPTION << "Cannot read parameter for " << getType() << " layer with name: " << layerParsePrms.name; - - size_t axis = GetUInt64Attr(dn, "axis"); - std::string str_mode = GetStrAttr(dn, "mode"); - std::string str_sort = GetStrAttr(dn, "sort"); - - ngraph::op::v1::TopK::Mode mode; - ngraph::op::v1::TopK::SortType sort; - if (str_mode == "max") { - mode = ngraph::op::v1::TopK::Mode::MAX; - } else if (str_mode == "min") { - mode = ngraph::op::v1::TopK::Mode::MIN; - } else { - THROW_IE_EXCEPTION << "Unsupported mode: " << str_mode; - } - - if (str_sort == "none") { - sort = ngraph::op::v1::TopK::SortType::NONE; - } else if (str_sort == "value") { - sort = ngraph::op::v1::TopK::SortType::SORT_VALUES; - } else if (str_sort == "index") { - sort = ngraph::op::v1::TopK::SortType::SORT_INDICES; - } else { - THROW_IE_EXCEPTION << "Unsupported sort type: " << str_sort; - } - - return std::make_shared(inputs[0], inputs[1], axis, mode, sort); -} - // Pad layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1074,15 +947,6 @@ std::shared_ptr V10Parser::LayerCreator(inputs[0], inputs[1]); } -// Greater layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 2); - return std::make_shared(inputs[0], inputs[1]); -} - // GreaterEqual layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1092,15 +956,6 @@ std::shared_ptr V10Parser::LayerCreator(inputs[0], inputs[1]); } -// Less layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 2); - return std::make_shared(inputs[0], inputs[1]); -} - // LessEqual layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1137,15 +992,6 @@ std::shared_ptr V10Parser::LayerCreator: return std::make_shared(inputs[0], inputs[1]); } -// Select layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 3); - return std::make_shared(inputs[0], inputs[1], inputs[2]); -} - // MVN layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1163,15 +1009,6 @@ std::shared_ptr V10Parser::LayerCreator::createLa return std::make_shared(inputs[0], across, normalize_variance, eps); } -// Log layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - // LRN layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1230,15 +1067,6 @@ std::shared_ptr V10Parser::LayerCreator::cr return std::make_shared(inputs[0], inputs[1], num_splits); } -// Sigmoid layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - // ELU layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1299,15 +1127,6 @@ std::shared_ptr V10Parser::LayerCreator::create return std::make_shared(inputs[0], inputs[1]); } -// Exp layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - // ReLU layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1317,24 +1136,6 @@ std::shared_ptr V10Parser::LayerCreator::createL return std::make_shared(inputs[0]); } -// Negative layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Range layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 3); - return std::make_shared(inputs[0], inputs[1], inputs[2]); -} - // Tanh layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1401,42 +1202,6 @@ std::shared_ptr V10Parser::LayerCreator:: return std::make_shared(inputs[0], inputs[1], GetBoolAttr(dn, "special_zero")); } -// Squeeze layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 2); - return std::make_shared(inputs[0], inputs[1]); -} - -// Unsqueeze layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 2); - return std::make_shared(inputs[0], inputs[1]); -} - -// Abs layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Add layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 2); - return std::make_shared(inputs[0], inputs[1]); -} - // Minimum layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1446,24 +1211,6 @@ std::shared_ptr V10Parser::LayerCreator:: return std::make_shared(inputs[0], inputs[1]); } -// Maximum layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 2); - return std::make_shared(inputs[0], inputs[1]); -} - -// Divide layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 2); - return std::make_shared(inputs[0], inputs[1]); -} - // Subtract layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1473,15 +1220,6 @@ std::shared_ptr V10Parser::LayerCreator: return std::make_shared(inputs[0], inputs[1]); } -// Multiply layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 2); - return std::make_shared(inputs[0], inputs[1]); -} - // Broadcast layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1568,15 +1306,6 @@ std::shared_ptr V10Parser::LayerCreator:: return std::make_shared(inputs[0], GetUIntAttr(dn, "axis")); } -// Sqrt layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - // RegionYolo layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1616,15 +1345,6 @@ std::shared_ptr V10Parser::LayerCreator::cr return std::make_shared(inputs[0], ngraph::Strides {stride}); } -// Transpose layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 2); - return std::make_shared(inputs[0], inputs[1]); -} - // BinaryConvolution layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -1989,20 +1709,6 @@ std::shared_ptr V10Parser::LayerCreator -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - 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, GetUIntAttr(dn, "axis")); -} - // Gather layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( @@ -2060,114 +1766,6 @@ std::shared_ptr V10Parser::LayerCreator:: return std::make_shared(inputs[0], inputs[1], eps, em); } -// Erf layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Sin layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Sign layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Sinh layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Asin layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Cos layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Cosh layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Acos layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Tan layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Atan layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Floor layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - -// Ceiling layer -template <> -std::shared_ptr V10Parser::LayerCreator::createLayer( - const ngraph::OutputVector& inputs, const pugi::xml_node& node, std::istream& binStream, - const GenericLayerParams& layerParsePrms) { - checkParameters(inputs, layerParsePrms, 1); - return std::make_shared(inputs[0]); -} - // HardSigmoid layer template <> std::shared_ptr V10Parser::LayerCreator::createLayer( diff --git a/inference-engine/src/readers/ir_reader/ie_ir_parser.hpp b/inference-engine/src/readers/ir_reader/ie_ir_parser.hpp index c515cc62c0f..2e6f5e40128 100644 --- a/inference-engine/src/readers/ir_reader/ie_ir_parser.hpp +++ b/inference-engine/src/readers/ir_reader/ie_ir_parser.hpp @@ -265,6 +265,12 @@ private: adapter.set(value); } + void on_adapter(const std::string& name, ngraph::ValueAccessor>& adapter) override { + std::vector value; + if (!getParameters(node.child("data"), name, value)) return; + adapter.set(value); + } + void on_adapter(const std::string& name, ngraph::ValueAccessor>& adapter) override { std::vector value; if (!getParameters(node.child("data"), name, value)) return; diff --git a/inference-engine/src/transformations/include/ngraph_ops/deconvolution_ie.hpp b/inference-engine/src/transformations/include/ngraph_ops/deconvolution_ie.hpp index fb43b5b58aa..f27d976ac3e 100644 --- a/inference-engine/src/transformations/include/ngraph_ops/deconvolution_ie.hpp +++ b/inference-engine/src/transformations/include/ngraph_ops/deconvolution_ie.hpp @@ -68,6 +68,7 @@ public: /// \return The group const size_t& get_group() const { return m_group; } void set_group(const size_t & group) { m_group = group; } + bool visit_attributes(AttributeVisitor& visitor) override; protected: Strides m_strides; diff --git a/inference-engine/src/transformations/src/ngraph_ops/deconvolution_ie.cpp b/inference-engine/src/transformations/src/ngraph_ops/deconvolution_ie.cpp index e55998f06b4..2cdf1405662 100644 --- a/inference-engine/src/transformations/src/ngraph_ops/deconvolution_ie.cpp +++ b/inference-engine/src/transformations/src/ngraph_ops/deconvolution_ie.cpp @@ -116,3 +116,12 @@ shared_ptr op::DeconvolutionIE::clone_with_new_inputs(const ngraph::Output } throw ngraph::ngraph_error("Unexpected number of arguments"); } + +bool op::DeconvolutionIE::visit_attributes(AttributeVisitor& visitor) { + visitor.on_attribute("strides", m_strides); + visitor.on_attribute("dilations", m_dilations); + visitor.on_attribute("pads_begin", m_pads_begin); + visitor.on_attribute("pads_end", m_pads_end); + visitor.on_attribute("group", m_group); + return true; +} diff --git a/inference-engine/tests/functional/inference_engine/cnn_network/convert_ngraph_to_cnn_network_tests.cpp b/inference-engine/tests/functional/inference_engine/cnn_network/convert_ngraph_to_cnn_network_tests.cpp index b21e9467da5..372c169dd7a 100644 --- a/inference-engine/tests/functional/inference_engine/cnn_network/convert_ngraph_to_cnn_network_tests.cpp +++ b/inference-engine/tests/functional/inference_engine/cnn_network/convert_ngraph_to_cnn_network_tests.cpp @@ -82,7 +82,6 @@ TEST(ConvertFunctionToCNNNetworkTests, OpsShouldBeConvertedToIERepresentation) { ngraph::NodeVector should_converted_to_ie = { std::make_shared(), std::make_shared(), - std::make_shared(), std::make_shared(), std::make_shared(), std::make_shared(), @@ -105,7 +104,6 @@ TEST(ConvertFunctionToCNNNetworkTests, OpsShouldBeConvertedToIERepresentation) { std::make_shared(), std::make_shared(), std::make_shared(), - std::make_shared(), }; // create simple ngraph function Parameter -> Result diff --git a/ngraph/core/src/op/strided_slice.cpp b/ngraph/core/src/op/strided_slice.cpp index ee9a9fc09e7..8dc5ca05b97 100644 --- a/ngraph/core/src/op/strided_slice.cpp +++ b/ngraph/core/src/op/strided_slice.cpp @@ -106,7 +106,7 @@ op::v1::StridedSlice::StridedSlice(const Output& data, { } -bool ngraph::op::v1::StridedSlice::visit_attributes(AttributeVisitor& visitor) +bool op::v1::StridedSlice::visit_attributes(AttributeVisitor& visitor) { visitor.on_attribute("begin_mask", m_begin_mask); visitor.on_attribute("end_mask", m_end_mask);